fix rspec version number in SM
[sfa.git] / sfa / managers / slice_manager.py
index 75dbec4..daf3dc7 100644 (file)
@@ -47,7 +47,7 @@ class SliceManager:
                 ad_rspec_versions.append(rspec_version.to_dict())
             if rspec_version.content_type in ['*', 'request']:
                 request_rspec_versions.append(rspec_version.to_dict())
-        xrn=Xrn(api.hrn, 'authority+sa')
+        xrn=Xrn(api.hrn, type='authority+sm')
         version_more = {
             'interface':'slicemgr',
             'sfa': 2,
@@ -116,7 +116,7 @@ class SliceManager:
                     forward_options['rspec_version'] = version_manager.get_version('SFA 1').to_dict()
                 else:
                     forward_options['rspec_version'] = version_manager.get_version('ProtoGENI 2').to_dict()
-                    forward_options['geni_rspec_version'] = {'type': 'geni', 'version': '3.0'}
+                    forward_options['geni_rspec_version'] = {'type': 'geni', 'version': '3'}
                 rspec = server.ListResources(credential, forward_options)
                 return {"aggregate": aggregate, "rspec": rspec, "elapsed": time.time()-tStart, "status": "success"}
             except Exception, e:
@@ -365,7 +365,14 @@ class SliceManager:
     
         # mmh, it is expected that all results carry the same urn
         overall['geni_urn'] = results[0]['geni_urn']
-        overall['pl_login'] = results[0]['pl_login']
+        overall['pl_login'] = None
+        for result in results:
+            if result.get('pl_login'):
+                overall['pl_login'] = result['pl_login']
+                break
+            elif isinstance(result.get('value'), dict) and result['value'].get('pl_login'):
+                overall['pl_login'] = result['value']['pl_login']
+                break
         # append all geni_resources
         overall['geni_resources'] = \
             reduce (lambda x,y: x+y, [ result['geni_resources'] for result in results] , [])