added geni_single_allocation, geni_allocate and geni_best_effort to GetVersion output
[sfa.git] / sfa / openstack / nova_driver.py
index ee25491..b023ba4 100644 (file)
@@ -328,6 +328,9 @@ class NovaDriver(Driver):
             'testbed':self.testbed_name(),
             'geni_request_rspec_versions': request_rspec_versions,
             'geni_ad_rspec_versions': ad_rspec_versions,
+            'geni_single_allocation': False, # Accept operations that act on as subset of slivers in a given state
+            'geni_allocate': 'geni_many', # Multiple slivers can exist and be incrementally added, including those which connect or overlap in some way.
+            'geni_best_effort': 'true', 
             }
 
     def list_slices (self, creds, options):
@@ -339,15 +342,18 @@ class NovaDriver(Driver):
                 return slices
     
         # get data from db
-        projs = self.shell.auth_manager.get_projects()
-        slice_urns = [OSXrn(proj.name, 'slice').urn for proj in projs] 
-    
+        instance_urns = []
+        instances = self.shell.nova_manager.servers.findall()
+        for instance in instances:
+            if instance.name not in instance_urns:
+                instance_urns.append(OSXrn(instance.name, type='slice').urn)
+
         # cache the result
         if self.cache:
             logger.debug ("OpenStackDriver.list_slices stores value in cache")
-            self.cache.add('slices', slice_urns) 
+            self.cache.add('slices', instance_urns) 
     
-        return slice_urns
+        return instance_urns
         
     # first 2 args are None in case of resource discovery
     def list_resources (self, slice_urn, slice_hrn, creds, options):