From b4c03e325b9e745dd4e81c4e822d1dc5d3e47301 Mon Sep 17 00:00:00 2001 From: Eric Fried Date: Wed, 22 May 2019 17:09:57 -0500 Subject: [PATCH] Remove nova.compute.*API() shims When we had cellsv1, we had two different sets of [Host|InstanceAction|ComputeCells]API. Now that cellsv1 is gone, we only need nova.compute.api.API, .HostAPI, and .InstanceActionAPI. This patch removes the dynamic loader shims from nova/compute/__init__.py and swaps out all references to directly access the classes in nova.compute.api. Note that there are a couple of ways we could have done this. One way would have been to replace from nova import compute with from nova.compute import api and then change self.compute_api = compute.API() to self.compute_api = api.API() However, the current approach was preferred because - smaller delta - the code reads better as compute.API(), which is more important than the import being pretty cleanup for blueprint remove-cells-v1 Change-Id: I84d9692efa3a131d6392dbd1011dfc43e4ac0b53 --- nova/api/openstack/compute/admin_actions.py | 2 +- nova/api/openstack/compute/admin_password.py | 2 +- .../compute/assisted_volume_snapshots.py | 2 +- .../openstack/compute/attach_interfaces.py | 2 +- .../openstack/compute/availability_zone.py | 2 +- nova/api/openstack/compute/console_output.py | 2 +- nova/api/openstack/compute/create_backup.py | 2 +- nova/api/openstack/compute/deferred_delete.py | 2 +- nova/api/openstack/compute/evacuate.py | 2 +- nova/api/openstack/compute/floating_ips.py | 2 +- nova/api/openstack/compute/hosts.py | 2 +- nova/api/openstack/compute/hypervisors.py | 2 +- .../api/openstack/compute/instance_actions.py | 2 +- .../compute/instance_usage_audit_log.py | 2 +- nova/api/openstack/compute/ips.py | 4 +- nova/api/openstack/compute/lock_server.py | 2 +- nova/api/openstack/compute/migrate_server.py | 2 +- nova/api/openstack/compute/migrations.py | 2 +- nova/api/openstack/compute/multinic.py | 2 +- nova/api/openstack/compute/pause_server.py | 2 +- nova/api/openstack/compute/remote_consoles.py | 2 +- nova/api/openstack/compute/rescue.py | 2 +- nova/api/openstack/compute/security_groups.py | 2 +- .../openstack/compute/server_diagnostics.py | 2 +- .../compute/server_external_events.py | 2 +- nova/api/openstack/compute/server_metadata.py | 2 +- .../openstack/compute/server_migrations.py | 2 +- nova/api/openstack/compute/server_password.py | 2 +- nova/api/openstack/compute/server_tags.py | 2 +- nova/api/openstack/compute/servers.py | 2 +- nova/api/openstack/compute/services.py | 4 +- nova/api/openstack/compute/shelve.py | 2 +- nova/api/openstack/compute/suspend_server.py | 2 +- nova/api/openstack/compute/views/servers.py | 2 +- nova/api/openstack/compute/volumes.py | 2 +- nova/compute/__init__.py | 50 ------------------- nova/compute/manager.py | 2 +- .../api/openstack/compute/test_services.py | 2 +- nova/tests/unit/compute/test_compute.py | 38 +++++++------- nova/tests/unit/compute/test_host_api.py | 27 +++++----- nova/tests/unit/test_quota.py | 2 +- nova/virt/vmwareapi/vmops.py | 2 +- nova/virt/xenapi/vmops.py | 2 +- 43 files changed, 73 insertions(+), 126 deletions(-) diff --git a/nova/api/openstack/compute/admin_actions.py b/nova/api/openstack/compute/admin_actions.py index 84624554ac..9db60fc6d5 100644 --- a/nova/api/openstack/compute/admin_actions.py +++ b/nova/api/openstack/compute/admin_actions.py @@ -18,7 +18,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import reset_server_state from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova.compute import vm_states from nova import exception from nova.policies import admin_actions as aa_policies diff --git a/nova/api/openstack/compute/admin_password.py b/nova/api/openstack/compute/admin_password.py index 52fdf5a796..7f9410e783 100644 --- a/nova/api/openstack/compute/admin_password.py +++ b/nova/api/openstack/compute/admin_password.py @@ -18,7 +18,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import admin_password from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova.policies import admin_password as ap_policies diff --git a/nova/api/openstack/compute/assisted_volume_snapshots.py b/nova/api/openstack/compute/assisted_volume_snapshots.py index 5e98c3fbf8..b946ce7957 100644 --- a/nova/api/openstack/compute/assisted_volume_snapshots.py +++ b/nova/api/openstack/compute/assisted_volume_snapshots.py @@ -23,7 +23,7 @@ from webob import exc from nova.api.openstack.compute.schemas import assisted_volume_snapshots from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import assisted_volume_snapshots as avs_policies diff --git a/nova/api/openstack/compute/attach_interfaces.py b/nova/api/openstack/compute/attach_interfaces.py index 91040781e8..31ede040bb 100644 --- a/nova/api/openstack/compute/attach_interfaces.py +++ b/nova/api/openstack/compute/attach_interfaces.py @@ -23,7 +23,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import attach_interfaces from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova import network diff --git a/nova/api/openstack/compute/availability_zone.py b/nova/api/openstack/compute/availability_zone.py index 2a6f9f2759..d41e493ab0 100644 --- a/nova/api/openstack/compute/availability_zone.py +++ b/nova/api/openstack/compute/availability_zone.py @@ -14,7 +14,7 @@ from nova.api.openstack import wsgi from nova import availability_zones -from nova import compute +from nova.compute import api as compute import nova.conf from nova.policies import availability_zone as az_policies from nova import servicegroup diff --git a/nova/api/openstack/compute/console_output.py b/nova/api/openstack/compute/console_output.py index 45586ac485..fb59855348 100644 --- a/nova/api/openstack/compute/console_output.py +++ b/nova/api/openstack/compute/console_output.py @@ -22,7 +22,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import console_output from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import console_output as co_policies diff --git a/nova/api/openstack/compute/create_backup.py b/nova/api/openstack/compute/create_backup.py index bf88454b40..482522ca8d 100644 --- a/nova/api/openstack/compute/create_backup.py +++ b/nova/api/openstack/compute/create_backup.py @@ -20,7 +20,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import create_backup from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import create_backup as cb_policies diff --git a/nova/api/openstack/compute/deferred_delete.py b/nova/api/openstack/compute/deferred_delete.py index 4728204d34..cdd42c966e 100644 --- a/nova/api/openstack/compute/deferred_delete.py +++ b/nova/api/openstack/compute/deferred_delete.py @@ -19,7 +19,7 @@ import webob from nova.api.openstack import common from nova.api.openstack import wsgi -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import deferred_delete as dd_policies diff --git a/nova/api/openstack/compute/evacuate.py b/nova/api/openstack/compute/evacuate.py index b90588e209..7f003f27fe 100644 --- a/nova/api/openstack/compute/evacuate.py +++ b/nova/api/openstack/compute/evacuate.py @@ -21,7 +21,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import evacuate from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute import nova.conf from nova import exception from nova.i18n import _ diff --git a/nova/api/openstack/compute/floating_ips.py b/nova/api/openstack/compute/floating_ips.py index b148cc5283..70dea4d915 100644 --- a/nova/api/openstack/compute/floating_ips.py +++ b/nova/api/openstack/compute/floating_ips.py @@ -26,7 +26,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import floating_ips from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova import network diff --git a/nova/api/openstack/compute/hosts.py b/nova/api/openstack/compute/hosts.py index 510c8f3bee..26c2f8a7da 100644 --- a/nova/api/openstack/compute/hosts.py +++ b/nova/api/openstack/compute/hosts.py @@ -23,7 +23,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import hosts from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import context as nova_context from nova import exception from nova import objects diff --git a/nova/api/openstack/compute/hypervisors.py b/nova/api/openstack/compute/hypervisors.py index d8be93798a..7d5435d099 100644 --- a/nova/api/openstack/compute/hypervisors.py +++ b/nova/api/openstack/compute/hypervisors.py @@ -27,7 +27,7 @@ from nova.api.openstack.compute.schemas import hypervisors as hyper_schema from nova.api.openstack.compute.views import hypervisors as hyper_view from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova.policies import hypervisors as hv_policies diff --git a/nova/api/openstack/compute/instance_actions.py b/nova/api/openstack/compute/instance_actions.py index 7285af4335..ae0131f484 100644 --- a/nova/api/openstack/compute/instance_actions.py +++ b/nova/api/openstack/compute/instance_actions.py @@ -25,7 +25,7 @@ from nova.api.openstack.compute.views \ import instance_actions as instance_actions_view from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova.policies import instance_actions as ia_policies diff --git a/nova/api/openstack/compute/instance_usage_audit_log.py b/nova/api/openstack/compute/instance_usage_audit_log.py index 702aceab7d..f623a5ad10 100644 --- a/nova/api/openstack/compute/instance_usage_audit_log.py +++ b/nova/api/openstack/compute/instance_usage_audit_log.py @@ -19,7 +19,7 @@ import datetime import webob.exc from nova.api.openstack import wsgi -from nova import compute +from nova.compute import api as compute from nova.compute import rpcapi as compute_rpcapi from nova.i18n import _ from nova.policies import instance_usage_audit_log as iual_policies diff --git a/nova/api/openstack/compute/ips.py b/nova/api/openstack/compute/ips.py index 6b67447c41..9a2bccd9f7 100644 --- a/nova/api/openstack/compute/ips.py +++ b/nova/api/openstack/compute/ips.py @@ -15,10 +15,10 @@ from webob import exc -import nova from nova.api.openstack import common from nova.api.openstack.compute.views import addresses as views_addresses from nova.api.openstack import wsgi +from nova.compute import api as compute from nova.i18n import _ from nova.policies import ips as ips_policies @@ -33,7 +33,7 @@ class IPsController(wsgi.Controller): def __init__(self, **kwargs): super(IPsController, self).__init__(**kwargs) - self._compute_api = nova.compute.API() + self._compute_api = compute.API() @wsgi.expected_errors(404) def index(self, req, server_id): diff --git a/nova/api/openstack/compute/lock_server.py b/nova/api/openstack/compute/lock_server.py index a81a06e196..ba770c9f70 100644 --- a/nova/api/openstack/compute/lock_server.py +++ b/nova/api/openstack/compute/lock_server.py @@ -18,7 +18,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import lock_server from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova.policies import lock_server as ls_policies diff --git a/nova/api/openstack/compute/migrate_server.py b/nova/api/openstack/compute/migrate_server.py index 03a771fa34..05d3210c7f 100644 --- a/nova/api/openstack/compute/migrate_server.py +++ b/nova/api/openstack/compute/migrate_server.py @@ -23,7 +23,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import migrate_server from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova import network diff --git a/nova/api/openstack/compute/migrations.py b/nova/api/openstack/compute/migrations.py index f99cf72cbe..045dc511fa 100644 --- a/nova/api/openstack/compute/migrations.py +++ b/nova/api/openstack/compute/migrations.py @@ -18,7 +18,7 @@ from nova.api.openstack.compute.schemas import migrations as schema_migrations from nova.api.openstack.compute.views import migrations as migrations_view from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova.objects import base as obj_base diff --git a/nova/api/openstack/compute/multinic.py b/nova/api/openstack/compute/multinic.py index 4c01d96e49..2b7c222d57 100644 --- a/nova/api/openstack/compute/multinic.py +++ b/nova/api/openstack/compute/multinic.py @@ -21,7 +21,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import multinic from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import multinic as multinic_policies diff --git a/nova/api/openstack/compute/pause_server.py b/nova/api/openstack/compute/pause_server.py index 35238f9f7c..44e1f10bb6 100644 --- a/nova/api/openstack/compute/pause_server.py +++ b/nova/api/openstack/compute/pause_server.py @@ -17,7 +17,7 @@ from webob import exc from nova.api.openstack import common from nova.api.openstack import wsgi -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import pause_server as ps_policies diff --git a/nova/api/openstack/compute/remote_consoles.py b/nova/api/openstack/compute/remote_consoles.py index 342f6f7f63..686ff802ec 100644 --- a/nova/api/openstack/compute/remote_consoles.py +++ b/nova/api/openstack/compute/remote_consoles.py @@ -18,7 +18,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import remote_consoles from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import remote_consoles as rc_policies diff --git a/nova/api/openstack/compute/rescue.py b/nova/api/openstack/compute/rescue.py index 93d0a756ec..683643c9d7 100644 --- a/nova/api/openstack/compute/rescue.py +++ b/nova/api/openstack/compute/rescue.py @@ -20,7 +20,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import rescue from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute import nova.conf from nova import exception from nova.policies import rescue as rescue_policies diff --git a/nova/api/openstack/compute/security_groups.py b/nova/api/openstack/compute/security_groups.py index aea0cb872f..8267cfcba9 100644 --- a/nova/api/openstack/compute/security_groups.py +++ b/nova/api/openstack/compute/security_groups.py @@ -25,7 +25,7 @@ from nova.api.openstack.compute.schemas import security_groups as \ schema_security_groups from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova.network.security_group import openstack_driver diff --git a/nova/api/openstack/compute/server_diagnostics.py b/nova/api/openstack/compute/server_diagnostics.py index 5e091f74c1..aab601e055 100644 --- a/nova/api/openstack/compute/server_diagnostics.py +++ b/nova/api/openstack/compute/server_diagnostics.py @@ -19,7 +19,7 @@ from nova.api.openstack import api_version_request from nova.api.openstack import common from nova.api.openstack.compute.views import server_diagnostics from nova.api.openstack import wsgi -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import server_diagnostics as sd_policies diff --git a/nova/api/openstack/compute/server_external_events.py b/nova/api/openstack/compute/server_external_events.py index 81a303f976..7236aed6ca 100644 --- a/nova/api/openstack/compute/server_external_events.py +++ b/nova/api/openstack/compute/server_external_events.py @@ -18,7 +18,7 @@ import webob from nova.api.openstack.compute.schemas import server_external_events from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import context as nova_context from nova.i18n import _ from nova import objects diff --git a/nova/api/openstack/compute/server_metadata.py b/nova/api/openstack/compute/server_metadata.py index f042623a6a..b414b86f9b 100644 --- a/nova/api/openstack/compute/server_metadata.py +++ b/nova/api/openstack/compute/server_metadata.py @@ -20,7 +20,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import server_metadata from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova.policies import server_metadata as sm_policies diff --git a/nova/api/openstack/compute/server_migrations.py b/nova/api/openstack/compute/server_migrations.py index 3e30971230..e3d46c070a 100644 --- a/nova/api/openstack/compute/server_migrations.py +++ b/nova/api/openstack/compute/server_migrations.py @@ -20,7 +20,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import server_migrations from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova.policies import servers_migrations as sm_policies diff --git a/nova/api/openstack/compute/server_password.py b/nova/api/openstack/compute/server_password.py index a953ff8c88..a837fae017 100644 --- a/nova/api/openstack/compute/server_password.py +++ b/nova/api/openstack/compute/server_password.py @@ -18,7 +18,7 @@ from nova.api.metadata import password from nova.api.openstack import common from nova.api.openstack import wsgi -from nova import compute +from nova.compute import api as compute from nova.policies import server_password as sp_policies diff --git a/nova/api/openstack/compute/server_tags.py b/nova/api/openstack/compute/server_tags.py index d39c0d0ad8..220ef612fe 100644 --- a/nova/api/openstack/compute/server_tags.py +++ b/nova/api/openstack/compute/server_tags.py @@ -19,7 +19,7 @@ from nova.api.openstack.compute.views import server_tags from nova.api.openstack import wsgi from nova.api import validation from nova.api.validation import parameter_types -from nova import compute +from nova.compute import api as compute from nova.compute import vm_states from nova import context as nova_context from nova import exception diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index 30158dcf02..b037956bb7 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -33,7 +33,7 @@ from nova.api.openstack.compute.views import servers as views_servers from nova.api.openstack import wsgi from nova.api import validation from nova import block_device -from nova import compute +from nova.compute import api as compute from nova.compute import flavors from nova.compute import utils as compute_utils import nova.conf diff --git a/nova/api/openstack/compute/services.py b/nova/api/openstack/compute/services.py index 91c4fe2ad6..9180c63f4f 100644 --- a/nova/api/openstack/compute/services.py +++ b/nova/api/openstack/compute/services.py @@ -21,7 +21,7 @@ from nova.api.openstack.compute.schemas import services from nova.api.openstack import wsgi from nova.api import validation from nova import availability_zones -from nova import compute +from nova.compute import api as compute from nova import exception from nova.i18n import _ from nova import objects @@ -38,7 +38,7 @@ class ServiceController(wsgi.Controller): def __init__(self): self.host_api = compute.HostAPI() - self.aggregate_api = compute.api.AggregateAPI() + self.aggregate_api = compute.AggregateAPI() self.servicegroup_api = servicegroup.API() self.actions = {"enable": self._enable, "disable": self._disable, diff --git a/nova/api/openstack/compute/shelve.py b/nova/api/openstack/compute/shelve.py index ba17ff0a3f..3ae4d6c8bd 100644 --- a/nova/api/openstack/compute/shelve.py +++ b/nova/api/openstack/compute/shelve.py @@ -18,7 +18,7 @@ from webob import exc from nova.api.openstack import common from nova.api.openstack import wsgi -from nova import compute +from nova.compute import api as compute from nova.compute import vm_states from nova import exception from nova.i18n import _ diff --git a/nova/api/openstack/compute/suspend_server.py b/nova/api/openstack/compute/suspend_server.py index 269f2afa51..0993b5f909 100644 --- a/nova/api/openstack/compute/suspend_server.py +++ b/nova/api/openstack/compute/suspend_server.py @@ -16,7 +16,7 @@ from webob import exc from nova.api.openstack import common from nova.api.openstack import wsgi -from nova import compute +from nova.compute import api as compute from nova import exception from nova.policies import suspend_server as ss_policies diff --git a/nova/api/openstack/compute/views/servers.py b/nova/api/openstack/compute/views/servers.py index 1e5f96fb2b..acc2542fce 100644 --- a/nova/api/openstack/compute/views/servers.py +++ b/nova/api/openstack/compute/views/servers.py @@ -23,7 +23,7 @@ from nova.api.openstack.compute.views import addresses as views_addresses from nova.api.openstack.compute.views import flavors as views_flavors from nova.api.openstack.compute.views import images as views_images from nova import availability_zones as avail_zone -from nova import compute +from nova.compute import api as compute from nova.compute import vm_states from nova import context as nova_context from nova import exception diff --git a/nova/api/openstack/compute/volumes.py b/nova/api/openstack/compute/volumes.py index 4d533ae210..f7c5357e6d 100644 --- a/nova/api/openstack/compute/volumes.py +++ b/nova/api/openstack/compute/volumes.py @@ -25,7 +25,7 @@ from nova.api.openstack import common from nova.api.openstack.compute.schemas import volumes as volumes_schema from nova.api.openstack import wsgi from nova.api import validation -from nova import compute +from nova.compute import api as compute from nova.compute import vm_states from nova import exception from nova.i18n import _ diff --git a/nova/compute/__init__.py b/nova/compute/__init__.py index 46cba14b7c..e69de29bb2 100644 --- a/nova/compute/__init__.py +++ b/nova/compute/__init__.py @@ -1,50 +0,0 @@ -# Copyright 2010 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# All Rights Reserved. -# -# 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 oslo_utils import importutils - -# TODO(stephenfin): Remove this nonsense -CELL_TYPE_TO_CLS_NAME = {None: 'nova.compute.api.API'} - - -def _get_compute_api_class_name(): - """Returns the name of compute API class.""" - return CELL_TYPE_TO_CLS_NAME[None] - - -def API(*args, **kwargs): - class_name = _get_compute_api_class_name() - return importutils.import_object(class_name, *args, **kwargs) - - -def HostAPI(*args, **kwargs): - """Returns the 'HostAPI' class from the same module as the configured - compute api - """ - compute_api_class_name = _get_compute_api_class_name() - compute_api_class = importutils.import_class(compute_api_class_name) - class_name = compute_api_class.__module__ + ".HostAPI" - return importutils.import_object(class_name, *args, **kwargs) - - -def InstanceActionAPI(*args, **kwargs): - """Returns the 'InstanceActionAPI' class from the same module as the - configured compute api. - """ - compute_api_class_name = _get_compute_api_class_name() - compute_api_class = importutils.import_class(compute_api_class_name) - class_name = compute_api_class.__module__ + ".InstanceActionAPI" - return importutils.import_object(class_name, *args, **kwargs) diff --git a/nova/compute/manager.py b/nova/compute/manager.py index a0d9b5a503..3960bab19c 100644 --- a/nova/compute/manager.py +++ b/nova/compute/manager.py @@ -56,7 +56,7 @@ import six from six.moves import range from nova import block_device -from nova import compute +from nova.compute import api as compute from nova.compute import build_results from nova.compute import claims from nova.compute import power_state diff --git a/nova/tests/unit/api/openstack/compute/test_services.py b/nova/tests/unit/api/openstack/compute/test_services.py index d0c22cf262..bccca572a5 100644 --- a/nova/tests/unit/api/openstack/compute/test_services.py +++ b/nova/tests/unit/api/openstack/compute/test_services.py @@ -25,7 +25,7 @@ import webob.exc from nova.api.openstack.compute import services as services_v21 from nova.api.openstack import wsgi as os_wsgi from nova import availability_zones -from nova import compute +from nova.compute import api as compute from nova import context from nova import exception from nova import objects diff --git a/nova/tests/unit/compute/test_compute.py b/nova/tests/unit/compute/test_compute.py index 5ef91d3f3a..a86b7f7e2d 100644 --- a/nova/tests/unit/compute/test_compute.py +++ b/nova/tests/unit/compute/test_compute.py @@ -44,8 +44,7 @@ from testtools import matchers as testtools_matchers import nova from nova import availability_zones from nova import block_device -from nova import compute -from nova.compute import api as compute_api +from nova.compute import api as compute from nova.compute import flavors from nova.compute import instance_actions from nova.compute import manager as compute_manager @@ -103,10 +102,9 @@ FAKE_IMAGE_REF = uuids.image_ref NODENAME = 'fakenode1' NODENAME2 = 'fakenode2' -COMPUTE_VERSION_NEW_ATTACH_FLOW = \ - compute_api.CINDER_V3_ATTACH_MIN_COMPUTE_VERSION +COMPUTE_VERSION_NEW_ATTACH_FLOW = compute.CINDER_V3_ATTACH_MIN_COMPUTE_VERSION COMPUTE_VERSION_OLD_ATTACH_FLOW = \ - compute_api.CINDER_V3_ATTACH_MIN_COMPUTE_VERSION - 1 + compute.CINDER_V3_ATTACH_MIN_COMPUTE_VERSION - 1 def fake_not_implemented(*args, **kwargs): @@ -8597,7 +8595,7 @@ class ComputeAPITestCase(BaseTestCase): # is written for nova-network and using the database. Neutron-specific # security group API tests are covered in # nova.tests.unit.network.security_group.test_neutron_driver. - self.security_group_api = compute_api.SecurityGroupAPI() + self.security_group_api = compute.SecurityGroupAPI() self.compute_api = compute.API( security_group_api=self.security_group_api) @@ -10161,7 +10159,7 @@ class ComputeAPITestCase(BaseTestCase): @ddt.data(True, False) @mock.patch.object(compute_rpcapi.ComputeAPI, 'get_vnc_console') - @mock.patch.object(compute_api.consoleauth_rpcapi.ConsoleAuthAPI, + @mock.patch.object(compute.consoleauth_rpcapi.ConsoleAuthAPI, 'authorize_console') def test_vnc_console(self, enable_consoleauth, mock_auth, mock_get): self.flags(enable_consoleauth=enable_consoleauth, group='workarounds') @@ -10204,7 +10202,7 @@ class ComputeAPITestCase(BaseTestCase): self.context, instance, 'novnc') @ddt.data(True, False) - @mock.patch.object(compute_api.consoleauth_rpcapi.ConsoleAuthAPI, + @mock.patch.object(compute.consoleauth_rpcapi.ConsoleAuthAPI, 'authorize_console') @mock.patch.object(compute_rpcapi.ComputeAPI, 'get_spice_console') def test_spice_console(self, enable_consoleauth, mock_spice, mock_auth): @@ -10267,7 +10265,7 @@ class ComputeAPITestCase(BaseTestCase): self.context, instance, console_type) @ddt.data(True, False) - @mock.patch.object(compute_api.consoleauth_rpcapi.ConsoleAuthAPI, + @mock.patch.object(compute.consoleauth_rpcapi.ConsoleAuthAPI, 'authorize_console') @mock.patch.object(compute_rpcapi.ComputeAPI, 'get_rdp_console') def test_rdp_console(self, enable_consoleauth, mock_rdp, mock_auth): @@ -10823,10 +10821,10 @@ class ComputeAPITestCase(BaseTestCase): 'disk_bus': 'ide', 'instance_uuid': instance.uuid})) with test.nested( - mock.patch.object(compute_api.API, + mock.patch.object(compute.API, '_create_volume_bdm', return_value=fake_bdm), - mock.patch.object(compute_api.API, + mock.patch.object(compute.API, '_check_attach_and_reserve_volume'), mock.patch.object(cinder.API, 'attach'), mock.patch.object(compute_utils, 'EventReporter') @@ -10864,10 +10862,10 @@ class ComputeAPITestCase(BaseTestCase): fake_bdm.attachment_id = uuids.attachment_id with test.nested( - mock.patch.object(compute_api.API, + mock.patch.object(compute.API, '_create_volume_bdm', return_value=fake_bdm), - mock.patch.object(compute_api.API, + mock.patch.object(compute.API, '_check_attach_and_reserve_volume', side_effect=fake_check_attach_and_reserve), mock.patch.object(cinder.API, 'attachment_complete') @@ -10960,7 +10958,7 @@ class ComputeAPITestCase(BaseTestCase): @mock.patch('nova.compute.api.API._record_action_start') @mock.patch.object(compute_utils, 'EventReporter') @mock.patch.object(nova.volume.cinder.API, 'begin_detaching') - @mock.patch.object(compute_api.API, '_local_cleanup_bdm_volumes') + @mock.patch.object(compute.API, '_local_cleanup_bdm_volumes') @mock.patch.object(objects.BlockDeviceMapping, 'get_by_volume_id') def test_detach_volume_shelved_offloaded(self, mock_block_dev, @@ -10987,7 +10985,7 @@ class ComputeAPITestCase(BaseTestCase): self.assertTrue(mock_local_cleanup.called) @mock.patch.object(nova.volume.cinder.API, 'begin_detaching') - @mock.patch.object(compute_api.API, '_local_cleanup_bdm_volumes') + @mock.patch.object(compute.API, '_local_cleanup_bdm_volumes') @mock.patch.object(objects.BlockDeviceMapping, 'get_by_volume_id') def test_detach_volume_shelved_offloaded_new_flow(self, mock_block_dev, @@ -11403,7 +11401,7 @@ class ComputeAPITestCase(BaseTestCase): []) self.assertFalse(mock_refresh.called) - @mock.patch.object(compute_api.SecurityGroupAPI, + @mock.patch.object(compute.SecurityGroupAPI, '_refresh_instance_security_rules') @mock.patch.object(objects.InstanceList, 'get_by_grantee_security_group_ids') @@ -11417,7 +11415,7 @@ class ComputeAPITestCase(BaseTestCase): mock_refresh.assert_called_once_with(mock.sentinel.ctxt, mock.sentinel.instances) - @mock.patch.object(compute_api.SecurityGroupAPI, + @mock.patch.object(compute.SecurityGroupAPI, '_refresh_instance_security_rules') @mock.patch.object(objects.InstanceList, 'get_by_security_group_id') @@ -11871,7 +11869,7 @@ class ComputeAPIAggrTestCase(BaseTestCase): def setUp(self): super(ComputeAPIAggrTestCase, self).setUp() - self.api = compute_api.AggregateAPI() + self.api = compute.AggregateAPI() self.context = context.get_admin_context() self.stub_out('oslo_messaging.rpc.client.call', fake_rpc_method) self.stub_out('oslo_messaging.rpc.client.cast', fake_rpc_method) @@ -12552,7 +12550,7 @@ class ComputeAPIAggrCallsSchedulerTestCase(test.NoDBTestCase): def setUp(self): super(ComputeAPIAggrCallsSchedulerTestCase, self).setUp() - self.api = compute_api.AggregateAPI() + self.api = compute.AggregateAPI() self.context = context.RequestContext('fake', 'fake') @mock.patch('nova.scheduler.client.query.SchedulerQueryClient.' @@ -13674,7 +13672,7 @@ class ComputeHooksTestCase(test.BaseHookTestCase): self.assert_has_hook('delete_instance', delete_func) def test_create_instance_has_hook(self): - create_func = compute_api.API.create + create_func = compute.API.create self.assert_has_hook('create_instance', create_func) def test_build_instance_has_hook(self): diff --git a/nova/tests/unit/compute/test_host_api.py b/nova/tests/unit/compute/test_host_api.py index 9f575da521..10475fb696 100644 --- a/nova/tests/unit/compute/test_host_api.py +++ b/nova/tests/unit/compute/test_host_api.py @@ -19,8 +19,7 @@ import mock from oslo_utils.fixture import uuidsentinel as uuids from nova.api.openstack.compute import services -from nova import compute -from nova.compute import api as compute_api +from nova.compute import api as compute from nova import context from nova import exception from nova import objects @@ -36,7 +35,7 @@ class ComputeHostAPITestCase(test.TestCase): def setUp(self): super(ComputeHostAPITestCase, self).setUp() self.host_api = compute.HostAPI() - self.aggregate_api = compute_api.AggregateAPI() + self.aggregate_api = compute.AggregateAPI() self.ctxt = context.get_admin_context() fake_notifier.stub_notifier(self) self.addCleanup(fake_notifier.reset) @@ -411,7 +410,7 @@ class ComputeHostAPITestCase(test.TestCase): @mock.patch('nova.compute.api.load_cells') @mock.patch('nova.objects.Service.get_by_id') def test_service_delete(self, get_by_id, load_cells, set_target): - compute_api.CELLS = [ + compute.CELLS = [ objects.CellMapping(), objects.CellMapping(), objects.CellMapping(), @@ -426,13 +425,13 @@ class ComputeHostAPITestCase(test.TestCase): mock.call(self.ctxt, 1), mock.call(self.ctxt, 1)]) service.destroy.assert_called_once_with() - set_target.assert_called_once_with(self.ctxt, compute_api.CELLS[1]) + set_target.assert_called_once_with(self.ctxt, compute.CELLS[1]) @mock.patch('nova.context.set_target_cell') @mock.patch('nova.compute.api.load_cells') @mock.patch('nova.objects.Service.get_by_id') def test_service_delete_ambiguous(self, get_by_id, load_cells, set_target): - compute_api.CELLS = [ + compute.CELLS = [ objects.CellMapping(), objects.CellMapping(), objects.CellMapping(), @@ -489,10 +488,10 @@ class ComputeHostAPITestCase(test.TestCase): {'stat1': 1, 'stat2': 4.0}, {'stat1': 5, 'stat2': 1.2}, ] - compute_api.CELLS = [objects.CellMapping(uuid=uuids.cell1), - objects.CellMapping( + compute.CELLS = [objects.CellMapping(uuid=uuids.cell1), + objects.CellMapping( uuid=objects.CellMapping.CELL0_UUID), - objects.CellMapping(uuid=uuids.cell2)] + objects.CellMapping(uuid=uuids.cell2)] stats = self.host_api.compute_node_statistics(self.ctxt) self.assertEqual({'stat1': 6, 'stat2': 5.2}, stats) @@ -561,7 +560,7 @@ class ComputeHostAPITestCase(test.TestCase): class ComputeAggregateAPITestCase(test.TestCase): def setUp(self): super(ComputeAggregateAPITestCase, self).setUp() - self.aggregate_api = compute_api.AggregateAPI() + self.aggregate_api = compute.AggregateAPI() self.ctxt = context.get_admin_context() # NOTE(jaypipes): We just mock out the HostNapping and Service object # lookups in order to bypass the code that does cell lookup stuff, @@ -579,7 +578,7 @@ class ComputeAggregateAPITestCase(test.TestCase): @mock.patch('nova.scheduler.client.report.SchedulerReportClient.' 'aggregate_add_host') - @mock.patch.object(compute_api.LOG, 'warning') + @mock.patch.object(compute.LOG, 'warning') def test_aggregate_add_host_placement_missing_provider( self, mock_log, mock_pc_add_host): hostname = 'fake-host' @@ -597,7 +596,7 @@ class ComputeAggregateAPITestCase(test.TestCase): @mock.patch('nova.scheduler.client.report.SchedulerReportClient.' 'aggregate_add_host') - @mock.patch.object(compute_api.LOG, 'warning') + @mock.patch.object(compute.LOG, 'warning') def test_aggregate_add_host_bad_placement( self, mock_log, mock_pc_add_host): hostname = 'fake-host' @@ -617,7 +616,7 @@ class ComputeAggregateAPITestCase(test.TestCase): @mock.patch('nova.objects.Aggregate.delete_host') @mock.patch('nova.scheduler.client.report.SchedulerReportClient.' 'aggregate_remove_host') - @mock.patch.object(compute_api.LOG, 'warning') + @mock.patch.object(compute.LOG, 'warning') def test_aggregate_remove_host_bad_placement( self, mock_log, mock_pc_remove_host, mock_agg_obj_delete_host): hostname = 'fake-host' @@ -637,7 +636,7 @@ class ComputeAggregateAPITestCase(test.TestCase): @mock.patch('nova.objects.Aggregate.delete_host') @mock.patch('nova.scheduler.client.report.SchedulerReportClient.' 'aggregate_remove_host') - @mock.patch.object(compute_api.LOG, 'warning') + @mock.patch.object(compute.LOG, 'warning') def test_aggregate_remove_host_placement_missing_provider( self, mock_log, mock_pc_remove_host, mock_agg_obj_delete_host): hostname = 'fake-host' diff --git a/nova/tests/unit/test_quota.py b/nova/tests/unit/test_quota.py index fd79e4f5f4..85d37be330 100644 --- a/nova/tests/unit/test_quota.py +++ b/nova/tests/unit/test_quota.py @@ -19,7 +19,7 @@ import mock from oslo_db.sqlalchemy import enginefacade from six.moves import range -from nova import compute +from nova.compute import api as compute import nova.conf from nova import context from nova.db import api as db diff --git a/nova/virt/vmwareapi/vmops.py b/nova/virt/vmwareapi/vmops.py index 5cac6ba2a8..b722220be9 100644 --- a/nova/virt/vmwareapi/vmops.py +++ b/nova/virt/vmwareapi/vmops.py @@ -37,7 +37,7 @@ from oslo_vmware.objects import datastore as ds_obj from oslo_vmware import vim_util as vutil from nova.api.metadata import base as instance_metadata -from nova import compute +from nova.compute import api as compute from nova.compute import power_state from nova.compute import task_states import nova.conf diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py index 80a1bb3c9e..0b6f3bc8cd 100644 --- a/nova/virt/xenapi/vmops.py +++ b/nova/virt/xenapi/vmops.py @@ -40,7 +40,7 @@ from oslo_utils import versionutils import six from nova import block_device -from nova import compute +from nova.compute import api as compute from nova.compute import power_state from nova.compute import task_states from nova.compute import vm_states