use check_whitelist() and spawn_instances()
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Mon, 11 Mar 2013 14:57:52 +0000 (10:57 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Mon, 11 Mar 2013 14:57:52 +0000 (10:57 -0400)
PLC/Methods/AddSliceToNodes.py

index db074ca..1db307c 100644 (file)
@@ -51,15 +51,13 @@ class AddSliceToNodes(Method):
         nodes = Nodes(self.api, node_id_or_hostname_list, 
                       ['node_id', 'hostname', 'slice_ids', 'slice_ids_whitelist', 'site_id'])
 
+        slice.spawn_instances(nodes, self.caller) 
         for node in nodes:
             # check the slice whitelist on each node first
             # allow users at site to add node to slice, ignoring whitelist
-            if node['slice_ids_whitelist'] and \
-               slice['slice_id'] not in node['slice_ids_whitelist'] and \
-               not set(self.caller['site_ids']).intersection([node['site_id']]):
-                raise PLCInvalidArgument, "%s is not allowed on %s (not on the whitelist)" % \
-                  (slice['name'], node['hostname'])
+            node.check_whitelist(slice, self.caller)
             if slice['slice_id'] not in node['slice_ids']:
+                tags = sliver_tags.get(node['node_id'])
                 slice.add_node(node, commit = False)
 
         slice.sync()