- remove invalid (i.e. expired) slice_ids from from node['slice_ids']
authorTony Mack <tmack@cs.princeton.edu>
Mon, 27 Nov 2006 16:09:56 +0000 (16:09 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Mon, 27 Nov 2006 16:09:56 +0000 (16:09 +0000)
PLC/Methods/GetSlivers.py

index ace99c5..9f312d7 100644 (file)
@@ -144,15 +144,17 @@ class GetSlivers(Method):
                 if conf_file_id in all_conf_files:
                     conf_files[conf_file['dest']] = all_conf_files[conf_file_id]
 
-            slice_ids = dict.fromkeys(node['slice_ids'])
+            # filter out any slices in this nodes slice_id list that may be invalid
+            # (i.e. expired slices)
+           slice_ids = dict.fromkeys([slice['slice_id'] for slice in Slices(self.api, node['slice_ids'])])
 
             # If not a foreign node, add all of our default system
             # slices to it.
             if node['peer_id'] is not None:
                slice_ids.update(system_slice_ids)
 
-            slivers = []
-            for slice in map(lambda id: all_slices[id], slice_ids.keys()):
+            slivers = [] 
+           for slice in map(lambda id: all_slices[id], slice_ids.keys()):
                 keys = []
                 ### still missing in foreign slices
                 try: