From: Thierry Parmentelat Date: Thu, 16 Nov 2006 11:53:57 +0000 (+0000) Subject: remove ugly hack - just assert node isinstance of Node OR ForeignNode X-Git-Tag: pycurl-7_13_1~289 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=024a2d9c7540cc162dff347b5f74353a292971e4;p=plcapi.git remove ugly hack - just assert node isinstance of Node OR ForeignNode --- diff --git a/PLC/Methods/AddSliceToNodes.py b/PLC/Methods/AddSliceToNodes.py index 5133746b..dffb59cd 100644 --- a/PLC/Methods/AddSliceToNodes.py +++ b/PLC/Methods/AddSliceToNodes.py @@ -51,20 +51,17 @@ class AddSliceToNodes(Method): elif slice['site_id'] not in self.caller['site_ids']: raise PLCPermissionDenied, "Specified slice not associated with any of your sites" - # Get specified nodes, and them to the slice + # Get specified nodes, add them to the slice + nodes = Nodes(self.api, node_id_or_hostname_list) - for node in nodes: + foreign_nodes = ForeignNodes (self.api, node_id_or_hostname_list) + all_nodes = nodes+foreign_nodes; + for node in all_nodes: if slice['slice_id'] not in node['slice_ids']: slice.add_node(node, commit = False) - # the same for foreign_nodes - foreign_nodes = ForeignNodes (self.api, node_id_or_hostname_list) - for foreign_node in foreign_nodes: - if slice['slice_id'] not in foreign_node['slice_ids']: - slice.add_node (foreign_node, is_foreign_node=True, commit=False) - slice.sync() - self.object_ids = [node['node_id'] for node in nodes] + self.object_ids = [node['node_id'] for node in all_nodes] return 1 diff --git a/PLC/Methods/DeleteSliceFromNodes.py b/PLC/Methods/DeleteSliceFromNodes.py index 1f9c01af..d3e31f04 100644 --- a/PLC/Methods/DeleteSliceFromNodes.py +++ b/PLC/Methods/DeleteSliceFromNodes.py @@ -49,14 +49,14 @@ class DeleteSliceFromNodes(Method): # Get specified nodes nodes = Nodes(self.api, node_id_or_hostname_list) - for node in nodes: - if slice['slice_id'] in node['slice_ids']: - slice.remove_node(node) foreign_nodes = ForeignNodes(self.api, node_id_or_hostname_list) - for node in foreign_nodes: + all_nodes = nodes+foreign_nodes; + for node in all_nodes: if slice['slice_id'] in node['slice_ids']: - slice.remove_node(node,is_foreign_node=True) + slice.remove_node(node, commit = False) + + slice.sync() - self.object_ids = [node['node_id'] for node in nodes] + self.object_ids = [node['node_id'] for node in all_nodes] return 1