Provision requires the geni_rspec_version option
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Wed, 5 Dec 2012 19:24:48 +0000 (14:24 -0500)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Wed, 5 Dec 2012 19:24:48 +0000 (14:24 -0500)
sfa/client/sfi.py
sfa/managers/aggregate_manager.py
sfa/openstack/nova_driver.py

index 16a4878..08737c3 100644 (file)
@@ -1288,6 +1288,11 @@ or with an slice hrn, shows currently provisioned resources
 
         api_options = {}
         api_options ['call_id'] = unique_call_id()
+
+        # set the requtested rspec version
+        version_manager = VersionManager()
+        rspec_version = version_manager._get_version('geni', '3.0').to_dict()
+        api_options['geni_rspec_version'] = rspec_version 
         result = server.Provision([slice_urn], creds, api_options)
         value = ReturnValue.get_value(result)
         if self.options.raw:
index 9960eec..c0a8b65 100644 (file)
@@ -125,10 +125,11 @@ class AggregateManager:
         # make sure geni_rspec_version is specified in options
         if 'geni_rspec_version' not in options:
             msg = 'geni_rspec_version is required and must be set in options struct'
-            raise SfaInvalidArgument('geni_rspec_version', msg
+            raise SfaInvalidArgument(msg, 'geni_rspec_version')
         # make sure we support the requested rspec version
         version_manager = VersionManager()
-        if not version_manager.get(options['geni_rspec_version']):
+        rspec_version = version_manager.get_version(options['geni_rspec_version']) 
+        if not rspec_version:
             raise InvalidRSpecVersion(options['geni_rspec_version'])
                        
         return self.driver.provision(xrns, options)
index 369212d..c3c9f54 100644 (file)
@@ -374,8 +374,9 @@ class NovaDriver(Driver):
             sliver_hrn = "%s.%s" % (self.driver.hrn, instance.id)
             sliver_ids.append(Xrn(sliver_hrn, type='sliver').urn)
         SliverAllocation.set_allocations(sliver_ids, 'geni_provisioned') 
-            
-        return self.describe(urns, options=options) 
+        version_manager = VersionManager()
+        rspec_version = version_manager.get_version(options['geni_rspec_version'])
+        return self.describe(urns, rspec_version, options=options) 
 
     def delete (self, urns, options={}):
         # collect sliver ids so we can update sliver allocation states after