- import Person, Persons
authorTony Mack <tmack@cs.princeton.edu>
Fri, 21 Sep 2007 20:16:26 +0000 (20:16 +0000)
committerTony Mack <tmack@cs.princeton.edu>
Fri, 21 Sep 2007 20:16:26 +0000 (20:16 +0000)
PLC/Methods/AddSliceToNodes.py

index 557c2fa..d5a2c8c 100644 (file)
@@ -3,6 +3,7 @@ from PLC.Method import Method
 from PLC.Parameter import Parameter, Mixed
 from PLC.Nodes import Node, Nodes
 from PLC.Slices import Slice, Slices
 from PLC.Parameter import Parameter, Mixed
 from PLC.Nodes import Node, Nodes
 from PLC.Slices import Slice, Slices
+from PLC.Persons import Person, Persons
 from PLC.Auth import Auth
 
 class AddSliceToNodes(Method):
 from PLC.Auth import Auth
 
 class AddSliceToNodes(Method):
@@ -50,14 +51,11 @@ class AddSliceToNodes(Method):
         nodes = Nodes(self.api, node_id_or_hostname_list, ['node_id', 'hostname', 'slice_ids', 'slice_ids_whitelist', 'site_id'])
        
        for node in nodes:
         nodes = Nodes(self.api, node_id_or_hostname_list, ['node_id', 'hostname', 'slice_ids', 'slice_ids_whitelist', 'site_id'])
        
        for node in nodes:
-           # allow  users at site to add node to slice, ignoring whitelist
-           if isinstance(self.caller, Person) and \
-              set(self.caller['site_ids']).intersection(node['site_id']):
-               slice.add_node(node, commit = False)
-               continue
            # check the slice whitelist on each node first
            # 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 \
            if node['slice_ids_whitelist'] and \
-              slice['slice_id'] not in node['slice_ids_whitelist']:
+              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'])
             if slice['slice_id'] not in node['slice_ids']:
                raise PLCInvalidArgument, "%s is not allowed on %s (not on the whitelist)" % \
                  (slice['name'], node['hostname'])
             if slice['slice_id'] not in node['slice_ids']: