Use openstack.common.importutils.

Use import_class(), import_object(), and import_module() from
openstack-common's importutils module.  The equivalent functions have
been removed from nova.utils.  A few modules had import order cleaned up
in passing, as well.

My initial motivation for this was to remove some more usage of nova
bits from nova.rpc as another step towards being able to move nova.rpc
import openstack-common.  Since I was pulling importutils into nova, I
went ahead and converted the whole thing.

Change-Id: I7c7786cf0001bcd06db52b9a99ff4284a3f6c6fa
This commit is contained in:
Russell Bryant
2012-04-27 14:14:18 -04:00
parent 129ccf81b1
commit d6827d7a23
16 changed files with 67 additions and 56 deletions

View File

@@ -40,6 +40,7 @@ from nova import db
from nova import flags
from nova import log as logging
from nova.network import linux_net
from nova.openstack.common import importutils
from nova import rpc
from nova import utils
@@ -52,7 +53,7 @@ def add_lease(mac, ip_address):
"""Set the IP that was assigned by the DHCP server."""
if FLAGS.fake_rabbit:
LOG.debug(_("leasing ip"))
network_manager = utils.import_object(FLAGS.network_manager)
network_manager = importutils.import_object(FLAGS.network_manager)
network_manager.lease_fixed_ip(context.get_admin_context(),
ip_address)
else:
@@ -74,7 +75,7 @@ def del_lease(mac, ip_address):
"""Called when a lease expires."""
if FLAGS.fake_rabbit:
LOG.debug(_("releasing ip"))
network_manager = utils.import_object(FLAGS.network_manager)
network_manager = importutils.import_object(FLAGS.network_manager)
network_manager.release_fixed_ip(context.get_admin_context(),
ip_address)
else:
@@ -88,7 +89,7 @@ def init_leases(network_id):
"""Get the list of hosts for a network."""
ctxt = context.get_admin_context()
network_ref = db.network_get(ctxt, network_id)
network_manager = utils.import_object(FLAGS.network_manager)
network_manager = importutils.import_object(FLAGS.network_manager)
return network_manager.get_dhcp_leases(ctxt, network_ref)

View File

