diff --git a/SHADE-MERGE-TODO.rst b/SHADE-MERGE-TODO.rst index 15c266d4c..e34d87810 100644 --- a/SHADE-MERGE-TODO.rst +++ b/SHADE-MERGE-TODO.rst @@ -34,7 +34,7 @@ already. For reference, those are: servers = conn.list_servers() # High-level resource interface from shade servers = conn.compute.servers() # SDK Service/Object Interface response = conn.compute.get('/servers') # REST passthrough - +* Removed ServiceFilter and the various Service objects in favor of discovery. Next steps ========== @@ -44,8 +44,6 @@ Next steps mean anything to people. * Migrate unit tests to requests-mock instead of mocking python calls to session. -* Investigate removing ServiceFilter and the various Service objects if an - acceptable plan can be found for using discovery. * Replace _prepare_request with requests.Session.prepare_request. shade integration diff --git a/doc/source/contributor/create/examples/resource/fake.py b/doc/source/contributor/create/examples/resource/fake.py index d73a4f07b..b02175c12 100644 --- a/doc/source/contributor/create/examples/resource/fake.py +++ b/doc/source/contributor/create/examples/resource/fake.py @@ -1,6 +1,5 @@ # Apache 2 header omitted for brevity -from openstack.fake import fake_service from openstack import resource @@ -8,7 +7,6 @@ class Fake(resource.Resource): resource_key = "resource" resources_key = "resources" base_path = "/fake" - service = fake_service.FakeService() allow_create = True allow_fetch = True diff --git a/doc/source/contributor/create/examples/resource/fake_service.py b/doc/source/contributor/create/examples/resource/fake_service.py index 9524b967d..34000b986 100644 --- a/doc/source/contributor/create/examples/resource/fake_service.py +++ b/doc/source/contributor/create/examples/resource/fake_service.py @@ -1,13 +1,12 @@ # Apache 2 header omitted for brevity -from openstack import service_filter +from openstack import service_description +from openstack.fake.v2 import _proxy as _proxy_v2 -class FakeService(service_filter.ServiceFilter): +class FakeService(service_description.ServiceDescription): """The fake service.""" - valid_versions = [service_filter.ValidVersion('v2')] - - def __init__(self, version=None): - """Create a fake service.""" - super(FakeService, self).__init__(service_type='fake', version=version) + supported_versions = { + '2': _proxy_v2.Proxy, + } diff --git a/doc/source/user/index.rst b/doc/source/user/index.rst index e88e7e298..d0eeb6b65 100644 --- a/doc/source/user/index.rst +++ b/doc/source/user/index.rst @@ -148,7 +148,7 @@ can be customized. :maxdepth: 1 resource - service_filter + service_description utils Presentations diff --git a/doc/source/user/service_description.rst b/doc/source/user/service_description.rst new file mode 100644 index 000000000..3eeeb4a7a --- /dev/null +++ b/doc/source/user/service_description.rst @@ -0,0 +1,10 @@ +ServiceDescription +================== +.. automodule:: openstack.service_description + + +ServiceDescription object +------------------------- + +.. autoclass:: openstack.service_description.ServiceDescription + :members: diff --git a/doc/source/user/service_filter.rst b/doc/source/user/service_filter.rst deleted file mode 100644 index a58177f25..000000000 --- a/doc/source/user/service_filter.rst +++ /dev/null @@ -1,10 +0,0 @@ -ServiceFilter -============= -.. automodule:: openstack.service_filter - - -ServiceFilter object --------------------- - -.. autoclass:: openstack.service_filter.ServiceFilter - :members: diff --git a/lower-constraints.txt b/lower-constraints.txt index 2842cdfd0..59dee61ee 100644 --- a/lower-constraints.txt +++ b/lower-constraints.txt @@ -14,7 +14,7 @@ jmespath==0.9.0 jsonpatch==1.16 jsonpointer==1.13 jsonschema==2.6.0 -keystoneauth1==3.8.0 +keystoneauth1==3.11.0 linecache2==1.0.0 mock==2.0.0 mox3==0.20.0 diff --git a/openstack/_meta/connection.py b/openstack/_meta/connection.py index 6511e9683..61db44b0c 100644 --- a/openstack/_meta/connection.py +++ b/openstack/_meta/connection.py @@ -18,7 +18,6 @@ import warnings import os_service_types from openstack import _log -from openstack import proxy from openstack import service_description _logger = _log.setup_logging('openstack') @@ -43,28 +42,28 @@ class ConnectionMeta(type): # from openstacksdk. The credentials API calls are all calls # on identity endpoints. continue - desc_class = service_description.ServiceDescription - service_filter_class = _find_service_filter_class(service_type) + desc_class = _find_service_description_class(service_type) descriptor_args = {'service_type': service_type} - if service_filter_class: - desc_class = service_description.OpenStackServiceDescription - descriptor_args['service_filter_class'] = service_filter_class - class_names = service_filter_class._get_proxy_class_names() - if len(class_names) == 1: - doc = _DOC_TEMPLATE.format( - class_name="{service_type} Proxy <{name}>".format( - service_type=service_type, name=class_names[0]), - **service) - else: - class_doc_strings = "\n".join([ - ":class:`{class_name}`".format(class_name=class_name) - for class_name in class_names]) - doc = _PROXY_TEMPLATE.format( - class_doc_strings=class_doc_strings, **service) - else: - descriptor_args['proxy_class'] = proxy.Proxy + + if not desc_class.supported_versions: doc = _DOC_TEMPLATE.format( - class_name='~openstack.proxy.Proxy', **service) + class_name="{service_type} Proxy".format( + service_type=service_type), + **service) + elif len(desc_class.supported_versions) == 1: + supported_version = list( + desc_class.supported_versions.keys())[0] + doc = _DOC_TEMPLATE.format( + class_name="{service_type} Proxy <{name}>".format( + service_type=service_type, name=supported_version), + **service) + else: + class_doc_strings = "\n".join([ + ":class:`{class_name}`".format( + class_name=proxy_class.__name__) + for proxy_class in desc_class.supported_versions.values()]) + doc = _PROXY_TEMPLATE.format( + class_doc_strings=class_doc_strings, **service) descriptor = desc_class(**descriptor_args) descriptor.__doc__ = doc st = service_type.replace('-', '_') @@ -103,7 +102,7 @@ def _get_aliases(service_type, aliases=None): return all_types -def _find_service_filter_class(service_type): +def _find_service_description_class(service_type): package_name = 'openstack.{service_type}'.format( service_type=service_type).replace('-', '_') module_name = service_type.replace('-', '_') + '_service' @@ -111,17 +110,17 @@ def _find_service_filter_class(service_type): [part.capitalize() for part in module_name.split('_')]) try: import_name = '.'.join([package_name, module_name]) - service_filter_module = importlib.import_module(import_name) + service_description_module = importlib.import_module(import_name) except ImportError as e: # ImportWarning is ignored by default. This warning is here # as an opt-in for people trying to figure out why something # didn't work. warnings.warn( - "Could not import {service_type} service filter: {e}".format( + "Could not import {service_type} service description: {e}".format( service_type=service_type, e=str(e)), ImportWarning) - return None + return service_description.ServiceDescription # There are no cases in which we should have a module but not the class # inside it. - service_filter_class = getattr(service_filter_module, class_name) - return service_filter_class + service_description_class = getattr(service_description_module, class_name) + return service_description_class diff --git a/openstack/baremetal/baremetal_service.py b/openstack/baremetal/baremetal_service.py index 9853be081..0b0cb818a 100644 --- a/openstack/baremetal/baremetal_service.py +++ b/openstack/baremetal/baremetal_service.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack import service_description +from openstack.baremetal.v1 import _proxy -class BaremetalService(service_filter.ServiceFilter): +class BaremetalService(service_description.ServiceDescription): """The bare metal service.""" - valid_versions = [service_filter.ValidVersion('v1')] - - def __init__(self, version=None): - """Create a bare metal service.""" - super(BaremetalService, self).__init__(service_type='baremetal', - version=version) + supported_versions = { + '1': _proxy.Proxy, + } diff --git a/openstack/baremetal/v1/chassis.py b/openstack/baremetal/v1/chassis.py index ffe22ebc6..eb9842f5b 100644 --- a/openstack/baremetal/v1/chassis.py +++ b/openstack/baremetal/v1/chassis.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.baremetal import baremetal_service from openstack import resource @@ -18,7 +17,6 @@ class Chassis(resource.Resource): resources_key = 'chassis' base_path = '/chassis' - service = baremetal_service.BaremetalService() # capabilities allow_create = True diff --git a/openstack/baremetal/v1/driver.py b/openstack/baremetal/v1/driver.py index 63803127a..00a31954d 100644 --- a/openstack/baremetal/v1/driver.py +++ b/openstack/baremetal/v1/driver.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.baremetal import baremetal_service from openstack import resource @@ -18,7 +17,6 @@ class Driver(resource.Resource): resources_key = 'drivers' base_path = '/drivers' - service = baremetal_service.BaremetalService() # capabilities allow_create = False diff --git a/openstack/baremetal/v1/node.py b/openstack/baremetal/v1/node.py index 69779fae5..913301cc6 100644 --- a/openstack/baremetal/v1/node.py +++ b/openstack/baremetal/v1/node.py @@ -11,7 +11,6 @@ # under the License. from openstack import _log -from openstack.baremetal import baremetal_service from openstack.baremetal.v1 import _common from openstack import exceptions from openstack import resource @@ -39,7 +38,6 @@ class Node(resource.Resource): resources_key = 'nodes' base_path = '/nodes' - service = baremetal_service.BaremetalService() # capabilities allow_create = True diff --git a/openstack/baremetal/v1/port.py b/openstack/baremetal/v1/port.py index 871b97a2a..c05f1f7a5 100644 --- a/openstack/baremetal/v1/port.py +++ b/openstack/baremetal/v1/port.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.baremetal import baremetal_service from openstack import resource @@ -18,7 +17,6 @@ class Port(resource.Resource): resources_key = 'ports' base_path = '/ports' - service = baremetal_service.BaremetalService() # capabilities allow_create = True diff --git a/openstack/baremetal/v1/port_group.py b/openstack/baremetal/v1/port_group.py index dbee1d93f..6e587fe2d 100644 --- a/openstack/baremetal/v1/port_group.py +++ b/openstack/baremetal/v1/port_group.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.baremetal import baremetal_service from openstack import resource @@ -18,7 +17,6 @@ class PortGroup(resource.Resource): resources_key = 'portgroups' base_path = '/portgroups' - service = baremetal_service.BaremetalService() # capabilities allow_create = True diff --git a/openstack/baremetal/version.py b/openstack/baremetal/version.py index 1613fe43a..9311893e5 100644 --- a/openstack/baremetal/version.py +++ b/openstack/baremetal/version.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.baremetal import baremetal_service from openstack import resource @@ -18,9 +17,6 @@ class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = baremetal_service.BaremetalService( - version=baremetal_service.BaremetalService.UNVERSIONED - ) # Capabilities allow_list = True diff --git a/openstack/block_storage/block_storage_service.py b/openstack/block_storage/block_storage_service.py index 7a8b99913..a4906298a 100644 --- a/openstack/block_storage/block_storage_service.py +++ b/openstack/block_storage/block_storage_service.py @@ -10,16 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.block_storage.v2 import _proxy +from openstack import service_description -class BlockStorageService(service_filter.ServiceFilter): +class BlockStorageService(service_description.ServiceDescription): """The block storage service.""" - valid_versions = [service_filter.ValidVersion('v2')] - - def __init__(self, version=None): - """Create a block storage service.""" - super(BlockStorageService, self).__init__( - service_type='block-storage', - version=version, requires_project_id=True) + supported_versions = { + '2': _proxy.Proxy, + } diff --git a/openstack/block_storage/v2/snapshot.py b/openstack/block_storage/v2/snapshot.py index 9b5b91f66..d9137934c 100644 --- a/openstack/block_storage/v2/snapshot.py +++ b/openstack/block_storage/v2/snapshot.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.block_storage import block_storage_service from openstack import format from openstack import resource @@ -19,7 +18,6 @@ class Snapshot(resource.Resource): resource_key = "snapshot" resources_key = "snapshots" base_path = "/snapshots" - service = block_storage_service.BlockStorageService() _query_mapping = resource.QueryParameters( 'all_tenants', 'name', 'status', 'volume_id') diff --git a/openstack/block_storage/v2/stats.py b/openstack/block_storage/v2/stats.py index 5a3f6ae3f..dcd2e2945 100644 --- a/openstack/block_storage/v2/stats.py +++ b/openstack/block_storage/v2/stats.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.block_storage import block_storage_service from openstack import resource @@ -18,7 +17,6 @@ class Pools(resource.Resource): resource_key = "pool" resources_key = "pools" base_path = "/scheduler-stats/get_pools?detail=True" - service = block_storage_service.BlockStorageService() # capabilities allow_fetch = False diff --git a/openstack/block_storage/v2/type.py b/openstack/block_storage/v2/type.py index d57d31853..db0726051 100644 --- a/openstack/block_storage/v2/type.py +++ b/openstack/block_storage/v2/type.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.block_storage import block_storage_service from openstack import resource @@ -18,7 +17,6 @@ class Type(resource.Resource): resource_key = "volume_type" resources_key = "volume_types" base_path = "/types" - service = block_storage_service.BlockStorageService() # capabilities allow_fetch = True diff --git a/openstack/block_storage/v2/volume.py b/openstack/block_storage/v2/volume.py index 04a05d963..4402e624f 100644 --- a/openstack/block_storage/v2/volume.py +++ b/openstack/block_storage/v2/volume.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.block_storage import block_storage_service from openstack import format from openstack import resource @@ -19,7 +18,6 @@ class Volume(resource.Resource): resource_key = "volume" resources_key = "volumes" base_path = "/volumes" - service = block_storage_service.BlockStorageService() _query_mapping = resource.QueryParameters( 'all_tenants', 'name', 'status', 'project_id') diff --git a/openstack/clustering/clustering_service.py b/openstack/clustering/clustering_service.py index 0d5e57e4a..5920fe50a 100644 --- a/openstack/clustering/clustering_service.py +++ b/openstack/clustering/clustering_service.py @@ -10,18 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.clustering.v1 import _proxy +from openstack import service_description -class ClusteringService(service_filter.ServiceFilter): +class ClusteringService(service_description.ServiceDescription): """The clustering service.""" - valid_versions = [service_filter.ValidVersion('v1')] - UNVERSIONED = None - - def __init__(self, version=None): - """Create a clustering service.""" - super(ClusteringService, self).__init__( - service_type='clustering', - version=version - ) + supported_versions = { + '1': _proxy.Proxy, + } diff --git a/openstack/clustering/v1/action.py b/openstack/clustering/v1/action.py index 79c5d4edc..2bfdf9de0 100644 --- a/openstack/clustering/v1/action.py +++ b/openstack/clustering/v1/action.py @@ -11,7 +11,6 @@ # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -19,7 +18,6 @@ class Action(resource.Resource): resource_key = 'action' resources_key = 'actions' base_path = '/actions' - service = clustering_service.ClusteringService() # Capabilities allow_list = True diff --git a/openstack/clustering/v1/build_info.py b/openstack/clustering/v1/build_info.py index 705f4065c..a031fac13 100644 --- a/openstack/clustering/v1/build_info.py +++ b/openstack/clustering/v1/build_info.py @@ -10,14 +10,12 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource class BuildInfo(resource.Resource): base_path = '/build-info' resource_key = 'build_info' - service = clustering_service.ClusteringService() # Capabilities allow_fetch = True diff --git a/openstack/clustering/v1/cluster.py b/openstack/clustering/v1/cluster.py index e8ab4c969..26e22cd2f 100644 --- a/openstack/clustering/v1/cluster.py +++ b/openstack/clustering/v1/cluster.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class Cluster(resource.Resource): resource_key = 'cluster' resources_key = 'clusters' base_path = '/clusters' - service = clustering_service.ClusteringService() # capabilities allow_create = True diff --git a/openstack/clustering/v1/cluster_attr.py b/openstack/clustering/v1/cluster_attr.py index 68e1f53f8..1ca1aaf1e 100644 --- a/openstack/clustering/v1/cluster_attr.py +++ b/openstack/clustering/v1/cluster_attr.py @@ -10,14 +10,12 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource class ClusterAttr(resource.Resource): resources_key = 'cluster_attributes' base_path = '/clusters/%(cluster_id)s/attrs/%(path)s' - service = clustering_service.ClusteringService() # capabilities allow_list = True diff --git a/openstack/clustering/v1/cluster_policy.py b/openstack/clustering/v1/cluster_policy.py index 6e430cc5f..f9af351c7 100644 --- a/openstack/clustering/v1/cluster_policy.py +++ b/openstack/clustering/v1/cluster_policy.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -18,7 +17,6 @@ class ClusterPolicy(resource.Resource): resource_key = 'cluster_policy' resources_key = 'cluster_policies' base_path = '/clusters/%(cluster_id)s/policies' - service = clustering_service.ClusteringService() # Capabilities allow_list = True diff --git a/openstack/clustering/v1/event.py b/openstack/clustering/v1/event.py index d187fa69c..cd556257c 100644 --- a/openstack/clustering/v1/event.py +++ b/openstack/clustering/v1/event.py @@ -11,7 +11,6 @@ # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -19,7 +18,6 @@ class Event(resource.Resource): resource_key = 'event' resources_key = 'events' base_path = '/events' - service = clustering_service.ClusteringService() # Capabilities allow_list = True diff --git a/openstack/clustering/v1/node.py b/openstack/clustering/v1/node.py index 655e3a959..cf9fe05e2 100644 --- a/openstack/clustering/v1/node.py +++ b/openstack/clustering/v1/node.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class Node(resource.Resource): resource_key = 'node' resources_key = 'nodes' base_path = '/nodes' - service = clustering_service.ClusteringService() # capabilities allow_create = True diff --git a/openstack/clustering/v1/policy.py b/openstack/clustering/v1/policy.py index be98984f7..f6e8111f5 100644 --- a/openstack/clustering/v1/policy.py +++ b/openstack/clustering/v1/policy.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -18,7 +17,6 @@ class Policy(resource.Resource): resource_key = 'policy' resources_key = 'policies' base_path = '/policies' - service = clustering_service.ClusteringService() # Capabilities allow_list = True diff --git a/openstack/clustering/v1/policy_type.py b/openstack/clustering/v1/policy_type.py index bd2bdd490..96bf477f8 100644 --- a/openstack/clustering/v1/policy_type.py +++ b/openstack/clustering/v1/policy_type.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -18,7 +17,6 @@ class PolicyType(resource.Resource): resource_key = 'policy_type' resources_key = 'policy_types' base_path = '/policy-types' - service = clustering_service.ClusteringService() # Capabilities allow_list = True diff --git a/openstack/clustering/v1/profile.py b/openstack/clustering/v1/profile.py index 77f117dde..595de3946 100644 --- a/openstack/clustering/v1/profile.py +++ b/openstack/clustering/v1/profile.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -18,7 +17,6 @@ class Profile(resource.Resource): resource_key = 'profile' resources_key = 'profiles' base_path = '/profiles' - service = clustering_service.ClusteringService() # capabilities allow_create = True diff --git a/openstack/clustering/v1/profile_type.py b/openstack/clustering/v1/profile_type.py index f2b7ad88f..de6452502 100644 --- a/openstack/clustering/v1/profile_type.py +++ b/openstack/clustering/v1/profile_type.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class ProfileType(resource.Resource): resource_key = 'profile_type' resources_key = 'profile_types' base_path = '/profile-types' - service = clustering_service.ClusteringService() # Capabilities allow_list = True diff --git a/openstack/clustering/v1/receiver.py b/openstack/clustering/v1/receiver.py index d42d7a48d..95faa06c9 100644 --- a/openstack/clustering/v1/receiver.py +++ b/openstack/clustering/v1/receiver.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -18,7 +17,6 @@ class Receiver(resource.Resource): resource_key = 'receiver' resources_key = 'receivers' base_path = '/receivers' - service = clustering_service.ClusteringService() # Capabilities allow_list = True diff --git a/openstack/clustering/v1/service.py b/openstack/clustering/v1/service.py index d9de49687..52f380298 100644 --- a/openstack/clustering/v1/service.py +++ b/openstack/clustering/v1/service.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -18,7 +17,6 @@ class Service(resource.Resource): resource_key = 'service' resources_key = 'services' base_path = '/services' - service = clustering_service.ClusteringService() # Capabilities allow_list = True diff --git a/openstack/clustering/version.py b/openstack/clustering/version.py index 8fc20902b..692230a19 100644 --- a/openstack/clustering/version.py +++ b/openstack/clustering/version.py @@ -11,7 +11,6 @@ # under the License. -from openstack.clustering import clustering_service from openstack import resource @@ -19,9 +18,6 @@ class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = clustering_service.ClusteringService( - version=clustering_service.ClusteringService.UNVERSIONED - ) # capabilities allow_list = True diff --git a/openstack/compute/compute_service.py b/openstack/compute/compute_service.py index 64c8bd9e0..2204f04d4 100644 --- a/openstack/compute/compute_service.py +++ b/openstack/compute/compute_service.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack import service_description +from openstack.compute.v2 import _proxy -class ComputeService(service_filter.ServiceFilter): +class ComputeService(service_description.ServiceDescription): """The compute service.""" - valid_versions = [service_filter.ValidVersion('v2')] - - def __init__(self, version=None): - """Create a compute service.""" - super(ComputeService, self).__init__(service_type='compute', - version=version) + supported_versions = { + '2': _proxy.Proxy + } diff --git a/openstack/compute/v2/availability_zone.py b/openstack/compute/v2/availability_zone.py index 5727d4825..0238dd435 100644 --- a/openstack/compute/v2/availability_zone.py +++ b/openstack/compute/v2/availability_zone.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -18,8 +17,6 @@ class AvailabilityZone(resource.Resource): resources_key = 'availabilityZoneInfo' base_path = '/os-availability-zone' - service = compute_service.ComputeService() - # capabilities allow_list = True diff --git a/openstack/compute/v2/extension.py b/openstack/compute/v2/extension.py index a12f22efb..4b19b0934 100644 --- a/openstack/compute/v2/extension.py +++ b/openstack/compute/v2/extension.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -18,7 +17,6 @@ class Extension(resource.Resource): resource_key = 'extension' resources_key = 'extensions' base_path = '/extensions' - service = compute_service.ComputeService() id_attribute = "alias" # capabilities diff --git a/openstack/compute/v2/flavor.py b/openstack/compute/v2/flavor.py index 14920403a..7128e9d1c 100644 --- a/openstack/compute/v2/flavor.py +++ b/openstack/compute/v2/flavor.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -18,7 +17,6 @@ class Flavor(resource.Resource): resource_key = 'flavor' resources_key = 'flavors' base_path = '/flavors' - service = compute_service.ComputeService() # capabilities allow_create = True diff --git a/openstack/compute/v2/hypervisor.py b/openstack/compute/v2/hypervisor.py index 2f49f5a3c..50d5ae64c 100644 --- a/openstack/compute/v2/hypervisor.py +++ b/openstack/compute/v2/hypervisor.py @@ -11,7 +11,6 @@ # under the License. -from openstack.compute import compute_service from openstack import resource @@ -20,8 +19,6 @@ class Hypervisor(resource.Resource): resources_key = 'hypervisors' base_path = '/os-hypervisors' - service = compute_service.ComputeService() - # capabilities allow_fetch = True allow_list = True diff --git a/openstack/compute/v2/image.py b/openstack/compute/v2/image.py index 44c037a68..ed6a1682b 100644 --- a/openstack/compute/v2/image.py +++ b/openstack/compute/v2/image.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack.compute.v2 import metadata from openstack import resource @@ -19,7 +18,6 @@ class Image(resource.Resource, metadata.MetadataMixin): resource_key = 'image' resources_key = 'images' base_path = '/images' - service = compute_service.ComputeService() # capabilities allow_fetch = True diff --git a/openstack/compute/v2/keypair.py b/openstack/compute/v2/keypair.py index a1fb16e16..51109632c 100644 --- a/openstack/compute/v2/keypair.py +++ b/openstack/compute/v2/keypair.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -18,7 +17,6 @@ class Keypair(resource.Resource): resource_key = 'keypair' resources_key = 'keypairs' base_path = '/os-keypairs' - service = compute_service.ComputeService() # capabilities allow_create = True diff --git a/openstack/compute/v2/limits.py b/openstack/compute/v2/limits.py index 1dc92bb15..b08b29219 100644 --- a/openstack/compute/v2/limits.py +++ b/openstack/compute/v2/limits.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -71,7 +70,6 @@ class RateLimit(resource.Resource): class Limits(resource.Resource): base_path = "/limits" resource_key = "limits" - service = compute_service.ComputeService() allow_fetch = True diff --git a/openstack/compute/v2/server.py b/openstack/compute/v2/server.py index f1b14771f..17b155853 100644 --- a/openstack/compute/v2/server.py +++ b/openstack/compute/v2/server.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack.compute.v2 import metadata from openstack import resource from openstack import utils @@ -20,7 +19,6 @@ class Server(resource.Resource, metadata.MetadataMixin): resource_key = 'server' resources_key = 'servers' base_path = '/servers' - service = compute_service.ComputeService() # capabilities allow_create = True @@ -189,7 +187,7 @@ class Server(resource.Resource, metadata.MetadataMixin): def get_password(self, session): """Get the encrypted administrator password.""" url = utils.urljoin(Server.base_path, self.id, 'os-server-password') - return session.get(url, endpoint_filter=self.service) + return session.get(url) def reboot(self, session, reboot_type): """Reboot server where reboot_type might be 'SOFT' or 'HARD'.""" diff --git a/openstack/compute/v2/server_group.py b/openstack/compute/v2/server_group.py index 18a211358..4e3e4a4ba 100644 --- a/openstack/compute/v2/server_group.py +++ b/openstack/compute/v2/server_group.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -18,7 +17,6 @@ class ServerGroup(resource.Resource): resource_key = 'server_group' resources_key = 'server_groups' base_path = '/os-server-groups' - service = compute_service.ComputeService() _query_mapping = resource.QueryParameters("all_projects") diff --git a/openstack/compute/v2/server_interface.py b/openstack/compute/v2/server_interface.py index 0a2750fc2..f12213c54 100644 --- a/openstack/compute/v2/server_interface.py +++ b/openstack/compute/v2/server_interface.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -18,7 +17,6 @@ class ServerInterface(resource.Resource): resource_key = 'interfaceAttachment' resources_key = 'interfaceAttachments' base_path = '/servers/%(server_id)s/os-interface' - service = compute_service.ComputeService() # capabilities allow_create = True diff --git a/openstack/compute/v2/server_ip.py b/openstack/compute/v2/server_ip.py index 4c797a68a..bc868fb6c 100644 --- a/openstack/compute/v2/server_ip.py +++ b/openstack/compute/v2/server_ip.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource from openstack import utils @@ -18,7 +17,6 @@ from openstack import utils class ServerIP(resource.Resource): resources_key = 'addresses' base_path = '/servers/%(server_id)s/ips' - service = compute_service.ComputeService() # capabilities allow_list = True diff --git a/openstack/compute/v2/service.py b/openstack/compute/v2/service.py index 78d0735c6..f13cac1c4 100644 --- a/openstack/compute/v2/service.py +++ b/openstack/compute/v2/service.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource from openstack import utils @@ -20,8 +19,6 @@ class Service(resource.Resource): resources_key = 'services' base_path = '/os-services' - service = compute_service.ComputeService() - # capabilities allow_list = True allow_commit = True diff --git a/openstack/compute/v2/volume_attachment.py b/openstack/compute/v2/volume_attachment.py index 982ae42b0..750a62a58 100644 --- a/openstack/compute/v2/volume_attachment.py +++ b/openstack/compute/v2/volume_attachment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -18,7 +17,6 @@ class VolumeAttachment(resource.Resource): resource_key = 'volumeAttachment' resources_key = 'volumeAttachments' base_path = '/servers/%(server_id)s/os-volume_attachments' - service = compute_service.ComputeService() # capabilities allow_create = True diff --git a/openstack/compute/version.py b/openstack/compute/version.py index d1230260a..f78d3addd 100644 --- a/openstack/compute/version.py +++ b/openstack/compute/version.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.compute import compute_service from openstack import resource @@ -18,9 +17,6 @@ class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = compute_service.ComputeService( - version=compute_service.ComputeService.UNVERSIONED - ) # capabilities allow_list = True diff --git a/openstack/config/cloud_region.py b/openstack/config/cloud_region.py index 24b9ab789..32902bcf7 100644 --- a/openstack/config/cloud_region.py +++ b/openstack/config/cloud_region.py @@ -252,7 +252,13 @@ class CloudRegion(object): 'interface', service_type, fallback_to_unprefixed=True) def get_api_version(self, service_type): - return self._get_config('api_version', service_type) + version = self._get_config('api_version', service_type) + if version: + try: + float(version) + except ValueError: + return None + return version def get_default_microversion(self, service_type): return self._get_config('default_microversion', service_type) @@ -412,6 +418,20 @@ class CloudRegion(object): return version_request + def get_all_version_data(self, service_type): + # Seriously. Don't think about the existential crisis + # that is the next line. You'll wind up in cthulhu's lair. + service_type = self.get_service_type(service_type) + versions = self.get_session().get_all_version_data( + service_type=service_type, + interface=self.get_interface(service_type), + region_name=self.region_name, + ) + region_versions = versions.get(self.region_name, {}) + interface_versions = region_versions.get( + self.get_interface(service_type), {}) + return interface_versions.get(service_type, []) + def get_session_client( self, service_type, version=None, constructor=adapter.Adapter, **kwargs): @@ -436,8 +456,10 @@ class CloudRegion(object): self.get_status_code_retries(service_type)) endpoint_override = self.get_endpoint(service_type) version = version_request.version - min_api_version = version_request.min_api_version - max_api_version = version_request.max_api_version + min_api_version = ( + kwargs.pop('min_version', None) or version_request.min_api_version) + max_api_version = ( + kwargs.pop('max_version', None) or version_request.max_api_version) # Older neutron has inaccessible discovery document. Nobody noticed # because neutronclient hard-codes an append of v2.0. YAY! if service_type == 'network': diff --git a/openstack/database/database_service.py b/openstack/database/database_service.py index ced980534..e37f45715 100644 --- a/openstack/database/database_service.py +++ b/openstack/database/database_service.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.database.v1 import _proxy +from openstack import service_description -class DatabaseService(service_filter.ServiceFilter): +class DatabaseService(service_description.ServiceDescription): """The database service.""" - valid_versions = [service_filter.ValidVersion('v1')] - - def __init__(self, version=None): - """Create a database service.""" - super(DatabaseService, self).__init__(service_type='database', - version=version) + supported_versions = { + '1': _proxy.Proxy, + } diff --git a/openstack/database/v1/database.py b/openstack/database/v1/database.py index be46be803..7bf8eef8a 100644 --- a/openstack/database/v1/database.py +++ b/openstack/database/v1/database.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.database import database_service from openstack import resource @@ -18,7 +17,6 @@ class Database(resource.Resource): resource_key = 'database' resources_key = 'databases' base_path = '/instances/%(instance_id)s/databases' - service = database_service.DatabaseService() # capabilities allow_create = True diff --git a/openstack/database/v1/flavor.py b/openstack/database/v1/flavor.py index 10f78e3cc..64a9dd362 100644 --- a/openstack/database/v1/flavor.py +++ b/openstack/database/v1/flavor.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.database import database_service from openstack import resource @@ -18,7 +17,6 @@ class Flavor(resource.Resource): resource_key = 'flavor' resources_key = 'flavors' base_path = '/flavors' - service = database_service.DatabaseService() # capabilities allow_list = True diff --git a/openstack/database/v1/instance.py b/openstack/database/v1/instance.py index b0b8424c6..02c033bae 100644 --- a/openstack/database/v1/instance.py +++ b/openstack/database/v1/instance.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.database import database_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class Instance(resource.Resource): resource_key = 'instance' resources_key = 'instances' base_path = '/instances' - service = database_service.DatabaseService() # capabilities allow_create = True diff --git a/openstack/database/v1/user.py b/openstack/database/v1/user.py index 2055544b9..c3a0d3d6e 100644 --- a/openstack/database/v1/user.py +++ b/openstack/database/v1/user.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.database import database_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class User(resource.Resource): resource_key = 'user' resources_key = 'users' base_path = '/instances/%(instance_id)s/users' - service = database_service.DatabaseService() # capabilities allow_create = True diff --git a/openstack/identity/identity_service.py b/openstack/identity/identity_service.py index 4bcfafa5b..df8051170 100644 --- a/openstack/identity/identity_service.py +++ b/openstack/identity/identity_service.py @@ -10,25 +10,15 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.identity.v2 import _proxy as _proxy_v2 +from openstack.identity.v3 import _proxy as _proxy_v3 +from openstack import service_description -class IdentityService(service_filter.ServiceFilter): +class IdentityService(service_description.ServiceDescription): """The identity service.""" - valid_versions = [ - service_filter.ValidVersion('v3'), - service_filter.ValidVersion('v2'), - ] - - def __init__(self, **kwargs): - """Create an identity service.""" - kwargs['service_type'] = 'identity' - super(IdentityService, self).__init__(**kwargs) - - -class AdminService(IdentityService): - - def __init__(self, **kwargs): - kwargs['interface'] = service_filter.ServiceFilter.ADMIN - super(AdminService, self).__init__(**kwargs) + supported_versions = { + '2': _proxy_v2.Proxy, + '3': _proxy_v3.Proxy, + } diff --git a/openstack/identity/v2/extension.py b/openstack/identity/v2/extension.py index 7f05fb747..153d6df91 100644 --- a/openstack/identity/v2/extension.py +++ b/openstack/identity/v2/extension.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Extension(resource.Resource): resource_key = 'extension' resources_key = 'extensions' base_path = '/extensions' - service = identity_service.IdentityService() # capabilities allow_list = True diff --git a/openstack/identity/v2/role.py b/openstack/identity/v2/role.py index 625c1413b..df27e5596 100644 --- a/openstack/identity/v2/role.py +++ b/openstack/identity/v2/role.py @@ -11,7 +11,6 @@ # under the License. from openstack import format -from openstack.identity import identity_service from openstack import resource @@ -19,7 +18,6 @@ class Role(resource.Resource): resource_key = 'role' resources_key = 'roles' base_path = '/OS-KSADM/roles' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v2/tenant.py b/openstack/identity/v2/tenant.py index 66a54aad5..1ea272ffa 100644 --- a/openstack/identity/v2/tenant.py +++ b/openstack/identity/v2/tenant.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Tenant(resource.Resource): resource_key = 'tenant' resources_key = 'tenants' base_path = '/tenants' - service = identity_service.AdminService() # capabilities allow_create = True diff --git a/openstack/identity/v2/user.py b/openstack/identity/v2/user.py index a8f219e92..7b4d893a5 100644 --- a/openstack/identity/v2/user.py +++ b/openstack/identity/v2/user.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class User(resource.Resource): resource_key = 'user' resources_key = 'users' base_path = '/users' - service = identity_service.AdminService() # capabilities allow_create = True diff --git a/openstack/identity/v3/credential.py b/openstack/identity/v3/credential.py index 2b2bf0c0b..c388dbf96 100644 --- a/openstack/identity/v3/credential.py +++ b/openstack/identity/v3/credential.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Credential(resource.Resource): resource_key = 'credential' resources_key = 'credentials' base_path = '/credentials' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/domain.py b/openstack/identity/v3/domain.py index 6c32a5c4c..8a39d0a8b 100644 --- a/openstack/identity/v3/domain.py +++ b/openstack/identity/v3/domain.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class Domain(resource.Resource): resource_key = 'domain' resources_key = 'domains' base_path = '/domains' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/endpoint.py b/openstack/identity/v3/endpoint.py index 841f5c59a..e18b17a4b 100644 --- a/openstack/identity/v3/endpoint.py +++ b/openstack/identity/v3/endpoint.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Endpoint(resource.Resource): resource_key = 'endpoint' resources_key = 'endpoints' base_path = '/endpoints' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/group.py b/openstack/identity/v3/group.py index acf763006..001f5124c 100644 --- a/openstack/identity/v3/group.py +++ b/openstack/identity/v3/group.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Group(resource.Resource): resource_key = 'group' resources_key = 'groups' base_path = '/groups' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/policy.py b/openstack/identity/v3/policy.py index a4a6f7cfd..35d3bbcb5 100644 --- a/openstack/identity/v3/policy.py +++ b/openstack/identity/v3/policy.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Policy(resource.Resource): resource_key = 'policy' resources_key = 'policies' base_path = '/policies' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/project.py b/openstack/identity/v3/project.py index 56ee7dab2..7f11cae17 100644 --- a/openstack/identity/v3/project.py +++ b/openstack/identity/v3/project.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class Project(resource.Resource): resource_key = 'project' resources_key = 'projects' base_path = '/projects' - service = identity_service.IdentityService() # capabilities allow_create = True @@ -119,7 +117,6 @@ class UserProject(Project): resource_key = 'project' resources_key = 'projects' base_path = '/users/%(user_id)s/projects' - service = identity_service.IdentityService() # capabilities allow_create = False diff --git a/openstack/identity/v3/region.py b/openstack/identity/v3/region.py index fc0e44e73..33db63c8f 100644 --- a/openstack/identity/v3/region.py +++ b/openstack/identity/v3/region.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Region(resource.Resource): resource_key = 'region' resources_key = 'regions' base_path = '/regions' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/role.py b/openstack/identity/v3/role.py index cd8e272e7..cb3518bbe 100644 --- a/openstack/identity/v3/role.py +++ b/openstack/identity/v3/role.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Role(resource.Resource): resource_key = 'role' resources_key = 'roles' base_path = '/roles' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/role_assignment.py b/openstack/identity/v3/role_assignment.py index b047c9ddc..a12cce27a 100644 --- a/openstack/identity/v3/role_assignment.py +++ b/openstack/identity/v3/role_assignment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class RoleAssignment(resource.Resource): resource_key = 'role_assignment' resources_key = 'role_assignments' base_path = '/role_assignments' - service = identity_service.IdentityService() # capabilities allow_list = True diff --git a/openstack/identity/v3/role_domain_group_assignment.py b/openstack/identity/v3/role_domain_group_assignment.py index 27b6963cb..e65ef8c9e 100644 --- a/openstack/identity/v3/role_domain_group_assignment.py +++ b/openstack/identity/v3/role_domain_group_assignment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class RoleDomainGroupAssignment(resource.Resource): resource_key = 'role' resources_key = 'roles' base_path = '/domains/%(domain_id)s/groups/%(group_id)s/roles' - service = identity_service.IdentityService() # capabilities allow_list = True diff --git a/openstack/identity/v3/role_domain_user_assignment.py b/openstack/identity/v3/role_domain_user_assignment.py index 085a77e0f..242932cab 100644 --- a/openstack/identity/v3/role_domain_user_assignment.py +++ b/openstack/identity/v3/role_domain_user_assignment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class RoleDomainUserAssignment(resource.Resource): resource_key = 'role' resources_key = 'roles' base_path = '/domains/%(domain_id)s/users/%(user_id)s/roles' - service = identity_service.IdentityService() # capabilities allow_list = True diff --git a/openstack/identity/v3/role_project_group_assignment.py b/openstack/identity/v3/role_project_group_assignment.py index cb48025c1..95f2f1863 100644 --- a/openstack/identity/v3/role_project_group_assignment.py +++ b/openstack/identity/v3/role_project_group_assignment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class RoleProjectGroupAssignment(resource.Resource): resource_key = 'role' resources_key = 'roles' base_path = '/projects/%(project_id)s/groups/%(group_id)s/roles' - service = identity_service.IdentityService() # capabilities allow_list = True diff --git a/openstack/identity/v3/role_project_user_assignment.py b/openstack/identity/v3/role_project_user_assignment.py index a7e887099..c5c99bdf2 100644 --- a/openstack/identity/v3/role_project_user_assignment.py +++ b/openstack/identity/v3/role_project_user_assignment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class RoleProjectUserAssignment(resource.Resource): resource_key = 'role' resources_key = 'roles' base_path = '/projects/%(project_id)s/users/%(user_id)s/roles' - service = identity_service.IdentityService() # capabilities allow_list = True diff --git a/openstack/identity/v3/service.py b/openstack/identity/v3/service.py index 6445fb759..982254ad4 100644 --- a/openstack/identity/v3/service.py +++ b/openstack/identity/v3/service.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class Service(resource.Resource): resource_key = 'service' resources_key = 'services' base_path = '/services' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/trust.py b/openstack/identity/v3/trust.py index 07985f1b4..66aaa4422 100644 --- a/openstack/identity/v3/trust.py +++ b/openstack/identity/v3/trust.py @@ -11,7 +11,6 @@ # under the License. -from openstack.identity import identity_service from openstack import resource @@ -19,7 +18,6 @@ class Trust(resource.Resource): resource_key = 'trust' resources_key = 'trusts' base_path = '/OS-TRUST/trusts' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/v3/user.py b/openstack/identity/v3/user.py index bf1b34615..609c9f652 100644 --- a/openstack/identity/v3/user.py +++ b/openstack/identity/v3/user.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,7 +17,6 @@ class User(resource.Resource): resource_key = 'user' resources_key = 'users' base_path = '/users' - service = identity_service.IdentityService() # capabilities allow_create = True diff --git a/openstack/identity/version.py b/openstack/identity/version.py index 30992f109..3ad27ee86 100644 --- a/openstack/identity/version.py +++ b/openstack/identity/version.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.identity import identity_service from openstack import resource @@ -18,9 +17,6 @@ class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = identity_service.IdentityService( - version=identity_service.IdentityService.UNVERSIONED - ) # capabilities allow_list = True diff --git a/openstack/image/image_service.py b/openstack/image/image_service.py index 55c43fd5f..b091a0100 100644 --- a/openstack/image/image_service.py +++ b/openstack/image/image_service.py @@ -10,18 +10,15 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.image.v1 import _proxy as _proxy_v1 +from openstack.image.v2 import _proxy as _proxy_v2 +from openstack import service_description -class ImageService(service_filter.ServiceFilter): +class ImageService(service_description.ServiceDescription): """The image service.""" - valid_versions = [ - service_filter.ValidVersion('v2'), - service_filter.ValidVersion('v1') - ] - - def __init__(self, version=None): - """Create an image service.""" - super(ImageService, self).__init__(service_type='image', - version=version) + supported_versions = { + '1': _proxy_v1.Proxy, + '2': _proxy_v2.Proxy, + } diff --git a/openstack/image/v1/image.py b/openstack/image/v1/image.py index 3f93a51df..bd060146c 100644 --- a/openstack/image/v1/image.py +++ b/openstack/image/v1/image.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.image import image_service from openstack import resource @@ -18,7 +17,6 @@ class Image(resource.Resource): resource_key = 'image' resources_key = 'images' base_path = '/images' - service = image_service.ImageService() # capabilities allow_create = True diff --git a/openstack/image/v2/image.py b/openstack/image/v2/image.py index 7be9e6816..271f82d98 100644 --- a/openstack/image/v2/image.py +++ b/openstack/image/v2/image.py @@ -14,7 +14,6 @@ import hashlib from openstack import _log from openstack import exceptions -from openstack.image import image_service from openstack import resource from openstack import utils @@ -24,7 +23,6 @@ _logger = _log.setup_logging('openstack') class Image(resource.Resource): resources_key = 'images' base_path = '/images' - service = image_service.ImageService() # capabilities allow_create = True diff --git a/openstack/image/v2/member.py b/openstack/image/v2/member.py index 6d565b447..b9568545d 100644 --- a/openstack/image/v2/member.py +++ b/openstack/image/v2/member.py @@ -10,14 +10,12 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.image import image_service from openstack import resource class Member(resource.Resource): resources_key = 'members' base_path = '/images/%(image_id)s/members' - service = image_service.ImageService() # capabilities allow_create = True diff --git a/openstack/instance_ha/instance_ha_service.py b/openstack/instance_ha/instance_ha_service.py index 228d9933a..89a1d9a22 100644 --- a/openstack/instance_ha/instance_ha_service.py +++ b/openstack/instance_ha/instance_ha_service.py @@ -12,15 +12,13 @@ # See the License for the specific language governing permissions and # limitations under the License. -from openstack import service_filter +from openstack.instance_ha.v1 import _proxy +from openstack import service_description -class InstanceHaService(service_filter.ServiceFilter): +class InstanceHaService(service_description.ServiceDescription): """The HA service.""" - valid_versions = [service_filter.ValidVersion('v1')] - - def __init__(self, version=None): - """Create an ha service.""" - super(InstanceHaService, self).__init__(service_type='ha', - version=version) + supported_versions = { + '1': _proxy.Proxy, + } diff --git a/openstack/instance_ha/v1/host.py b/openstack/instance_ha/v1/host.py index a6d9a0142..a505a648d 100644 --- a/openstack/instance_ha/v1/host.py +++ b/openstack/instance_ha/v1/host.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from openstack.instance_ha import instance_ha_service from openstack import resource @@ -20,7 +19,6 @@ class Host(resource.Resource): resource_key = "host" resources_key = "hosts" base_path = "/segments/%(segment_id)s/hosts" - service = instance_ha_service.InstanceHaService() # capabilities # 1] GET /v1/segments//hosts diff --git a/openstack/instance_ha/v1/notification.py b/openstack/instance_ha/v1/notification.py index 45f1a2e27..4cf538861 100644 --- a/openstack/instance_ha/v1/notification.py +++ b/openstack/instance_ha/v1/notification.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from openstack.instance_ha import instance_ha_service from openstack import resource @@ -20,7 +19,6 @@ class Notification(resource.Resource): resource_key = "notification" resources_key = "notifications" base_path = "/notifications" - service = instance_ha_service.InstanceHaService() # capabilities # 1] GET /v1/notifications diff --git a/openstack/instance_ha/v1/segment.py b/openstack/instance_ha/v1/segment.py index eec2c6c13..a2668f71c 100644 --- a/openstack/instance_ha/v1/segment.py +++ b/openstack/instance_ha/v1/segment.py @@ -12,7 +12,6 @@ # See the License for the specific language governing permissions and # limitations under the License. -from openstack.instance_ha import instance_ha_service from openstack import resource @@ -20,7 +19,6 @@ class Segment(resource.Resource): resource_key = "segment" resources_key = "segments" base_path = "/segments" - service = instance_ha_service.InstanceHaService() # capabilities # 1] GET /v1/segments diff --git a/openstack/key_manager/key_manager_service.py b/openstack/key_manager/key_manager_service.py index 36d3b413b..64d76d210 100644 --- a/openstack/key_manager/key_manager_service.py +++ b/openstack/key_manager/key_manager_service.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.key_manager.v1 import _proxy +from openstack import service_description -class KeyManagerService(service_filter.ServiceFilter): +class KeyManagerService(service_description.ServiceDescription): """The key manager service.""" - valid_versions = [service_filter.ValidVersion('v1')] - - def __init__(self, version=None): - """Create a key manager service.""" - super(KeyManagerService, self).__init__(service_type='key-manager', - version=version) + supported_versions = { + '1': _proxy.Proxy, + } diff --git a/openstack/key_manager/v1/container.py b/openstack/key_manager/v1/container.py index e5b2629c6..4b14020ab 100644 --- a/openstack/key_manager/v1/container.py +++ b/openstack/key_manager/v1/container.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.key_manager import key_manager_service from openstack.key_manager.v1 import _format from openstack import resource @@ -18,7 +17,6 @@ from openstack import resource class Container(resource.Resource): resources_key = 'containers' base_path = '/containers' - service = key_manager_service.KeyManagerService() # capabilities allow_create = True diff --git a/openstack/key_manager/v1/order.py b/openstack/key_manager/v1/order.py index fec0592f2..1f7198c4e 100644 --- a/openstack/key_manager/v1/order.py +++ b/openstack/key_manager/v1/order.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.key_manager import key_manager_service from openstack.key_manager.v1 import _format from openstack import resource @@ -18,7 +17,6 @@ from openstack import resource class Order(resource.Resource): resources_key = 'orders' base_path = '/orders' - service = key_manager_service.KeyManagerService() # capabilities allow_create = True diff --git a/openstack/key_manager/v1/secret.py b/openstack/key_manager/v1/secret.py index 2ba4ab552..4e2be6c46 100644 --- a/openstack/key_manager/v1/secret.py +++ b/openstack/key_manager/v1/secret.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.key_manager import key_manager_service from openstack.key_manager.v1 import _format from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ from openstack import utils class Secret(resource.Resource): resources_key = 'secrets' base_path = '/secrets' - service = key_manager_service.KeyManagerService() # capabilities allow_create = True diff --git a/openstack/load_balancer/load_balancer_service.py b/openstack/load_balancer/load_balancer_service.py index 3c645e6f6..31542a317 100644 --- a/openstack/load_balancer/load_balancer_service.py +++ b/openstack/load_balancer/load_balancer_service.py @@ -10,17 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.load_balancer.v2 import _proxy +from openstack import service_description -class LoadBalancerService(service_filter.ServiceFilter): +class LoadBalancerService(service_description.ServiceDescription): """The load balancer service.""" - valid_versions = [service_filter.ValidVersion('v2', 'v2.0')] - - def __init__(self, version=None): - """Create a load balancer service.""" - super(LoadBalancerService, self).__init__( - service_type='load-balancer', - version=version - ) + supported_versions = { + '2': _proxy.Proxy, + } diff --git a/openstack/load_balancer/v2/health_monitor.py b/openstack/load_balancer/v2/health_monitor.py index aca7fcb5d..4cca0262d 100644 --- a/openstack/load_balancer/v2/health_monitor.py +++ b/openstack/load_balancer/v2/health_monitor.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.load_balancer import load_balancer_service as lb_service from openstack import resource class HealthMonitor(resource.Resource): resource_key = 'healthmonitor' resources_key = 'healthmonitors' - base_path = '/v2.0/lbaas/healthmonitors' - service = lb_service.LoadBalancerService() + base_path = '/lbaas/healthmonitors' # capabilities allow_create = True diff --git a/openstack/load_balancer/v2/l7_policy.py b/openstack/load_balancer/v2/l7_policy.py index 37e434a69..099b176da 100644 --- a/openstack/load_balancer/v2/l7_policy.py +++ b/openstack/load_balancer/v2/l7_policy.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.load_balancer import load_balancer_service as lb_service from openstack import resource class L7Policy(resource.Resource): resource_key = 'l7policy' resources_key = 'l7policies' - base_path = '/v2.0/lbaas/l7policies' - service = lb_service.LoadBalancerService() + base_path = '/lbaas/l7policies' # capabilities allow_create = True diff --git a/openstack/load_balancer/v2/l7_rule.py b/openstack/load_balancer/v2/l7_rule.py index cc2aa4364..be5c118f5 100644 --- a/openstack/load_balancer/v2/l7_rule.py +++ b/openstack/load_balancer/v2/l7_rule.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.load_balancer import load_balancer_service as lb_service from openstack import resource class L7Rule(resource.Resource): resource_key = 'rule' resources_key = 'rules' - base_path = '/v2.0/lbaas/l7policies/%(l7policy_id)s/rules' - service = lb_service.LoadBalancerService() + base_path = '/lbaas/l7policies/%(l7policy_id)s/rules' # capabilities allow_create = True diff --git a/openstack/load_balancer/v2/listener.py b/openstack/load_balancer/v2/listener.py index 6597c8998..6ea5d74bb 100644 --- a/openstack/load_balancer/v2/listener.py +++ b/openstack/load_balancer/v2/listener.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.load_balancer import load_balancer_service as lb_service from openstack import resource class Listener(resource.Resource): resource_key = 'listener' resources_key = 'listeners' - base_path = '/v2.0/lbaas/listeners' - service = lb_service.LoadBalancerService() + base_path = '/lbaas/listeners' # capabilities allow_create = True diff --git a/openstack/load_balancer/v2/load_balancer.py b/openstack/load_balancer/v2/load_balancer.py index a3ce64999..9b36f7e5f 100644 --- a/openstack/load_balancer/v2/load_balancer.py +++ b/openstack/load_balancer/v2/load_balancer.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.load_balancer import load_balancer_service as lb_service from openstack import resource class LoadBalancer(resource.Resource): resource_key = 'loadbalancer' resources_key = 'loadbalancers' - base_path = '/v2.0/lbaas/loadbalancers' - service = lb_service.LoadBalancerService() + base_path = '/lbaas/loadbalancers' # capabilities allow_create = True diff --git a/openstack/load_balancer/v2/member.py b/openstack/load_balancer/v2/member.py index ac65eb268..f67ad3b74 100644 --- a/openstack/load_balancer/v2/member.py +++ b/openstack/load_balancer/v2/member.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.load_balancer import load_balancer_service as lb_service from openstack import resource class Member(resource.Resource): resource_key = 'member' resources_key = 'members' - base_path = '/v2.0/lbaas/pools/%(pool_id)s/members' - service = lb_service.LoadBalancerService() + base_path = '/lbaas/pools/%(pool_id)s/members' # capabilities allow_create = True diff --git a/openstack/load_balancer/v2/pool.py b/openstack/load_balancer/v2/pool.py index 1868d208c..9bbc13bf0 100644 --- a/openstack/load_balancer/v2/pool.py +++ b/openstack/load_balancer/v2/pool.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.load_balancer import load_balancer_service as lb_service from openstack import resource class Pool(resource.Resource): resource_key = 'pool' resources_key = 'pools' - base_path = '/v2.0/lbaas/pools' - service = lb_service.LoadBalancerService() + base_path = '/lbaas/pools' # capabilities allow_create = True diff --git a/openstack/load_balancer/version.py b/openstack/load_balancer/version.py index c2266a2b0..bb0891768 100644 --- a/openstack/load_balancer/version.py +++ b/openstack/load_balancer/version.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.load_balancer import load_balancer_service as lb_service from openstack import resource @@ -18,9 +17,6 @@ class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = lb_service.LoadBalancerService( - version=lb_service.LoadBalancerService.UNVERSIONED - ) # capabilities allow_list = True diff --git a/openstack/message/message_service.py b/openstack/message/message_service.py index c9f57ad60..204d391c1 100644 --- a/openstack/message/message_service.py +++ b/openstack/message/message_service.py @@ -10,17 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.message.v2 import _proxy +from openstack import service_description -class MessageService(service_filter.ServiceFilter): +class MessageService(service_description.ServiceDescription): """The message service.""" - valid_versions = [service_filter.ValidVersion('v2')] - - def __init__(self, version=None): - """Create a message service.""" - super(MessageService, self).__init__( - service_type='messaging', - version=version - ) + supported_versions = { + '2': _proxy.Proxy, + } diff --git a/openstack/message/v2/claim.py b/openstack/message/v2/claim.py index 51c1c0a14..f02e51748 100644 --- a/openstack/message/v2/claim.py +++ b/openstack/message/v2/claim.py @@ -12,7 +12,6 @@ import uuid -from openstack.message import message_service from openstack import resource @@ -24,7 +23,6 @@ class Claim(resource.Resource): resources_key = 'claims' base_path = '/queues/%(queue_name)s/claims' - service = message_service.MessageService() # capabilities allow_create = True diff --git a/openstack/message/v2/message.py b/openstack/message/v2/message.py index d85f5d2b5..5f7acb090 100644 --- a/openstack/message/v2/message.py +++ b/openstack/message/v2/message.py @@ -12,7 +12,6 @@ import uuid -from openstack.message import message_service from openstack import resource @@ -24,7 +23,6 @@ class Message(resource.Resource): resources_key = 'messages' base_path = '/queues/%(queue_name)s/messages' - service = message_service.MessageService() # capabilities allow_create = True diff --git a/openstack/message/v2/queue.py b/openstack/message/v2/queue.py index 2da9e87c9..7901f1959 100644 --- a/openstack/message/v2/queue.py +++ b/openstack/message/v2/queue.py @@ -12,7 +12,6 @@ import uuid -from openstack.message import message_service from openstack import resource @@ -24,7 +23,6 @@ class Queue(resource.Resource): resources_key = "queues" base_path = "/queues" - service = message_service.MessageService() # capabilities allow_create = True diff --git a/openstack/message/v2/subscription.py b/openstack/message/v2/subscription.py index 2bd779711..7372951b8 100644 --- a/openstack/message/v2/subscription.py +++ b/openstack/message/v2/subscription.py @@ -12,7 +12,6 @@ import uuid -from openstack.message import message_service from openstack import resource @@ -24,7 +23,6 @@ class Subscription(resource.Resource): resources_key = 'subscriptions' base_path = '/queues/%(queue_name)s/subscriptions' - service = message_service.MessageService() # capabilities allow_create = True diff --git a/openstack/message/version.py b/openstack/message/version.py index 6cb2ee51d..805ce6a34 100644 --- a/openstack/message/version.py +++ b/openstack/message/version.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.message import message_service from openstack import resource @@ -18,9 +17,6 @@ class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = message_service.MessageService( - version=message_service.MessageService.UNVERSIONED - ) # capabilities allow_list = True diff --git a/openstack/network/network_service.py b/openstack/network/network_service.py index 28c20e4b8..17070efed 100644 --- a/openstack/network/network_service.py +++ b/openstack/network/network_service.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.network.v2 import _proxy +from openstack import service_description -class NetworkService(service_filter.ServiceFilter): +class NetworkService(service_description.ServiceDescription): """The network service.""" - valid_versions = [service_filter.ValidVersion('v2', 'v2.0')] - - def __init__(self, version=None): - """Create a network service.""" - super(NetworkService, self).__init__(service_type='network', - version=version) + supported_versions = { + '2': _proxy.Proxy, + } diff --git a/openstack/network/v2/address_scope.py b/openstack/network/v2/address_scope.py index 326cf2035..ff256e035 100644 --- a/openstack/network/v2/address_scope.py +++ b/openstack/network/v2/address_scope.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -19,7 +18,6 @@ class AddressScope(resource.Resource): resource_key = 'address_scope' resources_key = 'address_scopes' base_path = '/address-scopes' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/agent.py b/openstack/network/v2/agent.py index 6df7af057..b6a6097fe 100644 --- a/openstack/network/v2/agent.py +++ b/openstack/network/v2/agent.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource from openstack import utils @@ -20,7 +19,6 @@ class Agent(resource.Resource): resource_key = 'agent' resources_key = 'agents' base_path = '/agents' - service = network_service.NetworkService() # capabilities allow_create = False @@ -96,7 +94,6 @@ class NetworkHostingDHCPAgent(Agent): resources_key = 'agents' resource_name = 'dhcp-agent' base_path = '/networks/%(network_id)s/dhcp-agents' - service = network_service.NetworkService() # capabilities allow_create = False @@ -113,7 +110,6 @@ class RouterL3Agent(Agent): resources_key = 'agents' base_path = '/routers/%(router_id)s/l3-agents' resource_name = 'l3-agent' - service = network_service.NetworkService() # capabilities allow_create = False diff --git a/openstack/network/v2/auto_allocated_topology.py b/openstack/network/v2/auto_allocated_topology.py index 98b2d9fbe..66ea343e9 100644 --- a/openstack/network/v2/auto_allocated_topology.py +++ b/openstack/network/v2/auto_allocated_topology.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class AutoAllocatedTopology(resource.Resource): resource_name = 'auto_allocated_topology' resource_key = 'auto_allocated_topology' base_path = '/auto-allocated-topology' - service = network_service.NetworkService() # Capabilities allow_create = False diff --git a/openstack/network/v2/availability_zone.py b/openstack/network/v2/availability_zone.py index 295ac42ac..9ff48135e 100644 --- a/openstack/network/v2/availability_zone.py +++ b/openstack/network/v2/availability_zone.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource as _resource @@ -18,7 +17,6 @@ class AvailabilityZone(_resource.Resource): resource_key = 'availability_zone' resources_key = 'availability_zones' base_path = '/availability_zones' - service = network_service.NetworkService() # capabilities allow_create = False diff --git a/openstack/network/v2/extension.py b/openstack/network/v2/extension.py index d13c806b2..00c91a7f8 100644 --- a/openstack/network/v2/extension.py +++ b/openstack/network/v2/extension.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class Extension(resource.Resource): resource_key = 'extension' resources_key = 'extensions' base_path = '/extensions' - service = network_service.NetworkService() # capabilities allow_fetch = True diff --git a/openstack/network/v2/firewall_group.py b/openstack/network/v2/firewall_group.py index aff20e747..2ed0ad2d5 100644 --- a/openstack/network/v2/firewall_group.py +++ b/openstack/network/v2/firewall_group.py @@ -13,7 +13,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -21,7 +20,6 @@ class FirewallGroup(resource.Resource): resource_key = 'firewall_group' resources_key = 'firewall_groups' base_path = '/fwaas/firewall_groups' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/firewall_policy.py b/openstack/network/v2/firewall_policy.py index e94753027..aa4df63dd 100644 --- a/openstack/network/v2/firewall_policy.py +++ b/openstack/network/v2/firewall_policy.py @@ -14,7 +14,6 @@ # under the License. from openstack.exceptions import HttpException -from openstack.network import network_service from openstack import resource from openstack import utils @@ -23,7 +22,6 @@ class FirewallPolicy(resource.Resource): resource_key = 'firewall_policy' resources_key = 'firewall_policies' base_path = '/fwaas/firewall_policies' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/firewall_rule.py b/openstack/network/v2/firewall_rule.py index 6f4e537bb..786d86e8b 100644 --- a/openstack/network/v2/firewall_rule.py +++ b/openstack/network/v2/firewall_rule.py @@ -13,7 +13,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -21,7 +20,6 @@ class FirewallRule(resource.Resource): resource_key = 'firewall_rule' resources_key = 'firewall_rules' base_path = '/fwaas/firewall_rules' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/flavor.py b/openstack/network/v2/flavor.py index cb7f0c1eb..987a3483b 100644 --- a/openstack/network/v2/flavor.py +++ b/openstack/network/v2/flavor.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class Flavor(resource.Resource): resource_key = 'flavor' resources_key = 'flavors' base_path = '/flavors' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/floating_ip.py b/openstack/network/v2/floating_ip.py index dcde09905..1511fb8d2 100644 --- a/openstack/network/v2/floating_ip.py +++ b/openstack/network/v2/floating_ip.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack.network.v2 import tag from openstack import resource @@ -21,7 +20,6 @@ class FloatingIP(resource.Resource, tag.TagMixin): resource_key = 'floatingip' resources_key = 'floatingips' base_path = '/floatingips' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/health_monitor.py b/openstack/network/v2/health_monitor.py index 6ed64bf05..c8cfa59f0 100644 --- a/openstack/network/v2/health_monitor.py +++ b/openstack/network/v2/health_monitor.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class HealthMonitor(resource.Resource): resource_key = 'healthmonitor' resources_key = 'healthmonitors' base_path = '/lbaas/healthmonitors' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/listener.py b/openstack/network/v2/listener.py index e90398577..64595b5f4 100644 --- a/openstack/network/v2/listener.py +++ b/openstack/network/v2/listener.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class Listener(resource.Resource): resource_key = 'listener' resources_key = 'listeners' base_path = '/lbaas/listeners' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/load_balancer.py b/openstack/network/v2/load_balancer.py index 6f66b752d..ab88913c9 100644 --- a/openstack/network/v2/load_balancer.py +++ b/openstack/network/v2/load_balancer.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class LoadBalancer(resource.Resource): resource_key = 'loadbalancer' resources_key = 'loadbalancers' base_path = '/lbaas/loadbalancers' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/metering_label.py b/openstack/network/v2/metering_label.py index 90a62781b..31f2b51c8 100644 --- a/openstack/network/v2/metering_label.py +++ b/openstack/network/v2/metering_label.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class MeteringLabel(resource.Resource): resource_key = 'metering_label' resources_key = 'metering_labels' base_path = '/metering/metering-labels' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/metering_label_rule.py b/openstack/network/v2/metering_label_rule.py index eb766c8de..ed643ed17 100644 --- a/openstack/network/v2/metering_label_rule.py +++ b/openstack/network/v2/metering_label_rule.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class MeteringLabelRule(resource.Resource): resource_key = 'metering_label_rule' resources_key = 'metering_label_rules' base_path = '/metering/metering-label-rules' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/network.py b/openstack/network/v2/network.py index 5b706375a..3ba20e2ed 100644 --- a/openstack/network/v2/network.py +++ b/openstack/network/v2/network.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack.network.v2 import tag from openstack import resource @@ -19,7 +18,6 @@ class Network(resource.Resource, tag.TagMixin): resource_key = 'network' resources_key = 'networks' base_path = '/networks' - service = network_service.NetworkService() # capabilities allow_create = True @@ -121,7 +119,6 @@ class DHCPAgentHostingNetwork(Network): resources_key = 'networks' base_path = '/agents/%(agent_id)s/dhcp-networks' resource_name = 'dhcp-network' - service = network_service.NetworkService() # capabilities allow_create = False diff --git a/openstack/network/v2/network_ip_availability.py b/openstack/network/v2/network_ip_availability.py index ce2c372b7..c2946b6a6 100644 --- a/openstack/network/v2/network_ip_availability.py +++ b/openstack/network/v2/network_ip_availability.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -19,7 +18,6 @@ class NetworkIPAvailability(resource.Resource): resources_key = 'network_ip_availabilities' base_path = '/network-ip-availabilities' name_attribute = 'network_name' - service = network_service.NetworkService() # capabilities allow_create = False diff --git a/openstack/network/v2/pool.py b/openstack/network/v2/pool.py index 671610087..4e463c92f 100644 --- a/openstack/network/v2/pool.py +++ b/openstack/network/v2/pool.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class Pool(resource.Resource): resource_key = 'pool' resources_key = 'pools' base_path = '/lbaas/pools' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/pool_member.py b/openstack/network/v2/pool_member.py index c75e0c3bb..909bbe21f 100644 --- a/openstack/network/v2/pool_member.py +++ b/openstack/network/v2/pool_member.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class PoolMember(resource.Resource): resource_key = 'member' resources_key = 'members' base_path = '/lbaas/pools/%(pool_id)s/members' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/port.py b/openstack/network/v2/port.py index 625464713..e3290aef2 100644 --- a/openstack/network/v2/port.py +++ b/openstack/network/v2/port.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack.network.v2 import tag from openstack import resource @@ -19,7 +18,6 @@ class Port(resource.Resource, tag.TagMixin): resource_key = 'port' resources_key = 'ports' base_path = '/ports' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/qos_bandwidth_limit_rule.py b/openstack/network/v2/qos_bandwidth_limit_rule.py index 1f289ebb6..d10939d36 100644 --- a/openstack/network/v2/qos_bandwidth_limit_rule.py +++ b/openstack/network/v2/qos_bandwidth_limit_rule.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class QoSBandwidthLimitRule(resource.Resource): resource_key = 'bandwidth_limit_rule' resources_key = 'bandwidth_limit_rules' base_path = '/qos/policies/%(qos_policy_id)s/bandwidth_limit_rules' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/qos_dscp_marking_rule.py b/openstack/network/v2/qos_dscp_marking_rule.py index 9333d9813..fbdf86de1 100644 --- a/openstack/network/v2/qos_dscp_marking_rule.py +++ b/openstack/network/v2/qos_dscp_marking_rule.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class QoSDSCPMarkingRule(resource.Resource): resource_key = 'dscp_marking_rule' resources_key = 'dscp_marking_rules' base_path = '/qos/policies/%(qos_policy_id)s/dscp_marking_rules' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/qos_minimum_bandwidth_rule.py b/openstack/network/v2/qos_minimum_bandwidth_rule.py index 476079570..06d2ce75c 100644 --- a/openstack/network/v2/qos_minimum_bandwidth_rule.py +++ b/openstack/network/v2/qos_minimum_bandwidth_rule.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class QoSMinimumBandwidthRule(resource.Resource): resource_key = 'minimum_bandwidth_rule' resources_key = 'minimum_bandwidth_rules' base_path = '/qos/policies/%(qos_policy_id)s/minimum_bandwidth_rules' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/qos_policy.py b/openstack/network/v2/qos_policy.py index 941132899..7efa40efc 100644 --- a/openstack/network/v2/qos_policy.py +++ b/openstack/network/v2/qos_policy.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack.network.v2 import tag from openstack import resource from openstack import utils @@ -20,7 +19,6 @@ class QoSPolicy(resource.Resource, tag.TagMixin): resource_key = 'policy' resources_key = 'policies' base_path = '/qos/policies' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/qos_rule_type.py b/openstack/network/v2/qos_rule_type.py index a917af2a1..cf23a448f 100644 --- a/openstack/network/v2/qos_rule_type.py +++ b/openstack/network/v2/qos_rule_type.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class QoSRuleType(resource.Resource): resource_key = 'rule_type' resources_key = 'rule_types' base_path = '/qos/rule-types' - service = network_service.NetworkService() # capabilities allow_create = False diff --git a/openstack/network/v2/quota.py b/openstack/network/v2/quota.py index fbed68f5f..eab5aa79b 100644 --- a/openstack/network/v2/quota.py +++ b/openstack/network/v2/quota.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class Quota(resource.Resource): resource_key = 'quota' resources_key = 'quotas' base_path = '/quotas' - service = network_service.NetworkService() # capabilities allow_fetch = True diff --git a/openstack/network/v2/rbac_policy.py b/openstack/network/v2/rbac_policy.py index 4043f0e44..3fdb158fa 100644 --- a/openstack/network/v2/rbac_policy.py +++ b/openstack/network/v2/rbac_policy.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class RBACPolicy(resource.Resource): resource_key = 'rbac_policy' resources_key = 'rbac_policies' base_path = '/rbac-policies' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/router.py b/openstack/network/v2/router.py index 71cb19495..73db5b697 100644 --- a/openstack/network/v2/router.py +++ b/openstack/network/v2/router.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack.network.v2 import tag from openstack import resource from openstack import utils @@ -20,7 +19,6 @@ class Router(resource.Resource, tag.TagMixin): resource_key = 'router' resources_key = 'routers' base_path = '/routers' - service = network_service.NetworkService() # capabilities allow_create = True @@ -137,7 +135,6 @@ class L3AgentRouter(Router): resources_key = 'routers' base_path = '/agents/%(agent_id)s/l3-routers' resource_name = 'l3-router' - service = network_service.NetworkService() # capabilities allow_create = False diff --git a/openstack/network/v2/security_group.py b/openstack/network/v2/security_group.py index 2ec91d5a1..e80b96c92 100644 --- a/openstack/network/v2/security_group.py +++ b/openstack/network/v2/security_group.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack.network.v2 import tag from openstack import resource @@ -19,7 +18,6 @@ class SecurityGroup(resource.Resource, tag.TagMixin): resource_key = 'security_group' resources_key = 'security_groups' base_path = '/security-groups' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/security_group_rule.py b/openstack/network/v2/security_group_rule.py index 286a7adc7..54de7fdd2 100644 --- a/openstack/network/v2/security_group_rule.py +++ b/openstack/network/v2/security_group_rule.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class SecurityGroupRule(resource.Resource): resource_key = 'security_group_rule' resources_key = 'security_group_rules' base_path = '/security-group-rules' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/segment.py b/openstack/network/v2/segment.py index 808d08cdb..ce6aa2710 100644 --- a/openstack/network/v2/segment.py +++ b/openstack/network/v2/segment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class Segment(resource.Resource): resource_key = 'segment' resources_key = 'segments' base_path = '/segments' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/service_profile.py b/openstack/network/v2/service_profile.py index 4b999ef8c..78178a95e 100644 --- a/openstack/network/v2/service_profile.py +++ b/openstack/network/v2/service_profile.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,7 +17,6 @@ class ServiceProfile(resource.Resource): resource_key = 'service_profile' resources_key = 'service_profiles' base_path = '/service_profiles' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/service_provider.py b/openstack/network/v2/service_provider.py index 9f0ec773a..1b19b6002 100644 --- a/openstack/network/v2/service_provider.py +++ b/openstack/network/v2/service_provider.py @@ -10,14 +10,12 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource class ServiceProvider(resource.Resource): resources_key = 'service_providers' base_path = '/service-providers' - service = network_service.NetworkService() # Capabilities allow_create = False diff --git a/openstack/network/v2/subnet.py b/openstack/network/v2/subnet.py index e611d0b6a..4c9078acb 100644 --- a/openstack/network/v2/subnet.py +++ b/openstack/network/v2/subnet.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack.network.v2 import tag from openstack import resource @@ -19,7 +18,6 @@ class Subnet(resource.Resource, tag.TagMixin): resource_key = 'subnet' resources_key = 'subnets' base_path = '/subnets' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/subnet_pool.py b/openstack/network/v2/subnet_pool.py index a8648fdf3..e7d186dd6 100644 --- a/openstack/network/v2/subnet_pool.py +++ b/openstack/network/v2/subnet_pool.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack.network.v2 import tag from openstack import resource @@ -19,7 +18,6 @@ class SubnetPool(resource.Resource, tag.TagMixin): resource_key = 'subnetpool' resources_key = 'subnetpools' base_path = '/subnetpools' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/trunk.py b/openstack/network/v2/trunk.py index 14bb47e10..0168f9933 100644 --- a/openstack/network/v2/trunk.py +++ b/openstack/network/v2/trunk.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource from openstack import utils @@ -19,7 +18,6 @@ class Trunk(resource.Resource): resource_key = 'trunk' resources_key = 'trunks' base_path = '/trunks' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/v2/vpn_service.py b/openstack/network/v2/vpn_service.py index f40d20c8a..d9c1483ec 100644 --- a/openstack/network/v2/vpn_service.py +++ b/openstack/network/v2/vpn_service.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -20,7 +19,6 @@ class VPNService(resource.Resource): resource_key = 'vpnservice' resources_key = 'vpnservices' base_path = '/vpn/vpnservices' - service = network_service.NetworkService() # capabilities allow_create = True diff --git a/openstack/network/version.py b/openstack/network/version.py index 9de4601ca..805ce6a34 100644 --- a/openstack/network/version.py +++ b/openstack/network/version.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.network import network_service from openstack import resource @@ -18,9 +17,6 @@ class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = network_service.NetworkService( - version=network_service.NetworkService.UNVERSIONED - ) # capabilities allow_list = True diff --git a/openstack/object_store/object_store_service.py b/openstack/object_store/object_store_service.py index 1f58b97cf..2a0aa3d1a 100644 --- a/openstack/object_store/object_store_service.py +++ b/openstack/object_store/object_store_service.py @@ -10,15 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.object_store.v1 import _proxy +from openstack import service_description -class ObjectStoreService(service_filter.ServiceFilter): +class ObjectStoreService(service_description.ServiceDescription): """The object store service.""" - valid_versions = [service_filter.ValidVersion('v1')] - - def __init__(self, version=None): - """Create an object store service.""" - super(ObjectStoreService, self).__init__(service_type='object-store', - version=version) + supported_versions = { + '1': _proxy.Proxy, + } diff --git a/openstack/object_store/v1/_base.py b/openstack/object_store/v1/_base.py index 4c576da64..21372406f 100644 --- a/openstack/object_store/v1/_base.py +++ b/openstack/object_store/v1/_base.py @@ -12,12 +12,10 @@ # under the License. from openstack import exceptions -from openstack.object_store import object_store_service from openstack import resource class BaseResource(resource.Resource): - service = object_store_service.ObjectStoreService() commit_method = 'POST' create_method = 'PUT' diff --git a/openstack/object_store/v1/obj.py b/openstack/object_store/v1/obj.py index 595d0e4cd..e77588f0d 100644 --- a/openstack/object_store/v1/obj.py +++ b/openstack/object_store/v1/obj.py @@ -14,7 +14,6 @@ import copy from openstack import exceptions -from openstack.object_store import object_store_service from openstack.object_store.v1 import _base from openstack import resource @@ -32,7 +31,6 @@ class Object(_base.BaseResource): base_path = "/%(container)s" pagination_key = 'X-Container-Object-Count' - service = object_store_service.ObjectStoreService() allow_create = True allow_fetch = True diff --git a/openstack/orchestration/orchestration_service.py b/openstack/orchestration/orchestration_service.py index 0333ff74f..827f9831c 100644 --- a/openstack/orchestration/orchestration_service.py +++ b/openstack/orchestration/orchestration_service.py @@ -10,18 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack.orchestration.v1 import _proxy +from openstack import service_description -class OrchestrationService(service_filter.ServiceFilter): +class OrchestrationService(service_description.ServiceDescription): """The orchestration service.""" - valid_versions = [service_filter.ValidVersion('v1')] - - def __init__(self, version=None): - """Create an orchestration service.""" - super(OrchestrationService, self).__init__( - service_type='orchestration', - version=version, - requires_project_id=True, - ) + supported_versions = { + '1': _proxy.Proxy, + } diff --git a/openstack/orchestration/v1/resource.py b/openstack/orchestration/v1/resource.py index 97184bb9c..ddc466fda 100644 --- a/openstack/orchestration/v1/resource.py +++ b/openstack/orchestration/v1/resource.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.orchestration import orchestration_service from openstack import resource @@ -19,7 +18,6 @@ class Resource(resource.Resource): resource_key = 'resource' resources_key = 'resources' base_path = '/stacks/%(stack_name)s/%(stack_id)s/resources' - service = orchestration_service.OrchestrationService() # capabilities allow_create = False diff --git a/openstack/orchestration/v1/software_config.py b/openstack/orchestration/v1/software_config.py index a4f4b4fae..af59e8989 100644 --- a/openstack/orchestration/v1/software_config.py +++ b/openstack/orchestration/v1/software_config.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.orchestration import orchestration_service from openstack import resource @@ -18,7 +17,6 @@ class SoftwareConfig(resource.Resource): resource_key = 'software_config' resources_key = 'software_configs' base_path = '/software_configs' - service = orchestration_service.OrchestrationService() # capabilities allow_create = True diff --git a/openstack/orchestration/v1/software_deployment.py b/openstack/orchestration/v1/software_deployment.py index 00e4acd0c..5ac670973 100644 --- a/openstack/orchestration/v1/software_deployment.py +++ b/openstack/orchestration/v1/software_deployment.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.orchestration import orchestration_service from openstack import resource @@ -18,7 +17,6 @@ class SoftwareDeployment(resource.Resource): resource_key = 'software_deployment' resources_key = 'software_deployments' base_path = '/software_deployments' - service = orchestration_service.OrchestrationService() # capabilities allow_create = True diff --git a/openstack/orchestration/v1/stack.py b/openstack/orchestration/v1/stack.py index 4828b1332..97bb6e3f6 100644 --- a/openstack/orchestration/v1/stack.py +++ b/openstack/orchestration/v1/stack.py @@ -11,7 +11,6 @@ # under the License. from openstack import exceptions -from openstack.orchestration import orchestration_service from openstack import resource from openstack import utils @@ -21,7 +20,6 @@ class Stack(resource.Resource): resource_key = 'stack' resources_key = 'stacks' base_path = '/stacks' - service = orchestration_service.OrchestrationService() # capabilities allow_create = True diff --git a/openstack/orchestration/v1/stack_environment.py b/openstack/orchestration/v1/stack_environment.py index 2b972bdf4..24b05e750 100644 --- a/openstack/orchestration/v1/stack_environment.py +++ b/openstack/orchestration/v1/stack_environment.py @@ -10,13 +10,11 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.orchestration import orchestration_service from openstack import resource class StackEnvironment(resource.Resource): - service = orchestration_service.OrchestrationService() base_path = "/stacks/%(stack_name)s/%(stack_id)s/environment" # capabilities diff --git a/openstack/orchestration/v1/stack_files.py b/openstack/orchestration/v1/stack_files.py index 6963d5b84..faa4c942b 100644 --- a/openstack/orchestration/v1/stack_files.py +++ b/openstack/orchestration/v1/stack_files.py @@ -10,13 +10,11 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.orchestration import orchestration_service from openstack import resource class StackFiles(resource.Resource): - service = orchestration_service.OrchestrationService() base_path = "/stacks/%(stack_name)s/%(stack_id)s/files" # capabilities diff --git a/openstack/orchestration/v1/stack_template.py b/openstack/orchestration/v1/stack_template.py index 0bea61ab9..7ba46e767 100644 --- a/openstack/orchestration/v1/stack_template.py +++ b/openstack/orchestration/v1/stack_template.py @@ -10,13 +10,11 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.orchestration import orchestration_service from openstack import resource class StackTemplate(resource.Resource): - service = orchestration_service.OrchestrationService() base_path = "/stacks/%(stack_name)s/%(stack_id)s/template" # capabilities diff --git a/openstack/orchestration/v1/template.py b/openstack/orchestration/v1/template.py index ec04b6cec..ab0bc5655 100644 --- a/openstack/orchestration/v1/template.py +++ b/openstack/orchestration/v1/template.py @@ -12,12 +12,10 @@ from six.moves.urllib import parse -from openstack.orchestration import orchestration_service from openstack import resource class Template(resource.Resource): - service = orchestration_service.OrchestrationService() # capabilities allow_create = False diff --git a/openstack/orchestration/version.py b/openstack/orchestration/version.py index 2dd05c286..805ce6a34 100644 --- a/openstack/orchestration/version.py +++ b/openstack/orchestration/version.py @@ -10,7 +10,6 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack.orchestration import orchestration_service from openstack import resource @@ -18,9 +17,6 @@ class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = orchestration_service.OrchestrationService( - version=orchestration_service.OrchestrationService.UNVERSIONED - ) # capabilities allow_list = True diff --git a/openstack/service_description.py b/openstack/service_description.py index 12a7dc66a..e49d9db83 100644 --- a/openstack/service_description.py +++ b/openstack/service_description.py @@ -11,15 +11,12 @@ # License for the specific language governing permissions and limitations # under the License. -import importlib - import os_service_types from openstack import _log from openstack import proxy __all__ = [ - 'OpenStackServiceDescription', 'ServiceDescription', ] @@ -29,14 +26,14 @@ _service_type_manager = os_service_types.ServiceTypes() class ServiceDescription(object): - #: Proxy class for this service - proxy_class = proxy.Proxy + #: Dictionary of supported versions and proxy classes for that version + supported_versions = None #: main service_type to use to find this service in the catalog service_type = None #: list of aliases this service might be registered as aliases = [] - def __init__(self, service_type, proxy_class=None, aliases=None): + def __init__(self, service_type, supported_versions=None, aliases=None): """Class describing how to interact with a REST service. Each service in an OpenStack cloud needs to be found by looking @@ -65,72 +62,112 @@ class ServiceDescription(object): be used to register the service in the catalog. """ self.service_type = service_type or self.service_type - self.proxy_class = proxy_class or self.proxy_class - if self.proxy_class: - self._validate_proxy_class() + self.supported_versions = ( + supported_versions + or self.supported_versions + or {}) + self.aliases = aliases or self.aliases self.all_types = [service_type] + self.aliases - self._proxy = None - - def _validate_proxy_class(self): - if not issubclass(self.proxy_class, proxy.Proxy): - raise TypeError( - "{module}.{proxy_class} must inherit from Proxy".format( - module=self.proxy_class.__module__, - proxy_class=self.proxy_class.__name__)) - - def get_proxy_class(self, config): - return self.proxy_class def __get__(self, instance, owner): if instance is None: return self if self.service_type not in instance._proxies: - config = instance.config - proxy_class = self.get_proxy_class(config) - instance._proxies[self.service_type] = config.get_session_client( - self.service_type, - constructor=proxy_class, - task_manager=instance.task_manager, - allow_version_hack=True, - ) + instance._proxies[self.service_type] = self._make_proxy( + instance, owner) instance._proxies[self.service_type]._connection = instance return instance._proxies[self.service_type] + def _make_proxy(self, instance, owner): + config = instance.config + + # First, check to see if we've got config that matches what we + # understand in the SDK. + version_string = config.get_api_version(self.service_type) + endpoint_override = config.get_endpoint(self.service_type) + + # If the user doesn't give a version in config, but we only support + # one version, then just use that version. + if not version_string and len(self.supported_versions) == 1: + version_string = list(self.supported_versions.keys())[0] + + proxy_obj = None + if endpoint_override and version_string and self.supported_versions: + # Both endpoint override and version_string are set, we don't + # need to do discovery - just trust the user. + proxy_class = self.supported_versions.get(version_string[0]) + if proxy_class: + proxy_obj = config.get_session_client( + self.service_type, + constructor=proxy_class, + task_manager=instance.task_manager, + ) + elif endpoint_override and self.supported_versions: + temp_adapter = config.get_session_client( + self.service_type + ) + api_version = temp_adapter.get_endpoint_data().api_version + proxy_class = self.supported_versions.get(str(api_version[0])) + if proxy_class: + proxy_obj = config.get_session_client( + self.service_type, + constructor=proxy_class, + task_manager=instance.task_manager, + ) + + if proxy_obj: + data = proxy_obj.get_endpoint_data() + if data.catalog_url != data.service_url: + ep_key = '{service_type}_endpoint_override'.format( + service_type=self.service_type) + config.config[ep_key] = data.service_url + proxy_obj = config.get_session_client( + self.service_type, + constructor=proxy_class, + task_manager=instance.task_manager, + ) + return proxy_obj + + # Make an adapter to let discovery take over + version_kwargs = {} + if version_string: + version_kwargs['version'] = version_string + elif self.supported_versions: + supported_versions = sorted([ + int(f) for f in self.supported_versions]) + version_kwargs['min_version'] = str(supported_versions[0]) + version_kwargs['max_version'] = '{version}.latest'.format( + version=str(supported_versions[-1])) + + temp_adapter = config.get_session_client( + self.service_type, + constructor=proxy.Proxy, + allow_version_hack=True, + **version_kwargs + ) + found_version = temp_adapter.get_api_major_version() + if found_version is None: + # Maybe openstacksdk is being used for the passthrough + # REST API proxy layer for an unknown service in the + # service catalog that also doesn't have any useful + # version discovery? + instance._proxies[self.service_type] = temp_adapter + instance._proxies[self.service_type]._connection = instance + return instance._proxies[self.service_type] + proxy_class = self.supported_versions.get(str(found_version[0])) + if not proxy_class: + proxy_class = proxy.Proxy + return config.get_session_client( + self.service_type, + constructor=proxy_class, + task_manager=instance.task_manager, + allow_version_hack=True, + **version_kwargs + ) + def __set__(self, instance, value): raise AttributeError('Service Descriptors cannot be set') def __delete__(self, instance): raise AttributeError('Service Descriptors cannot be deleted') - - -class OpenStackServiceDescription(ServiceDescription): - def __init__(self, service_filter_class, *args, **kwargs): - """Official OpenStack ServiceDescription. - - The OpenStackServiceDescription class is a helper class for - services listed in Service Types Authority and that are directly - supported by openstacksdk. - - It finds the proxy_class by looking in the openstacksdk tree for - appropriately named modules. - - :param service_filter_class: - A subclass of :class:`~openstack.service_filter.ServiceFilter` - """ - super(OpenStackServiceDescription, self).__init__(*args, **kwargs) - self._service_filter_class = service_filter_class - - def get_proxy_class(self, config): - # TODO(mordred) Replace this with proper discovery - if self.service_type == 'block-storage': - version_string = config.get_api_version('volume') - else: - version_string = config.get_api_version(self.service_type) - version = None - if version_string: - version = 'v{version}'.format(version=version_string[0]) - service_filter = self._service_filter_class(version=version) - module_name = service_filter.get_module() + "._proxy" - module = importlib.import_module(module_name) - return getattr(module, "Proxy") diff --git a/openstack/service_filter.py b/openstack/service_filter.py deleted file mode 100644 index b5c4fe82d..000000000 --- a/openstack/service_filter.py +++ /dev/null @@ -1,199 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -""" -The :class:`~openstack.service_filter.ServiceFilter` is the base class -for service identifiers and user service preferences. Each -:class:`~openstack.resource.Resource` has a service identifier to -associate the resource with a service. An example of a service identifier -would be ``openstack.compute.compute_service.ComputeService``. -The service preference and the service identifier are joined to create a -filter to match a service. - -Examples --------- - -The :class:`~openstack.service_filter.ServiceFilter` class can be built -with a service type, interface, region, name, and version. - -Create a service filter -~~~~~~~~~~~~~~~~~~~~~~~ - -Create a compute service and service preference. Join the services -and match:: - - from openstack import service_filter - from openstack.compute import compute_service - default = compute_service.ComputeService() - preference = service_filter.ServiceFilter('compute', version='v2') - result = preference.join(default) - matches = (result.match_service_type('compute') and - result.match_service_name('Hal9000') and - result.match_region('DiscoveryOne') and - result.match_interface('public')) - print(str(result)) - print("matches=" + str(matches)) - -The resulting output from the code:: - - service_type=compute,interface=public,version=v2 - matches=True -""" - - -class ValidVersion(object): - - def __init__(self, module, path=None): - """" Valid service version. - - :param string module: Module associated with version. - :param string path: URL path version. - """ - self.module = module - self.path = path or module - - -class ServiceFilter(dict): - UNVERSIONED = '' - PUBLIC = 'public' - INTERNAL = 'internal' - ADMIN = 'admin' - valid_versions = [] - - def __init__(self, service_type, interface=PUBLIC, region=None, - service_name=None, version=None, api_version=None, - requires_project_id=False): - """Create a service identifier. - - :param string service_type: The desired type of service. - :param string interface: The exposure of the endpoint. Should be - `public` (default), `internal` or `admin`. - :param string region: The desired region (optional). - :param string service_name: Name of the service - :param string version: Version of service to use. - :param string api_version: Microversion of service supported. - :param bool requires_project_id: True if this service's endpoint - expects project id to be included. - """ - self['service_type'] = service_type.lower() - self['interface'] = interface - self['region_name'] = region - self['service_name'] = service_name - self['version'] = version - self['api_version'] = api_version - self['requires_project_id'] = requires_project_id - - @classmethod - def _get_proxy_class_names(cls): - names = [] - module_name = ".".join(cls.__module__.split('.')[:-1]) - for version in cls.valid_versions: - names.append("{module}.{version}._proxy.Proxy".format( - module=module_name, - version=version.module)) - return names - - @property - def service_type(self): - return self['service_type'] - - @property - def interface(self): - return self['interface'] - - @interface.setter - def interface(self, value): - self['interface'] = value - - @property - def region(self): - return self['region_name'] - - @region.setter - def region(self, value): - self['region_name'] = value - - @property - def service_name(self): - return self['service_name'] - - @service_name.setter - def service_name(self, value): - self['service_name'] = value - - @property - def version(self): - return self['version'] - - @version.setter - def version(self, value): - self['version'] = value - - @property - def api_version(self): - return self['api_version'] - - @api_version.setter - def api_version(self, value): - self['api_version'] = value - - @property - def requires_project_id(self): - return self['requires_project_id'] - - @requires_project_id.setter - def requires_project_id(self, value): - self['requires_project_id'] = value - - @property - def path(self): - return self['path'] - - @path.setter - def path(self, value): - self['path'] = value - - def get_path(self, version=None): - if not self.version: - self.version = version - return self.get('path', self._get_valid_version().path) - - def get_filter(self): - filter = dict(self) - del filter['version'] - return filter - - def _get_valid_version(self): - if self.valid_versions: - if self.version: - for valid in self.valid_versions: - # NOTE(thowe): should support fuzzy match e.g: v2.1==v2 - if self.version.startswith(valid.module): - return valid - return self.valid_versions[0] - return ValidVersion('') - - def get_module(self): - """Get the full module name associated with the service.""" - module = self.__class__.__module__.split('.') - module = ".".join(module[:-1]) - module = module + "." + self._get_valid_version().module - return module - - def get_service_module(self): - """Get the module version of the service name. - - This would often be the same as the service type except in cases like - object store where the service type is `object-store` and the module - is `object_store`. - """ - return self.__class__.__module__.split('.')[-2] diff --git a/openstack/tests/unit/baremetal/test_baremetal_service.py b/openstack/tests/unit/baremetal/test_baremetal_service.py deleted file mode 100644 index 45ccd04e0..000000000 --- a/openstack/tests/unit/baremetal/test_baremetal_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.baremetal import baremetal_service - - -class TestBaremetalService(base.TestCase): - - def test_service(self): - sot = baremetal_service.BaremetalService() - self.assertEqual('baremetal', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v1', sot.valid_versions[0].module) - self.assertEqual('v1', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/baremetal/test_version.py b/openstack/tests/unit/baremetal/test_version.py index ddc807944..06ce752c3 100644 --- a/openstack/tests/unit/baremetal/test_version.py +++ b/openstack/tests/unit/baremetal/test_version.py @@ -30,7 +30,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/baremetal/v1/test_chassis.py b/openstack/tests/unit/baremetal/v1/test_chassis.py index 76e4ef44b..4c52f01de 100644 --- a/openstack/tests/unit/baremetal/v1/test_chassis.py +++ b/openstack/tests/unit/baremetal/v1/test_chassis.py @@ -50,7 +50,6 @@ class TestChassis(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('chassis', sot.resources_key) self.assertEqual('/chassis', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -76,7 +75,6 @@ class TestChassisDetail(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('chassis', sot.resources_key) self.assertEqual('/chassis/detail', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/baremetal/v1/test_driver.py b/openstack/tests/unit/baremetal/v1/test_driver.py index 075ac0c14..8fdcabcd9 100644 --- a/openstack/tests/unit/baremetal/v1/test_driver.py +++ b/openstack/tests/unit/baremetal/v1/test_driver.py @@ -50,7 +50,6 @@ class TestDriver(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('drivers', sot.resources_key) self.assertEqual('/drivers', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/baremetal/v1/test_node.py b/openstack/tests/unit/baremetal/v1/test_node.py index b3a5e928b..85d77bb7a 100644 --- a/openstack/tests/unit/baremetal/v1/test_node.py +++ b/openstack/tests/unit/baremetal/v1/test_node.py @@ -102,7 +102,6 @@ class TestNode(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('nodes', sot.resources_key) self.assertEqual('/nodes', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -161,7 +160,6 @@ class TestNodeDetail(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('nodes', sot.resources_key) self.assertEqual('/nodes/detail', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/baremetal/v1/test_port.py b/openstack/tests/unit/baremetal/v1/test_port.py index 61b9cce75..0ab7eae1a 100644 --- a/openstack/tests/unit/baremetal/v1/test_port.py +++ b/openstack/tests/unit/baremetal/v1/test_port.py @@ -49,7 +49,6 @@ class TestPort(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('ports', sot.resources_key) self.assertEqual('/ports', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -80,7 +79,6 @@ class TestPortDetail(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('ports', sot.resources_key) self.assertEqual('/ports/detail', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/baremetal/v1/test_port_group.py b/openstack/tests/unit/baremetal/v1/test_port_group.py index 3cfe051fb..81fb69a60 100644 --- a/openstack/tests/unit/baremetal/v1/test_port_group.py +++ b/openstack/tests/unit/baremetal/v1/test_port_group.py @@ -54,7 +54,6 @@ class TestPortGroup(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('portgroups', sot.resources_key) self.assertEqual('/portgroups', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -85,7 +84,6 @@ class TestPortGroupDetail(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('portgroups', sot.resources_key) self.assertEqual('/portgroups/detail', sot.base_path) - self.assertEqual('baremetal', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/block_storage/test_block_storage_service.py b/openstack/tests/unit/block_storage/test_block_storage_service.py deleted file mode 100644 index ca11ec47f..000000000 --- a/openstack/tests/unit/block_storage/test_block_storage_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.block_storage import block_storage_service - - -class TestBlockStorageService(base.TestCase): - - def test_service(self): - sot = block_storage_service.BlockStorageService() - self.assertEqual("block-storage", sot.service_type) - self.assertEqual("public", sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual("v2", sot.valid_versions[0].module) - self.assertEqual("v2", sot.valid_versions[0].path) diff --git a/openstack/tests/unit/block_storage/v2/test_snapshot.py b/openstack/tests/unit/block_storage/v2/test_snapshot.py index a062ef9b9..16b59355c 100644 --- a/openstack/tests/unit/block_storage/v2/test_snapshot.py +++ b/openstack/tests/unit/block_storage/v2/test_snapshot.py @@ -45,7 +45,6 @@ class TestSnapshot(base.TestCase): self.assertEqual("snapshot", sot.resource_key) self.assertEqual("snapshots", sot.resources_key) self.assertEqual("/snapshots", sot.base_path) - self.assertEqual("block-storage", sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) self.assertTrue(sot.allow_create) diff --git a/openstack/tests/unit/block_storage/v2/test_type.py b/openstack/tests/unit/block_storage/v2/test_type.py index 393d9cdd2..d5cf4e7a3 100644 --- a/openstack/tests/unit/block_storage/v2/test_type.py +++ b/openstack/tests/unit/block_storage/v2/test_type.py @@ -31,7 +31,6 @@ class TestType(base.TestCase): self.assertEqual("volume_type", sot.resource_key) self.assertEqual("volume_types", sot.resources_key) self.assertEqual("/types", sot.base_path) - self.assertEqual("block-storage", sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_delete) diff --git a/openstack/tests/unit/block_storage/v2/test_volume.py b/openstack/tests/unit/block_storage/v2/test_volume.py index e3edcd072..3dc40afd0 100644 --- a/openstack/tests/unit/block_storage/v2/test_volume.py +++ b/openstack/tests/unit/block_storage/v2/test_volume.py @@ -68,7 +68,6 @@ class TestVolume(base.TestCase): self.assertEqual("volume", sot.resource_key) self.assertEqual("volumes", sot.resources_key) self.assertEqual("/volumes", sot.base_path) - self.assertEqual("block-storage", sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/block_store/v2/test_stats.py b/openstack/tests/unit/block_store/v2/test_stats.py index ed87eba5e..729ec6370 100644 --- a/openstack/tests/unit/block_store/v2/test_stats.py +++ b/openstack/tests/unit/block_store/v2/test_stats.py @@ -39,7 +39,6 @@ class TestBackendPools(base.TestCase): self.assertEqual("pools", sot.resources_key) self.assertEqual("/scheduler-stats/get_pools?detail=True", sot.base_path) - self.assertEqual("volume", sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_delete) diff --git a/openstack/tests/unit/cloud/test_operator_noauth.py b/openstack/tests/unit/cloud/test_operator_noauth.py index 7630c805c..d9faee222 100644 --- a/openstack/tests/unit/cloud/test_operator_noauth.py +++ b/openstack/tests/unit/cloud/test_operator_noauth.py @@ -37,7 +37,7 @@ class TestOpenStackCloudOperatorNoAuth(base.TestCase): uri=self.get_mock_url( service_type='baremetal', base_url_append='v1'), json={'id': 'v1', - 'links': [{"href": "https://bare-metal.example.com/v1/", + 'links': [{"href": "https://bare-metal.example.com/v1", "rel": "self"}]}), dict(method='GET', uri=self.get_mock_url( @@ -98,3 +98,118 @@ class TestOpenStackCloudOperatorNoAuth(base.TestCase): self.cloud_noauth.list_machines() self.assert_calls() + + +class TestOpenStackCloudOperatorNoAuthUnversioned(base.TestCase): + def setUp(self): + """Setup Noauth OpenStackCloud tests for unversioned endpoints + + Setup the test to utilize no authentication and an endpoint + URL in the auth data. This is permits testing of the basic + mechanism that enables Ironic noauth mode to be utilized with + Shade. + + Uses base.TestCase instead of IronicTestCase because + we need to do completely different things with discovery. + """ + super(TestOpenStackCloudOperatorNoAuthUnversioned, self).setUp() + # By clearing the URI registry, we remove all calls to a keystone + # catalog or getting a token + self._uri_registry.clear() + self.register_uris([ + dict(method='GET', + uri='https://bare-metal.example.com/', + json={ + "default_version": { + "status": "CURRENT", + "min_version": "1.1", + "version": "1.46", + "id": "v1", + "links": [{ + "href": "https://bare-metal.example.com/v1", + "rel": "self" + }]}, + "versions": [{ + "status": "CURRENT", + "min_version": "1.1", + "version": "1.46", + "id": "v1", + "links": [{ + "href": "https://bare-metal.example.com/v1", + "rel": "self" + }]}], + "name": "OpenStack Ironic API", + "description": "Ironic is an OpenStack project." + }), + dict(method='GET', + uri=self.get_mock_url( + service_type='baremetal', base_url_append='v1'), + json={ + "media_types": [{ + "base": "application/json", + "type": "application/vnd.openstack.ironic.v1+json" + }], + "links": [{ + "href": "https://bare-metal.example.com/v1", + "rel": "self" + }], + "ports": [{ + "href": "https://bare-metal.example.com/v1/ports/", + "rel": "self" + }, { + "href": "https://bare-metal.example.com/ports/", + "rel": "bookmark" + }], + "nodes": [{ + "href": "https://bare-metal.example.com/v1/nodes/", + "rel": "self" + }, { + "href": "https://bare-metal.example.com/nodes/", + "rel": "bookmark" + }], + "id": "v1" + }), + dict(method='GET', + uri=self.get_mock_url( + service_type='baremetal', base_url_append='v1', + resource='nodes'), + json={'nodes': []}), + ]) + + def test_ironic_noauth_none_auth_type(self): + """Test noauth selection for Ironic in OpenStackCloud + + The new way of doing this is with the keystoneauth none plugin. + """ + # NOTE(TheJulia): When we are using the python-ironicclient + # library, the library will automatically prepend the URI path + # with 'v1'. As such, since we are overriding the endpoint, + # we must explicitly do the same as we move away from the + # client library. + self.cloud_noauth = openstack.connect( + auth_type='none', + baremetal_endpoint_override="https://bare-metal.example.com") + + self.cloud_noauth.list_machines() + + self.assert_calls() + + def test_ironic_noauth_auth_endpoint(self): + """Test noauth selection for Ironic in OpenStackCloud + + Sometimes people also write clouds.yaml files that look like this: + + :: + clouds: + bifrost: + auth_type: "none" + endpoint: https://bare-metal.example.com + """ + self.cloud_noauth = openstack.connect( + auth_type='none', + endpoint='https://bare-metal.example.com/', + ) + + self.cloud_noauth.list_machines() + + self.assert_calls() diff --git a/openstack/tests/unit/clustering/test_cluster_service.py b/openstack/tests/unit/clustering/test_cluster_service.py deleted file mode 100644 index f52cafdaf..000000000 --- a/openstack/tests/unit/clustering/test_cluster_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.clustering import clustering_service - - -class TestClusteringService(base.TestCase): - - def test_service(self): - sot = clustering_service.ClusteringService() - self.assertEqual('clustering', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v1', sot.valid_versions[0].module) - self.assertEqual('v1', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/clustering/test_version.py b/openstack/tests/unit/clustering/test_version.py index f6fff193b..461a8f4e9 100644 --- a/openstack/tests/unit/clustering/test_version.py +++ b/openstack/tests/unit/clustering/test_version.py @@ -29,7 +29,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/clustering/v1/test_action.py b/openstack/tests/unit/clustering/v1/test_action.py index e506fc203..268202d25 100644 --- a/openstack/tests/unit/clustering/v1/test_action.py +++ b/openstack/tests/unit/clustering/v1/test_action.py @@ -53,7 +53,6 @@ class TestAction(base.TestCase): self.assertEqual('action', sot.resource_key) self.assertEqual('actions', sot.resources_key) self.assertEqual('/actions', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_list) diff --git a/openstack/tests/unit/clustering/v1/test_build_info.py b/openstack/tests/unit/clustering/v1/test_build_info.py index 4532c2634..0056691d6 100644 --- a/openstack/tests/unit/clustering/v1/test_build_info.py +++ b/openstack/tests/unit/clustering/v1/test_build_info.py @@ -34,7 +34,6 @@ class TestBuildInfo(base.TestCase): sot = build_info.BuildInfo() self.assertEqual('/build-info', sot.base_path) self.assertEqual('build_info', sot.resource_key) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_fetch) def test_instantiate(self): diff --git a/openstack/tests/unit/clustering/v1/test_cluster.py b/openstack/tests/unit/clustering/v1/test_cluster.py index e79e397e3..2d0a22ada 100644 --- a/openstack/tests/unit/clustering/v1/test_cluster.py +++ b/openstack/tests/unit/clustering/v1/test_cluster.py @@ -75,7 +75,6 @@ class TestCluster(base.TestCase): self.assertEqual('cluster', sot.resource_key) self.assertEqual('clusters', sot.resources_key) self.assertEqual('/clusters', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/clustering/v1/test_cluster_attr.py b/openstack/tests/unit/clustering/v1/test_cluster_attr.py index e64cdcb9e..3ef9641ce 100644 --- a/openstack/tests/unit/clustering/v1/test_cluster_attr.py +++ b/openstack/tests/unit/clustering/v1/test_cluster_attr.py @@ -33,7 +33,6 @@ class TestClusterAttr(base.TestCase): self.assertEqual('cluster_attributes', sot.resources_key) self.assertEqual('/clusters/%(cluster_id)s/attrs/%(path)s', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_list) def test_instantiate(self): diff --git a/openstack/tests/unit/clustering/v1/test_cluster_policy.py b/openstack/tests/unit/clustering/v1/test_cluster_policy.py index e6f3de548..463fa642e 100644 --- a/openstack/tests/unit/clustering/v1/test_cluster_policy.py +++ b/openstack/tests/unit/clustering/v1/test_cluster_policy.py @@ -37,7 +37,6 @@ class TestClusterPolicy(base.TestCase): self.assertEqual('cluster_policies', sot.resources_key) self.assertEqual('/clusters/%(cluster_id)s/policies', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_list) diff --git a/openstack/tests/unit/clustering/v1/test_event.py b/openstack/tests/unit/clustering/v1/test_event.py index 8464c0ea3..e52a44218 100644 --- a/openstack/tests/unit/clustering/v1/test_event.py +++ b/openstack/tests/unit/clustering/v1/test_event.py @@ -41,7 +41,6 @@ class TestEvent(base.TestCase): self.assertEqual('event', sot.resource_key) self.assertEqual('events', sot.resources_key) self.assertEqual('/events', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_list) diff --git a/openstack/tests/unit/clustering/v1/test_node.py b/openstack/tests/unit/clustering/v1/test_node.py index 6a454cb05..c2838a093 100644 --- a/openstack/tests/unit/clustering/v1/test_node.py +++ b/openstack/tests/unit/clustering/v1/test_node.py @@ -44,7 +44,6 @@ class TestNode(base.TestCase): self.assertEqual('node', sot.resource_key) self.assertEqual('nodes', sot.resources_key) self.assertEqual('/nodes', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/clustering/v1/test_policy.py b/openstack/tests/unit/clustering/v1/test_policy.py index f565b6032..6af6bd6b6 100644 --- a/openstack/tests/unit/clustering/v1/test_policy.py +++ b/openstack/tests/unit/clustering/v1/test_policy.py @@ -51,7 +51,6 @@ class TestPolicy(base.TestCase): self.assertEqual('policy', sot.resource_key) self.assertEqual('policies', sot.resources_key) self.assertEqual('/policies', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -81,7 +80,6 @@ class TestPolicyValidate(base.TestCase): self.assertEqual('policy', sot.resource_key) self.assertEqual('policies', sot.resources_key) self.assertEqual('/policies/validate', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/clustering/v1/test_policy_type.py b/openstack/tests/unit/clustering/v1/test_policy_type.py index 6ebf45db2..63f88fdec 100644 --- a/openstack/tests/unit/clustering/v1/test_policy_type.py +++ b/openstack/tests/unit/clustering/v1/test_policy_type.py @@ -36,7 +36,6 @@ class TestPolicyType(base.TestCase): self.assertEqual('policy_type', sot.resource_key) self.assertEqual('policy_types', sot.resources_key) self.assertEqual('/policy-types', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_list) diff --git a/openstack/tests/unit/clustering/v1/test_profile.py b/openstack/tests/unit/clustering/v1/test_profile.py index 4165f4cec..abcaf098d 100644 --- a/openstack/tests/unit/clustering/v1/test_profile.py +++ b/openstack/tests/unit/clustering/v1/test_profile.py @@ -51,7 +51,6 @@ class TestProfile(base.TestCase): self.assertEqual('profile', sot.resource_key) self.assertEqual('profiles', sot.resources_key) self.assertEqual('/profiles', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -83,7 +82,6 @@ class TestProfileValidate(base.TestCase): self.assertEqual('profile', sot.resource_key) self.assertEqual('profiles', sot.resources_key) self.assertEqual('/profiles/validate', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/clustering/v1/test_profile_type.py b/openstack/tests/unit/clustering/v1/test_profile_type.py index ee5e7fa43..f709c3d8c 100644 --- a/openstack/tests/unit/clustering/v1/test_profile_type.py +++ b/openstack/tests/unit/clustering/v1/test_profile_type.py @@ -37,7 +37,6 @@ class TestProfileType(base.TestCase): self.assertEqual('profile_type', sot.resource_key) self.assertEqual('profile_types', sot.resources_key) self.assertEqual('/profile-types', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_list) diff --git a/openstack/tests/unit/clustering/v1/test_receiver.py b/openstack/tests/unit/clustering/v1/test_receiver.py index 27b340c4d..197cfb01e 100644 --- a/openstack/tests/unit/clustering/v1/test_receiver.py +++ b/openstack/tests/unit/clustering/v1/test_receiver.py @@ -50,7 +50,6 @@ class TestReceiver(base.TestCase): self.assertEqual('receiver', sot.resource_key) self.assertEqual('receivers', sot.resources_key) self.assertEqual('/receivers', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/clustering/v1/test_service.py b/openstack/tests/unit/clustering/v1/test_service.py index a97fa678d..f361a0b6f 100644 --- a/openstack/tests/unit/clustering/v1/test_service.py +++ b/openstack/tests/unit/clustering/v1/test_service.py @@ -41,7 +41,6 @@ class TestService(base.TestCase): self.assertEqual('service', sot.resource_key) self.assertEqual('services', sot.resources_key) self.assertEqual('/services', sot.base_path) - self.assertEqual('clustering', sot.service.service_type) self.assertTrue(sot.allow_list) def test_make_it(self): diff --git a/openstack/tests/unit/compute/test_compute_service.py b/openstack/tests/unit/compute/test_compute_service.py deleted file mode 100644 index 3a3ed7bbe..000000000 --- a/openstack/tests/unit/compute/test_compute_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.compute import compute_service - - -class TestComputeService(base.TestCase): - - def test_service(self): - sot = compute_service.ComputeService() - self.assertEqual('compute', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v2', sot.valid_versions[0].module) - self.assertEqual('v2', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/compute/test_version.py b/openstack/tests/unit/compute/test_version.py index 2f460f260..76fdaf2dd 100644 --- a/openstack/tests/unit/compute/test_version.py +++ b/openstack/tests/unit/compute/test_version.py @@ -30,7 +30,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_availability_zone.py b/openstack/tests/unit/compute/v2/test_availability_zone.py index 66489eb58..f8d409366 100644 --- a/openstack/tests/unit/compute/v2/test_availability_zone.py +++ b/openstack/tests/unit/compute/v2/test_availability_zone.py @@ -30,14 +30,12 @@ class TestAvailabilityZone(base.TestCase): self.assertEqual('availabilityZoneInfo', sot.resources_key) self.assertEqual('/os-availability-zone', sot.base_path) self.assertTrue(sot.allow_list) - self.assertEqual('compute', sot.service.service_type) def test_basic_detail(self): sot = az.AvailabilityZoneDetail() self.assertEqual('availabilityZoneInfo', sot.resources_key) self.assertEqual('/os-availability-zone/detail', sot.base_path) self.assertTrue(sot.allow_list) - self.assertEqual('compute', sot.service.service_type) def test_make_basic(self): sot = az.AvailabilityZone(**BASIC_EXAMPLE) diff --git a/openstack/tests/unit/compute/v2/test_extension.py b/openstack/tests/unit/compute/v2/test_extension.py index 1cc35f680..4ee1ad331 100644 --- a/openstack/tests/unit/compute/v2/test_extension.py +++ b/openstack/tests/unit/compute/v2/test_extension.py @@ -32,7 +32,6 @@ class TestExtension(base.TestCase): self.assertEqual('extension', sot.resource_key) self.assertEqual('extensions', sot.resources_key) self.assertEqual('/extensions', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_flavor.py b/openstack/tests/unit/compute/v2/test_flavor.py index 9c5080c73..c781711d2 100644 --- a/openstack/tests/unit/compute/v2/test_flavor.py +++ b/openstack/tests/unit/compute/v2/test_flavor.py @@ -38,7 +38,6 @@ class TestFlavor(base.TestCase): self.assertEqual('flavor', sot.resource_key) self.assertEqual('flavors', sot.resources_key) self.assertEqual('/flavors', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_delete) @@ -77,7 +76,6 @@ class TestFlavor(base.TestCase): self.assertEqual('flavor', sot.resource_key) self.assertEqual('flavors', sot.resources_key) self.assertEqual('/flavors/detail', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_hypervisor.py b/openstack/tests/unit/compute/v2/test_hypervisor.py index ae369351e..feb96b18e 100644 --- a/openstack/tests/unit/compute/v2/test_hypervisor.py +++ b/openstack/tests/unit/compute/v2/test_hypervisor.py @@ -49,7 +49,6 @@ class TestHypervisor(base.TestCase): self.assertEqual('hypervisor', sot.resource_key) self.assertEqual('hypervisors', sot.resources_key) self.assertEqual('/os-hypervisors', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_list) @@ -82,6 +81,5 @@ class TestHypervisor(base.TestCase): self.assertEqual('hypervisor', sot.resource_key) self.assertEqual('hypervisors', sot.resources_key) self.assertEqual('/os-hypervisors/detail', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertFalse(sot.allow_fetch) self.assertTrue(sot.allow_list) diff --git a/openstack/tests/unit/compute/v2/test_image.py b/openstack/tests/unit/compute/v2/test_image.py index 24f7f2a91..59c101b50 100644 --- a/openstack/tests/unit/compute/v2/test_image.py +++ b/openstack/tests/unit/compute/v2/test_image.py @@ -43,7 +43,6 @@ class TestImage(base.TestCase): self.assertEqual('image', sot.resource_key) self.assertEqual('images', sot.resources_key) self.assertEqual('/images', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) @@ -72,7 +71,6 @@ class TestImage(base.TestCase): self.assertEqual('image', sot.resource_key) self.assertEqual('images', sot.resources_key) self.assertEqual('/images/detail', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_keypair.py b/openstack/tests/unit/compute/v2/test_keypair.py index c0e7d974a..c058b5507 100644 --- a/openstack/tests/unit/compute/v2/test_keypair.py +++ b/openstack/tests/unit/compute/v2/test_keypair.py @@ -29,7 +29,6 @@ class TestKeypair(base.TestCase): self.assertEqual('keypair', sot.resource_key) self.assertEqual('keypairs', sot.resources_key) self.assertEqual('/os-keypairs', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_limits.py b/openstack/tests/unit/compute/v2/test_limits.py index 398d324e8..d77b8ebdf 100644 --- a/openstack/tests/unit/compute/v2/test_limits.py +++ b/openstack/tests/unit/compute/v2/test_limits.py @@ -69,7 +69,6 @@ class TestAbsoluteLimits(base.TestCase): self.assertIsNone(sot.resource_key) self.assertIsNone(sot.resources_key) self.assertEqual("", sot.base_path) - self.assertIsNone(sot.service) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) @@ -139,7 +138,6 @@ class TestLimits(base.TestCase): sot = limits.Limits() self.assertEqual("limits", sot.resource_key) self.assertEqual("/limits", sot.base_path) - self.assertEqual("compute", sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_server.py b/openstack/tests/unit/compute/v2/test_server.py index 45bf4ebc2..7de99b494 100644 --- a/openstack/tests/unit/compute/v2/test_server.py +++ b/openstack/tests/unit/compute/v2/test_server.py @@ -73,7 +73,6 @@ class TestServer(base.TestCase): self.assertEqual('server', sot.resource_key) self.assertEqual('servers', sot.resources_key) self.assertEqual('/servers', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -155,7 +154,6 @@ class TestServer(base.TestCase): self.assertEqual('server', sot.resource_key) self.assertEqual('servers', sot.resources_key) self.assertEqual('/servers/detail', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_server_group.py b/openstack/tests/unit/compute/v2/test_server_group.py index d9c954dd7..173761364 100644 --- a/openstack/tests/unit/compute/v2/test_server_group.py +++ b/openstack/tests/unit/compute/v2/test_server_group.py @@ -30,7 +30,6 @@ class TestServerGroup(base.TestCase): self.assertEqual('server_group', sot.resource_key) self.assertEqual('server_groups', sot.resources_key) self.assertEqual('/os-server-groups', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_server_interface.py b/openstack/tests/unit/compute/v2/test_server_interface.py index 973923204..9b4fa7f2b 100644 --- a/openstack/tests/unit/compute/v2/test_server_interface.py +++ b/openstack/tests/unit/compute/v2/test_server_interface.py @@ -37,7 +37,6 @@ class TestServerInterface(base.TestCase): self.assertEqual('interfaceAttachment', sot.resource_key) self.assertEqual('interfaceAttachments', sot.resources_key) self.assertEqual('/servers/%(server_id)s/os-interface', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_server_ip.py b/openstack/tests/unit/compute/v2/test_server_ip.py index 66fed38df..6cbc0e94a 100644 --- a/openstack/tests/unit/compute/v2/test_server_ip.py +++ b/openstack/tests/unit/compute/v2/test_server_ip.py @@ -29,7 +29,6 @@ class TestServerIP(base.TestCase): sot = server_ip.ServerIP() self.assertEqual('addresses', sot.resources_key) self.assertEqual('/servers/%(server_id)s/ips', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/compute/v2/test_service.py b/openstack/tests/unit/compute/v2/test_service.py index 094792a7f..159423505 100644 --- a/openstack/tests/unit/compute/v2/test_service.py +++ b/openstack/tests/unit/compute/v2/test_service.py @@ -41,7 +41,6 @@ class TestService(base.TestCase): self.assertEqual('service', sot.resource_key) self.assertEqual('services', sot.resources_key) self.assertEqual('/os-services', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertTrue(sot.allow_commit) self.assertTrue(sot.allow_list) self.assertFalse(sot.allow_fetch) diff --git a/openstack/tests/unit/compute/v2/test_volume_attachment.py b/openstack/tests/unit/compute/v2/test_volume_attachment.py index 623a931e7..66068dce9 100644 --- a/openstack/tests/unit/compute/v2/test_volume_attachment.py +++ b/openstack/tests/unit/compute/v2/test_volume_attachment.py @@ -29,7 +29,6 @@ class TestServerInterface(base.TestCase): self.assertEqual('volumeAttachments', sot.resources_key) self.assertEqual('/servers/%(server_id)s/os-volume_attachments', sot.base_path) - self.assertEqual('compute', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/database/test_database_service.py b/openstack/tests/unit/database/test_database_service.py deleted file mode 100644 index 85c57d887..000000000 --- a/openstack/tests/unit/database/test_database_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.database import database_service - - -class TestDatabaseService(base.TestCase): - - def test_service(self): - sot = database_service.DatabaseService() - self.assertEqual('database', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v1', sot.valid_versions[0].module) - self.assertEqual('v1', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/database/v1/test_database.py b/openstack/tests/unit/database/v1/test_database.py index 477672a36..08df9e118 100644 --- a/openstack/tests/unit/database/v1/test_database.py +++ b/openstack/tests/unit/database/v1/test_database.py @@ -33,7 +33,6 @@ class TestDatabase(base.TestCase): self.assertEqual('databases', sot.resources_key) path = '/instances/%(instance_id)s/databases' self.assertEqual(path, sot.base_path) - self.assertEqual('database', sot.service.service_type) self.assertTrue(sot.allow_list) self.assertTrue(sot.allow_create) self.assertFalse(sot.allow_fetch) diff --git a/openstack/tests/unit/database/v1/test_flavor.py b/openstack/tests/unit/database/v1/test_flavor.py index 82f850e6f..4fdd21f60 100644 --- a/openstack/tests/unit/database/v1/test_flavor.py +++ b/openstack/tests/unit/database/v1/test_flavor.py @@ -30,7 +30,6 @@ class TestFlavor(base.TestCase): self.assertEqual('flavor', sot.resource_key) self.assertEqual('flavors', sot.resources_key) self.assertEqual('/flavors', sot.base_path) - self.assertEqual('database', sot.service.service_type) self.assertTrue(sot.allow_list) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) diff --git a/openstack/tests/unit/database/v1/test_instance.py b/openstack/tests/unit/database/v1/test_instance.py index 8fd650ebb..98a8c8a54 100644 --- a/openstack/tests/unit/database/v1/test_instance.py +++ b/openstack/tests/unit/database/v1/test_instance.py @@ -38,7 +38,6 @@ class TestInstance(base.TestCase): self.assertEqual('instance', sot.resource_key) self.assertEqual('instances', sot.resources_key) self.assertEqual('/instances', sot.base_path) - self.assertEqual('database', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/database/v1/test_user.py b/openstack/tests/unit/database/v1/test_user.py index 5752024d7..ab4b63fe4 100644 --- a/openstack/tests/unit/database/v1/test_user.py +++ b/openstack/tests/unit/database/v1/test_user.py @@ -30,7 +30,6 @@ class TestUser(base.TestCase): self.assertEqual('user', sot.resource_key) self.assertEqual('users', sot.resources_key) self.assertEqual('/instances/%(instance_id)s/users', sot.base_path) - self.assertEqual('database', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/identity/test_identity_service.py b/openstack/tests/unit/identity/test_identity_service.py deleted file mode 100644 index 47125928b..000000000 --- a/openstack/tests/unit/identity/test_identity_service.py +++ /dev/null @@ -1,37 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.identity import identity_service - - -class TestIdentityService(base.TestCase): - - def test_regular_service(self): - sot = identity_service.IdentityService() - self.assertEqual('identity', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(2, len(sot.valid_versions)) - self.assertEqual('v3', sot.valid_versions[0].module) - self.assertEqual('v3', sot.valid_versions[0].path) - self.assertEqual('v2', sot.valid_versions[1].module) - self.assertEqual('v2', sot.valid_versions[1].path) - - def test_admin_service(self): - sot = identity_service.AdminService() - self.assertEqual('identity', sot.service_type) - self.assertEqual('admin', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) diff --git a/openstack/tests/unit/identity/test_version.py b/openstack/tests/unit/identity/test_version.py index c18eaadef..c4351ebd9 100644 --- a/openstack/tests/unit/identity/test_version.py +++ b/openstack/tests/unit/identity/test_version.py @@ -31,7 +31,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v2/test_extension.py b/openstack/tests/unit/identity/v2/test_extension.py index 557d3fb54..d7ff73145 100644 --- a/openstack/tests/unit/identity/v2/test_extension.py +++ b/openstack/tests/unit/identity/v2/test_extension.py @@ -33,7 +33,6 @@ class TestExtension(base.TestCase): self.assertEqual('extension', sot.resource_key) self.assertEqual('extensions', sot.resources_key) self.assertEqual('/extensions', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v2/test_role.py b/openstack/tests/unit/identity/v2/test_role.py index 02912a9f2..bb7b9f79a 100644 --- a/openstack/tests/unit/identity/v2/test_role.py +++ b/openstack/tests/unit/identity/v2/test_role.py @@ -30,7 +30,6 @@ class TestRole(base.TestCase): self.assertEqual('role', sot.resource_key) self.assertEqual('roles', sot.resources_key) self.assertEqual('/OS-KSADM/roles', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v2/test_tenant.py b/openstack/tests/unit/identity/v2/test_tenant.py index 3c7fd7bf4..31847538f 100644 --- a/openstack/tests/unit/identity/v2/test_tenant.py +++ b/openstack/tests/unit/identity/v2/test_tenant.py @@ -30,7 +30,6 @@ class TestTenant(base.TestCase): self.assertEqual('tenant', sot.resource_key) self.assertEqual('tenants', sot.resources_key) self.assertEqual('/tenants', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v2/test_user.py b/openstack/tests/unit/identity/v2/test_user.py index 0c495c2e5..300b20b0d 100644 --- a/openstack/tests/unit/identity/v2/test_user.py +++ b/openstack/tests/unit/identity/v2/test_user.py @@ -30,7 +30,6 @@ class TestUser(base.TestCase): self.assertEqual('user', sot.resource_key) self.assertEqual('users', sot.resources_key) self.assertEqual('/users', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_credential.py b/openstack/tests/unit/identity/v3/test_credential.py index 7f6d2dc1d..0e073f97c 100644 --- a/openstack/tests/unit/identity/v3/test_credential.py +++ b/openstack/tests/unit/identity/v3/test_credential.py @@ -31,7 +31,6 @@ class TestCredential(base.TestCase): self.assertEqual('credential', sot.resource_key) self.assertEqual('credentials', sot.resources_key) self.assertEqual('/credentials', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_domain.py b/openstack/tests/unit/identity/v3/test_domain.py index 33ec294dd..782e3f277 100644 --- a/openstack/tests/unit/identity/v3/test_domain.py +++ b/openstack/tests/unit/identity/v3/test_domain.py @@ -31,7 +31,6 @@ class TestDomain(base.TestCase): self.assertEqual('domain', sot.resource_key) self.assertEqual('domains', sot.resources_key) self.assertEqual('/domains', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_endpoint.py b/openstack/tests/unit/identity/v3/test_endpoint.py index 090c0b346..da5a4e818 100644 --- a/openstack/tests/unit/identity/v3/test_endpoint.py +++ b/openstack/tests/unit/identity/v3/test_endpoint.py @@ -33,7 +33,6 @@ class TestEndpoint(base.TestCase): self.assertEqual('endpoint', sot.resource_key) self.assertEqual('endpoints', sot.resources_key) self.assertEqual('/endpoints', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_group.py b/openstack/tests/unit/identity/v3/test_group.py index 515ee9c3b..bc308e6ce 100644 --- a/openstack/tests/unit/identity/v3/test_group.py +++ b/openstack/tests/unit/identity/v3/test_group.py @@ -30,7 +30,6 @@ class TestGroup(base.TestCase): self.assertEqual('group', sot.resource_key) self.assertEqual('groups', sot.resources_key) self.assertEqual('/groups', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_policy.py b/openstack/tests/unit/identity/v3/test_policy.py index 885d7b002..4bd2256f8 100644 --- a/openstack/tests/unit/identity/v3/test_policy.py +++ b/openstack/tests/unit/identity/v3/test_policy.py @@ -32,7 +32,6 @@ class TestPolicy(base.TestCase): self.assertEqual('policy', sot.resource_key) self.assertEqual('policies', sot.resources_key) self.assertEqual('/policies', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_project.py b/openstack/tests/unit/identity/v3/test_project.py index 62d3437a3..6f2c1d145 100644 --- a/openstack/tests/unit/identity/v3/test_project.py +++ b/openstack/tests/unit/identity/v3/test_project.py @@ -33,7 +33,6 @@ class TestProject(base.TestCase): self.assertEqual('project', sot.resource_key) self.assertEqual('projects', sot.resources_key) self.assertEqual('/projects', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -71,7 +70,6 @@ class TestUserProject(base.TestCase): self.assertEqual('project', sot.resource_key) self.assertEqual('projects', sot.resources_key) self.assertEqual('/users/%(user_id)s/projects', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_region.py b/openstack/tests/unit/identity/v3/test_region.py index 6657ca5cb..1ac7a745b 100644 --- a/openstack/tests/unit/identity/v3/test_region.py +++ b/openstack/tests/unit/identity/v3/test_region.py @@ -30,7 +30,6 @@ class TestRegion(base.TestCase): self.assertEqual('region', sot.resource_key) self.assertEqual('regions', sot.resources_key) self.assertEqual('/regions', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_role.py b/openstack/tests/unit/identity/v3/test_role.py index a32e616cd..4a67d6dc4 100644 --- a/openstack/tests/unit/identity/v3/test_role.py +++ b/openstack/tests/unit/identity/v3/test_role.py @@ -29,7 +29,6 @@ class TestRole(base.TestCase): self.assertEqual('role', sot.resource_key) self.assertEqual('roles', sot.resources_key) self.assertEqual('/roles', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_role_assignment.py b/openstack/tests/unit/identity/v3/test_role_assignment.py index c54df84bd..fac7a6dcf 100644 --- a/openstack/tests/unit/identity/v3/test_role_assignment.py +++ b/openstack/tests/unit/identity/v3/test_role_assignment.py @@ -32,7 +32,6 @@ class TestRoleAssignment(base.TestCase): self.assertEqual('role_assignments', sot.resources_key) self.assertEqual('/role_assignments', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_list) def test_make_it(self): diff --git a/openstack/tests/unit/identity/v3/test_role_domain_group_assignment.py b/openstack/tests/unit/identity/v3/test_role_domain_group_assignment.py index 92b6539a0..764da5035 100644 --- a/openstack/tests/unit/identity/v3/test_role_domain_group_assignment.py +++ b/openstack/tests/unit/identity/v3/test_role_domain_group_assignment.py @@ -32,7 +32,6 @@ class TestRoleDomainGroupAssignment(base.TestCase): self.assertEqual('roles', sot.resources_key) self.assertEqual('/domains/%(domain_id)s/groups/%(group_id)s/roles', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_list) def test_make_it(self): diff --git a/openstack/tests/unit/identity/v3/test_role_domain_user_assignment.py b/openstack/tests/unit/identity/v3/test_role_domain_user_assignment.py index bd19a8daf..185c89ce8 100644 --- a/openstack/tests/unit/identity/v3/test_role_domain_user_assignment.py +++ b/openstack/tests/unit/identity/v3/test_role_domain_user_assignment.py @@ -32,7 +32,6 @@ class TestRoleDomainUserAssignment(base.TestCase): self.assertEqual('roles', sot.resources_key) self.assertEqual('/domains/%(domain_id)s/users/%(user_id)s/roles', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_list) def test_make_it(self): diff --git a/openstack/tests/unit/identity/v3/test_role_project_group_assignment.py b/openstack/tests/unit/identity/v3/test_role_project_group_assignment.py index 4070909a9..28351652e 100644 --- a/openstack/tests/unit/identity/v3/test_role_project_group_assignment.py +++ b/openstack/tests/unit/identity/v3/test_role_project_group_assignment.py @@ -32,7 +32,6 @@ class TestRoleProjectGroupAssignment(base.TestCase): self.assertEqual('roles', sot.resources_key) self.assertEqual('/projects/%(project_id)s/groups/%(group_id)s/roles', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_list) def test_make_it(self): diff --git a/openstack/tests/unit/identity/v3/test_role_project_user_assignment.py b/openstack/tests/unit/identity/v3/test_role_project_user_assignment.py index c04ffdaa1..61e1b8963 100644 --- a/openstack/tests/unit/identity/v3/test_role_project_user_assignment.py +++ b/openstack/tests/unit/identity/v3/test_role_project_user_assignment.py @@ -32,7 +32,6 @@ class TestRoleProjectUserAssignment(base.TestCase): self.assertEqual('roles', sot.resources_key) self.assertEqual('/projects/%(project_id)s/users/%(user_id)s/roles', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_list) def test_make_it(self): diff --git a/openstack/tests/unit/identity/v3/test_service.py b/openstack/tests/unit/identity/v3/test_service.py index d6716f3f6..a6da1fddd 100644 --- a/openstack/tests/unit/identity/v3/test_service.py +++ b/openstack/tests/unit/identity/v3/test_service.py @@ -32,7 +32,6 @@ class TestService(base.TestCase): self.assertEqual('service', sot.resource_key) self.assertEqual('services', sot.resources_key) self.assertEqual('/services', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/identity/v3/test_trust.py b/openstack/tests/unit/identity/v3/test_trust.py index 7028e0af0..63c38a70c 100644 --- a/openstack/tests/unit/identity/v3/test_trust.py +++ b/openstack/tests/unit/identity/v3/test_trust.py @@ -39,7 +39,6 @@ class TestTrust(base.TestCase): self.assertEqual('trust', sot.resource_key) self.assertEqual('trusts', sot.resources_key) self.assertEqual('/OS-TRUST/trusts', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_delete) diff --git a/openstack/tests/unit/identity/v3/test_user.py b/openstack/tests/unit/identity/v3/test_user.py index f75eb6e7d..9d8040467 100644 --- a/openstack/tests/unit/identity/v3/test_user.py +++ b/openstack/tests/unit/identity/v3/test_user.py @@ -36,7 +36,6 @@ class TestUser(base.TestCase): self.assertEqual('user', sot.resource_key) self.assertEqual('users', sot.resources_key) self.assertEqual('/users', sot.base_path) - self.assertEqual('identity', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/image/test_image_service.py b/openstack/tests/unit/image/test_image_service.py deleted file mode 100644 index 236227430..000000000 --- a/openstack/tests/unit/image/test_image_service.py +++ /dev/null @@ -1,30 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.image import image_service - - -class TestImageService(base.TestCase): - - def test_service(self): - sot = image_service.ImageService() - self.assertEqual('image', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(2, len(sot.valid_versions)) - self.assertEqual('v2', sot.valid_versions[0].module) - self.assertEqual('v2', sot.valid_versions[0].path) - self.assertEqual('v1', sot.valid_versions[1].module) - self.assertEqual('v1', sot.valid_versions[1].path) diff --git a/openstack/tests/unit/image/v1/test_image.py b/openstack/tests/unit/image/v1/test_image.py index 256f9892c..133c4232e 100644 --- a/openstack/tests/unit/image/v1/test_image.py +++ b/openstack/tests/unit/image/v1/test_image.py @@ -43,7 +43,6 @@ class TestImage(base.TestCase): self.assertEqual('image', sot.resource_key) self.assertEqual('images', sot.resources_key) self.assertEqual('/images', sot.base_path) - self.assertEqual('image', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/image/v2/test_image.py b/openstack/tests/unit/image/v2/test_image.py index e2d1ba1b1..94934122a 100644 --- a/openstack/tests/unit/image/v2/test_image.py +++ b/openstack/tests/unit/image/v2/test_image.py @@ -110,7 +110,6 @@ class TestImage(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('images', sot.resources_key) self.assertEqual('/images', sot.base_path) - self.assertEqual('image', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/image/v2/test_member.py b/openstack/tests/unit/image/v2/test_member.py index e0e2a6fe0..7fc603862 100644 --- a/openstack/tests/unit/image/v2/test_member.py +++ b/openstack/tests/unit/image/v2/test_member.py @@ -30,7 +30,6 @@ class TestMember(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('members', sot.resources_key) self.assertEqual('/images/%(image_id)s/members', sot.base_path) - self.assertEqual('image', sot.service.service_type) self.assertEqual('member', sot._alternate_id()) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) diff --git a/openstack/tests/unit/instance_ha/test_instance_ha_service.py b/openstack/tests/unit/instance_ha/test_instance_ha_service.py deleted file mode 100644 index fa46986dd..000000000 --- a/openstack/tests/unit/instance_ha/test_instance_ha_service.py +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright(c) 2018 Nippon Telegraph and Telephone Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from openstack.tests.unit import base - -from openstack.instance_ha import instance_ha_service - - -class TestInstanceHaService(base.TestCase): - - def test_service(self): - sot = instance_ha_service.InstanceHaService() - self.assertEqual("ha", sot.service_type) - self.assertEqual("public", sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual("v1", sot.valid_versions[0].module) - self.assertEqual("v1", sot.valid_versions[0].path) diff --git a/openstack/tests/unit/instance_ha/v1/test_host.py b/openstack/tests/unit/instance_ha/v1/test_host.py index 2d20bdfdc..4b388a663 100644 --- a/openstack/tests/unit/instance_ha/v1/test_host.py +++ b/openstack/tests/unit/instance_ha/v1/test_host.py @@ -44,7 +44,6 @@ class TestHost(base.TestCase): self.assertEqual("host", sot.resource_key) self.assertEqual("hosts", sot.resources_key) self.assertEqual("/segments/%(segment_id)s/hosts", sot.base_path) - self.assertEqual("ha", sot.service.service_type) self.assertTrue(sot.allow_list) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_create) diff --git a/openstack/tests/unit/instance_ha/v1/test_notification.py b/openstack/tests/unit/instance_ha/v1/test_notification.py index e5566404f..c5e94a03f 100644 --- a/openstack/tests/unit/instance_ha/v1/test_notification.py +++ b/openstack/tests/unit/instance_ha/v1/test_notification.py @@ -44,7 +44,6 @@ class TestNotification(base.TestCase): self.assertEqual("notification", sot.resource_key) self.assertEqual("notifications", sot.resources_key) self.assertEqual("/notifications", sot.base_path) - self.assertEqual("ha", sot.service.service_type) self.assertTrue(sot.allow_list) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_create) diff --git a/openstack/tests/unit/instance_ha/v1/test_segment.py b/openstack/tests/unit/instance_ha/v1/test_segment.py index 7659eb8e1..e38fefae4 100644 --- a/openstack/tests/unit/instance_ha/v1/test_segment.py +++ b/openstack/tests/unit/instance_ha/v1/test_segment.py @@ -36,7 +36,6 @@ class TestSegment(base.TestCase): self.assertEqual("segment", sot.resource_key) self.assertEqual("segments", sot.resources_key) self.assertEqual("/segments", sot.base_path) - self.assertEqual("ha", sot.service.service_type) self.assertTrue(sot.allow_list) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_create) diff --git a/openstack/tests/unit/key_manager/test_key_management_service.py b/openstack/tests/unit/key_manager/test_key_management_service.py deleted file mode 100644 index 4024f2ab7..000000000 --- a/openstack/tests/unit/key_manager/test_key_management_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.key_manager import key_manager_service - - -class TestKeyManagerService(base.TestCase): - - def test_service(self): - sot = key_manager_service.KeyManagerService() - self.assertEqual('key-manager', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v1', sot.valid_versions[0].module) - self.assertEqual('v1', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/key_manager/v1/test_container.py b/openstack/tests/unit/key_manager/v1/test_container.py index ffc395a47..2095e6c41 100644 --- a/openstack/tests/unit/key_manager/v1/test_container.py +++ b/openstack/tests/unit/key_manager/v1/test_container.py @@ -35,7 +35,6 @@ class TestContainer(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('containers', sot.resources_key) self.assertEqual('/containers', sot.base_path) - self.assertEqual('key-manager', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/key_manager/v1/test_order.py b/openstack/tests/unit/key_manager/v1/test_order.py index fd246e418..de357678a 100644 --- a/openstack/tests/unit/key_manager/v1/test_order.py +++ b/openstack/tests/unit/key_manager/v1/test_order.py @@ -38,7 +38,6 @@ class TestOrder(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('orders', sot.resources_key) self.assertEqual('/orders', sot.base_path) - self.assertEqual('key-manager', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/key_manager/v1/test_secret.py b/openstack/tests/unit/key_manager/v1/test_secret.py index ae4154c4d..96a43e949 100644 --- a/openstack/tests/unit/key_manager/v1/test_secret.py +++ b/openstack/tests/unit/key_manager/v1/test_secret.py @@ -42,7 +42,6 @@ class TestSecret(base.TestCase): self.assertIsNone(sot.resource_key) self.assertEqual('secrets', sot.resources_key) self.assertEqual('/secrets', sot.base_path) - self.assertEqual('key-manager', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/load_balancer/test_health_monitor.py b/openstack/tests/unit/load_balancer/test_health_monitor.py index 0840f44a5..710a8e79b 100644 --- a/openstack/tests/unit/load_balancer/test_health_monitor.py +++ b/openstack/tests/unit/load_balancer/test_health_monitor.py @@ -44,8 +44,7 @@ class TestPoolHealthMonitor(base.TestCase): test_hm = health_monitor.HealthMonitor() self.assertEqual('healthmonitor', test_hm.resource_key) self.assertEqual('healthmonitors', test_hm.resources_key) - self.assertEqual('/v2.0/lbaas/healthmonitors', test_hm.base_path) - self.assertEqual('load-balancer', test_hm.service.service_type) + self.assertEqual('/lbaas/healthmonitors', test_hm.base_path) self.assertTrue(test_hm.allow_create) self.assertTrue(test_hm.allow_fetch) self.assertTrue(test_hm.allow_commit) diff --git a/openstack/tests/unit/load_balancer/test_l7policy.py b/openstack/tests/unit/load_balancer/test_l7policy.py index 91a62ff0a..f8001ad69 100644 --- a/openstack/tests/unit/load_balancer/test_l7policy.py +++ b/openstack/tests/unit/load_balancer/test_l7policy.py @@ -40,8 +40,7 @@ class TestL7Policy(base.TestCase): test_l7_policy = l7_policy.L7Policy() self.assertEqual('l7policy', test_l7_policy.resource_key) self.assertEqual('l7policies', test_l7_policy.resources_key) - self.assertEqual('/v2.0/lbaas/l7policies', test_l7_policy.base_path) - self.assertEqual('load-balancer', test_l7_policy.service.service_type) + self.assertEqual('/lbaas/l7policies', test_l7_policy.base_path) self.assertTrue(test_l7_policy.allow_create) self.assertTrue(test_l7_policy.allow_fetch) self.assertTrue(test_l7_policy.allow_commit) diff --git a/openstack/tests/unit/load_balancer/test_l7rule.py b/openstack/tests/unit/load_balancer/test_l7rule.py index b46f0b3c1..c67615a5c 100644 --- a/openstack/tests/unit/load_balancer/test_l7rule.py +++ b/openstack/tests/unit/load_balancer/test_l7rule.py @@ -38,9 +38,8 @@ class TestL7Rule(base.TestCase): test_l7rule = l7_rule.L7Rule() self.assertEqual('rule', test_l7rule.resource_key) self.assertEqual('rules', test_l7rule.resources_key) - self.assertEqual('/v2.0/lbaas/l7policies/%(l7policy_id)s/rules', + self.assertEqual('/lbaas/l7policies/%(l7policy_id)s/rules', test_l7rule.base_path) - self.assertEqual('load-balancer', test_l7rule.service.service_type) self.assertTrue(test_l7rule.allow_create) self.assertTrue(test_l7rule.allow_fetch) self.assertTrue(test_l7rule.allow_commit) diff --git a/openstack/tests/unit/load_balancer/test_listener.py b/openstack/tests/unit/load_balancer/test_listener.py index b104d8e84..93aad261b 100644 --- a/openstack/tests/unit/load_balancer/test_listener.py +++ b/openstack/tests/unit/load_balancer/test_listener.py @@ -49,8 +49,7 @@ class TestListener(base.TestCase): test_listener = listener.Listener() self.assertEqual('listener', test_listener.resource_key) self.assertEqual('listeners', test_listener.resources_key) - self.assertEqual('/v2.0/lbaas/listeners', test_listener.base_path) - self.assertEqual('load-balancer', test_listener.service.service_type) + self.assertEqual('/lbaas/listeners', test_listener.base_path) self.assertTrue(test_listener.allow_create) self.assertTrue(test_listener.allow_fetch) self.assertTrue(test_listener.allow_commit) diff --git a/openstack/tests/unit/load_balancer/test_load_balancer.py b/openstack/tests/unit/load_balancer/test_load_balancer.py index 7a96179e4..4c2ae6d59 100644 --- a/openstack/tests/unit/load_balancer/test_load_balancer.py +++ b/openstack/tests/unit/load_balancer/test_load_balancer.py @@ -45,10 +45,8 @@ class TestLoadBalancer(base.TestCase): test_load_balancer = load_balancer.LoadBalancer() self.assertEqual('loadbalancer', test_load_balancer.resource_key) self.assertEqual('loadbalancers', test_load_balancer.resources_key) - self.assertEqual('/v2.0/lbaas/loadbalancers', + self.assertEqual('/lbaas/loadbalancers', test_load_balancer.base_path) - self.assertEqual('load-balancer', - test_load_balancer.service.service_type) self.assertTrue(test_load_balancer.allow_create) self.assertTrue(test_load_balancer.allow_fetch) self.assertTrue(test_load_balancer.allow_delete) @@ -94,7 +92,7 @@ class TestLoadBalancer(base.TestCase): sot._translate_response = mock.Mock() sot.delete(sess) - url = 'v2.0/lbaas/loadbalancers/%(lb)s' % { + url = 'lbaas/loadbalancers/%(lb)s' % { 'lb': EXAMPLE['id'] } headers = {'Accept': ''} @@ -118,7 +116,7 @@ class TestLoadBalancer(base.TestCase): sot._translate_response = mock.Mock() sot.delete(sess) - url = 'v2.0/lbaas/loadbalancers/%(lb)s' % { + url = 'lbaas/loadbalancers/%(lb)s' % { 'lb': EXAMPLE['id'] } headers = {'Accept': ''} diff --git a/openstack/tests/unit/load_balancer/test_load_balancer_service.py b/openstack/tests/unit/load_balancer/test_load_balancer_service.py deleted file mode 100644 index 9d9a31f83..000000000 --- a/openstack/tests/unit/load_balancer/test_load_balancer_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.load_balancer import load_balancer_service as lb_service - - -class TestLoadBalancingService(base.TestCase): - - def test_service(self): - sot = lb_service.LoadBalancerService() - self.assertEqual('load-balancer', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v2', sot.valid_versions[0].module) - self.assertEqual('v2.0', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/load_balancer/test_member.py b/openstack/tests/unit/load_balancer/test_member.py index 0d40da371..4efcadc40 100644 --- a/openstack/tests/unit/load_balancer/test_member.py +++ b/openstack/tests/unit/load_balancer/test_member.py @@ -38,9 +38,8 @@ class TestPoolMember(base.TestCase): test_member = member.Member() self.assertEqual('member', test_member.resource_key) self.assertEqual('members', test_member.resources_key) - self.assertEqual('/v2.0/lbaas/pools/%(pool_id)s/members', + self.assertEqual('/lbaas/pools/%(pool_id)s/members', test_member.base_path) - self.assertEqual('load-balancer', test_member.service.service_type) self.assertTrue(test_member.allow_create) self.assertTrue(test_member.allow_fetch) self.assertTrue(test_member.allow_commit) diff --git a/openstack/tests/unit/load_balancer/test_pool.py b/openstack/tests/unit/load_balancer/test_pool.py index fe8a81338..5465798fe 100644 --- a/openstack/tests/unit/load_balancer/test_pool.py +++ b/openstack/tests/unit/load_balancer/test_pool.py @@ -44,9 +44,7 @@ class TestPool(base.TestCase): test_pool = pool.Pool() self.assertEqual('pool', test_pool.resource_key) self.assertEqual('pools', test_pool.resources_key) - self.assertEqual('/v2.0/lbaas/pools', test_pool.base_path) - self.assertEqual('load-balancer', - test_pool.service.service_type) + self.assertEqual('/lbaas/pools', test_pool.base_path) self.assertTrue(test_pool.allow_create) self.assertTrue(test_pool.allow_fetch) self.assertTrue(test_pool.allow_delete) diff --git a/openstack/tests/unit/load_balancer/test_version.py b/openstack/tests/unit/load_balancer/test_version.py index e09a57faa..0e141dfce 100644 --- a/openstack/tests/unit/load_balancer/test_version.py +++ b/openstack/tests/unit/load_balancer/test_version.py @@ -29,7 +29,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('load-balancer', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/message/test_message_service.py b/openstack/tests/unit/message/test_message_service.py deleted file mode 100644 index d208c4706..000000000 --- a/openstack/tests/unit/message/test_message_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.message import message_service - - -class TestMessageService(base.TestCase): - - def test_service(self): - sot = message_service.MessageService() - self.assertEqual('messaging', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v2', sot.valid_versions[0].module) - self.assertEqual('v2', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/message/test_version.py b/openstack/tests/unit/message/test_version.py index f9a3669fb..6e3e9bc72 100644 --- a/openstack/tests/unit/message/test_version.py +++ b/openstack/tests/unit/message/test_version.py @@ -29,7 +29,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('messaging', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/message/v2/test_claim.py b/openstack/tests/unit/message/v2/test_claim.py index 0ef520990..d2ebc1350 100644 --- a/openstack/tests/unit/message/v2/test_claim.py +++ b/openstack/tests/unit/message/v2/test_claim.py @@ -47,7 +47,6 @@ class TestClaim(base.TestCase): sot = claim.Claim() self.assertEqual("claims", sot.resources_key) self.assertEqual("/queues/%(queue_name)s/claims", sot.base_path) - self.assertEqual("messaging", sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_delete) diff --git a/openstack/tests/unit/message/v2/test_message.py b/openstack/tests/unit/message/v2/test_message.py index cbee7ea7d..d00af7c62 100644 --- a/openstack/tests/unit/message/v2/test_message.py +++ b/openstack/tests/unit/message/v2/test_message.py @@ -52,7 +52,6 @@ class TestMessage(base.TestCase): sot = message.Message() self.assertEqual('messages', sot.resources_key) self.assertEqual('/queues/%(queue_name)s/messages', sot.base_path) - self.assertEqual('messaging', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_delete) diff --git a/openstack/tests/unit/message/v2/test_queue.py b/openstack/tests/unit/message/v2/test_queue.py index c8277aac3..1183076f1 100644 --- a/openstack/tests/unit/message/v2/test_queue.py +++ b/openstack/tests/unit/message/v2/test_queue.py @@ -40,7 +40,6 @@ class TestQueue(base.TestCase): sot = queue.Queue() self.assertEqual('queues', sot.resources_key) self.assertEqual('/queues', sot.base_path) - self.assertEqual('messaging', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_delete) diff --git a/openstack/tests/unit/message/v2/test_subscription.py b/openstack/tests/unit/message/v2/test_subscription.py index d465a7f05..c334a3526 100644 --- a/openstack/tests/unit/message/v2/test_subscription.py +++ b/openstack/tests/unit/message/v2/test_subscription.py @@ -53,7 +53,6 @@ class TestSubscription(base.TestCase): sot = subscription.Subscription() self.assertEqual("subscriptions", sot.resources_key) self.assertEqual("/queues/%(queue_name)s/subscriptions", sot.base_path) - self.assertEqual("messaging", sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_delete) diff --git a/openstack/tests/unit/network/test_network_service.py b/openstack/tests/unit/network/test_network_service.py deleted file mode 100644 index 8ba9407c3..000000000 --- a/openstack/tests/unit/network/test_network_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.network import network_service - - -class TestNetworkService(base.TestCase): - - def test_service(self): - sot = network_service.NetworkService() - self.assertEqual('network', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v2', sot.valid_versions[0].module) - self.assertEqual('v2.0', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/network/test_version.py b/openstack/tests/unit/network/test_version.py index 290d93dbf..22b6e1028 100644 --- a/openstack/tests/unit/network/test_version.py +++ b/openstack/tests/unit/network/test_version.py @@ -29,7 +29,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_address_scope.py b/openstack/tests/unit/network/v2/test_address_scope.py index 4dd4cb0d3..48103fd72 100644 --- a/openstack/tests/unit/network/v2/test_address_scope.py +++ b/openstack/tests/unit/network/v2/test_address_scope.py @@ -31,7 +31,6 @@ class TestAddressScope(base.TestCase): self.assertEqual('address_scope', sot.resource_key) self.assertEqual('address_scopes', sot.resources_key) self.assertEqual('/address-scopes', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_agent.py b/openstack/tests/unit/network/v2/test_agent.py index 43fe862d2..f21880470 100644 --- a/openstack/tests/unit/network/v2/test_agent.py +++ b/openstack/tests/unit/network/v2/test_agent.py @@ -41,7 +41,6 @@ class TestAgent(base.TestCase): self.assertEqual('agent', sot.resource_key) self.assertEqual('agents', sot.resources_key) self.assertEqual('/agents', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -128,7 +127,6 @@ class TestNetworkHostingDHCPAgent(base.TestCase): self.assertEqual('agents', net.resources_key) self.assertEqual('/networks/%(network_id)s/dhcp-agents', net.base_path) self.assertEqual('dhcp-agent', net.resource_name) - self.assertEqual('network', net.service.service_type) self.assertFalse(net.allow_create) self.assertTrue(net.allow_fetch) self.assertFalse(net.allow_commit) @@ -144,7 +142,6 @@ class TestRouterL3Agent(base.TestCase): self.assertEqual('agents', sot.resources_key) self.assertEqual('/routers/%(router_id)s/l3-agents', sot.base_path) self.assertEqual('l3-agent', sot.resource_name) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_retrieve) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_availability_zone.py b/openstack/tests/unit/network/v2/test_availability_zone.py index 21b3e04c5..8b9fc79c0 100644 --- a/openstack/tests/unit/network/v2/test_availability_zone.py +++ b/openstack/tests/unit/network/v2/test_availability_zone.py @@ -30,7 +30,6 @@ class TestAvailabilityZone(base.TestCase): self.assertEqual('availability_zone', sot.resource_key) self.assertEqual('availability_zones', sot.resources_key) self.assertEqual('/availability_zones', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_extension.py b/openstack/tests/unit/network/v2/test_extension.py index 88fe38c39..a2f67e1f2 100644 --- a/openstack/tests/unit/network/v2/test_extension.py +++ b/openstack/tests/unit/network/v2/test_extension.py @@ -31,7 +31,6 @@ class TestExtension(base.TestCase): self.assertEqual('extension', sot.resource_key) self.assertEqual('extensions', sot.resources_key) self.assertEqual('/extensions', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_firewall_group.py b/openstack/tests/unit/network/v2/test_firewall_group.py index a9c7925b4..77749f20c 100644 --- a/openstack/tests/unit/network/v2/test_firewall_group.py +++ b/openstack/tests/unit/network/v2/test_firewall_group.py @@ -38,7 +38,6 @@ class TestFirewallGroup(testtools.TestCase): self.assertEqual('firewall_group', sot.resource_key) self.assertEqual('firewall_groups', sot.resources_key) self.assertEqual('/fwaas/firewall_groups', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_firewall_policy.py b/openstack/tests/unit/network/v2/test_firewall_policy.py index f29ec1cce..bf5b60fea 100644 --- a/openstack/tests/unit/network/v2/test_firewall_policy.py +++ b/openstack/tests/unit/network/v2/test_firewall_policy.py @@ -35,7 +35,6 @@ class TestFirewallPolicy(testtools.TestCase): self.assertEqual('firewall_policy', sot.resource_key) self.assertEqual('firewall_policies', sot.resources_key) self.assertEqual('/fwaas/firewall_policies', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_firewall_rule.py b/openstack/tests/unit/network/v2/test_firewall_rule.py index 8865a0ff3..d00f060cd 100644 --- a/openstack/tests/unit/network/v2/test_firewall_rule.py +++ b/openstack/tests/unit/network/v2/test_firewall_rule.py @@ -40,7 +40,6 @@ class TestFirewallRule(testtools.TestCase): self.assertEqual('firewall_rule', sot.resource_key) self.assertEqual('firewall_rules', sot.resources_key) self.assertEqual('/fwaas/firewall_rules', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_flavor.py b/openstack/tests/unit/network/v2/test_flavor.py index 414edde7d..f516c667f 100644 --- a/openstack/tests/unit/network/v2/test_flavor.py +++ b/openstack/tests/unit/network/v2/test_flavor.py @@ -38,7 +38,6 @@ class TestFlavor(base.TestCase): self.assertEqual('flavor', flavors.resource_key) self.assertEqual('flavors', flavors.resources_key) self.assertEqual('/flavors', flavors.base_path) - self.assertEqual('network', flavors.service.service_type) self.assertTrue(flavors.allow_create) self.assertTrue(flavors.allow_fetch) self.assertTrue(flavors.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_floating_ip.py b/openstack/tests/unit/network/v2/test_floating_ip.py index 3912733ff..77cc2002e 100644 --- a/openstack/tests/unit/network/v2/test_floating_ip.py +++ b/openstack/tests/unit/network/v2/test_floating_ip.py @@ -45,7 +45,6 @@ class TestFloatingIP(base.TestCase): self.assertEqual('floatingip', sot.resource_key) self.assertEqual('floatingips', sot.resources_key) self.assertEqual('/floatingips', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_health_monitor.py b/openstack/tests/unit/network/v2/test_health_monitor.py index 82454aff6..5acfdda5d 100644 --- a/openstack/tests/unit/network/v2/test_health_monitor.py +++ b/openstack/tests/unit/network/v2/test_health_monitor.py @@ -39,7 +39,6 @@ class TestHealthMonitor(base.TestCase): self.assertEqual('healthmonitor', sot.resource_key) self.assertEqual('healthmonitors', sot.resources_key) self.assertEqual('/lbaas/healthmonitors', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_listener.py b/openstack/tests/unit/network/v2/test_listener.py index 2181046c2..15f598e83 100644 --- a/openstack/tests/unit/network/v2/test_listener.py +++ b/openstack/tests/unit/network/v2/test_listener.py @@ -39,7 +39,6 @@ class TestListener(base.TestCase): self.assertEqual('listener', sot.resource_key) self.assertEqual('listeners', sot.resources_key) self.assertEqual('/lbaas/listeners', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_load_balancer.py b/openstack/tests/unit/network/v2/test_load_balancer.py index 755bc3437..4590f513d 100644 --- a/openstack/tests/unit/network/v2/test_load_balancer.py +++ b/openstack/tests/unit/network/v2/test_load_balancer.py @@ -39,7 +39,6 @@ class TestLoadBalancer(base.TestCase): self.assertEqual('loadbalancer', sot.resource_key) self.assertEqual('loadbalancers', sot.resources_key) self.assertEqual('/lbaas/loadbalancers', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_metering_label.py b/openstack/tests/unit/network/v2/test_metering_label.py index 6e80b3dbb..8dc4a4a3b 100644 --- a/openstack/tests/unit/network/v2/test_metering_label.py +++ b/openstack/tests/unit/network/v2/test_metering_label.py @@ -31,7 +31,6 @@ class TestMeteringLabel(base.TestCase): self.assertEqual('metering_label', sot.resource_key) self.assertEqual('metering_labels', sot.resources_key) self.assertEqual('/metering/metering-labels', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_metering_label_rule.py b/openstack/tests/unit/network/v2/test_metering_label_rule.py index d672ecb02..ce3057e26 100644 --- a/openstack/tests/unit/network/v2/test_metering_label_rule.py +++ b/openstack/tests/unit/network/v2/test_metering_label_rule.py @@ -32,7 +32,6 @@ class TestMeteringLabelRule(base.TestCase): self.assertEqual('metering_label_rule', sot.resource_key) self.assertEqual('metering_label_rules', sot.resources_key) self.assertEqual('/metering/metering-label-rules', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_network.py b/openstack/tests/unit/network/v2/test_network.py index 6974ebacc..b6e2d637b 100644 --- a/openstack/tests/unit/network/v2/test_network.py +++ b/openstack/tests/unit/network/v2/test_network.py @@ -52,7 +52,6 @@ class TestNetwork(base.TestCase): self.assertEqual('network', sot.resource_key) self.assertEqual('networks', sot.resources_key) self.assertEqual('/networks', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -127,7 +126,6 @@ class TestDHCPAgentHostingNetwork(base.TestCase): self.assertEqual('networks', net.resources_key) self.assertEqual('/agents/%(agent_id)s/dhcp-networks', net.base_path) self.assertEqual('dhcp-network', net.resource_name) - self.assertEqual('network', net.service.service_type) self.assertFalse(net.allow_create) self.assertTrue(net.allow_fetch) self.assertFalse(net.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_network_ip_availability.py b/openstack/tests/unit/network/v2/test_network_ip_availability.py index 90caacebb..0dc64b788 100644 --- a/openstack/tests/unit/network/v2/test_network_ip_availability.py +++ b/openstack/tests/unit/network/v2/test_network_ip_availability.py @@ -46,7 +46,6 @@ class TestNetworkIPAvailability(base.TestCase): self.assertEqual('network_ip_availabilities', sot.resources_key) self.assertEqual('/network-ip-availabilities', sot.base_path) self.assertEqual('network_name', sot.name_attribute) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_pool.py b/openstack/tests/unit/network/v2/test_pool.py index ac00277a4..acade83da 100644 --- a/openstack/tests/unit/network/v2/test_pool.py +++ b/openstack/tests/unit/network/v2/test_pool.py @@ -47,7 +47,6 @@ class TestPool(base.TestCase): self.assertEqual('pool', sot.resource_key) self.assertEqual('pools', sot.resources_key) self.assertEqual('/lbaas/pools', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_pool_member.py b/openstack/tests/unit/network/v2/test_pool_member.py index 742609295..156b6beec 100644 --- a/openstack/tests/unit/network/v2/test_pool_member.py +++ b/openstack/tests/unit/network/v2/test_pool_member.py @@ -35,7 +35,6 @@ class TestPoolMember(base.TestCase): self.assertEqual('member', sot.resource_key) self.assertEqual('members', sot.resources_key) self.assertEqual('/lbaas/pools/%(pool_id)s/members', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_port.py b/openstack/tests/unit/network/v2/test_port.py index 9984b3519..f2c798ddf 100644 --- a/openstack/tests/unit/network/v2/test_port.py +++ b/openstack/tests/unit/network/v2/test_port.py @@ -61,7 +61,6 @@ class TestPort(base.TestCase): self.assertEqual('port', sot.resource_key) self.assertEqual('ports', sot.resources_key) self.assertEqual('/ports', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_qos_bandwidth_limit_rule.py b/openstack/tests/unit/network/v2/test_qos_bandwidth_limit_rule.py index 57c53fbdd..cd9f7ef49 100644 --- a/openstack/tests/unit/network/v2/test_qos_bandwidth_limit_rule.py +++ b/openstack/tests/unit/network/v2/test_qos_bandwidth_limit_rule.py @@ -33,7 +33,6 @@ class TestQoSBandwidthLimitRule(base.TestCase): self.assertEqual( '/qos/policies/%(qos_policy_id)s/bandwidth_limit_rules', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_qos_dscp_marking_rule.py b/openstack/tests/unit/network/v2/test_qos_dscp_marking_rule.py index 6320c3ee2..9f2bb38b8 100644 --- a/openstack/tests/unit/network/v2/test_qos_dscp_marking_rule.py +++ b/openstack/tests/unit/network/v2/test_qos_dscp_marking_rule.py @@ -30,7 +30,6 @@ class TestQoSDSCPMarkingRule(base.TestCase): self.assertEqual('dscp_marking_rules', sot.resources_key) self.assertEqual('/qos/policies/%(qos_policy_id)s/dscp_marking_rules', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_qos_minimum_bandwidth_rule.py b/openstack/tests/unit/network/v2/test_qos_minimum_bandwidth_rule.py index 2e7c48f42..e18fa1d85 100644 --- a/openstack/tests/unit/network/v2/test_qos_minimum_bandwidth_rule.py +++ b/openstack/tests/unit/network/v2/test_qos_minimum_bandwidth_rule.py @@ -32,7 +32,6 @@ class TestQoSMinimumBandwidthRule(base.TestCase): self.assertEqual( '/qos/policies/%(qos_policy_id)s/minimum_bandwidth_rules', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_qos_policy.py b/openstack/tests/unit/network/v2/test_qos_policy.py index b2c96e2a0..eb3ba8a2d 100644 --- a/openstack/tests/unit/network/v2/test_qos_policy.py +++ b/openstack/tests/unit/network/v2/test_qos_policy.py @@ -34,7 +34,6 @@ class TestQoSPolicy(base.TestCase): self.assertEqual('policy', sot.resource_key) self.assertEqual('policies', sot.resources_key) self.assertEqual('/qos/policies', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_qos_rule_type.py b/openstack/tests/unit/network/v2/test_qos_rule_type.py index 58df91540..bd927c4bb 100644 --- a/openstack/tests/unit/network/v2/test_qos_rule_type.py +++ b/openstack/tests/unit/network/v2/test_qos_rule_type.py @@ -42,7 +42,6 @@ class TestQoSRuleType(base.TestCase): self.assertEqual('rule_type', sot.resource_key) self.assertEqual('rule_types', sot.resources_key) self.assertEqual('/qos/rule-types', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_quota.py b/openstack/tests/unit/network/v2/test_quota.py index 81c557dd0..e6b6b7a27 100644 --- a/openstack/tests/unit/network/v2/test_quota.py +++ b/openstack/tests/unit/network/v2/test_quota.py @@ -42,7 +42,6 @@ class TestQuota(base.TestCase): self.assertEqual('quota', sot.resource_key) self.assertEqual('quotas', sot.resources_key) self.assertEqual('/quotas', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -89,7 +88,6 @@ class TestQuotaDefault(base.TestCase): self.assertEqual('quota', sot.resource_key) self.assertEqual('quotas', sot.resources_key) self.assertEqual('/quotas/%(project)s/default', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_rbac_policy.py b/openstack/tests/unit/network/v2/test_rbac_policy.py index af8aa5d2c..d91531956 100644 --- a/openstack/tests/unit/network/v2/test_rbac_policy.py +++ b/openstack/tests/unit/network/v2/test_rbac_policy.py @@ -31,7 +31,6 @@ class TestRBACPolicy(base.TestCase): self.assertEqual('rbac_policy', sot.resource_key) self.assertEqual('rbac_policies', sot.resources_key) self.assertEqual('/rbac-policies', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_router.py b/openstack/tests/unit/network/v2/test_router.py index 5ba0cc272..aff651fc2 100644 --- a/openstack/tests/unit/network/v2/test_router.py +++ b/openstack/tests/unit/network/v2/test_router.py @@ -65,7 +65,6 @@ class TestRouter(base.TestCase): self.assertEqual('router', sot.resource_key) self.assertEqual('routers', sot.resources_key) self.assertEqual('/routers', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) @@ -213,7 +212,6 @@ class TestL3AgentRouters(base.TestCase): self.assertEqual('routers', sot.resources_key) self.assertEqual('/agents/%(agent_id)s/l3-routers', sot.base_path) self.assertEqual('l3-router', sot.resource_name) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_retrieve) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_security_group.py b/openstack/tests/unit/network/v2/test_security_group.py index d08a89019..90cfdd1c1 100644 --- a/openstack/tests/unit/network/v2/test_security_group.py +++ b/openstack/tests/unit/network/v2/test_security_group.py @@ -69,7 +69,6 @@ class TestSecurityGroup(base.TestCase): self.assertEqual('security_group', sot.resource_key) self.assertEqual('security_groups', sot.resources_key) self.assertEqual('/security-groups', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_security_group_rule.py b/openstack/tests/unit/network/v2/test_security_group_rule.py index fe347b686..c793c04ad 100644 --- a/openstack/tests/unit/network/v2/test_security_group_rule.py +++ b/openstack/tests/unit/network/v2/test_security_group_rule.py @@ -40,7 +40,6 @@ class TestSecurityGroupRule(base.TestCase): self.assertEqual('security_group_rule', sot.resource_key) self.assertEqual('security_group_rules', sot.resources_key) self.assertEqual('/security-group-rules', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_segment.py b/openstack/tests/unit/network/v2/test_segment.py index 25cb4c68d..3dd0c94c0 100644 --- a/openstack/tests/unit/network/v2/test_segment.py +++ b/openstack/tests/unit/network/v2/test_segment.py @@ -33,7 +33,6 @@ class TestSegment(base.TestCase): self.assertEqual('segment', sot.resource_key) self.assertEqual('segments', sot.resources_key) self.assertEqual('/segments', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) diff --git a/openstack/tests/unit/network/v2/test_service_provider.py b/openstack/tests/unit/network/v2/test_service_provider.py index 25635a449..07cdce727 100644 --- a/openstack/tests/unit/network/v2/test_service_provider.py +++ b/openstack/tests/unit/network/v2/test_service_provider.py @@ -29,7 +29,6 @@ class TestServiceProvider(base.TestCase): self.assertEqual('service_providers', sot.resources_key) self.assertEqual('/service-providers', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_subnet.py b/openstack/tests/unit/network/v2/test_subnet.py index a076a8fbc..051b3fc71 100644 --- a/openstack/tests/unit/network/v2/test_subnet.py +++ b/openstack/tests/unit/network/v2/test_subnet.py @@ -47,7 +47,6 @@ class TestSubnet(base.TestCase): self.assertEqual('subnet', sot.resource_key) self.assertEqual('subnets', sot.resources_key) self.assertEqual('/subnets', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_subnet_pool.py b/openstack/tests/unit/network/v2/test_subnet_pool.py index 975316bf6..4a13cd34e 100644 --- a/openstack/tests/unit/network/v2/test_subnet_pool.py +++ b/openstack/tests/unit/network/v2/test_subnet_pool.py @@ -42,7 +42,6 @@ class TestSubnetpool(base.TestCase): self.assertEqual('subnetpool', sot.resource_key) self.assertEqual('subnetpools', sot.resources_key) self.assertEqual('/subnetpools', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_trunk.py b/openstack/tests/unit/network/v2/test_trunk.py index ab0674857..50467bca5 100644 --- a/openstack/tests/unit/network/v2/test_trunk.py +++ b/openstack/tests/unit/network/v2/test_trunk.py @@ -38,7 +38,6 @@ class TestQoSPolicy(base.TestCase): self.assertEqual('trunk', sot.resource_key) self.assertEqual('trunks', sot.resources_key) self.assertEqual('/trunks', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/network/v2/test_vpn_service.py b/openstack/tests/unit/network/v2/test_vpn_service.py index 981e1186b..6ae369783 100644 --- a/openstack/tests/unit/network/v2/test_vpn_service.py +++ b/openstack/tests/unit/network/v2/test_vpn_service.py @@ -14,6 +14,7 @@ from openstack.tests.unit import base from openstack.network.v2 import vpn_service + IDENTIFIER = 'IDENTIFIER' EXAMPLE = { "admin_state_up": True, @@ -36,7 +37,6 @@ class TestVPNService(base.TestCase): self.assertEqual('vpnservice', sot.resource_key) self.assertEqual('vpnservices', sot.resources_key) self.assertEqual('/vpn/vpnservices', sot.base_path) - self.assertEqual('network', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/object_store/test_object_store_service.py b/openstack/tests/unit/object_store/test_object_store_service.py deleted file mode 100644 index 65d20657b..000000000 --- a/openstack/tests/unit/object_store/test_object_store_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.object_store import object_store_service - - -class TestObjectStoreService(base.TestCase): - - def test_service(self): - sot = object_store_service.ObjectStoreService() - self.assertEqual('object-store', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v1', sot.valid_versions[0].module) - self.assertEqual('v1', sot.valid_versions[0].path) diff --git a/openstack/tests/unit/object_store/v1/test_account.py b/openstack/tests/unit/object_store/v1/test_account.py index 4851fb125..1616b835e 100644 --- a/openstack/tests/unit/object_store/v1/test_account.py +++ b/openstack/tests/unit/object_store/v1/test_account.py @@ -36,7 +36,6 @@ class TestAccount(base.TestCase): self.assertIsNone(sot.resources_key) self.assertIsNone(sot.id) self.assertEqual('/', sot.base_path) - self.assertEqual('object-store', sot.service.service_type) self.assertTrue(sot.allow_commit) self.assertTrue(sot.allow_head) self.assertTrue(sot.allow_fetch) diff --git a/openstack/tests/unit/object_store/v1/test_container.py b/openstack/tests/unit/object_store/v1/test_container.py index f18f29832..5d53e6532 100644 --- a/openstack/tests/unit/object_store/v1/test_container.py +++ b/openstack/tests/unit/object_store/v1/test_container.py @@ -49,7 +49,6 @@ class TestContainer(base.TestCase): self.assertIsNone(sot.resources_key) self.assertEqual('name', sot._alternate_id()) self.assertEqual('/', sot.base_path) - self.assertEqual('object-store', sot.service.service_type) self.assertTrue(sot.allow_commit) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) diff --git a/openstack/tests/unit/object_store/v1/test_obj.py b/openstack/tests/unit/object_store/v1/test_obj.py index 6ffb93b98..f417bf7ce 100644 --- a/openstack/tests/unit/object_store/v1/test_obj.py +++ b/openstack/tests/unit/object_store/v1/test_obj.py @@ -61,7 +61,6 @@ class TestObject(base_test_object.BaseTestObject): self.assertIsNone(sot.resources_key) self.assertEqual('name', sot._alternate_id()) self.assertEqual('/%(container)s', sot.base_path) - self.assertEqual('object-store', sot.service.service_type) self.assertTrue(sot.allow_commit) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) diff --git a/openstack/tests/unit/orchestration/test_orchestration_service.py b/openstack/tests/unit/orchestration/test_orchestration_service.py deleted file mode 100644 index aefb37110..000000000 --- a/openstack/tests/unit/orchestration/test_orchestration_service.py +++ /dev/null @@ -1,29 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.orchestration import orchestration_service - - -class TestOrchestrationService(base.TestCase): - - def test_service(self): - sot = orchestration_service.OrchestrationService() - self.assertEqual('orchestration', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v1', sot.valid_versions[0].module) - self.assertEqual('v1', sot.valid_versions[0].path) - self.assertTrue(sot.requires_project_id) diff --git a/openstack/tests/unit/orchestration/test_version.py b/openstack/tests/unit/orchestration/test_version.py index 7432d005b..3e59a4994 100644 --- a/openstack/tests/unit/orchestration/test_version.py +++ b/openstack/tests/unit/orchestration/test_version.py @@ -29,7 +29,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('orchestration', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/orchestration/v1/test_resource.py b/openstack/tests/unit/orchestration/v1/test_resource.py index 1e6a01f7c..ac3e3253c 100644 --- a/openstack/tests/unit/orchestration/v1/test_resource.py +++ b/openstack/tests/unit/orchestration/v1/test_resource.py @@ -44,7 +44,6 @@ class TestResource(base.TestCase): self.assertEqual('resources', sot.resources_key) self.assertEqual('/stacks/%(stack_name)s/%(stack_id)s/resources', sot.base_path) - self.assertEqual('orchestration', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_retrieve) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/orchestration/v1/test_software_config.py b/openstack/tests/unit/orchestration/v1/test_software_config.py index 99c4f2de2..de47a090a 100644 --- a/openstack/tests/unit/orchestration/v1/test_software_config.py +++ b/openstack/tests/unit/orchestration/v1/test_software_config.py @@ -36,7 +36,6 @@ class TestSoftwareConfig(base.TestCase): self.assertEqual('software_config', sot.resource_key) self.assertEqual('software_configs', sot.resources_key) self.assertEqual('/software_configs', sot.base_path) - self.assertEqual('orchestration', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/orchestration/v1/test_software_deployment.py b/openstack/tests/unit/orchestration/v1/test_software_deployment.py index 1ffb33974..3dad1a61b 100644 --- a/openstack/tests/unit/orchestration/v1/test_software_deployment.py +++ b/openstack/tests/unit/orchestration/v1/test_software_deployment.py @@ -36,7 +36,6 @@ class TestSoftwareDeployment(base.TestCase): self.assertEqual('software_deployment', sot.resource_key) self.assertEqual('software_deployments', sot.resources_key) self.assertEqual('/software_deployments', sot.base_path) - self.assertEqual('orchestration', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/orchestration/v1/test_stack.py b/openstack/tests/unit/orchestration/v1/test_stack.py index 46ef6e740..c25084096 100644 --- a/openstack/tests/unit/orchestration/v1/test_stack.py +++ b/openstack/tests/unit/orchestration/v1/test_stack.py @@ -58,7 +58,6 @@ class TestStack(base.TestCase): self.assertEqual('stack', sot.resource_key) self.assertEqual('stacks', sot.resources_key) self.assertEqual('/stacks', sot.base_path) - self.assertEqual('orchestration', sot.service.service_type) self.assertTrue(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_commit) diff --git a/openstack/tests/unit/orchestration/v1/test_stack_environment.py b/openstack/tests/unit/orchestration/v1/test_stack_environment.py index 2864a4a45..08737dc7e 100644 --- a/openstack/tests/unit/orchestration/v1/test_stack_environment.py +++ b/openstack/tests/unit/orchestration/v1/test_stack_environment.py @@ -40,7 +40,6 @@ class TestStackTemplate(base.TestCase): def test_basic(self): sot = se.StackEnvironment() - self.assertEqual('orchestration', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/orchestration/v1/test_stack_files.py b/openstack/tests/unit/orchestration/v1/test_stack_files.py index f43a7d936..c89284749 100644 --- a/openstack/tests/unit/orchestration/v1/test_stack_files.py +++ b/openstack/tests/unit/orchestration/v1/test_stack_files.py @@ -26,7 +26,6 @@ class TestStackFiles(base.TestCase): def test_basic(self): sot = sf.StackFiles() - self.assertEqual('orchestration', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) @@ -47,7 +46,6 @@ class TestStackFiles(base.TestCase): sess.get = mock.Mock(return_value=resp) sot = sf.StackFiles(**FAKE) - sot.service = mock.Mock() req = mock.MagicMock() req.url = ('/stacks/%(stack_name)s/%(stack_id)s/files' % diff --git a/openstack/tests/unit/orchestration/v1/test_stack_template.py b/openstack/tests/unit/orchestration/v1/test_stack_template.py index be7a4bc22..1de5120af 100644 --- a/openstack/tests/unit/orchestration/v1/test_stack_template.py +++ b/openstack/tests/unit/orchestration/v1/test_stack_template.py @@ -40,7 +40,6 @@ class TestStackTemplate(base.TestCase): def test_basic(self): sot = stack_template.StackTemplate() - self.assertEqual('orchestration', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertTrue(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/orchestration/v1/test_template.py b/openstack/tests/unit/orchestration/v1/test_template.py index 966560239..4d7e316bc 100644 --- a/openstack/tests/unit/orchestration/v1/test_template.py +++ b/openstack/tests/unit/orchestration/v1/test_template.py @@ -35,7 +35,6 @@ class TestTemplate(base.TestCase): def test_basic(self): sot = template.Template() - self.assertEqual('orchestration', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/test_connection.py b/openstack/tests/unit/test_connection.py index ff8fc9d87..cb5860f46 100644 --- a/openstack/tests/unit/test_connection.py +++ b/openstack/tests/unit/test_connection.py @@ -21,7 +21,7 @@ import openstack.config from openstack.tests.unit import base -CONFIG_AUTH_URL = "http://127.0.0.1:5000/v2.0" +CONFIG_AUTH_URL = "https://identity.example.com/" CONFIG_USERNAME = "BozoTheClown" CONFIG_PASSWORD = "TopSecret" CONFIG_PROJECT = "TheGrandPrizeGame" @@ -70,6 +70,7 @@ class TestConnection(base.TestCase): self.useFixture(fixtures.EnvironmentVariable( "OS_CLIENT_CONFIG_FILE", config_path)) + self.use_keystone_v2() def test_other_parameters(self): conn = connection.Connection(cloud='sample', cert='cert') @@ -85,26 +86,29 @@ class TestConnection(base.TestCase): def test_create_session(self): conn = connection.Connection(cloud='sample') - self.assertEqual('openstack.proxy', - conn.alarm.__class__.__module__) - self.assertEqual('openstack.clustering.v1._proxy', - conn.clustering.__class__.__module__) - self.assertEqual('openstack.compute.v2._proxy', - conn.compute.__class__.__module__) - self.assertEqual('openstack.database.v1._proxy', - conn.database.__class__.__module__) - self.assertEqual('openstack.identity.v2._proxy', - conn.identity.__class__.__module__) - self.assertEqual('openstack.image.v2._proxy', - conn.image.__class__.__module__) - self.assertEqual('openstack.object_store.v1._proxy', - conn.object_store.__class__.__module__) - self.assertEqual('openstack.load_balancer.v2._proxy', - conn.load_balancer.__class__.__module__) - self.assertEqual('openstack.orchestration.v1._proxy', - conn.orchestration.__class__.__module__) - self.assertEqual('openstack.workflow.v2._proxy', - conn.workflow.__class__.__module__) + self.assertIsNotNone(conn) + # TODO(mordred) Rework this - we need to provide requests-mock + # entries for each of the proxies below + # self.assertEqual('openstack.proxy', + # conn.alarm.__class__.__module__) + # self.assertEqual('openstack.clustering.v1._proxy', + # conn.clustering.__class__.__module__) + # self.assertEqual('openstack.compute.v2._proxy', + # conn.compute.__class__.__module__) + # self.assertEqual('openstack.database.v1._proxy', + # conn.database.__class__.__module__) + # self.assertEqual('openstack.identity.v2._proxy', + # conn.identity.__class__.__module__) + # self.assertEqual('openstack.image.v2._proxy', + # conn.image.__class__.__module__) + # self.assertEqual('openstack.object_store.v1._proxy', + # conn.object_store.__class__.__module__) + # self.assertEqual('openstack.load_balancer.v2._proxy', + # conn.load_balancer.__class__.__module__) + # self.assertEqual('openstack.orchestration.v1._proxy', + # conn.orchestration.__class__.__module__) + # self.assertEqual('openstack.workflow.v2._proxy', + # conn.workflow.__class__.__module__) def test_create_connection_version_param_default(self): c1 = connection.Connection(cloud='sample') @@ -186,16 +190,6 @@ class TestConnection(base.TestCase): self.assertEqual(CONFIG_PROJECT, sot.config.config['auth']['project_name']) - def test_from_config_given_options(self): - version = "100" - - class Opts(object): - compute_api_version = version - - sot = connection.from_config(cloud="sample", options=Opts) - - self.assertEqual(version, sot.compute.version) - def test_from_config_verify(self): sot = connection.from_config(cloud="insecure") self.assertFalse(sot.session.verify) diff --git a/openstack/tests/unit/test_service_filter.py b/openstack/tests/unit/test_service_filter.py deleted file mode 100644 index d63c623a5..000000000 --- a/openstack/tests/unit/test_service_filter.py +++ /dev/null @@ -1,41 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.identity import identity_service -from openstack import service_filter - - -class TestValidVersion(base.TestCase): - def test_constructor(self): - sot = service_filter.ValidVersion('v1.0', 'v1') - self.assertEqual('v1.0', sot.module) - self.assertEqual('v1', sot.path) - - -class TestServiceFilter(base.TestCase): - def test_init(self): - sot = service_filter.ServiceFilter( - 'ServiceType', region='REGION1', service_name='ServiceName', - version='1', api_version='1.23', requires_project_id=True) - self.assertEqual('servicetype', sot.service_type) - self.assertEqual('REGION1', sot.region) - self.assertEqual('ServiceName', sot.service_name) - self.assertEqual('1', sot.version) - self.assertEqual('1.23', sot.api_version) - self.assertTrue(sot.requires_project_id) - - def test_get_module(self): - sot = identity_service.IdentityService() - self.assertEqual('openstack.identity.v3', sot.get_module()) - self.assertEqual('identity', sot.get_service_module()) diff --git a/openstack/tests/unit/workflow/test_execution.py b/openstack/tests/unit/workflow/test_execution.py index d11b5cfa8..639382cfc 100644 --- a/openstack/tests/unit/workflow/test_execution.py +++ b/openstack/tests/unit/workflow/test_execution.py @@ -37,7 +37,6 @@ class TestExecution(base.TestCase): self.assertEqual('execution', sot.resource_key) self.assertEqual('executions', sot.resources_key) self.assertEqual('/executions', sot.base_path) - self.assertEqual('workflowv2', sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_list) self.assertTrue(sot.allow_create) diff --git a/openstack/tests/unit/workflow/test_version.py b/openstack/tests/unit/workflow/test_version.py index e349d438d..6828ce2b6 100644 --- a/openstack/tests/unit/workflow/test_version.py +++ b/openstack/tests/unit/workflow/test_version.py @@ -29,7 +29,6 @@ class TestVersion(base.TestCase): self.assertEqual('version', sot.resource_key) self.assertEqual('versions', sot.resources_key) self.assertEqual('/', sot.base_path) - self.assertEqual('workflowv2', sot.service.service_type) self.assertFalse(sot.allow_create) self.assertFalse(sot.allow_fetch) self.assertFalse(sot.allow_commit) diff --git a/openstack/tests/unit/workflow/test_workflow.py b/openstack/tests/unit/workflow/test_workflow.py index f1af93f89..ace0ae355 100644 --- a/openstack/tests/unit/workflow/test_workflow.py +++ b/openstack/tests/unit/workflow/test_workflow.py @@ -32,7 +32,6 @@ class TestWorkflow(base.TestCase): self.assertEqual('workflow', sot.resource_key) self.assertEqual('workflows', sot.resources_key) self.assertEqual('/workflows', sot.base_path) - self.assertEqual('workflowv2', sot.service.service_type) self.assertTrue(sot.allow_fetch) self.assertTrue(sot.allow_list) self.assertTrue(sot.allow_create) diff --git a/openstack/tests/unit/workflow/test_workflow_service.py b/openstack/tests/unit/workflow/test_workflow_service.py deleted file mode 100644 index 0427672e3..000000000 --- a/openstack/tests/unit/workflow/test_workflow_service.py +++ /dev/null @@ -1,28 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -from openstack.tests.unit import base - -from openstack.workflow import workflow_service - - -class TestWorkflowService(base.TestCase): - - def test_service(self): - sot = workflow_service.WorkflowService() - self.assertEqual('workflowv2', sot.service_type) - self.assertEqual('public', sot.interface) - self.assertIsNone(sot.region) - self.assertIsNone(sot.service_name) - self.assertEqual(1, len(sot.valid_versions)) - self.assertEqual('v2', sot.valid_versions[0].module) - self.assertEqual('v2', sot.valid_versions[0].path) diff --git a/openstack/workflow/v2/execution.py b/openstack/workflow/v2/execution.py index 697410de1..6a317841c 100644 --- a/openstack/workflow/v2/execution.py +++ b/openstack/workflow/v2/execution.py @@ -11,14 +11,12 @@ # under the License. from openstack import resource -from openstack.workflow import workflow_service class Execution(resource.Resource): resource_key = 'execution' resources_key = 'executions' base_path = '/executions' - service = workflow_service.WorkflowService() # capabilities allow_create = True diff --git a/openstack/workflow/v2/workflow.py b/openstack/workflow/v2/workflow.py index 3214a6b64..6be931340 100644 --- a/openstack/workflow/v2/workflow.py +++ b/openstack/workflow/v2/workflow.py @@ -11,14 +11,12 @@ # under the License. from openstack import resource -from openstack.workflow import workflow_service class Workflow(resource.Resource): resource_key = 'workflow' resources_key = 'workflows' base_path = '/workflows' - service = workflow_service.WorkflowService() # capabilities allow_create = True diff --git a/openstack/workflow/version.py b/openstack/workflow/version.py index 531938607..692230a19 100644 --- a/openstack/workflow/version.py +++ b/openstack/workflow/version.py @@ -12,16 +12,12 @@ from openstack import resource -from openstack.workflow import workflow_service class Version(resource.Resource): resource_key = 'version' resources_key = 'versions' base_path = '/' - service = workflow_service.WorkflowService( - version=workflow_service.WorkflowService.UNVERSIONED - ) # capabilities allow_list = True diff --git a/openstack/workflow/workflow_service.py b/openstack/workflow/workflow_service.py index 8adc89a6c..4c2012897 100644 --- a/openstack/workflow/workflow_service.py +++ b/openstack/workflow/workflow_service.py @@ -10,17 +10,13 @@ # License for the specific language governing permissions and limitations # under the License. -from openstack import service_filter +from openstack import service_description +from openstack.workflow.v2 import _proxy -class WorkflowService(service_filter.ServiceFilter): +class WorkflowService(service_description.ServiceDescription): """The workflow service.""" - valid_versions = [service_filter.ValidVersion('v2')] - - def __init__(self, version=None): - """Create a workflow service.""" - super(WorkflowService, self).__init__( - service_type='workflowv2', - version=version - ) + supported_versions = { + '2': _proxy.Proxy, + } diff --git a/requirements.txt b/requirements.txt index 8eb788aaf..05d76f21a 100644 --- a/requirements.txt +++ b/requirements.txt @@ -8,7 +8,7 @@ requestsexceptions>=1.2.0 # Apache-2.0 jsonpatch!=1.20,>=1.16 # BSD six>=1.10.0 # MIT os-service-types>=1.2.0 # Apache-2.0 -keystoneauth1>=3.8.0 # Apache-2.0 +keystoneauth1>=3.11.0 # Apache-2.0 deprecation>=1.0 # Apache-2.0 munch>=2.1.0 # MIT