expose slice tags in SFA RSepc
[sfa.git] / sfa / managers / aggregate_manager_pl.py
index df6f1ce..e44f7bf 100644 (file)
@@ -22,7 +22,8 @@ from sfa.plc.api import SfaAPI
 from sfa.plc.aggregate import Aggregate
 from sfa.plc.slices import *
 from sfa.util.version import version_core
-from sfa.rspecs.rspec_version import RSpecVersion 
+from sfa.rspecs.rspec_version import RSpecVersion
+from sfa.rspecs.rspec_parser import parse_rspec 
 from sfa.util.sfatime import utcparse
 from sfa.util.callids import Callids
 
@@ -180,8 +181,7 @@ def CreateSliver(api, slice_xrn, creds, rspec_string, users, call_id):
     nodes = api.plshell.GetNodes(api.plauth, slice['node_ids'], ['hostname'])
     current_slivers = [node['hostname'] for node in nodes] 
     rspec = parse_rspec(rspec_string)
-    requested_slivers = rspec.get_nodes_with_slivers()
-     
+    requested_slivers = [str(host) for host in rspec.get_nodes_with_slivers()]
     # remove nodes not in rspec
     deleted_nodes = list(set(current_slivers).difference(requested_slivers))
 
@@ -193,7 +193,7 @@ def CreateSliver(api, slice_xrn, creds, rspec_string, users, call_id):
             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['slice'], deleted_nodes)
+        api.plshell.DeleteSliceFromNodes(api.plauth, slice['name'], deleted_nodes)
 
         # TODO: update slice tags
         #network.updateSliceTags()
@@ -203,7 +203,7 @@ def CreateSliver(api, slice_xrn, creds, rspec_string, users, call_id):
             api.plshell.BindObjectToPeer(api.plauth, 'slice', slice.id, peer, 
                                          slice.peer_id)
 
-    return aggregate.get_rspec(slice_xrn=slice_xrn)
+    return aggregate.get_rspec(slice_xrn=slice_xrn, version=RSpecVersion("pg"))
 
 
 def RenewSliver(api, xrn, creds, expiration_time, call_id):
@@ -316,12 +316,7 @@ def ListResources(api, creds, options,call_id):
 
     aggregate = Aggregate(api)
 
-    if xrn:
-        # get this rspec for the specified slice 
-        rspec =  aggregate.get_rspec(slice_xrn=hrn, version=rspec_version)
-    else:
-        # generate rspec in both pg and sfa formats
-        rspec = aggregate.get_rspec(version=rspec_version)
+    rspec =  aggregate.get_rspec(slice_xrn=xrn, version=rspec_version)
 
     # cache the result
     if caching and api.cache and not xrn: