From aecda01713afae14be2a95d1536c26648311187b Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Mon, 20 Jun 2011 16:48:33 -0400 Subject: [PATCH] handle sliver attribtes in the SFA rspec --- sfa/managers/aggregate_manager_pl.py | 9 ++++++--- sfa/rspecs/pg_rspec.py | 6 ++++++ sfa/rspecs/sfa_rspec.py | 4 ++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/sfa/managers/aggregate_manager_pl.py b/sfa/managers/aggregate_manager_pl.py index 894823c1..a4e56519 100644 --- a/sfa/managers/aggregate_manager_pl.py +++ b/sfa/managers/aggregate_manager_pl.py @@ -195,15 +195,18 @@ def CreateSliver(api, slice_xrn, creds, rspec_string, users, call_id): # add nodes from rspec added_nodes = list(set(requested_slivers).difference(current_slivers)) + # get sliver attributes + slice_attributes = rspec.get_slice_attributes() + try: if peer: api.plshell.UnBindObjectFromPeer(api.plauth, 'slice', slice['slice_id'], peer) api.plshell.AddSliceToNodes(api.plauth, slice['name'], added_nodes) api.plshell.DeleteSliceFromNodes(api.plauth, slice['name'], deleted_nodes) - - # TODO: update slice tags - #network.updateSliceTags() + for attribute in sliver_atrributes: + name, value, node_id = attribute['tagname'], attribute['value'], attribute.get('node_id', None) + api.plshell.AddSliceTag(api.plauth, slice['name'], name, value, node_id) finally: if peer: diff --git a/sfa/rspecs/pg_rspec.py b/sfa/rspecs/pg_rspec.py index d481eb74..fb98a9dd 100755 --- a/sfa/rspecs/pg_rspec.py +++ b/sfa/rspecs/pg_rspec.py @@ -90,6 +90,12 @@ class PGRSpec(RSpec): def get_nodes_without_slivers(self, network=None): pass + + def get_slice_attributes(self, network=None): + pass + + def get_default_sliver_attributes(self, network=None): + pass def add_nodes(self, nodes, check_for_dupes=False): if not isinstance(nodes, list): diff --git a/sfa/rspecs/sfa_rspec.py b/sfa/rspecs/sfa_rspec.py index 0fce4265..10d068a0 100755 --- a/sfa/rspecs/sfa_rspec.py +++ b/sfa/rspecs/sfa_rspec.py @@ -91,6 +91,10 @@ class SfaRSpec(RSpec): sliver = node.find("sliver") return self.attributes_list(sliver) + def get_slice_attributes(self, network=None): + # TODO: FINISH + return [] + def get_site_nodes(self, siteid, network=None): if network: nodes = self.xml.xpath('//network[@name="%s"]/site[@id="%s"]/node/hostname/text()' % \ -- 2.47.0