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
This commit is contained in:
Eric Fried 2019-05-22 17:09:57 -05:00 committed by Stephen Finucane
parent 43dd054685
commit b4c03e325b
43 changed files with 73 additions and 126 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 _

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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):

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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,

View File

@ -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 _

View File

@ -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

View File

@ -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

View File

@ -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 _

View File

@ -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)

View File

@ -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

View File

@ -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

View File

@ -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):

View File

@ -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'

View File

@ -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

View File

@ -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

View File

@ -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