From: Tony Mack Date: Thu, 26 Jul 2007 16:46:17 +0000 (+0000) Subject: merge changes from HEAD X-Git-Tag: planetlab-4_1-rc1~1 X-Git-Url: http://git.onelab.eu/?p=plcapi.git;a=commitdiff_plain;h=918fbd1e95d3cbcf24a560e86ce9310a364f3000 merge changes from HEAD --- diff --git a/PLC/Methods/AddSliceToNodes.py b/PLC/Methods/AddSliceToNodes.py index e5a60f9..3cfd327 100644 --- a/PLC/Methods/AddSliceToNodes.py +++ b/PLC/Methods/AddSliceToNodes.py @@ -49,6 +49,11 @@ class AddSliceToNodes(Method): # Get specified nodes, add them to the slice nodes = Nodes(self.api, node_id_or_hostname_list) for node in nodes: + # check the slice whitelist on each node first + if node['slice_ids_whitelist'] and \ + slice['slice_id'] not in node['slice_ids_whitelist']: + raise PLCInvalidArgument, "%s is not on %s's whitelist" % \ + (slice['name'], node['hostname']) if slice['slice_id'] not in node['slice_ids']: slice.add_node(node, commit = False) diff --git a/PLC/Methods/DeleteSliceFromNodes.py b/PLC/Methods/DeleteSliceFromNodes.py index b2705d5..2390be5 100644 --- a/PLC/Methods/DeleteSliceFromNodes.py +++ b/PLC/Methods/DeleteSliceFromNodes.py @@ -17,7 +17,7 @@ class DeleteSliceFromNodes(Method): accepts = [ Auth(), - Mixed(Slice.fields['slice_id'], + Mixed(Slice.fields['slice_id'], Slice.fields['name']), [Mixed(Node.fields['node_id'], Node.fields['hostname'])] @@ -32,9 +32,6 @@ class DeleteSliceFromNodes(Method): raise PLCInvalidArgument, "No such slice" slice = slices[0] - if slice['peer_id'] is not None: - raise PLCInvalidArgument, "Not a local slice" - if 'admin' not in self.caller['roles']: if self.caller['person_id'] in slice['person_ids']: pass @@ -48,6 +45,8 @@ class DeleteSliceFromNodes(Method): # Get specified nodes nodes = Nodes(self.api, node_id_or_hostname_list) for node in nodes: + if slice['peer_id'] is not None and node['peer_id'] is not None: + raise PLCPermissionDenied, "Not allowed to remove peer slice from peer node" if slice['slice_id'] in node['slice_ids']: slice.remove_node(node, commit = False)