drop support for API v1, hard-wired v2
Thierry Parmentelat [Tue, 13 Dec 2011 16:16:32 +0000 (17:16 +0100)]
as per v2, GetVersion now accepts an optional option (which is ignored)

config/default_config.xml
sfa/client/sfaserverproxy.py
sfa/managers/aggregate_manager.py
sfa/managers/aggregate_manager_eucalyptus.py
sfa/managers/component_manager_pl.py
sfa/managers/registry_manager.py
sfa/managers/slice_manager.py
sfa/methods/GetVersion.py
sfa/server/sfaapi.py

index 9a0a887..e074865 100644 (file)
@@ -164,12 +164,6 @@ Thierry Parmentelat
          <description>The port where the aggregate is to be found.</description>
        </variable>
 
-        <variable id="api_version" type="int">
-          <name>Aggregate Manager API Version</name>
-          <value>1</value>
-          <description>The Aggregate API version</description>
-        </variable>
-
       </variablelist>
 
     </category>
index 141d57c..b348126 100644 (file)
@@ -82,6 +82,7 @@ class XMLRPCTransport(xmlrpclib.Transport):
 class XMLRPCServerProxy(xmlrpclib.ServerProxy):
     def __init__(self, url, transport, allow_none=True, verbose=False):
         # remember url for GetVersion
+        # xxx not sure this is still needed as SfaServerProxy has this too
         self.url=url
         xmlrpclib.ServerProxy.__init__(self, url, transport, allow_none=allow_none, verbose=verbose)
 
index 2a27b6c..995e694 100644 (file)
@@ -30,13 +30,13 @@ class AggregateManager:
     
     # essentially a union of the core version, the generic version (this code) and
     # whatever the driver needs to expose
-    def GetVersion(self, api):
+    def GetVersion(self, api, options):
     
         xrn=Xrn(api.hrn)
         version = version_core()
         version_generic = {'interface':'aggregate',
                            'sfa': 2,
-                           'geni_api': api.config.SFA_AGGREGATE_API_VERSION,
+                           'geni_api': 2,
                            'hrn':xrn.get_hrn(),
                            'urn':xrn.get_urn(),
                            }
index 588f090..aa803ac 100644 (file)
@@ -682,7 +682,7 @@ class AggregateManagerEucalyptus:
             f.write("%s %s %s\n" % (instId, ipaddr, hrn))
         f.close()
     
-    def GetVersion(api):
+    def GetVersion(api, options):
 
         version_manager = VersionManager()
         ad_rspec_versions = []
@@ -695,7 +695,7 @@ class AggregateManagerEucalyptus:
         xrn=Xrn(api.hrn)
         version_more = {'interface':'aggregate',
                         'sfa': 1,
-                        'geni_api': api.config.SFA_AGGREGATE_API_VERSION,
+                        'geni_api': '2',
                         'testbed':'myplc',
                         'hrn':xrn.get_hrn(),
                         'geni_request_rspec_versions': request_rspec_versions,
index 6992971..9630479 100644 (file)
@@ -5,7 +5,7 @@ from sfa.util.plxrn import PlXrn
 from sfa.trust.sfaticket import SfaTicket
 from sfa.util.version import version_core
 
-def GetVersion(api):
+def GetVersion(api, options):
     return version_core({'interface':'component',
                          'testbed':'myplc'})
 
index 98c537b..0659431 100644 (file)
@@ -26,7 +26,7 @@ class RegistryManager:
     def __init__ (self): pass
 
     # The GENI GetVersion call
-    def GetVersion(self, api):
+    def GetVersion(self, api, options):
         peers = dict ( [ (hrn,interface.get_url()) for (hrn,interface) in api.registries.iteritems() 
                        if hrn != api.hrn])
         xrn=Xrn(api.hrn)
index b82ac66..ee082c7 100644 (file)
@@ -25,7 +25,7 @@ class SliceManager:
         # self.caching=False
         self.caching=True
         
-    def GetVersion(self, api):
+    def GetVersion(self, api, options):
         # peers explicitly in aggregates.xml
         peers =dict ([ (peername,interface.get_url()) for (peername,interface) in api.aggregates.iteritems()
                        if peername != api.hrn])
@@ -40,7 +40,7 @@ class SliceManager:
         xrn=Xrn(api.hrn, 'authority+sa')
         version_more = {'interface':'slicemgr',
                         'sfa': 2,
-                        'geni_api': api.config.SFA_AGGREGATE_API_VERSION,
+                        'geni_api': 2,
                         'hrn' : xrn.get_hrn(),
                         'urn' : xrn.get_urn(),
                         'peers': peers,
index e8e4eea..cb682e4 100644 (file)
@@ -9,9 +9,12 @@ class GetVersion(Method):
     @return version
     """
     interfaces = ['registry','aggregate', 'slicemgr', 'component']
-    accepts = []
+    accepts = [
+        Parameter(dict, "Options")
+        ]
     returns = Parameter(dict, "Version information")
 
-    def call(self):
+    # API v2 specifies options is optional, so..
+    def call(self, options={}):
         self.api.logger.info("interface: %s\tmethod-name: %s" % (self.api.interface, self.name))
-        return self.api.manager.GetVersion(self.api)
+        return self.api.manager.GetVersion(self.api, options)
index 79a5540..c18452b 100644 (file)
@@ -249,9 +249,8 @@ class SfaApi (XmlrpcApi):
         Converts the specified result into a standard GENI compliant 
         response  
         """
+        # as of dec 13 2011 we only support API v2
         if self.interface.lower() in ['aggregate', 'slicemgr']: 
-            if hasattr(self.config, 'SFA_AGGREGATE_API_VERSION') and \
-              self.config.SFA_AGGREGATE_API_VERSION == 2:
-                result = self.prepare_response_v2_am(result)
+            result = self.prepare_response_v2_am(result)
         return XmlrpcApi.prepare_response(self, result, method)