pl aggregate support sfa and protogeni rspec
[sfa.git] / sfa / managers / aggregate_manager_pl.py
index 9f407ee..75fdc8b 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()
@@ -322,8 +322,9 @@ def ListResources(api, creds, options,call_id):
     else:
         # generate rspec in both pg and sfa formats
         rspec = aggregate.get_rspec(version=rspec_version)
+
     # cache the result
-    if caching and api.cache:
+    if caching and api.cache and not xrn:
         api.cache.add(version_string, rspec)
 
     return rspec