From f15d74b017203788872d00181a7699bb4f29c21a Mon Sep 17 00:00:00 2001 From: Chris Yeoh Date: Fri, 21 Nov 2014 15:07:52 +1030 Subject: [PATCH] Cleanup v2.1 controller inheritance For microversions support to work all the API controllers must inherit from wsgi.Controller rather than object. Currently most do inherit from wsgi.Controller but some don't. This patch ensures that all do so. Partially implements blueprint api-microversions Change-Id: Ic7351298ae96aa7bb509eb3784e672d5feea262a --- nova/api/openstack/compute/plugins/v3/agents.py | 2 +- nova/api/openstack/compute/plugins/v3/attach_interfaces.py | 2 +- nova/api/openstack/compute/plugins/v3/cells.py | 3 ++- nova/api/openstack/compute/plugins/v3/certificates.py | 3 ++- nova/api/openstack/compute/plugins/v3/consoles.py | 2 +- nova/api/openstack/compute/plugins/v3/extension_info.py | 3 ++- nova/api/openstack/compute/plugins/v3/flavor_access.py | 2 +- nova/api/openstack/compute/plugins/v3/flavors_extraspecs.py | 3 ++- nova/api/openstack/compute/plugins/v3/floating_ip_dns.py | 4 ++-- nova/api/openstack/compute/plugins/v3/floating_ip_pools.py | 3 ++- nova/api/openstack/compute/plugins/v3/floating_ips_bulk.py | 3 ++- nova/api/openstack/compute/plugins/v3/fping.py | 3 ++- nova/api/openstack/compute/plugins/v3/hypervisors.py | 3 ++- nova/api/openstack/compute/plugins/v3/image_metadata.py | 2 +- nova/api/openstack/compute/plugins/v3/keypairs.py | 2 +- nova/api/openstack/compute/plugins/v3/limits.py | 3 ++- nova/api/openstack/compute/plugins/v3/migrations.py | 3 ++- nova/api/openstack/compute/plugins/v3/pci.py | 2 +- nova/api/openstack/compute/plugins/v3/server_diagnostics.py | 3 ++- nova/api/openstack/compute/plugins/v3/server_password.py | 2 +- nova/api/openstack/compute/plugins/v3/simple_tenant_usage.py | 3 ++- nova/api/openstack/compute/plugins/v3/tenant_networks.py | 2 +- nova/api/openstack/compute/plugins/v3/versions.py | 3 ++- 23 files changed, 37 insertions(+), 24 deletions(-) diff --git a/nova/api/openstack/compute/plugins/v3/agents.py b/nova/api/openstack/compute/plugins/v3/agents.py index e198849c3ddc..ae8bb3a2233a 100644 --- a/nova/api/openstack/compute/plugins/v3/agents.py +++ b/nova/api/openstack/compute/plugins/v3/agents.py @@ -27,7 +27,7 @@ ALIAS = "os-agents" authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS) -class AgentController(object): +class AgentController(wsgi.Controller): """The agent is talking about guest agent.The host can use this for things like accessing files on the disk, configuring networking, or running other applications/scripts in the guest while it is diff --git a/nova/api/openstack/compute/plugins/v3/attach_interfaces.py b/nova/api/openstack/compute/plugins/v3/attach_interfaces.py index ee4ac2d0a1e6..d33595cae0c9 100644 --- a/nova/api/openstack/compute/plugins/v3/attach_interfaces.py +++ b/nova/api/openstack/compute/plugins/v3/attach_interfaces.py @@ -45,7 +45,7 @@ def _translate_interface_attachment_view(port_info): } -class InterfaceAttachmentController(object): +class InterfaceAttachmentController(wsgi.Controller): """The interface attachment API controller for the OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/cells.py b/nova/api/openstack/compute/plugins/v3/cells.py index 1cfdfb137d6b..a2391d93f152 100644 --- a/nova/api/openstack/compute/plugins/v3/cells.py +++ b/nova/api/openstack/compute/plugins/v3/cells.py @@ -25,6 +25,7 @@ from webob import exc from nova.api.openstack import common from nova.api.openstack.compute.schemas.v3 import cells from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova.api import validation from nova.cells import rpcapi as cells_rpcapi from nova.compute import api as compute @@ -91,7 +92,7 @@ def _scrub_cell(cell, detail=False): return cell_info -class CellsController(object): +class CellsController(wsgi.Controller): """Controller for Cell resources.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/certificates.py b/nova/api/openstack/compute/plugins/v3/certificates.py index 107a719682af..0a324221171d 100644 --- a/nova/api/openstack/compute/plugins/v3/certificates.py +++ b/nova/api/openstack/compute/plugins/v3/certificates.py @@ -15,6 +15,7 @@ import webob.exc from nova.api.openstack import extensions +from nova.api.openstack import wsgi import nova.cert.rpcapi from nova import exception from nova.i18n import _ @@ -31,7 +32,7 @@ def _translate_certificate_view(certificate, private_key=None): } -class CertificatesController(object): +class CertificatesController(wsgi.Controller): """The x509 Certificates API controller for the OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/consoles.py b/nova/api/openstack/compute/plugins/v3/consoles.py index b18c90614daa..e9701bdc9116 100644 --- a/nova/api/openstack/compute/plugins/v3/consoles.py +++ b/nova/api/openstack/compute/plugins/v3/consoles.py @@ -41,7 +41,7 @@ def _translate_detail_keys(cons): return dict(console=info) -class ConsolesController(object): +class ConsolesController(wsgi.Controller): """The Consoles controller for the OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/extension_info.py b/nova/api/openstack/compute/plugins/v3/extension_info.py index 8e62d6f01928..5ad02841b44f 100644 --- a/nova/api/openstack/compute/plugins/v3/extension_info.py +++ b/nova/api/openstack/compute/plugins/v3/extension_info.py @@ -15,13 +15,14 @@ import webob.exc from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova.openstack.common import log as logging LOG = logging.getLogger(__name__) -class ExtensionInfoController(object): +class ExtensionInfoController(wsgi.Controller): def __init__(self, extension_info): self.extension_info = extension_info diff --git a/nova/api/openstack/compute/plugins/v3/flavor_access.py b/nova/api/openstack/compute/plugins/v3/flavor_access.py index 2ba16702b387..099228130859 100644 --- a/nova/api/openstack/compute/plugins/v3/flavor_access.py +++ b/nova/api/openstack/compute/plugins/v3/flavor_access.py @@ -40,7 +40,7 @@ def _marshall_flavor_access(flavor): return {'flavor_access': rval} -class FlavorAccessController(object): +class FlavorAccessController(wsgi.Controller): """The flavor access API controller for the OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/flavors_extraspecs.py b/nova/api/openstack/compute/plugins/v3/flavors_extraspecs.py index e113616c9282..ecc835b414d9 100644 --- a/nova/api/openstack/compute/plugins/v3/flavors_extraspecs.py +++ b/nova/api/openstack/compute/plugins/v3/flavors_extraspecs.py @@ -18,6 +18,7 @@ import webob from nova.api.openstack.compute.schemas.v3 import flavors_extraspecs from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova.api import validation from nova import exception from nova.i18n import _ @@ -28,7 +29,7 @@ ALIAS = 'flavor-extra-specs' authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS) -class FlavorExtraSpecsController(object): +class FlavorExtraSpecsController(wsgi.Controller): """The flavor extra specs API controller for the OpenStack API.""" def __init__(self, *args, **kwargs): diff --git a/nova/api/openstack/compute/plugins/v3/floating_ip_dns.py b/nova/api/openstack/compute/plugins/v3/floating_ip_dns.py index 18e49e0add90..cd31d34917e2 100644 --- a/nova/api/openstack/compute/plugins/v3/floating_ip_dns.py +++ b/nova/api/openstack/compute/plugins/v3/floating_ip_dns.py @@ -79,7 +79,7 @@ def _create_domain_entry(domain, scope=None, project=None, av_zone=None): 'availability_zone': av_zone} -class FloatingIPDNSDomainController(object): +class FloatingIPDNSDomainController(wsgi.Controller): """DNS domain controller for OpenStack API.""" def __init__(self): @@ -160,7 +160,7 @@ class FloatingIPDNSDomainController(object): raise webob.exc.HTTPNotFound(explanation=e.format_message()) -class FloatingIPDNSEntryController(object): +class FloatingIPDNSEntryController(wsgi.Controller): """DNS Entry controller for OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/floating_ip_pools.py b/nova/api/openstack/compute/plugins/v3/floating_ip_pools.py index 0af35b551e94..b7d7a977b4f6 100644 --- a/nova/api/openstack/compute/plugins/v3/floating_ip_pools.py +++ b/nova/api/openstack/compute/plugins/v3/floating_ip_pools.py @@ -13,6 +13,7 @@ # under the License. from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova import network @@ -33,7 +34,7 @@ def _translate_floating_ip_pools_view(pools): } -class FloatingIPPoolsController(object): +class FloatingIPPoolsController(wsgi.Controller): """The Floating IP Pool API controller for the OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/floating_ips_bulk.py b/nova/api/openstack/compute/plugins/v3/floating_ips_bulk.py index e5d6d1d710ef..d8cd22159b02 100644 --- a/nova/api/openstack/compute/plugins/v3/floating_ips_bulk.py +++ b/nova/api/openstack/compute/plugins/v3/floating_ips_bulk.py @@ -19,6 +19,7 @@ import webob.exc from nova.api.openstack.compute.schemas.v3 import floating_ips_bulk from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova.api import validation from nova import exception from nova.i18n import _ @@ -33,7 +34,7 @@ ALIAS = 'os-floating-ips-bulk' authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS) -class FloatingIPBulkController(object): +class FloatingIPBulkController(wsgi.Controller): @extensions.expected_errors(404) def index(self, req): diff --git a/nova/api/openstack/compute/plugins/v3/fping.py b/nova/api/openstack/compute/plugins/v3/fping.py index e9a5922b5779..7a2ec041664c 100644 --- a/nova/api/openstack/compute/plugins/v3/fping.py +++ b/nova/api/openstack/compute/plugins/v3/fping.py @@ -22,6 +22,7 @@ from webob import exc from nova.api.openstack import common from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova import compute from nova import exception from nova.i18n import _ @@ -37,7 +38,7 @@ CONF = cfg.CONF CONF.import_opt('fping_path', 'nova.api.openstack.compute.contrib.fping') -class FpingController(object): +class FpingController(wsgi.Controller): def __init__(self, network_api=None): self.compute_api = compute.API() diff --git a/nova/api/openstack/compute/plugins/v3/hypervisors.py b/nova/api/openstack/compute/plugins/v3/hypervisors.py index 4c8b85d1dd46..cc0647fbd771 100644 --- a/nova/api/openstack/compute/plugins/v3/hypervisors.py +++ b/nova/api/openstack/compute/plugins/v3/hypervisors.py @@ -18,6 +18,7 @@ import webob.exc from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova import compute from nova import exception from nova.i18n import _ @@ -28,7 +29,7 @@ ALIAS = "os-hypervisors" authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS) -class HypervisorsController(object): +class HypervisorsController(wsgi.Controller): """The Hypervisors API controller for the OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/image_metadata.py b/nova/api/openstack/compute/plugins/v3/image_metadata.py index e9273f4377d6..a53157bbfcf7 100644 --- a/nova/api/openstack/compute/plugins/v3/image_metadata.py +++ b/nova/api/openstack/compute/plugins/v3/image_metadata.py @@ -25,7 +25,7 @@ import nova.image ALIAS = 'image-metadata' -class ImageMetadataController(object): +class ImageMetadataController(wsgi.Controller): """The image metadata API controller for the OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/keypairs.py b/nova/api/openstack/compute/plugins/v3/keypairs.py index 3906e6f71ebc..ce3eb3027d64 100644 --- a/nova/api/openstack/compute/plugins/v3/keypairs.py +++ b/nova/api/openstack/compute/plugins/v3/keypairs.py @@ -32,7 +32,7 @@ authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS) soft_authorize = extensions.soft_extension_authorizer('compute', 'v3:' + ALIAS) -class KeypairController(object): +class KeypairController(wsgi.Controller): """Keypair API controller for the OpenStack API.""" def __init__(self): diff --git a/nova/api/openstack/compute/plugins/v3/limits.py b/nova/api/openstack/compute/plugins/v3/limits.py index 457f82f823a2..9fd844cf6cd2 100644 --- a/nova/api/openstack/compute/plugins/v3/limits.py +++ b/nova/api/openstack/compute/plugins/v3/limits.py @@ -16,6 +16,7 @@ from nova.api.openstack.compute.views import limits as limits_views from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova import quota @@ -23,7 +24,7 @@ QUOTAS = quota.QUOTAS ALIAS = 'limits' -class LimitsController(object): +class LimitsController(wsgi.Controller): """Controller for accessing limits in the OpenStack API.""" @extensions.expected_errors(()) diff --git a/nova/api/openstack/compute/plugins/v3/migrations.py b/nova/api/openstack/compute/plugins/v3/migrations.py index 36fb3f39610b..a9ec4786d42b 100644 --- a/nova/api/openstack/compute/plugins/v3/migrations.py +++ b/nova/api/openstack/compute/plugins/v3/migrations.py @@ -11,6 +11,7 @@ # under the License. from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova import compute from nova.objects import base as obj_base @@ -36,7 +37,7 @@ def output(migrations_obj): return objects -class MigrationsController(object): +class MigrationsController(wsgi.Controller): """Controller for accessing migrations in OpenStack API.""" def __init__(self): self.compute_api = compute.API() diff --git a/nova/api/openstack/compute/plugins/v3/pci.py b/nova/api/openstack/compute/plugins/v3/pci.py index 6ca0ed67697b..db8a060b4823 100644 --- a/nova/api/openstack/compute/plugins/v3/pci.py +++ b/nova/api/openstack/compute/plugins/v3/pci.py @@ -80,7 +80,7 @@ class PciHypervisorController(wsgi.Controller): self._extend_hypervisor(hypervisor, compute_node) -class PciController(object): +class PciController(wsgi.Controller): def __init__(self): self.host_api = compute.HostAPI() diff --git a/nova/api/openstack/compute/plugins/v3/server_diagnostics.py b/nova/api/openstack/compute/plugins/v3/server_diagnostics.py index a288fd7d8079..f1151eda5d0d 100644 --- a/nova/api/openstack/compute/plugins/v3/server_diagnostics.py +++ b/nova/api/openstack/compute/plugins/v3/server_diagnostics.py @@ -17,6 +17,7 @@ import webob.exc from nova.api.openstack import common from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova import compute from nova import exception from nova.i18n import _ @@ -26,7 +27,7 @@ ALIAS = "os-server-diagnostics" authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS) -class ServerDiagnosticsController(object): +class ServerDiagnosticsController(wsgi.Controller): def __init__(self): self.compute_api = compute.API() diff --git a/nova/api/openstack/compute/plugins/v3/server_password.py b/nova/api/openstack/compute/plugins/v3/server_password.py index 52d45d469ef5..88c4ba5a25ba 100644 --- a/nova/api/openstack/compute/plugins/v3/server_password.py +++ b/nova/api/openstack/compute/plugins/v3/server_password.py @@ -26,7 +26,7 @@ ALIAS = 'os-server-password' authorize = extensions.extension_authorizer('compute', 'v3:' + ALIAS) -class ServerPasswordController(object): +class ServerPasswordController(wsgi.Controller): """The Server Password API controller for the OpenStack API.""" def __init__(self): self.compute_api = compute.API() diff --git a/nova/api/openstack/compute/plugins/v3/simple_tenant_usage.py b/nova/api/openstack/compute/plugins/v3/simple_tenant_usage.py index a79153baed8f..db2dfa18e468 100644 --- a/nova/api/openstack/compute/plugins/v3/simple_tenant_usage.py +++ b/nova/api/openstack/compute/plugins/v3/simple_tenant_usage.py @@ -22,6 +22,7 @@ import six.moves.urllib.parse as urlparse from webob import exc from nova.api.openstack import extensions +from nova.api.openstack import wsgi from nova import exception from nova.i18n import _ from nova import objects @@ -41,7 +42,7 @@ def parse_strtime(dstr, fmt): raise exception.InvalidStrTime(reason=six.text_type(e)) -class SimpleTenantUsageController(object): +class SimpleTenantUsageController(wsgi.Controller): def _hours_for(self, instance, period_start, period_stop): launched_at = instance.launched_at terminated_at = instance.terminated_at diff --git a/nova/api/openstack/compute/plugins/v3/tenant_networks.py b/nova/api/openstack/compute/plugins/v3/tenant_networks.py index 90d3c29b730d..6f1cb2e2dd33 100644 --- a/nova/api/openstack/compute/plugins/v3/tenant_networks.py +++ b/nova/api/openstack/compute/plugins/v3/tenant_networks.py @@ -55,7 +55,7 @@ def network_dict(network): "label": network.get("label")} -class TenantNetworkController(object): +class TenantNetworkController(wsgi.Controller): def __init__(self, network_api=None): self.network_api = nova.network.API() self._default_networks = [] diff --git a/nova/api/openstack/compute/plugins/v3/versions.py b/nova/api/openstack/compute/plugins/v3/versions.py index 98b11c2cb824..9d0eb6d470e2 100644 --- a/nova/api/openstack/compute/plugins/v3/versions.py +++ b/nova/api/openstack/compute/plugins/v3/versions.py @@ -18,12 +18,13 @@ import webob.exc from nova.api.openstack.compute import versions from nova.api.openstack.compute.views import versions as views_versions from nova.api.openstack import extensions +from nova.api.openstack import wsgi ALIAS = "versions" -class VersionsController(object): +class VersionsController(wsgi.Controller): @extensions.expected_errors(404) def show(self, req, id='v2.1'): builder = views_versions.get_view_builder(req)