From 8d68545c818393944bf6dbc7afd9ca9074a03a10 Mon Sep 17 00:00:00 2001
From: Tony Mack <tmack@paris.CS.Princeton.EDU>
Date: Tue, 4 Oct 2011 15:53:38 -0400
Subject: [PATCH] Declare the correct schmea (ad/manifest/request) for
 ProtoGENI rspecs

---
 sfa/managers/aggregate_manager_pl.py |  3 +--
 sfa/managers/slice_manager_pl.py     |  7 +++++--
 sfa/plc/aggregate.py                 | 10 +++++++++-
 3 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/sfa/managers/aggregate_manager_pl.py b/sfa/managers/aggregate_manager_pl.py
index 2c2a696b..3b82cb69 100644
--- a/sfa/managers/aggregate_manager_pl.py
+++ b/sfa/managers/aggregate_manager_pl.py
@@ -301,7 +301,7 @@ def ListSlices(api, creds, call_id):
 def ListResources(api, creds, options,call_id):
     if Callids().already_handled(call_id): return ""
     # get slice's hrn from options
-    xrn = options.get('geni_slice_urn', '')
+    xrn = options.get('geni_slice_urn', None)
     (hrn, type) = urn_to_hrn(xrn)
 
     version_manager = VersionManager()
@@ -324,7 +324,6 @@ def ListResources(api, creds, options,call_id):
     #panos: passing user-defined options
     #print "manager options = ",options
     aggregate = Aggregate(api, options)
-
     rspec =  aggregate.get_rspec(slice_xrn=xrn, version=rspec_version)
 
     # cache the result
diff --git a/sfa/managers/slice_manager_pl.py b/sfa/managers/slice_manager_pl.py
index d7d4e579..e8baada0 100644
--- a/sfa/managers/slice_manager_pl.py
+++ b/sfa/managers/slice_manager_pl.py
@@ -165,8 +165,11 @@ def ListResources(api, creds, options, call_id):
 
     results = threads.get_results()
     rspec_version = version_manager.get_version(options.get('rspec_version'))
-    manifest_version = version_manager._get_version(rspec_version.type, rspec_version.version, 'manifest')    
-    rspec = RSpec(version=manifest_version)
+    if xrn:    
+        result_version = version_manager._get_version(rspec_version.type, rspec_version.version, 'manifest')
+    else: 
+        result_version = version_manager._get_version(rspec_version.type, rspec_version.version, 'ad')
+    rspec = RSpec(version=result_version)
     for result in results:
         add_slicemgr_stat(rspec, "ListResources", result["aggregate"], result["elapsed"], result["status"])
         if result["status"]=="success":
diff --git a/sfa/plc/aggregate.py b/sfa/plc/aggregate.py
index c2c5d6a6..a45cd2e9 100644
--- a/sfa/plc/aggregate.py
+++ b/sfa/plc/aggregate.py
@@ -5,6 +5,7 @@ from sfa.util.plxrn import *
 #from sfa.rspecs.pg_rspec  import PGRSpec
 #from sfa.rspecs.rspec_version import RSpecVersion
 from sfa.rspecs.rspec import RSpec
+from sfa.rspecs.version_manager import VersionManager
 
 class Aggregate:
 
@@ -78,7 +79,14 @@ class Aggregate:
 
     def get_rspec(self, slice_xrn=None, version = None):
         self.prepare()
-        rspec = RSpec(version=version, user_options=self.user_options)
+        version_manager = VersionManager()
+        version = version_manager.get_version(version)
+        if not slice_xrn:
+            rspec_version = version_manager._get_version(version.type, version.version, 'ad')
+        else:
+            rspec_version = version_manager._get_version(version.type, version.version, 'manifest')
+               
+        rspec = RSpec(version=rspec_version, user_options=self.user_options)
         # get slice details if specified
         slice = None
         if slice_xrn:
-- 
2.47.0