From 764e80dbb354adfd4a1f3b9f952235ef475a67b2 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Thu, 20 Sep 2007 18:04:36 +0000 Subject: [PATCH] - allow any site member to add their slice to any node at their site, even if their slice isnt on the node's whitelist --- PLC/Methods/AddSliceToNodes.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/PLC/Methods/AddSliceToNodes.py b/PLC/Methods/AddSliceToNodes.py index ce8bb1c..557c2fa 100644 --- a/PLC/Methods/AddSliceToNodes.py +++ b/PLC/Methods/AddSliceToNodes.py @@ -47,12 +47,18 @@ class AddSliceToNodes(Method): raise PLCPermissionDenied, "Specified slice not associated with any of your sites" # Get specified nodes, add them to the slice - nodes = Nodes(self.api, node_id_or_hostname_list, ['node_id', 'hostname', 'slice_ids', 'slice_ids_whitelist']) + 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 if node['slice_ids_whitelist'] and \ slice['slice_id'] not in node['slice_ids_whitelist']: - raise PLCInvalidArgument, "%s is not on %s's whitelist" % \ + 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']: slice.add_node(node, commit = False) -- 2.43.0