Cleanup continued. Commented out update_membership functions.
[sfa.git] / sfa / managers / aggregate_manager_slab.py
index 8b1d6d4..c9ebc06 100644 (file)
@@ -16,38 +16,52 @@ from sfa.rspecs.version_manager import VersionManager
 from sfa.rspecs.rspec import RSpec
 
 from sfa.server.sfaapi import SfaApi
-from sfa.senslab.OARrspec import OARrspec
+from sfa.senslab.slabaggregate import SlabAggregate
 import sfa.plc.peers as peers
-#from sfa.plc.aggregate import Aggregate
-from sfa.senslab.slices import Slices
 
-class AggregateManager:
+from sfa.senslab.slices import SlabSlices
 
-    def __init__ (self):
-        # xxx Thierry : caching at the aggregate level sounds wrong...
-        #self.caching=True
-        self.caching=False
+class AggregateManager:
+    def __init__ (self, config): pass
+    # essentially a union of the core version, the generic version (this code) and
+    # whatever the driver needs to expose
     
-    def GetVersion(self, api, options={}):
     
-        version_manager = VersionManager()
-        ad_rspec_versions = []
-        request_rspec_versions = []
-        for rspec_version in version_manager.versions:
-            if rspec_version.content_type in ['*', 'ad']:
-                ad_rspec_versions.append(rspec_version.to_dict())
-            if rspec_version.content_type in ['*', 'request']:
-                request_rspec_versions.append(rspec_version.to_dict()) 
+    def GetVersion(self, api, options):
+
         xrn=Xrn(api.hrn)
-        version_more = {'interface':'aggregate',
-                        'sfa': 2,
-                        'geni_api': api.config.SFA_AGGREGATE_API_VERSION,
-                        'testbed':'myplc',
-                        'hrn':xrn.get_hrn(),
-                        'geni_request_rspec_versions': request_rspec_versions,
-                        'geni_ad_rspec_versions': ad_rspec_versions,
-                        }
-        return version_core(version_more)
+        version = version_core()
+        version_generic = {'interface':'aggregate',
+                            'sfa': 2,
+                            'geni_api': 2,
+                            'hrn':xrn.get_hrn(),
+                            'urn':xrn.get_urn(),
+                            }
+        version.update(version_generic)
+        testbed_version = self.driver.aggregate_version()
+        version.update(testbed_version)
+        return version
+     
+    #def GetVersion(self, api, options={}):
+    
+        #version_manager = VersionManager()
+        #ad_rspec_versions = []
+        #request_rspec_versions = []
+        #for rspec_version in version_manager.versions:
+            #if rspec_version.content_type in ['*', 'ad']:
+                #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)
+        #version_more = {'interface':'aggregate',
+                        #'sfa': 2,
+                        #'geni_api': api.config.SFA_AGGREGATE_API_VERSION,
+                        #'testbed':'myplc',
+                        #'hrn':xrn.get_hrn(),
+                        #'geni_request_rspec_versions': request_rspec_versions,
+                        #'geni_ad_rspec_versions': ad_rspec_versions,
+                        #}
+        #return version_core(version_more)
     
     def _get_registry_objects(self, slice_xrn, creds, users):
         """
@@ -166,9 +180,9 @@ class AggregateManager:
         """
         call_id = options.get('call_id')
         if Callids().already_handled(call_id): return ""
-        aggregate = OARrspec(api)
+        aggregate = SlabAggregate(api)
         #aggregate = Aggregate(api)
-        slices = Slices(api)
+        slices = SlabSlices(api)
         (hrn, _) = urn_to_hrn(slice_xrn)
         peer = slices.get_peer(hrn)
         sfa_peer = slices.get_sfa_peer(hrn)
@@ -283,10 +297,10 @@ class AggregateManager:
         call_id = options.get('call_id')
         if Callids().already_handled(call_id): return []
         # look in cache first
-        if self.caching and api.cache:
-            slices = api.cache.get('slices')
-            if slices:
-                return slices
+        #if self.caching and api.cache:
+            #slices = api.cache.get('slices')
+            #if slices:
+                #return slices
     
         # get data from db 
         slices = api.driver.GetSlices({'peer_id': None}, ['name'])
@@ -294,8 +308,8 @@ class AggregateManager:
         slice_urns = [hrn_to_urn(slice_hrn, 'slice') for slice_hrn in slice_hrns]
     
         # cache the result
-        if self.caching and api.cache:
-            api.cache.add('slices', slice_urns) 
+        #if self.caching and api.cache:
+            #api.cache.add('slices', slice_urns) 
     
         return slice_urns
         
@@ -317,21 +331,21 @@ class AggregateManager:
             version_string = version_string + "_"+options.get('info', 'default')
     
         # look in cache first
-        if self.caching and api.cache and not xrn and cached:
-            rspec = api.cache.get(version_string)
-            if rspec:
-                api.logger.info("aggregate.ListResources: returning cached value for hrn %s"%hrn)
-                return rspec 
+        #if self.cache and api.cache and not xrn and cached:
+            #rspec = api.cache.get(version_string)
+            #if rspec:
+                #api.logger.info("aggregate.ListResources: returning cached value for hrn %s"%hrn)
+                #return rspec 
     
         #panos: passing user-defined options
         #print "manager options = ",options
-        aggregate = OARrspec(api)
+        aggregate = SlabAggregate(api)
         #aggregate = Aggregate(api)
         rspec =  aggregate.get_rspec(slice_xrn=xrn, version=rspec_version, options=options)
     
         # cache the result
-        if self.caching and api.cache and not xrn:
-            api.cache.add(version_string, rspec)
+        #if self.caching and api.cache and not xrn:
+            #api.cache.add(version_string, rspec)
     
         return rspec
     
@@ -339,7 +353,7 @@ class AggregateManager:
     def GetTicket(self, api, xrn, creds, rspec, users, options={}):
     
         (slice_hrn, _) = urn_to_hrn(xrn)
-        slices = Slices(api)
+        slices = SlabSlices(api)
         peer = slices.get_peer(slice_hrn)
         sfa_peer = slices.get_sfa_peer(slice_hrn)