From: Tony Mack Date: Wed, 8 Aug 2012 14:37:44 +0000 (-0400) Subject: refactored GetVersion() X-Git-Tag: sfa-3.0-0~148 X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=commitdiff_plain;h=4c97a7b3bb320e9ebb82e90d3da04379c73f1f5b refactored GetVersion() --- diff --git a/sfa/managers/aggregate_manager.py b/sfa/managers/aggregate_manager.py index 3651b159..ed1086bb 100644 --- a/sfa/managers/aggregate_manager.py +++ b/sfa/managers/aggregate_manager.py @@ -1,3 +1,5 @@ +import soctet +from sfa.rspecs.version_manager import VersionManager from sfa.util.version import version_core from sfa.util.xrn import Xrn from sfa.util.callids import Callids @@ -8,17 +10,40 @@ class AggregateManager: # essentially a union of the core version, the generic version (this code) and # whatever the driver needs to expose + + def _rspec_versions(self): + 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()) + return { + 'testbed':self.testbed_name(), + 'geni_request_rspec_versions': request_rspec_versions, + 'geni_ad_rspec_versions': ad_rspec_versions, + } + def GetVersion(self, api, options): xrn=Xrn(api.hrn) version = version_core() version_generic = { + 'testbed': self.driver.testbed_name(), 'interface':'aggregate', - 'sfa': 2, - 'geni_api': 2, - 'geni_api_versions': {'2': 'http://%s:%s' % (api.config.SFA_AGGREGATE_HOST, api.config.SFA_AGGREGATE_PORT)}, 'hrn':xrn.get_hrn(), 'urn':xrn.get_urn(), - } + 'geni_api': 3, + 'geni_api_versions': {'3': 'http://%s:%s' % (socket.gethostname(), api.config.sfa_aggregate_port)}, + 'geni_single_allocation': 0, # 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', + 'geni_credential_types': [{ + 'geni_type': 'geni_sfa', + 'geni_version': 3, + }], + } version.update(version_generic) testbed_version = self.driver.aggregate_version() version.update(testbed_version) diff --git a/sfa/openstack/nova_driver.py b/sfa/openstack/nova_driver.py index 2f2fc2a9..2ac2024b 100644 --- a/sfa/openstack/nova_driver.py +++ b/sfa/openstack/nova_driver.py @@ -314,24 +314,8 @@ class NovaDriver(Driver): def testbed_name (self): return "openstack" - # 'geni_request_rspec_versions' and 'geni_ad_rspec_versions' are mandatory def aggregate_version (self): - 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()) - return { - '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', - } + return {} def list_slices (self, creds, options): # look in cache first diff --git a/sfa/planetlab/pldriver.py b/sfa/planetlab/pldriver.py index 88126810..6d5bc526 100644 --- a/sfa/planetlab/pldriver.py +++ b/sfa/planetlab/pldriver.py @@ -563,25 +563,8 @@ class PlDriver (Driver): def testbed_name (self): return "myplc" - # 'geni_request_rspec_versions' and 'geni_ad_rspec_versions' are mandatory def aggregate_version (self): - 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()) - return { - '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 subse -t 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', - } + return {} def list_slices (self, creds, options): # look in cache first diff --git a/sfa/util/version.py.in b/sfa/util/version.py.in index 794d428e..46b31d39 100644 --- a/sfa/util/version.py.in +++ b/sfa/util/version.py.in @@ -2,17 +2,11 @@ version_tag="@VERSIONTAG@" scm_url="@SCMURL@" import socket - -from sfa.util.config import Config def version_core (more={}): - config = Config() - hostname = socket.gethostname() core = { 'code_tag' : version_tag, 'code_url' : scm_url, - 'hostname' : hostname, - 'geni_api': 3, - 'geni_api_versions': {'3': "%s:%s" % (hostname, config.sfa_aggregate_port)}, + 'hostname' : socket.gethostname(), } core.update(more) return core