@@ -76,21 +76,22 @@ if os.path.exists(os.path.join(POSSIBLE_TOPDIR, 'nova', '__init__.py')):
gettext.install('nova', unicode=1)
from nova.api.ec2 import ec2utils
from nova.auth import manager
from nova.compat import flagfile
from nova.compute import instance_types
from nova import context
from nova import crypto
from nova import db
from nova.db import migration
from nova import exception
from nova import flags
from nova import log as logging
from nova.openstack.common import importutils
from nova import quota
from nova import rpc
from nova import utils
from nova import version
from nova.api.ec2 import ec2utils
from nova.auth import manager
from nova.compute import instance_types
from nova.db import migration
from nova.volume import volume_types
FLAGS = flags.FLAGS
@@ -794,7 +795,7 @@ class NetworkCommands(object):
fixed_cidr = netaddr.IPNetwork(fixed_cidr)
# create the network
net_manager = utils.import_object(FLAGS.network_manager)
net_manager = importutils.import_object(FLAGS.network_manager)
net_manager.create_networks(context.get_admin_context(),
label=label,
cidr=fixed_range_v4,
@@ -863,7 +864,7 @@ class NetworkCommands(object):
if fixed_range is None and uuid is None:
raise Exception("Please specify either fixed_range or uuid")
net_manager = utils.import_object(FLAGS.network_manager)
net_manager = importutils.import_object(FLAGS.network_manager)
if "QuantumManager" in FLAGS.network_manager:
if uuid is None:
raise Exception("UUID is required to delete Quantum Networks")

View File

@@ -35,6 +35,7 @@ from nova import exception
from nova import flags
from nova import log as logging
from nova.openstack.common import cfg
from nova.openstack.common import importutils
from nova import utils
from nova.auth import signer
@@ -247,9 +248,9 @@ class AuthManager(object):
__init__ is run every time AuthManager() is called, so we only
reset the driver if it is not set or a new driver is specified.
"""
self.network_manager = utils.import_object(FLAGS.network_manager)
self.network_manager = importutils.import_object(FLAGS.network_manager)
if driver or not getattr(self, 'driver', None):
self.driver = utils.import_class(driver or FLAGS.auth_driver)
self.driver = importutils.import_class(driver or FLAGS.auth_driver)
if AuthManager.mc is None:
AuthManager.mc = memcache.Client(FLAGS.memcached_servers, debug=0)

View File

@@ -19,6 +19,7 @@ from nova import flags
from nova import utils
from nova import log as logging
from nova.openstack.common import cfg
from nova.openstack.common import importutils
LOG = logging.getLogger(__name__)
@@ -117,7 +118,7 @@ def notify(publisher_id, event_type, priority, payload):
# Ensure everything is JSON serializable.
payload = utils.to_primitive(payload, convert_instances=True)
driver = utils.import_object(FLAGS.notification_driver)
driver = importutils.import_module(FLAGS.notification_driver)
msg = dict(message_id=str(uuid.uuid4()),
publisher_id=publisher_id,
event_type=event_type,

View File

@@ -13,11 +13,11 @@
# License for the specific language governing permissions and limitations
# under the License.
from nova import exception
from nova import flags
from nova import log as logging
from nova.openstack.common import cfg
from nova import utils
from nova.openstack.common import exception as common_exception
from nova.openstack.common import importutils
list_notifier_drivers_opt = cfg.MultiStrOpt('list_notifier_drivers',
@@ -49,8 +49,8 @@ def _get_drivers():
drivers = []
for notification_driver in FLAGS.list_notifier_drivers:
try:
drivers.append(utils.import_object(notification_driver))
except exception.ClassNotFound as e:
drivers.append(importutils.import_module(notification_driver))
except ImportError as e:
drivers.append(ImportFailureNotifier(e))
return drivers

View File

@@ -18,7 +18,7 @@
# under the License.
from nova.openstack.common import cfg
from nova import utils
from nova.openstack.common import importutils
rpc_opts = [
@@ -219,5 +219,5 @@ def _get_impl():
"""Delay import of rpc_backend until configuration is loaded."""
global _RPCIMPL
if _RPCIMPL is None:
_RPCIMPL = utils.import_object(_CONF.rpc_backend)
_RPCIMPL = importutils.import_module(_CONF.rpc_backend)
return _RPCIMPL

View File

@@ -24,6 +24,7 @@ import traceback
from nova import exception
from nova import log as logging
from nova.openstack.common import cfg
from nova.openstack.common import importutils
from nova import utils
@@ -192,8 +193,7 @@ def deserialize_remote_exception(conf, data):
return RemoteError(name, failure.get('message'), trace)
try:
__import__(module)
mod = sys.modules[module]
mod = importutils.import_module(module)
klass = getattr(mod, name)
if not issubclass(klass, Exception):
raise TypeError("Can only deserialize Exceptions")

View File

@@ -23,8 +23,8 @@ Scheduler that allows routing some calls to one driver and others to another.
from nova import flags
from nova.openstack.common import cfg
from nova.openstack.common import importutils
from nova.scheduler import driver
from nova import utils
multi_scheduler_opts = [
@@ -56,8 +56,10 @@ class MultiScheduler(driver.Scheduler):
def __init__(self):
super(MultiScheduler, self).__init__()
compute_driver = utils.import_object(FLAGS.compute_scheduler_driver)
volume_driver = utils.import_object(FLAGS.volume_scheduler_driver)
compute_driver = importutils.import_object(
FLAGS.compute_scheduler_driver)
volume_driver = importutils.import_object(
FLAGS.volume_scheduler_driver)
self.drivers = {'compute': compute_driver,
'volume': volume_driver}

View File

@@ -42,6 +42,7 @@ from nova import flags
from nova.image import fake as fake_image
from nova import log as logging
from nova.notifier import test_notifier
from nova.openstack.common import importutils
import nova.policy
from nova import rpc
from nova.rpc import common as rpc_common
@@ -104,7 +105,7 @@ class BaseTestCase(test.TestCase):
stub_network=True,
notification_driver='nova.notifier.test_notifier',
network_manager='nova.network.manager.FlatManager')
self.compute = utils.import_object(FLAGS.compute_manager)
self.compute = importutils.import_object(FLAGS.compute_manager)
self.user_id = 'fake'
self.project_id = 'fake'

View File

@@ -27,6 +27,7 @@ import nova.image.fake
from nova.compute import utils as compute_utils
from nova.compute import instance_types
from nova.notifier import test_notifier
from nova.openstack.common import importutils
from nova.tests import fake_network
@@ -51,7 +52,7 @@ class UsageInfoTestCase(test.TestCase):
stub_network=True,
notification_driver='nova.notifier.test_notifier',
network_manager='nova.network.manager.FlatManager')
self.compute = utils.import_object(FLAGS.compute_manager)
self.compute = importutils.import_object(FLAGS.compute_manager)
self.user_id = 'fake'
self.project_id = 'fake'
self.context = context.RequestContext(self.user_id, self.project_id)

View File

@@ -22,8 +22,8 @@ from nova import context
from nova import db
from nova import exception
from nova import flags
from nova.openstack.common import importutils
from nova import test
from nova import utils
FLAGS = flags.FLAGS
flags.DECLARE('console_driver', 'nova.console.manager')
@@ -35,7 +35,7 @@ class ConsoleTestCase(test.TestCase):
super(ConsoleTestCase, self).setUp()
self.flags(console_driver='nova.console.fake.FakeConsoleProxy',
stub_compute=True)
self.console = utils.import_object(FLAGS.console_manager)
self.console = importutils.import_object(FLAGS.console_manager)
self.user_id = 'fake'
self.project_id = 'fake'
self.context = context.RequestContext(self.user_id, self.project_id)

View File

@@ -22,13 +22,14 @@ Tests for Consoleauth Code.
import time
from nova.consoleauth import manager
from nova import context
from nova import db
from nova import flags
from nova import log as logging
from nova.openstack.common import importutils
from nova import test
from nova import utils
from nova.consoleauth import manager
FLAGS = flags.FLAGS
@@ -40,7 +41,7 @@ class ConsoleauthTestCase(test.TestCase):
def setUp(self):
super(ConsoleauthTestCase, self).setUp()
self.manager = utils.import_object(FLAGS.consoleauth_manager)
self.manager = importutils.import_object(FLAGS.consoleauth_manager)
self.context = context.get_admin_context()
def test_tokens_expire(self):

View File

@@ -27,18 +27,21 @@ import tempfile
from xml.etree import ElementTree
from xml.dom import minidom
from nova import context
from nova import db
from nova import exception
from nova import flags
from nova import log as logging
from nova import test
from nova import utils
from nova.api.ec2 import cloud
from nova.compute import instance_types
from nova.compute import power_state
from nova.compute import utils as compute_utils
from nova.compute import vm_states
from nova import context
from nova import db
from nova import exception
from nova import flags
from nova import log as logging
from nova.openstack.common import importutils
from nova import test
from nova.tests import fake_network
from nova.tests import fake_libvirt_utils
from nova import utils
from nova.virt import images
from nova.virt import driver
from nova.virt import firewall as base_firewall
@@ -48,8 +51,6 @@ from nova.virt.libvirt import firewall
from nova.virt.libvirt import volume
from nova.volume import driver as volume_driver
from nova.virt.libvirt import utils as libvirt_utils
from nova.tests import fake_network
from nova.tests import fake_libvirt_utils
try:
@@ -693,7 +694,7 @@ class LibvirtConnTestCase(test.TestCase):
self.flags(image_service='nova.image.fake.FakeImageService')
# Start test
image_service = utils.import_object(FLAGS.image_service)
image_service = importutils.import_object(FLAGS.image_service)
# Assign different image_ref from nova/images/fakes for testing ami
test_instance = copy.deepcopy(self.test_instance)
@@ -731,7 +732,7 @@ class LibvirtConnTestCase(test.TestCase):
self.flags(image_service='nova.image.fake.FakeImageService')
# Start test
image_service = utils.import_object(FLAGS.image_service)
image_service = importutils.import_object(FLAGS.image_service)
# Assuming that base image already exists in image_service
instance_ref = db.instance_create(self.context, self.test_instance)
@@ -766,7 +767,7 @@ class LibvirtConnTestCase(test.TestCase):
self.flags(snapshot_image_format='qcow2')
# Start test
image_service = utils.import_object(FLAGS.image_service)
image_service = importutils.import_object(FLAGS.image_service)
# Assuming that base image already exists in image_service
instance_ref = db.instance_create(self.context, self.test_instance)
@@ -800,7 +801,7 @@ class LibvirtConnTestCase(test.TestCase):
self.flags(image_service='nova.image.fake.FakeImageService')
# Start test
image_service = utils.import_object(FLAGS.image_service)
image_service = importutils.import_object(FLAGS.image_service)
# Assign different image_ref from nova/images/fakes for
# testing different base image
@@ -838,7 +839,7 @@ class LibvirtConnTestCase(test.TestCase):
self.flags(image_service='nova.image.fake.FakeImageService')
# Start test
image_service = utils.import_object(FLAGS.image_service)
image_service = importutils.import_object(FLAGS.image_service)
# Assign a non-existent image
test_instance = copy.deepcopy(self.test_instance)
@@ -1166,8 +1167,8 @@ class LibvirtConnTestCase(test.TestCase):
fake_timer = FakeTime()
# _fake_network_info must be called before create_fake_libvirt_mock(),
# as _fake_network_info calls utils.import_class() and
# create_fake_libvirt_mock() mocks utils.import_class().
# as _fake_network_info calls importutils.import_class() and
# create_fake_libvirt_mock() mocks importutils.import_class().
network_info = _fake_network_info(self.stubs, 1)
self.create_fake_libvirt_mock()
instance_ref = db.instance_create(self.context, self.test_instance)
@@ -1201,7 +1202,7 @@ class LibvirtConnTestCase(test.TestCase):
def test_live_migration_raises_exception(self):
"""Confirms recover method is called when exceptions are raised."""
# Preparing data
self.compute = utils.import_object(FLAGS.compute_manager)
self.compute = importutils.import_object(FLAGS.compute_manager)
instance_dict = {'host': 'fake',
'power_state': power_state.RUNNING,
'vm_state': vm_states.ACTIVE}
@@ -1362,8 +1363,8 @@ class LibvirtConnTestCase(test.TestCase):
return
# _fake_network_info must be called before create_fake_libvirt_mock(),
# as _fake_network_info calls utils.import_class() and
# create_fake_libvirt_mock() mocks utils.import_class().
# as _fake_network_info calls importutils.import_class() and
# create_fake_libvirt_mock() mocks importutils.import_class().
network_info = _fake_network_info(self.stubs, 1)
self.create_fake_libvirt_mock()

View File

@@ -23,6 +23,7 @@ from nova import context
from nova import db
from nova import flags
from nova import log as logging
from nova.openstack.common import importutils
from nova import test
from nova import utils
from nova.network import linux_net
@@ -211,7 +212,7 @@ class LinuxNetworkTestCase(test.TestCase):
def setUp(self):
super(LinuxNetworkTestCase, self).setUp()
network_driver = FLAGS.network_driver
self.driver = utils.import_object(network_driver)
self.driver = importutils.import_module(network_driver)
self.driver.db = db
self.context = context.RequestContext('testuser', 'testproject',
is_admin=True)

View File

@@ -29,10 +29,10 @@ from nova import exception
from nova import db
from nova import flags
from nova import log as logging
from nova.openstack.common import importutils
import nova.policy
from nova import rpc
from nova import test
from nova import utils
import nova.volume.api
FLAGS = flags.FLAGS
@@ -44,9 +44,9 @@ class VolumeTestCase(test.TestCase):
def setUp(self):
super(VolumeTestCase, self).setUp()
self.compute = utils.import_object(FLAGS.compute_manager)
self.compute = importutils.import_object(FLAGS.compute_manager)
self.flags(connection_type='fake')
self.volume = utils.import_object(FLAGS.volume_manager)
self.volume = importutils.import_object(FLAGS.volume_manager)
self.context = context.get_admin_context()
self.instance_id = db.instance_create(self.context, {})['id']
@@ -354,7 +354,7 @@ class DriverTestCase(test.TestCase):
super(DriverTestCase, self).setUp()
self.flags(volume_driver=self.driver_name,
logging_default_format_string="%(message)s")
self.volume = utils.import_object(FLAGS.volume_manager)
self.volume = importutils.import_object(FLAGS.volume_manager)
self.context = context.get_admin_context()
self.output = ""

View File

@@ -36,13 +36,13 @@ from nova import db
from nova import exception
from nova import flags
from nova import log as logging
from nova.openstack.common import importutils
from nova import test
from nova.tests.db import fakes as db_fakes
from nova.tests.xenapi import stubs
from nova.tests.glance import stubs as glance_stubs
from nova.tests import fake_network
from nova.tests import fake_utils
from nova import utils
from nova.virt.xenapi import connection as xenapi_conn
from nova.virt.xenapi import fake as xenapi_fake
from nova.virt.xenapi import volume_utils
@@ -215,7 +215,7 @@ class XenAPIVMTestCase(test.TestCase):
"""Unit tests for VM operations."""
def setUp(self):
super(XenAPIVMTestCase, self).setUp()
self.network = utils.import_object(FLAGS.network_manager)
self.network = importutils.import_object(FLAGS.network_manager)
self.flags(xenapi_connection_url='test_url',
xenapi_connection_password='test_pass',
instance_name_template='%d',
@@ -1546,7 +1546,7 @@ class XenAPIDom0IptablesFirewallTestCase(test.TestCase):
stubs.stubout_session(self.stubs, stubs.FakeSessionForFirewallTests,
test_case=self)
self.context = context.RequestContext(self.user_id, self.project_id)
self.network = utils.import_object(FLAGS.network_manager)
self.network = importutils.import_object(FLAGS.network_manager)
self.conn = xenapi_conn.get_connection(False)
self.fw = self.conn._vmops.firewall_driver