summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nova/api/ec2/__init__.py4
-rw-r--r--nova/api/ec2/apirequest.py4
-rw-r--r--nova/api/ec2/cloud.py2
-rw-r--r--nova/api/ec2/ec2utils.py3
-rw-r--r--nova/api/metadata/base.py4
-rw-r--r--nova/api/openstack/compute/contrib/admin_actions.py2
-rw-r--r--nova/api/openstack/compute/contrib/baremetal_nodes.py2
-rw-r--r--nova/api/openstack/compute/contrib/cells.py4
-rw-r--r--nova/api/openstack/compute/contrib/cloudpipe.py2
-rw-r--r--nova/api/openstack/compute/contrib/disk_config.py2
-rw-r--r--nova/api/openstack/compute/contrib/evacuate.py2
-rw-r--r--nova/api/openstack/compute/contrib/quotas.py2
-rw-r--r--nova/api/openstack/compute/contrib/simple_tenant_usage.py2
-rw-r--r--nova/api/openstack/compute/contrib/volumes.py2
-rw-r--r--nova/api/openstack/compute/flavors.py2
-rw-r--r--nova/api/openstack/compute/limits.py2
-rw-r--r--nova/api/openstack/compute/plugins/v3/block_device_mapping_v1.py2
-rw-r--r--nova/api/openstack/compute/plugins/v3/cells.py2
-rw-r--r--nova/api/openstack/compute/plugins/v3/evacuate.py2
-rw-r--r--nova/api/openstack/compute/plugins/v3/flavors.py2
-rw-r--r--nova/api/openstack/compute/plugins/v3/migrate_server.py2
-rw-r--r--nova/api/openstack/compute/plugins/v3/quota_sets.py2
-rw-r--r--nova/api/openstack/compute/plugins/v3/servers.py4
-rw-r--r--nova/api/openstack/compute/plugins/v3/simple_tenant_usage.py2
-rw-r--r--nova/api/openstack/compute/plugins/v3/volumes.py2
-rw-r--r--nova/api/openstack/compute/servers.py4
-rw-r--r--nova/api/openstack/compute/versions.py2
-rw-r--r--nova/api/openstack/compute/views/images.py3
-rw-r--r--nova/api/openstack/compute/views/limits.py2
-rw-r--r--nova/api/openstack/compute/views/servers.py3
-rw-r--r--nova/api/openstack/extensions.py2
-rw-r--r--nova/api/validation/validators.py2
-rw-r--r--nova/block_device.py2
-rw-r--r--nova/cells/manager.py4
-rw-r--r--nova/cells/messaging.py6
-rw-r--r--nova/cells/state.py4
-rw-r--r--nova/cells/weights/mute_child.py2
-rw-r--r--nova/cmd/baremetal_deploy_helper.py5
-rw-r--r--nova/cmd/dhcpbridge.py2
-rw-r--r--nova/cmd/manage.py2
-rw-r--r--nova/compute/__init__.py6
-rw-r--r--nova/compute/api.py6
-rw-r--r--nova/compute/flavors.py2
-rw-r--r--nova/compute/manager.py6
-rw-r--r--nova/compute/monitors/__init__.py2
-rw-r--r--nova/compute/monitors/virt/cpu_monitor.py2
-rw-r--r--nova/compute/resource_tracker.py2
-rw-r--r--nova/conductor/manager.py4
-rw-r--r--nova/console/manager.py2
-rw-r--r--nova/console/vmrc_manager.py2
-rw-r--r--nova/console/xvp.py2
-rw-r--r--nova/context.py2
-rw-r--r--nova/crypto.py4
-rw-r--r--nova/db/base.py3
-rw-r--r--nova/db/sqlalchemy/api.py4
-rw-r--r--nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py3
-rw-r--r--nova/db/sqlalchemy/models.py12
-rw-r--r--nova/exception.py2
-rw-r--r--nova/image/glance.py2
-rw-r--r--nova/keymgr/__init__.py3
-rw-r--r--nova/loadables.py3
-rw-r--r--nova/network/__init__.py6
-rw-r--r--nova/network/base_api.py3
-rw-r--r--nova/network/driver.py2
-rw-r--r--nova/network/floating_ips.py4
-rw-r--r--nova/network/linux_net.py6
-rw-r--r--nova/network/manager.py8
-rw-r--r--nova/network/neutronv2/api.py2
-rw-r--r--nova/network/security_group/neutron_driver.py2
-rw-r--r--nova/network/security_group/openstack_driver.py3
-rw-r--r--nova/notifications.py4
-rw-r--r--nova/objects/base.py2
-rw-r--r--nova/objects/fields.py2
-rw-r--r--nova/objects/fixed_ip.py3
-rw-r--r--nova/objects/instance.py3
-rw-r--r--nova/objects/instance_action.py3
-rw-r--r--nova/openstack/common/memorycache.py2
-rw-r--r--nova/openstack/common/network_utils.py159
-rw-r--r--nova/openstack/common/units.py38
-rw-r--r--nova/quota.py4
-rw-r--r--nova/scheduler/client/__init__.py2
-rw-r--r--nova/scheduler/driver.py4
-rw-r--r--nova/scheduler/filters/trusted_filter.py2
-rw-r--r--nova/scheduler/host_manager.py2
-rw-r--r--nova/scheduler/ironic_host_manager.py2
-rw-r--r--nova/scheduler/manager.py4
-rw-r--r--nova/scheduler/scheduler_options.py4
-rw-r--r--nova/service.py2
-rw-r--r--nova/servicegroup/api.py2
-rw-r--r--nova/servicegroup/drivers/db.py2
-rw-r--r--nova/servicegroup/drivers/mc.py2
-rw-r--r--nova/servicegroup/drivers/zk.py2
-rw-r--r--nova/test.py2
-rw-r--r--nova/tests/api/ec2/test_apirequest.py3
-rw-r--r--nova/tests/api/ec2/test_cloud.py2
-rw-r--r--nova/tests/api/ec2/test_ec2_validate.py2
-rw-r--r--nova/tests/api/ec2/test_middleware.py2
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_admin_actions.py2
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_cells.py2
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_cloudpipe.py2
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_instance_usage_audit_log.py3
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_server_usage.py2
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_services.py5
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py2
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_snapshots.py2
-rw-r--r--nova/tests/api/openstack/compute/contrib/test_volumes.py2
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/admin_only_action_common.py2
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_consoles.py2
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_servers.py2
-rw-r--r--nova/tests/api/openstack/compute/plugins/v3/test_services.py5
-rw-r--r--nova/tests/api/openstack/compute/test_consoles.py2
-rw-r--r--nova/tests/api/openstack/compute/test_server_metadata.py2
-rw-r--r--nova/tests/api/openstack/compute/test_servers.py2
-rw-r--r--nova/tests/api/openstack/fakes.py2
-rw-r--r--nova/tests/cells/test_cells_manager.py2
-rw-r--r--nova/tests/cells/test_cells_messaging.py2
-rw-r--r--nova/tests/cells/test_cells_weights.py3
-rw-r--r--nova/tests/compute/test_compute.py14
-rw-r--r--nova/tests/compute/test_compute_api.py2
-rw-r--r--nova/tests/compute/test_compute_cells.py2
-rw-r--r--nova/tests/compute/test_compute_mgr.py2
-rw-r--r--nova/tests/compute/test_compute_utils.py2
-rw-r--r--nova/tests/compute/test_compute_xen.py2
-rw-r--r--nova/tests/compute/test_multiple_nodes.py2
-rw-r--r--nova/tests/compute/test_resource_tracker.py2
-rw-r--r--nova/tests/compute/test_shelve.py2
-rw-r--r--nova/tests/conductor/test_conductor.py2
-rw-r--r--nova/tests/console/test_console.py2
-rw-r--r--nova/tests/consoleauth/test_consoleauth.py2
-rw-r--r--nova/tests/db/test_db_api.py2
-rw-r--r--nova/tests/fake_block_device.py3
-rw-r--r--nova/tests/fake_volume.py2
-rw-r--r--nova/tests/integrated/api_samples_test_base.py2
-rw-r--r--nova/tests/integrated/test_api_samples.py4
-rw-r--r--nova/tests/integrated/test_servers.py3
-rw-r--r--nova/tests/integrated/v3/test_services.py3
-rw-r--r--nova/tests/integrated/v3/test_simple_tenant_usage.py3
-rw-r--r--nova/tests/network/test_linux_net.py2
-rw-r--r--nova/tests/network/test_manager.py2
-rw-r--r--nova/tests/objects/test_aggregate.py2
-rw-r--r--nova/tests/objects/test_bandwidth_usage.py2
-rw-r--r--nova/tests/objects/test_compute_node.py2
-rw-r--r--nova/tests/objects/test_fields.py2
-rw-r--r--nova/tests/objects/test_fixed_ip.py2
-rw-r--r--nova/tests/objects/test_instance.py2
-rw-r--r--nova/tests/objects/test_instance_action.py2
-rw-r--r--nova/tests/objects/test_keypair.py3
-rw-r--r--nova/tests/objects/test_migration.py3
-rw-r--r--nova/tests/objects/test_objects.py2
-rw-r--r--nova/tests/objects/test_service.py2
-rw-r--r--nova/tests/scheduler/test_caching_scheduler.py2
-rw-r--r--nova/tests/scheduler/test_host_filters.py2
-rw-r--r--nova/tests/scheduler/test_host_manager.py2
-rw-r--r--nova/tests/servicegroup/test_db_servicegroup.py2
-rw-r--r--nova/tests/servicegroup/test_mc_servicegroup.py2
-rw-r--r--nova/tests/test_quota.py2
-rw-r--r--nova/tests/test_utils.py2
-rw-r--r--nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py2
-rw-r--r--nova/tests/virt/disk/test_api.py2
-rw-r--r--nova/tests/virt/hyperv/test_hypervapi.py2
-rw-r--r--nova/tests/virt/hyperv/test_vhdutilsv2.py2
-rw-r--r--nova/tests/virt/libvirt/test_config.py2
-rw-r--r--nova/tests/virt/libvirt/test_driver.py6
-rw-r--r--nova/tests/virt/libvirt/test_imagebackend.py2
-rw-r--r--nova/tests/virt/libvirt/test_imagecache.py2
-rw-r--r--nova/tests/virt/test_configdrive.py3
-rw-r--r--nova/tests/virt/test_virt_drivers.py4
-rw-r--r--nova/tests/virt/vmwareapi/fake.py2
-rw-r--r--nova/tests/virt/vmwareapi/test_driver_api.py4
-rw-r--r--nova/tests/virt/vmwareapi/test_ds_util.py2
-rw-r--r--nova/tests/virt/vmwareapi/test_ds_util_datastore_selection.py3
-rw-r--r--nova/tests/virt/vmwareapi/test_imagecache.py2
-rw-r--r--nova/tests/virt/vmwareapi/test_vmops.py2
-rw-r--r--nova/tests/virt/vmwareapi/test_vmware_images.py2
-rw-r--r--nova/tests/virt/xenapi/test_driver.py2
-rw-r--r--nova/tests/virt/xenapi/test_vm_utils.py4
-rw-r--r--nova/tests/virt/xenapi/test_xenapi.py2
-rw-r--r--nova/utils.py6
-rw-r--r--nova/virt/baremetal/db/sqlalchemy/api.py2
-rw-r--r--nova/virt/baremetal/driver.py4
-rw-r--r--nova/virt/baremetal/iboot_pdu.py3
-rw-r--r--nova/virt/baremetal/pxe.py2
-rw-r--r--nova/virt/baremetal/virtual_power_driver.py2
-rw-r--r--nova/virt/baremetal/volume_driver.py2
-rw-r--r--nova/virt/block_device.py3
-rw-r--r--nova/virt/configdrive.py4
-rw-r--r--nova/virt/disk/mount/api.py3
-rw-r--r--nova/virt/disk/vfs/api.py3
-rw-r--r--nova/virt/disk/vfs/guestfs.py2
-rw-r--r--nova/virt/disk/vfs/localfs.py3
-rw-r--r--nova/virt/driver.py2
-rw-r--r--nova/virt/firewall.py2
-rw-r--r--nova/virt/hyperv/hostops.py2
-rw-r--r--nova/virt/hyperv/imagecache.py4
-rw-r--r--nova/virt/hyperv/livemigrationops.py2
-rw-r--r--nova/virt/hyperv/migrationops.py5
-rw-r--r--nova/virt/hyperv/vhdutilsv2.py3
-rw-r--r--nova/virt/hyperv/vmops.py6
-rw-r--r--nova/virt/hyperv/volumeops.py2
-rw-r--r--nova/virt/ironic/client_wrapper.py2
-rw-r--r--nova/virt/ironic/driver.py4
-rw-r--r--nova/virt/libvirt/config.py6
-rw-r--r--nova/virt/libvirt/driver.py8
-rw-r--r--nova/virt/libvirt/firewall.py2
-rw-r--r--nova/virt/libvirt/imagebackend.py4
-rw-r--r--nova/virt/libvirt/lvm.py2
-rw-r--r--nova/virt/libvirt/rbd_utils.py5
-rw-r--r--nova/virt/vmwareapi/host.py3
-rw-r--r--nova/virt/vmwareapi/imagecache.py2
-rw-r--r--nova/virt/vmwareapi/vm_util.py2
-rw-r--r--nova/virt/vmwareapi/vmops.py4
-rw-r--r--nova/virt/vmwareapi/vmware_images.py4
-rw-r--r--nova/virt/xenapi/agent.py2
-rw-r--r--nova/virt/xenapi/driver.py2
-rw-r--r--nova/virt/xenapi/fake.py5
-rw-r--r--nova/virt/xenapi/vm_utils.py10
-rw-r--r--nova/virt/xenapi/vmops.py10
-rw-r--r--nova/virt/xenapi/volumeops.py3
-rw-r--r--nova/volume/__init__.py6
-rw-r--r--nova/volume/cinder.py2
-rw-r--r--nova/volume/encryptors/__init__.py3
-rw-r--r--nova/wsgi.py2
-rw-r--r--openstack-common.conf6
-rw-r--r--requirements.txt1
-rwxr-xr-xtools/xenserver/vm_vdi_cleaner.py2
225 files changed, 324 insertions, 522 deletions
diff --git a/nova/api/ec2/__init__.py b/nova/api/ec2/__init__.py
index 19a84ed5c2..f7f254c364 100644
--- a/nova/api/ec2/__init__.py
+++ b/nova/api/ec2/__init__.py
@@ -20,6 +20,8 @@ Starting point for routing EC2 requests.
from eventlet.green import httplib
from oslo.config import cfg
+from oslo.utils import importutils
+from oslo.utils import timeutils
import six
import six.moves.urllib.parse as urlparse
import webob
@@ -36,11 +38,9 @@ from nova.i18n import _
from nova.i18n import _LE
from nova.i18n import _LW
from nova.openstack.common import context as common_context
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.openstack.common import memorycache
-from nova.openstack.common import timeutils
from nova import utils
from nova import wsgi
diff --git a/nova/api/ec2/apirequest.py b/nova/api/ec2/apirequest.py
index 83a161ba71..f20705da78 100644
--- a/nova/api/ec2/apirequest.py
+++ b/nova/api/ec2/apirequest.py
@@ -23,12 +23,12 @@ import datetime
from xml.dom import minidom
from lxml import etree
+from oslo.utils import encodeutils
import six
from nova.api.ec2 import ec2utils
from nova import exception
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
LOG = logging.getLogger(__name__)
@@ -137,6 +137,6 @@ class APIRequest(object):
xml.createTextNode(_database_to_isoformat(data)))
elif data is not None:
data_el.appendChild(xml.createTextNode(
- strutils.safe_encode(six.text_type(data))))
+ encodeutils.safe_encode(six.text_type(data))))
return data_el
diff --git a/nova/api/ec2/cloud.py b/nova/api/ec2/cloud.py
index fc0fef0357..63d44ba62e 100644
--- a/nova/api/ec2/cloud.py
+++ b/nova/api/ec2/cloud.py
@@ -24,6 +24,7 @@ import base64
import time
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.api.ec2 import ec2utils
from nova.api.ec2 import inst_state
@@ -45,7 +46,6 @@ from nova.network.security_group import neutron_driver
from nova import objects
from nova.objects import base as obj_base
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import quota
from nova import servicegroup
from nova import utils
diff --git a/nova/api/ec2/ec2utils.py b/nova/api/ec2/ec2utils.py
index 963acb892c..a941f90b29 100644
--- a/nova/api/ec2/ec2utils.py
+++ b/nova/api/ec2/ec2utils.py
@@ -17,6 +17,8 @@
import functools
import re
+from oslo.utils import timeutils
+
from nova import availability_zones
from nova import context
from nova import exception
@@ -26,7 +28,6 @@ from nova import objects
from nova.objects import base as obj_base
from nova.openstack.common import log as logging
from nova.openstack.common import memorycache
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
LOG = logging.getLogger(__name__)
diff --git a/nova/api/metadata/base.py b/nova/api/metadata/base.py
index 86318ceb37..9a79ab2289 100644
--- a/nova/api/metadata/base.py
+++ b/nova/api/metadata/base.py
@@ -21,6 +21,8 @@ import os
import posixpath
from oslo.config import cfg
+from oslo.utils import importutils
+from oslo.utils import timeutils
from nova.api.ec2 import ec2utils
from nova.api.metadata import password
@@ -31,10 +33,8 @@ from nova import context
from nova import network
from nova import objects
from nova.objects import base as obj_base
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import utils
from nova.virt import netutils
diff --git a/nova/api/openstack/compute/contrib/admin_actions.py b/nova/api/openstack/compute/contrib/admin_actions.py
index 32fdf8ceb5..226c262f63 100644
--- a/nova/api/openstack/compute/contrib/admin_actions.py
+++ b/nova/api/openstack/compute/contrib/admin_actions.py
@@ -15,6 +15,7 @@
import os.path
import traceback
+from oslo.utils import strutils
import six
import webob
from webob import exc
@@ -28,7 +29,6 @@ from nova import exception
from nova.i18n import _
from nova.i18n import _LE
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
LOG = logging.getLogger(__name__)
diff --git a/nova/api/openstack/compute/contrib/baremetal_nodes.py b/nova/api/openstack/compute/contrib/baremetal_nodes.py
index 909937c801..a50f4b4afd 100644
--- a/nova/api/openstack/compute/contrib/baremetal_nodes.py
+++ b/nova/api/openstack/compute/contrib/baremetal_nodes.py
@@ -17,6 +17,7 @@
import netaddr
from oslo.config import cfg
+from oslo.utils import importutils
import webob
from nova.api.openstack import extensions
@@ -24,7 +25,6 @@ from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
from nova import exception
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.virt.baremetal import db
diff --git a/nova/api/openstack/compute/contrib/cells.py b/nova/api/openstack/compute/contrib/cells.py
index df392c9b14..6a5f9cda98 100644
--- a/nova/api/openstack/compute/contrib/cells.py
+++ b/nova/api/openstack/compute/contrib/cells.py
@@ -18,6 +18,8 @@
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import strutils
+from oslo.utils import timeutils
import six
from webob import exc
@@ -29,8 +31,6 @@ from nova.cells import rpcapi as cells_rpcapi
from nova.compute import api as compute
from nova import exception
from nova.i18n import _
-from nova.openstack.common import strutils
-from nova.openstack.common import timeutils
from nova import rpc
diff --git a/nova/api/openstack/compute/contrib/cloudpipe.py b/nova/api/openstack/compute/contrib/cloudpipe.py
index aa109d08d6..0f05f59c5c 100644
--- a/nova/api/openstack/compute/contrib/cloudpipe.py
+++ b/nova/api/openstack/compute/contrib/cloudpipe.py
@@ -15,6 +15,7 @@
"""Connect your vlan to the world."""
from oslo.config import cfg
+from oslo.utils import timeutils
from webob import exc
from nova.api.openstack import extensions
@@ -28,7 +29,6 @@ from nova import exception
from nova.i18n import _
from nova import network
from nova.openstack.common import fileutils
-from nova.openstack.common import timeutils
from nova import utils
CONF = cfg.CONF
diff --git a/nova/api/openstack/compute/contrib/disk_config.py b/nova/api/openstack/compute/contrib/disk_config.py
index 7118be549f..d34d5fcd91 100644
--- a/nova/api/openstack/compute/contrib/disk_config.py
+++ b/nova/api/openstack/compute/contrib/disk_config.py
@@ -14,13 +14,13 @@
"""Disk Config extension."""
+from oslo.utils import strutils
from webob import exc
from nova.api.openstack import extensions
from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
from nova.i18n import _
-from nova.openstack.common import strutils
ALIAS = 'OS-DCF'
XMLNS_DCF = "http://docs.openstack.org/compute/ext/disk_config/api/v1.1"
diff --git a/nova/api/openstack/compute/contrib/evacuate.py b/nova/api/openstack/compute/contrib/evacuate.py
index ba5e62ca4a..7a345cc9a5 100644
--- a/nova/api/openstack/compute/contrib/evacuate.py
+++ b/nova/api/openstack/compute/contrib/evacuate.py
@@ -13,6 +13,7 @@
# under the License.
+from oslo.utils import strutils
from webob import exc
from nova.api.openstack import common
@@ -21,7 +22,6 @@ from nova.api.openstack import wsgi
from nova import compute
from nova import exception
from nova.i18n import _
-from nova.openstack.common import strutils
from nova import utils
authorize = extensions.extension_authorizer('compute', 'evacuate')
diff --git a/nova/api/openstack/compute/contrib/quotas.py b/nova/api/openstack/compute/contrib/quotas.py
index c2536cda09..647ecc4786 100644
--- a/nova/api/openstack/compute/contrib/quotas.py
+++ b/nova/api/openstack/compute/contrib/quotas.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import strutils
import six.moves.urllib.parse as urlparse
import webob
@@ -24,7 +25,6 @@ from nova import exception
from nova.i18n import _
from nova import objects
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
from nova import quota
from nova import utils
diff --git a/nova/api/openstack/compute/contrib/simple_tenant_usage.py b/nova/api/openstack/compute/contrib/simple_tenant_usage.py
index f261428fef..c1b13fd792 100644
--- a/nova/api/openstack/compute/contrib/simple_tenant_usage.py
+++ b/nova/api/openstack/compute/contrib/simple_tenant_usage.py
@@ -16,6 +16,7 @@
import datetime
import iso8601
+from oslo.utils import timeutils
import six.moves.urllib.parse as urlparse
from webob import exc
@@ -26,7 +27,6 @@ from nova import exception
from nova.i18n import _
from nova import objects
from nova.objects import instance as instance_obj
-from nova.openstack.common import timeutils
authorize_show = extensions.extension_authorizer('compute',
'simple_tenant_usage:show')
diff --git a/nova/api/openstack/compute/contrib/volumes.py b/nova/api/openstack/compute/contrib/volumes.py
index 6387b336d2..6af75af18a 100644
--- a/nova/api/openstack/compute/contrib/volumes.py
+++ b/nova/api/openstack/compute/contrib/volumes.py
@@ -15,6 +15,7 @@
"""The volumes extension."""
+from oslo.utils import strutils
import webob
from webob import exc
@@ -27,7 +28,6 @@ from nova import exception
from nova.i18n import _
from nova import objects
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
from nova.openstack.common import uuidutils
from nova import volume
diff --git a/nova/api/openstack/compute/flavors.py b/nova/api/openstack/compute/flavors.py
index cae3dbd711..be244f1f00 100644
--- a/nova/api/openstack/compute/flavors.py
+++ b/nova/api/openstack/compute/flavors.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import strutils
import webob
from nova.api.openstack import common
@@ -22,7 +23,6 @@ from nova.api.openstack import xmlutil
from nova.compute import flavors
from nova import exception
from nova.i18n import _
-from nova.openstack.common import strutils
from nova import utils
diff --git a/nova/api/openstack/compute/limits.py b/nova/api/openstack/compute/limits.py
index bafde8c4cd..7e40c5726b 100644
--- a/nova/api/openstack/compute/limits.py
+++ b/nova/api/openstack/compute/limits.py
@@ -38,6 +38,7 @@ import math
import re
import time
+from oslo.utils import importutils
import webob.dec
import webob.exc
@@ -45,7 +46,6 @@ from nova.api.openstack.compute.views import limits as limits_views
from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova import quota
from nova import utils
diff --git a/nova/api/openstack/compute/plugins/v3/block_device_mapping_v1.py b/nova/api/openstack/compute/plugins/v3/block_device_mapping_v1.py
index 831a4d7bf0..187ab61b84 100644
--- a/nova/api/openstack/compute/plugins/v3/block_device_mapping_v1.py
+++ b/nova/api/openstack/compute/plugins/v3/block_device_mapping_v1.py
@@ -15,13 +15,13 @@
"""The legacy block device mappings extension."""
+from oslo.utils import strutils
from webob import exc
from nova.api.openstack import extensions
from nova import block_device
from nova import exception
from nova.i18n import _
-from nova.openstack.common import strutils
ALIAS = "os-block-device-mapping-v1"
ATTRIBUTE_NAME = "block_device_mapping"
diff --git a/nova/api/openstack/compute/plugins/v3/cells.py b/nova/api/openstack/compute/plugins/v3/cells.py
index ca166003ae..1cfdfb137d 100644
--- a/nova/api/openstack/compute/plugins/v3/cells.py
+++ b/nova/api/openstack/compute/plugins/v3/cells.py
@@ -18,6 +18,7 @@
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import strutils
import six
from webob import exc
@@ -29,7 +30,6 @@ from nova.cells import rpcapi as cells_rpcapi
from nova.compute import api as compute
from nova import exception
from nova.i18n import _
-from nova.openstack.common import strutils
from nova import rpc
diff --git a/nova/api/openstack/compute/plugins/v3/evacuate.py b/nova/api/openstack/compute/plugins/v3/evacuate.py
index 5f366277c7..ebda81e504 100644
--- a/nova/api/openstack/compute/plugins/v3/evacuate.py
+++ b/nova/api/openstack/compute/plugins/v3/evacuate.py
@@ -14,6 +14,7 @@
from oslo.config import cfg
+from oslo.utils import strutils
from webob import exc
from nova.api.openstack import common
@@ -24,7 +25,6 @@ from nova.api import validation
from nova import compute
from nova import exception
from nova.i18n import _
-from nova.openstack.common import strutils
from nova import utils
CONF = cfg.CONF
diff --git a/nova/api/openstack/compute/plugins/v3/flavors.py b/nova/api/openstack/compute/plugins/v3/flavors.py
index b203ee18c8..8fbefd8775 100644
--- a/nova/api/openstack/compute/plugins/v3/flavors.py
+++ b/nova/api/openstack/compute/plugins/v3/flavors.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import strutils
import webob
from nova.api.openstack import common
@@ -22,7 +23,6 @@ from nova.api.openstack import wsgi
from nova.compute import flavors
from nova import exception
from nova.i18n import _
-from nova.openstack.common import strutils
from nova import utils
ALIAS = 'flavors'
diff --git a/nova/api/openstack/compute/plugins/v3/migrate_server.py b/nova/api/openstack/compute/plugins/v3/migrate_server.py
index 4c7070962e..508d1e3ccc 100644
--- a/nova/api/openstack/compute/plugins/v3/migrate_server.py
+++ b/nova/api/openstack/compute/plugins/v3/migrate_server.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import strutils
import webob
from webob import exc
@@ -23,7 +24,6 @@ from nova.api.openstack import wsgi
from nova.api import validation
from nova import compute
from nova import exception
-from nova.openstack.common import strutils
ALIAS = "os-migrate-server"
diff --git a/nova/api/openstack/compute/plugins/v3/quota_sets.py b/nova/api/openstack/compute/plugins/v3/quota_sets.py
index edded1c9f2..814bbf1fbc 100644
--- a/nova/api/openstack/compute/plugins/v3/quota_sets.py
+++ b/nova/api/openstack/compute/plugins/v3/quota_sets.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import strutils
import six.moves.urllib.parse as urlparse
import webob
@@ -25,7 +26,6 @@ from nova import exception
from nova.i18n import _
from nova import objects
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
from nova import quota
diff --git a/nova/api/openstack/compute/plugins/v3/servers.py b/nova/api/openstack/compute/plugins/v3/servers.py
index 9617fab74d..947a8b070d 100644
--- a/nova/api/openstack/compute/plugins/v3/servers.py
+++ b/nova/api/openstack/compute/plugins/v3/servers.py
@@ -19,6 +19,8 @@ import re
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import strutils
+from oslo.utils import timeutils
import six
import stevedore
import webob
@@ -38,8 +40,6 @@ from nova.i18n import _LW
from nova.image import glance
from nova import objects
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import policy
from nova import utils
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 97edb79205..f672b484d3 100644
--- a/nova/api/openstack/compute/plugins/v3/simple_tenant_usage.py
+++ b/nova/api/openstack/compute/plugins/v3/simple_tenant_usage.py
@@ -16,6 +16,7 @@
import datetime
import iso8601
+from oslo.utils import timeutils
import six.moves.urllib.parse as urlparse
from webob import exc
@@ -24,7 +25,6 @@ from nova import exception
from nova.i18n import _
from nova import objects
from nova.objects import instance as instance_obj
-from nova.openstack.common import timeutils
ALIAS = "os-simple-tenant-usage"
authorize_show = extensions.extension_authorizer('compute',
diff --git a/nova/api/openstack/compute/plugins/v3/volumes.py b/nova/api/openstack/compute/plugins/v3/volumes.py
index c0951f99a5..7b6dd8a2f0 100644
--- a/nova/api/openstack/compute/plugins/v3/volumes.py
+++ b/nova/api/openstack/compute/plugins/v3/volumes.py
@@ -15,6 +15,7 @@
"""The volumes extension."""
+from oslo.utils import strutils
import webob
from webob import exc
@@ -24,7 +25,6 @@ from nova.api.openstack import wsgi
from nova import exception
from nova.i18n import _
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
from nova import volume
ALIAS = "os-volumes"
diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py
index 8f8fa6d475..2dcf5f8a15 100644
--- a/nova/api/openstack/compute/servers.py
+++ b/nova/api/openstack/compute/servers.py
@@ -20,6 +20,8 @@ import re
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import strutils
+from oslo.utils import timeutils
import six
import webob
from webob import exc
@@ -37,8 +39,6 @@ from nova.i18n import _
from nova.i18n import _LW
from nova import objects
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import policy
from nova import utils
diff --git a/nova/api/openstack/compute/versions.py b/nova/api/openstack/compute/versions.py
index 7a3dd58d1e..57ae974f97 100644
--- a/nova/api/openstack/compute/versions.py
+++ b/nova/api/openstack/compute/versions.py
@@ -15,11 +15,11 @@
from lxml import etree
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.api.openstack.compute.views import versions as views_versions
from nova.api.openstack import wsgi
from nova.api.openstack import xmlutil
-from nova.openstack.common import timeutils
CONF = cfg.CONF
diff --git a/nova/api/openstack/compute/views/images.py b/nova/api/openstack/compute/views/images.py
index 054fcfb1f8..0a33844b40 100644
--- a/nova/api/openstack/compute/views/images.py
+++ b/nova/api/openstack/compute/views/images.py
@@ -14,9 +14,10 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
+
from nova.api.openstack import common
from nova.image import glance
-from nova.openstack.common import timeutils
class ViewBuilder(common.ViewBuilder):
diff --git a/nova/api/openstack/compute/views/limits.py b/nova/api/openstack/compute/views/limits.py
index 381b020852..2396a067b1 100644
--- a/nova/api/openstack/compute/views/limits.py
+++ b/nova/api/openstack/compute/views/limits.py
@@ -15,7 +15,7 @@
import datetime
-from nova.openstack.common import timeutils
+from oslo.utils import timeutils
class ViewBuilder(object):
diff --git a/nova/api/openstack/compute/views/servers.py b/nova/api/openstack/compute/views/servers.py
index 621e9617c1..cd024325be 100644
--- a/nova/api/openstack/compute/views/servers.py
+++ b/nova/api/openstack/compute/views/servers.py
@@ -16,6 +16,8 @@
import hashlib
+from oslo.utils import timeutils
+
from nova.api.openstack import common
from nova.api.openstack.compute.views import addresses as views_addresses
from nova.api.openstack.compute.views import flavors as views_flavors
@@ -24,7 +26,6 @@ from nova.compute import flavors
from nova.i18n import _LW
from nova.objects import base as obj_base
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import utils
diff --git a/nova/api/openstack/extensions.py b/nova/api/openstack/extensions.py
index d81b5b5330..8bb8d38bef 100644
--- a/nova/api/openstack/extensions.py
+++ b/nova/api/openstack/extensions.py
@@ -18,6 +18,7 @@ import abc
import functools
import os
+from oslo.utils import importutils
import six
import webob.dec
import webob.exc
@@ -28,7 +29,6 @@ from nova.api.openstack import xmlutil
from nova import exception
from nova.i18n import _
from nova.i18n import _LW
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
import nova.policy
diff --git a/nova/api/validation/validators.py b/nova/api/validation/validators.py
index 8cc498589a..92ff68ab05 100644
--- a/nova/api/validation/validators.py
+++ b/nova/api/validation/validators.py
@@ -19,12 +19,12 @@ Internal implementation of request Body validating middleware.
import base64
import jsonschema
+from oslo.utils import timeutils
import rfc3986
import six
from nova import exception
from nova.i18n import _
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
diff --git a/nova/block_device.py b/nova/block_device.py
index d6999b3b19..8800e1a4e4 100644
--- a/nova/block_device.py
+++ b/nova/block_device.py
@@ -16,11 +16,11 @@
import re
from oslo.config import cfg
+from oslo.utils import strutils
from nova import exception
from nova.i18n import _
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
from nova import utils
from nova.virt import driver
diff --git a/nova/cells/manager.py b/nova/cells/manager.py
index 62fc0f544b..6bd249f1c8 100644
--- a/nova/cells/manager.py
+++ b/nova/cells/manager.py
@@ -21,6 +21,8 @@ import time
from oslo.config import cfg
from oslo import messaging as oslo_messaging
+from oslo.utils import importutils
+from oslo.utils import timeutils
from nova.cells import messaging
from nova.cells import state as cells_state
@@ -31,10 +33,8 @@ from nova.i18n import _
from nova import manager
from nova import objects
from nova.objects import base as base_obj
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import periodic_task
-from nova.openstack.common import timeutils
cell_manager_opts = [
cfg.StrOpt('driver',
diff --git a/nova/cells/messaging.py b/nova/cells/messaging.py
index 87f691e34e..bb52f2242b 100644
--- a/nova/cells/messaging.py
+++ b/nova/cells/messaging.py
@@ -32,6 +32,9 @@ import traceback
from eventlet import queue
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import excutils
+from oslo.utils import importutils
+from oslo.utils import timeutils
import six
from nova.cells import state as cells_state
@@ -48,11 +51,8 @@ from nova.i18n import _
from nova.network import model as network_model
from nova import objects
from nova.objects import base as objects_base
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import rpc
from nova import utils
diff --git a/nova/cells/state.py b/nova/cells/state.py
index e92a83e698..7c37eda970 100644
--- a/nova/cells/state.py
+++ b/nova/cells/state.py
@@ -23,6 +23,8 @@ import time
from oslo.config import cfg
from oslo.db import exception as db_exc
+from oslo.utils import timeutils
+from oslo.utils import units
from nova.cells import rpc_driver
from nova import context
@@ -32,8 +34,6 @@ from nova.i18n import _
from nova.openstack.common import fileutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
-from nova.openstack.common import units
from nova import rpc
from nova import utils
diff --git a/nova/cells/weights/mute_child.py b/nova/cells/weights/mute_child.py
index cc5c0a8c44..ded50cbecd 100644
--- a/nova/cells/weights/mute_child.py
+++ b/nova/cells/weights/mute_child.py
@@ -19,11 +19,11 @@ downgrade its likelihood of being chosen for scheduling requests.
"""
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.cells import weights
from nova.i18n import _
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
LOG = logging.getLogger(__name__)
diff --git a/nova/cmd/baremetal_deploy_helper.py b/nova/cmd/baremetal_deploy_helper.py
index 2ceb107eaf..dc6e961b1a 100644
--- a/nova/cmd/baremetal_deploy_helper.py
+++ b/nova/cmd/baremetal_deploy_helper.py
@@ -27,14 +27,15 @@ import threading
import time
from wsgiref import simple_server
+from oslo.utils import excutils
+from oslo.utils import units
+
from nova import config
from nova import context as nova_context
from nova.i18n import _
from nova import objects
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
-from nova.openstack.common import units
from nova import utils
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import db
diff --git a/nova/cmd/dhcpbridge.py b/nova/cmd/dhcpbridge.py
index 114b7484a2..90d2c960af 100644
--- a/nova/cmd/dhcpbridge.py
+++ b/nova/cmd/dhcpbridge.py
@@ -25,6 +25,7 @@ import sys
import traceback
from oslo.config import cfg
+from oslo.utils import importutils
from nova.conductor import rpcapi as conductor_rpcapi
from nova import config
@@ -35,7 +36,6 @@ from nova.i18n import _
from nova.network import rpcapi as network_rpcapi
from nova import objects
from nova.objects import base as objects_base
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova import rpc
diff --git a/nova/cmd/manage.py b/nova/cmd/manage.py
index be2352dc08..bf0ffdd560 100644
--- a/nova/cmd/manage.py
+++ b/nova/cmd/manage.py
@@ -62,6 +62,7 @@ import decorator
import netaddr
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import importutils
import six
from nova.api.ec2 import ec2utils
@@ -75,7 +76,6 @@ from nova import exception
from nova.i18n import _
from nova import objects
from nova.openstack.common import cliutils
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova import quota
from nova import rpc
diff --git a/nova/compute/__init__.py b/nova/compute/__init__.py
index 17217fc745..38880b7bd4 100644
--- a/nova/compute/__init__.py
+++ b/nova/compute/__init__.py
@@ -14,11 +14,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import importutils
+
# Importing full names to not pollute the namespace and cause possible
# collisions with use of 'from nova.compute import <foo>' elsewhere.
import nova.cells.opts
import nova.exception
-import nova.openstack.common.importutils
CELL_TYPE_TO_CLS_NAME = {'api': 'nova.compute.cells_api.ComputeCellsAPI',
@@ -34,7 +35,6 @@ def _get_compute_api_class_name():
def API(*args, **kwargs):
- importutils = nova.openstack.common.importutils
class_name = _get_compute_api_class_name()
return importutils.import_object(class_name, *args, **kwargs)
@@ -43,7 +43,6 @@ def HostAPI(*args, **kwargs):
"""Returns the 'HostAPI' class from the same module as the configured
compute api
"""
- importutils = nova.openstack.common.importutils
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"
@@ -54,7 +53,6 @@ def InstanceActionAPI(*args, **kwargs):
"""Returns the 'InstanceActionAPI' class from the same module as the
configured compute api.
"""
- importutils = nova.openstack.common.importutils
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"
diff --git a/nova/compute/api.py b/nova/compute/api.py
index 598148df09..f79fd64852 100644
--- a/nova/compute/api.py
+++ b/nova/compute/api.py
@@ -26,6 +26,9 @@ import string
import uuid
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import strutils
+from oslo.utils import timeutils
import six
from nova import availability_zones
@@ -56,11 +59,8 @@ from nova import objects
from nova.objects import base as obj_base
from nova.objects import quotas as quotas_obj
from nova.objects import security_group as security_group_obj
-from nova.openstack.common import excutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova.pci import pci_request
import nova.policy
diff --git a/nova/compute/flavors.py b/nova/compute/flavors.py
index 604defa622..34b5224e40 100644
--- a/nova/compute/flavors.py
+++ b/nova/compute/flavors.py
@@ -23,6 +23,7 @@ import uuid
from oslo.config import cfg
from oslo.db import exception as db_exc
+from oslo.utils import strutils
import six
from nova import context
@@ -31,7 +32,6 @@ from nova import exception
from nova.i18n import _
from nova.i18n import _LE
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
from nova import utils
flavor_opts = [
diff --git a/nova/compute/manager.py b/nova/compute/manager.py
index b387d0ae04..09f310dda7 100644
--- a/nova/compute/manager.py
+++ b/nova/compute/manager.py
@@ -40,6 +40,9 @@ from eventlet import greenthread
import eventlet.timeout
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import excutils
+from oslo.utils import strutils
+from oslo.utils import timeutils
import six
from nova import block_device
@@ -72,12 +75,9 @@ from nova import objects
from nova.objects import base as obj_base
from nova.objects import instance as instance_obj
from nova.objects import quotas as quotas_obj
-from nova.openstack.common import excutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.openstack.common import periodic_task
-from nova.openstack.common import strutils
-from nova.openstack.common import timeutils
from nova import paths
from nova import rpc
from nova import safe_utils
diff --git a/nova/compute/monitors/__init__.py b/nova/compute/monitors/__init__.py
index fab30ada13..bf5c4ddfda 100644
--- a/nova/compute/monitors/__init__.py
+++ b/nova/compute/monitors/__init__.py
@@ -24,12 +24,12 @@ import functools
import types
from oslo.config import cfg
+from oslo.utils import timeutils
import six
from nova.i18n import _
from nova import loadables
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
compute_monitors_opts = [
cfg.MultiStrOpt('compute_available_monitors',
diff --git a/nova/compute/monitors/virt/cpu_monitor.py b/nova/compute/monitors/virt/cpu_monitor.py
index 9295120769..e677e1d92a 100644
--- a/nova/compute/monitors/virt/cpu_monitor.py
+++ b/nova/compute/monitors/virt/cpu_monitor.py
@@ -18,13 +18,13 @@ CPU monitor based on compute driver to retrieve CPU information
"""
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.compute import monitors
from nova.compute.monitors import cpu_monitor as monitor
from nova import exception
from nova.i18n import _
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
CONF = cfg.CONF
CONF.import_opt('compute_driver', 'nova.virt.driver')
diff --git a/nova/compute/resource_tracker.py b/nova/compute/resource_tracker.py
index 7a056ae257..e70ba7ff8b 100644
--- a/nova/compute/resource_tracker.py
+++ b/nova/compute/resource_tracker.py
@@ -21,6 +21,7 @@ model.
import copy
from oslo.config import cfg
+from oslo.utils import importutils
from nova.compute import claims
from nova.compute import flavors
@@ -33,7 +34,6 @@ from nova import exception
from nova.i18n import _
from nova import objects
from nova.objects import base as obj_base
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.pci import pci_manager
diff --git a/nova/conductor/manager.py b/nova/conductor/manager.py
index 6f3c9f004f..047d8bce9f 100644
--- a/nova/conductor/manager.py
+++ b/nova/conductor/manager.py
@@ -18,6 +18,8 @@ import copy
import itertools
from oslo import messaging
+from oslo.utils import excutils
+from oslo.utils import timeutils
import six
from nova.api.ec2 import ec2utils
@@ -39,10 +41,8 @@ from nova.network.security_group import openstack_driver
from nova import notifications
from nova import objects
from nova.objects import base as nova_object
-from nova.openstack.common import excutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import quota
from nova.scheduler import client as scheduler_client
from nova.scheduler import driver as scheduler_driver
diff --git a/nova/console/manager.py b/nova/console/manager.py
index 95c07352f7..238a88c399 100644
--- a/nova/console/manager.py
+++ b/nova/console/manager.py
@@ -19,11 +19,11 @@ import socket
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import importutils
from nova.compute import rpcapi as compute_rpcapi
from nova import exception
from nova import manager
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova import utils
diff --git a/nova/console/vmrc_manager.py b/nova/console/vmrc_manager.py
index cce6691134..738ec099b1 100644
--- a/nova/console/vmrc_manager.py
+++ b/nova/console/vmrc_manager.py
@@ -16,11 +16,11 @@
"""VMRC Console Manager."""
from oslo.config import cfg
+from oslo.utils import importutils
from nova.compute import rpcapi as compute_rpcapi
from nova import exception
from nova import manager
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.virt.vmwareapi import driver as vmwareapi_conn
diff --git a/nova/console/xvp.py b/nova/console/xvp.py
index 48d860def8..e7ba6c186d 100644
--- a/nova/console/xvp.py
+++ b/nova/console/xvp.py
@@ -20,11 +20,11 @@ import signal
import jinja2
from oslo.config import cfg
+from oslo.utils import excutils
from nova import context
from nova import db
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
from nova import paths
diff --git a/nova/context.py b/nova/context.py
index cb16c5894f..dafc95a6bd 100644
--- a/nova/context.py
+++ b/nova/context.py
@@ -19,6 +19,7 @@
import copy
+from oslo.utils import timeutils
import six
from nova import exception
@@ -26,7 +27,6 @@ from nova.i18n import _
from nova.openstack.common import context
from nova.openstack.common import local
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import policy
diff --git a/nova/crypto.py b/nova/crypto.py
index e5c4161433..2caec2f068 100644
--- a/nova/crypto.py
+++ b/nova/crypto.py
@@ -29,6 +29,8 @@ import string
import struct
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import timeutils
from pyasn1.codec.der import encoder as der_encoder
from pyasn1.type import univ
@@ -36,11 +38,9 @@ from nova import context
from nova import db
from nova import exception
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import fileutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
-from nova.openstack.common import timeutils
from nova import paths
from nova import utils
diff --git a/nova/db/base.py b/nova/db/base.py
index c53fcc4b0e..3d7d46366f 100644
--- a/nova/db/base.py
+++ b/nova/db/base.py
@@ -17,8 +17,7 @@
"""Base class for classes that need modular database access."""
from oslo.config import cfg
-
-from nova.openstack.common import importutils
+from oslo.utils import importutils
db_driver_opt = cfg.StrOpt('db_driver',
default='nova.db',
diff --git a/nova/db/sqlalchemy/api.py b/nova/db/sqlalchemy/api.py
index be8527abbe..dc6843a802 100644
--- a/nova/db/sqlalchemy/api.py
+++ b/nova/db/sqlalchemy/api.py
@@ -30,6 +30,8 @@ from oslo.config import cfg
from oslo.db import exception as db_exc
from oslo.db.sqlalchemy import session as db_session
from oslo.db.sqlalchemy import utils as sqlalchemyutils
+from oslo.utils import excutils
+from oslo.utils import timeutils
import six
from sqlalchemy import and_
from sqlalchemy import Boolean
@@ -58,9 +60,7 @@ import nova.context
from nova.db.sqlalchemy import models
from nova import exception
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import quota
diff --git a/nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py b/nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py
index 687fdeba2d..dc54759ed0 100644
--- a/nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py
+++ b/nova/db/sqlalchemy/migrate_repo/versions/233_add_stats_in_compute_nodes.py
@@ -14,6 +14,7 @@
# under the License.
+from oslo.utils import timeutils
from sqlalchemy import Column
from sqlalchemy import DateTime
from sqlalchemy import ForeignKey
@@ -24,8 +25,6 @@ from sqlalchemy import String
from sqlalchemy import Table
from sqlalchemy import Text
-from nova.openstack.common import timeutils
-
def upgrade(engine):
meta = MetaData()
diff --git a/nova/db/sqlalchemy/models.py b/nova/db/sqlalchemy/models.py
index 0374987cd8..f5e9980770 100644
--- a/nova/db/sqlalchemy/models.py
+++ b/nova/db/sqlalchemy/models.py
@@ -21,6 +21,7 @@ SQLAlchemy models for nova data.
from oslo.config import cfg
from oslo.db.sqlalchemy import models
+from oslo.utils import timeutils
from sqlalchemy import Column, Index, Integer, BigInteger, Enum, String, schema
from sqlalchemy.dialects.mysql import MEDIUMTEXT
from sqlalchemy.ext.declarative import declarative_base
@@ -28,7 +29,6 @@ from sqlalchemy import orm
from sqlalchemy import ForeignKey, DateTime, Boolean, Text, Float
from nova.db.sqlalchemy import types
-from nova.openstack.common import timeutils
CONF = cfg.CONF
BASE = declarative_base()
@@ -43,16 +43,6 @@ class NovaBase(models.SoftDeleteMixin,
models.ModelBase):
metadata = None
- # TODO(ekudryashova): remove this after both nova and oslo.db
- # will use oslo.utils library
- # NOTE: Both projects(nova and oslo.db) use `timeutils.utcnow`, which
- # returns specified time(if override_time is set). Time overriding is
- # only used by unit tests, but in a lot of places, temporarily overriding
- # this columns helps to avoid lots of calls of timeutils.set_override
- # from different places in unit tests.
- created_at = Column(DateTime, default=lambda: timeutils.utcnow())
- updated_at = Column(DateTime, onupdate=lambda: timeutils.utcnow())
-
def save(self, session=None):
from nova.db.sqlalchemy import api
diff --git a/nova/exception.py b/nova/exception.py
index a4a284be52..03c2b6c876 100644
--- a/nova/exception.py
+++ b/nova/exception.py
@@ -26,10 +26,10 @@ import functools
import sys
from oslo.config import cfg
+from oslo.utils import excutils
import webob.exc
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova import safe_utils
diff --git a/nova/image/glance.py b/nova/image/glance.py
index 98df2106f8..4f962f41a2 100644
--- a/nova/image/glance.py
+++ b/nova/image/glance.py
@@ -26,6 +26,7 @@ import time
import glanceclient
import glanceclient.exc
from oslo.config import cfg
+from oslo.utils import timeutils
import six
import six.moves.urllib.parse as urlparse
@@ -34,7 +35,6 @@ from nova.i18n import _
import nova.image.download as image_xfers
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import utils
diff --git a/nova/keymgr/__init__.py b/nova/keymgr/__init__.py
index 5adb22e42d..f589e18363 100644
--- a/nova/keymgr/__init__.py
+++ b/nova/keymgr/__init__.py
@@ -15,8 +15,7 @@
from oslo.config import cfg
-
-from nova.openstack.common import importutils
+from oslo.utils import importutils
keymgr_opts = [
diff --git a/nova/loadables.py b/nova/loadables.py
index 96da88d0a3..c29d29a033 100644
--- a/nova/loadables.py
+++ b/nova/loadables.py
@@ -42,8 +42,9 @@ import inspect
import os
import sys
+from oslo.utils import importutils
+
from nova import exception
-from nova.openstack.common import importutils
class BaseLoader(object):
diff --git a/nova/network/__init__.py b/nova/network/__init__.py
index 1a28ce15c7..709492b7f2 100644
--- a/nova/network/__init__.py
+++ b/nova/network/__init__.py
@@ -15,10 +15,7 @@
# under the License.
import oslo.config.cfg
-
-# Importing full names to not pollute the namespace and cause possible
-# collisions with use of 'from nova.network import <foo>' elsewhere.
-import nova.openstack.common.importutils
+from oslo.utils import importutils
_network_opts = [
oslo.config.cfg.StrOpt('network_api_class',
@@ -31,7 +28,6 @@ oslo.config.cfg.CONF.register_opts(_network_opts)
def API():
- importutils = nova.openstack.common.importutils
network_api_class = oslo.config.cfg.CONF.network_api_class
if 'quantumv2' in network_api_class:
network_api_class = network_api_class.replace('quantumv2', 'neutronv2')
diff --git a/nova/network/base_api.py b/nova/network/base_api.py
index f43820bf5a..d8ff36bc46 100644
--- a/nova/network/base_api.py
+++ b/nova/network/base_api.py
@@ -16,12 +16,13 @@
import functools
import inspect
+from oslo.utils import excutils
+
from nova.db import base
from nova import hooks
from nova.i18n import _
from nova.network import model as network_model
from nova import objects
-from nova.openstack.common import excutils
from nova.openstack.common import lockutils
from nova.openstack.common import log as logging
diff --git a/nova/network/driver.py b/nova/network/driver.py
index 04e7d607f8..7632169bb6 100644
--- a/nova/network/driver.py
+++ b/nova/network/driver.py
@@ -15,9 +15,9 @@
import sys
from oslo.config import cfg
+from oslo.utils import importutils
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
driver_opts = [
diff --git a/nova/network/floating_ips.py b/nova/network/floating_ips.py
index d3039db4eb..7322d1f7c2 100644
--- a/nova/network/floating_ips.py
+++ b/nova/network/floating_ips.py
@@ -17,6 +17,8 @@
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import excutils
+from oslo.utils import importutils
import six
from nova import context
@@ -25,8 +27,6 @@ from nova import exception
from nova.i18n import _
from nova.network import rpcapi as network_rpcapi
from nova import objects
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
from nova.openstack.common import uuidutils
diff --git a/nova/network/linux_net.py b/nova/network/linux_net.py
index de183777cf..02d0c20f93 100644
--- a/nova/network/linux_net.py
+++ b/nova/network/linux_net.py
@@ -24,18 +24,18 @@ import re
import netaddr
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import importutils
+from oslo.utils import timeutils
import six
from nova import exception
from nova.i18n import _
from nova import objects
-from nova.openstack.common import excutils
from nova.openstack.common import fileutils
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
-from nova.openstack.common import timeutils
from nova import paths
from nova import utils
diff --git a/nova/network/manager.py b/nova/network/manager.py
index dc4011a25f..225bb16ad7 100644
--- a/nova/network/manager.py
+++ b/nova/network/manager.py
@@ -35,6 +35,10 @@ import eventlet
import netaddr
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import excutils
+from oslo.utils import importutils
+from oslo.utils import strutils
+from oslo.utils import timeutils
from nova import conductor
from nova import context
@@ -50,12 +54,8 @@ from nova.network import rpcapi as network_rpcapi
from nova import objects
from nova.objects import base as obj_base
from nova.objects import quotas as quotas_obj
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import periodic_task
-from nova.openstack.common import strutils
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import servicegroup
from nova import utils
diff --git a/nova/network/neutronv2/api.py b/nova/network/neutronv2/api.py
index b563b457cc..027b799b8e 100644
--- a/nova/network/neutronv2/api.py
+++ b/nova/network/neutronv2/api.py
@@ -20,6 +20,7 @@ import uuid
from neutronclient.common import exceptions as neutron_client_exc
from oslo.config import cfg
+from oslo.utils import excutils
from nova.api.openstack import extensions
from nova.compute import flavors
@@ -33,7 +34,6 @@ from nova.network import neutronv2
from nova.network.neutronv2 import constants
from nova.network.security_group import openstack_driver
from nova import objects
-from nova.openstack.common import excutils
from nova.openstack.common import lockutils
from nova.openstack.common import log as logging
from nova.openstack.common import uuidutils
diff --git a/nova/network/security_group/neutron_driver.py b/nova/network/security_group/neutron_driver.py
index 2faffd36d4..f4b8afbe69 100644
--- a/nova/network/security_group/neutron_driver.py
+++ b/nova/network/security_group/neutron_driver.py
@@ -18,6 +18,7 @@ import sys
from neutronclient.common import exceptions as n_exc
from neutronclient.neutron import v2_0 as neutronv20
from oslo.config import cfg
+from oslo.utils import excutils
import six
from webob import exc
@@ -27,7 +28,6 @@ from nova.i18n import _
from nova.network import neutronv2
from nova.network.security_group import security_group_base
from nova import objects
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova.openstack.common import uuidutils
from nova import utils
diff --git a/nova/network/security_group/openstack_driver.py b/nova/network/security_group/openstack_driver.py
index 8f29de1519..b736d02b90 100644
--- a/nova/network/security_group/openstack_driver.py
+++ b/nova/network/security_group/openstack_driver.py
@@ -14,8 +14,7 @@
# under the License.
from oslo.config import cfg
-
-from nova.openstack.common import importutils
+from oslo.utils import importutils
security_group_opts = [
cfg.StrOpt('security_group_api',
diff --git a/nova/notifications.py b/nova/notifications.py
index 83d62bc83f..776bf60cc1 100644
--- a/nova/notifications.py
+++ b/nova/notifications.py
@@ -21,6 +21,8 @@ the system.
import datetime
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import timeutils
import six
from nova.compute import flavors
@@ -32,9 +34,7 @@ from nova import network
from nova.network import model as network_model
from nova.objects import base as obj_base
from nova.openstack.common import context as common_context
-from nova.openstack.common import excutils
from nova.openstack.common import log
-from nova.openstack.common import timeutils
from nova import rpc
from nova import utils
diff --git a/nova/objects/base.py b/nova/objects/base.py
index 5fc2fcad2a..958f7a4f5b 100644
--- a/nova/objects/base.py
+++ b/nova/objects/base.py
@@ -22,6 +22,7 @@ import traceback
import netaddr
from oslo import messaging
+from oslo.utils import timeutils
import six
from nova import context
@@ -30,7 +31,6 @@ from nova.i18n import _, _LE
from nova import objects
from nova.objects import fields
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.openstack.common import versionutils
diff --git a/nova/objects/fields.py b/nova/objects/fields.py
index efde5f69d1..fcbd08e5d0 100644
--- a/nova/objects/fields.py
+++ b/nova/objects/fields.py
@@ -17,11 +17,11 @@ import datetime
import iso8601
import netaddr
+from oslo.utils import timeutils
import six
from nova.i18n import _
from nova.network import model as network_model
-from nova.openstack.common import timeutils
class KeyTypeError(TypeError):
diff --git a/nova/objects/fixed_ip.py b/nova/objects/fixed_ip.py
index 2482b635e5..38abd1cec1 100644
--- a/nova/objects/fixed_ip.py
+++ b/nova/objects/fixed_ip.py
@@ -12,12 +12,13 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
+
from nova import db
from nova import exception
from nova import objects
from nova.objects import base as obj_base
from nova.objects import fields
-from nova.openstack.common import timeutils
from nova import utils
diff --git a/nova/objects/instance.py b/nova/objects/instance.py
index b7263da118..018be185c6 100644
--- a/nova/objects/instance.py
+++ b/nova/objects/instance.py
@@ -12,6 +12,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
+
from nova.cells import opts as cells_opts
from nova.cells import rpcapi as cells_rpcapi
from nova.compute import flavors
@@ -23,7 +25,6 @@ from nova import objects
from nova.objects import base
from nova.objects import fields
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import utils
from oslo.config import cfg
diff --git a/nova/objects/instance_action.py b/nova/objects/instance_action.py
index 1501c441dc..1ca2f015cb 100644
--- a/nova/objects/instance_action.py
+++ b/nova/objects/instance_action.py
@@ -12,11 +12,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
+
from nova import db
from nova import objects
from nova.objects import base
from nova.objects import fields
-from nova.openstack.common import timeutils
class InstanceAction(base.NovaPersistentObject, base.NovaObject):
diff --git a/nova/openstack/common/memorycache.py b/nova/openstack/common/memorycache.py
index 5e16363eaa..ede8c3855e 100644
--- a/nova/openstack/common/memorycache.py
+++ b/nova/openstack/common/memorycache.py
@@ -18,7 +18,7 @@
from oslo.config import cfg
-from nova.openstack.common import timeutils
+from oslo.utils import timeutils
memcache_opts = [
cfg.ListOpt('memcached_servers',
diff --git a/nova/openstack/common/network_utils.py b/nova/openstack/common/network_utils.py
deleted file mode 100644
index 331edcb411..0000000000
--- a/nova/openstack/common/network_utils.py
+++ /dev/null
@@ -1,159 +0,0 @@
-# Copyright 2012 OpenStack Foundation.
-# 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.
-
-"""
-Network-related utilities and helper functions.
-"""
-
-import socket
-
-from six.moves.urllib import parse
-
-from nova.openstack.common.gettextutils import _LW
-from nova.openstack.common import log as logging
-
-LOG = logging.getLogger(__name__)
-
-
-def parse_host_port(address, default_port=None):
- """Interpret a string as a host:port pair.
-
- An IPv6 address MUST be escaped if accompanied by a port,
- because otherwise ambiguity ensues: 2001:db8:85a3::8a2e:370:7334
- means both [2001:db8:85a3::8a2e:370:7334] and
- [2001:db8:85a3::8a2e:370]:7334.
-
- >>> parse_host_port('server01:80')
- ('server01', 80)
- >>> parse_host_port('server01')
- ('server01', None)
- >>> parse_host_port('server01', default_port=1234)
- ('server01', 1234)
- >>> parse_host_port('[::1]:80')
- ('::1', 80)
- >>> parse_host_port('[::1]')
- ('::1', None)
- >>> parse_host_port('[::1]', default_port=1234)
- ('::1', 1234)
- >>> parse_host_port('2001:db8:85a3::8a2e:370:7334', default_port=1234)
- ('2001:db8:85a3::8a2e:370:7334', 1234)
-
- """
- if address[0] == '[':
- # Escaped ipv6
- _host, _port = address[1:].split(']')
- host = _host
- if ':' in _port:
- port = _port.split(':')[1]
- else:
- port = default_port
- else:
- if address.count(':') == 1:
- host, port = address.split(':')
- else:
- # 0 means ipv4, >1 means ipv6.
- # We prohibit unescaped ipv6 addresses with port.
- host = address
- port = default_port
-
- return (host, None if port is None else int(port))
-
-
-class ModifiedSplitResult(parse.SplitResult):
- """Split results class for urlsplit."""
-
- # NOTE(dims): The functions below are needed for Python 2.6.x.
- # We can remove these when we drop support for 2.6.x.
- @property
- def hostname(self):
- netloc = self.netloc.split('@', 1)[-1]
- host, port = parse_host_port(netloc)
- return host
-
- @property
- def port(self):
- netloc = self.netloc.split('@', 1)[-1]
- host, port = parse_host_port(netloc)
- return port
-
-
-def urlsplit(url, scheme='', allow_fragments=True):
- """Parse a URL using urlparse.urlsplit(), splitting query and fragments.
- This function papers over Python issue9374 when needed.
-
- The parameters are the same as urlparse.urlsplit.
- """
- scheme, netloc, path, query, fragment = parse.urlsplit(
- url, scheme, allow_fragments)
- if allow_fragments and '#' in path:
- path, fragment = path.split('#', 1)
- if '?' in path:
- path, query = path.split('?', 1)
- return ModifiedSplitResult(scheme, netloc,
- path, query, fragment)
-
-
-def set_tcp_keepalive(sock, tcp_keepalive=True,
- tcp_keepidle=None,
- tcp_keepalive_interval=None,
- tcp_keepalive_count=None):
- """Set values for tcp keepalive parameters
-
- This function configures tcp keepalive parameters if users wish to do
- so.
-
- :param:tcp_keepalive: Boolean, turn on or off tcp_keepalive. If users are
- not sure, this should be True, and default values will be used
- :param:tcp_keepidle: time to wait before starting to send keepalive probes
- :param:tcp_keepalive_interval: time between successive probes, once the
- initial wait time is over
- :param:tcp_keepalive_count: number of probes to send before the connection
- is killed
-
- """
-
- # NOTE(praneshp): Despite keepalive being a tcp concept, the level is
- # still SOL_SOCKET. This is a quirk.
- if isinstance(tcp_keepalive, bool):
- sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, tcp_keepalive)
- else:
- raise TypeError("tcp_keepalive must be a boolean")
-
- if not tcp_keepalive:
- return
-
- # These options aren't available in the OS X version of eventlet,
- # Idle + Count * Interval effectively gives you the total timeout.
- if tcp_keepidle is not None:
- if hasattr(socket, 'TCP_KEEPIDLE'):
- sock.setsockopt(socket.IPPROTO_TCP,
- socket.TCP_KEEPIDLE,
- tcp_keepidle)
- else:
- LOG.warning(_LW('tcp_keepidle not available on your system'))
- if tcp_keepalive_interval is not None:
- if hasattr(socket, 'TCP_KEEPINTVL'):
- sock.setsockopt(socket.IPPROTO_TCP,
- socket.TCP_KEEPINTVL,
- tcp_keepalive_interval)
- else:
- LOG.warning(_LW('tcp_keepintvl not available on your system'))
- if tcp_keepalive_count is not None:
- if hasattr(socket, 'TCP_KEEPCNT'):
- sock.setsockopt(socket.IPPROTO_TCP,
- socket.TCP_KEEPCNT,
- tcp_keepalive_count)
- else:
- LOG.warning(_LW('tcp_keepknt not available on your system'))
diff --git a/nova/openstack/common/units.py b/nova/openstack/common/units.py
deleted file mode 100644
index 84b518ca8d..0000000000
--- a/nova/openstack/common/units.py
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright 2013 IBM Corp
-# 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.
-
-"""
-Unit constants
-"""
-
-#Binary unit constants.
-Ki = 1024
-Mi = 1024 ** 2
-Gi = 1024 ** 3
-Ti = 1024 ** 4
-Pi = 1024 ** 5
-Ei = 1024 ** 6
-Zi = 1024 ** 7
-Yi = 1024 ** 8
-
-#Decimal unit constants.
-k = 1000
-M = 1000 ** 2
-G = 1000 ** 3
-T = 1000 ** 4
-P = 1000 ** 5
-E = 1000 ** 6
-Z = 1000 ** 7
-Y = 1000 ** 8
diff --git a/nova/quota.py b/nova/quota.py
index 71fb9b39fc..1601aa7529 100644
--- a/nova/quota.py
+++ b/nova/quota.py
@@ -19,15 +19,15 @@
import datetime
from oslo.config import cfg
+from oslo.utils import importutils
+from oslo.utils import timeutils
import six
from nova import db
from nova import exception
from nova.i18n import _
from nova import objects
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
LOG = logging.getLogger(__name__)
diff --git a/nova/scheduler/client/__init__.py b/nova/scheduler/client/__init__.py
index 958f08d68a..72dac11135 100644
--- a/nova/scheduler/client/__init__.py
+++ b/nova/scheduler/client/__init__.py
@@ -15,7 +15,7 @@
import functools
-from nova.openstack.common import importutils
+from oslo.utils import importutils
class LazyLoader(object):
diff --git a/nova/scheduler/driver.py b/nova/scheduler/driver.py
index b5d973e866..383969dc36 100644
--- a/nova/scheduler/driver.py
+++ b/nova/scheduler/driver.py
@@ -22,6 +22,8 @@ Scheduler base class that all Schedulers should inherit from
import sys
from oslo.config import cfg
+from oslo.utils import importutils
+from oslo.utils import timeutils
from nova.compute import utils as compute_utils
from nova.compute import vm_states
@@ -29,9 +31,7 @@ from nova import db
from nova import exception
from nova.i18n import _, _LW
from nova import notifications
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import rpc
from nova import servicegroup
diff --git a/nova/scheduler/filters/trusted_filter.py b/nova/scheduler/filters/trusted_filter.py
index 61ab1ebfab..7ac3bfa312 100644
--- a/nova/scheduler/filters/trusted_filter.py
+++ b/nova/scheduler/filters/trusted_filter.py
@@ -44,13 +44,13 @@ the Open Attestation project at:
"""
from oslo.config import cfg
+from oslo.utils import timeutils
import requests
from nova import context
from nova import db
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.scheduler import filters
LOG = logging.getLogger(__name__)
diff --git a/nova/scheduler/host_manager.py b/nova/scheduler/host_manager.py
index dbf5d39b4b..758c67c491 100644
--- a/nova/scheduler/host_manager.py
+++ b/nova/scheduler/host_manager.py
@@ -21,6 +21,7 @@ import collections
import UserDict
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.compute import task_states
from nova.compute import vm_states
@@ -29,7 +30,6 @@ from nova import exception
from nova.i18n import _, _LW
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.pci import pci_stats
from nova.scheduler import filters
from nova.scheduler import weights
diff --git a/nova/scheduler/ironic_host_manager.py b/nova/scheduler/ironic_host_manager.py
index e20facd3e9..7ece982f86 100644
--- a/nova/scheduler/ironic_host_manager.py
+++ b/nova/scheduler/ironic_host_manager.py
@@ -22,10 +22,10 @@ ram from a host / node as it is supporting Baremetal hosts, which can not be
subdivided into multiple instances.
"""
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
import nova.scheduler.base_baremetal_host_manager as bbhm
from nova.scheduler import host_manager
diff --git a/nova/scheduler/manager.py b/nova/scheduler/manager.py
index c370d0cef2..9d2383ded5 100644
--- a/nova/scheduler/manager.py
+++ b/nova/scheduler/manager.py
@@ -21,6 +21,8 @@ Scheduler Service
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import excutils
+from oslo.utils import importutils
from nova.compute import rpcapi as compute_rpcapi
from nova.compute import utils as compute_utils
@@ -28,8 +30,6 @@ from nova.compute import vm_states
from nova import exception
from nova import manager
from nova import objects
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.openstack.common import periodic_task
diff --git a/nova/scheduler/scheduler_options.py b/nova/scheduler/scheduler_options.py
index c0cf848d19..b8b4105694 100644
--- a/nova/scheduler/scheduler_options.py
+++ b/nova/scheduler/scheduler_options.py
@@ -24,12 +24,12 @@ import datetime
import os
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import timeutils
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
scheduler_json_config_location_opt = cfg.StrOpt(
diff --git a/nova/service.py b/nova/service.py
index cdb0b1f117..5b2003a2a3 100644
--- a/nova/service.py
+++ b/nova/service.py
@@ -23,6 +23,7 @@ import sys
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import importutils
from nova import baserpc
from nova import conductor
@@ -31,7 +32,6 @@ from nova import debugger
from nova import exception
from nova.i18n import _
from nova.objects import base as objects_base
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
from nova.openstack.common import service
diff --git a/nova/servicegroup/api.py b/nova/servicegroup/api.py
index bbb0fd55fd..c6ca11a2f9 100644
--- a/nova/servicegroup/api.py
+++ b/nova/servicegroup/api.py
@@ -19,9 +19,9 @@
import random
from oslo.config import cfg
+from oslo.utils import importutils
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova import utils
diff --git a/nova/servicegroup/drivers/db.py b/nova/servicegroup/drivers/db.py
index 70b7e132ba..0be32ce1a8 100644
--- a/nova/servicegroup/drivers/db.py
+++ b/nova/servicegroup/drivers/db.py
@@ -14,13 +14,13 @@
# limitations under the License.
from oslo.config import cfg
+from oslo.utils import timeutils
import six
from nova import conductor
from nova import context
from nova.i18n import _, _LE
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.servicegroup import api
diff --git a/nova/servicegroup/drivers/mc.py b/nova/servicegroup/drivers/mc.py
index 636dec8aa9..973d33ad66 100644
--- a/nova/servicegroup/drivers/mc.py
+++ b/nova/servicegroup/drivers/mc.py
@@ -18,13 +18,13 @@
# limitations under the License.
from oslo.config import cfg
+from oslo.utils import timeutils
from nova import conductor
from nova import context
from nova.i18n import _, _LE
from nova.openstack.common import log as logging
from nova.openstack.common import memorycache
-from nova.openstack.common import timeutils
from nova.servicegroup import api
diff --git a/nova/servicegroup/drivers/zk.py b/nova/servicegroup/drivers/zk.py
index a5b5cff140..458256ac21 100644
--- a/nova/servicegroup/drivers/zk.py
+++ b/nova/servicegroup/drivers/zk.py
@@ -18,10 +18,10 @@ import os
import eventlet
from oslo.config import cfg
+from oslo.utils import importutils
from nova import exception
from nova.i18n import _, _LE
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import loopingcall
from nova.servicegroup import api
diff --git a/nova/test.py b/nova/test.py
index f100b679af..71f996e37c 100644
--- a/nova/test.py
+++ b/nova/test.py
@@ -36,6 +36,7 @@ import uuid
import fixtures
from oslo.config import cfg
from oslo.messaging import conffixture as messaging_conffixture
+from oslo.utils import timeutils
import testtools
from nova import context
@@ -48,7 +49,6 @@ from nova.objects import base as objects_base
from nova.openstack.common.fixture import logging as log_fixture
from nova.openstack.common.fixture import moxstubout
from nova.openstack.common import log as nova_logging
-from nova.openstack.common import timeutils
from nova import paths
from nova import rpc
from nova import service
diff --git a/nova/tests/api/ec2/test_apirequest.py b/nova/tests/api/ec2/test_apirequest.py
index de5be486d2..4b2dee96f8 100644
--- a/nova/tests/api/ec2/test_apirequest.py
+++ b/nova/tests/api/ec2/test_apirequest.py
@@ -18,8 +18,9 @@
import copy
+from oslo.utils import timeutils
+
from nova.api.ec2 import apirequest
-from nova.openstack.common import timeutils
from nova import test
diff --git a/nova/tests/api/ec2/test_cloud.py b/nova/tests/api/ec2/test_cloud.py
index 909b39c550..5ae47c3901 100644
--- a/nova/tests/api/ec2/test_cloud.py
+++ b/nova/tests/api/ec2/test_cloud.py
@@ -28,6 +28,7 @@ import fixtures
import iso8601
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.api.ec2 import cloud
from nova.api.ec2 import ec2utils
@@ -51,7 +52,6 @@ from nova import objects
from nova.objects import base as obj_base
from nova.openstack.common import log as logging
from nova.openstack.common import policy as common_policy
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import policy
from nova import test
diff --git a/nova/tests/api/ec2/test_ec2_validate.py b/nova/tests/api/ec2/test_ec2_validate.py
index a058e46597..b75e729a1b 100644
--- a/nova/tests/api/ec2/test_ec2_validate.py
+++ b/nova/tests/api/ec2/test_ec2_validate.py
@@ -17,6 +17,7 @@
import datetime
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.api.ec2 import cloud
from nova.api.ec2 import ec2utils
@@ -24,7 +25,6 @@ from nova.compute import utils as compute_utils
from nova import context
from nova import db
from nova import exception
-from nova.openstack.common import timeutils
from nova import test
from nova.tests import cast_as_call
from nova.tests import fake_network
diff --git a/nova/tests/api/ec2/test_middleware.py b/nova/tests/api/ec2/test_middleware.py
index f00a709607..3eb9c703da 100644
--- a/nova/tests/api/ec2/test_middleware.py
+++ b/nova/tests/api/ec2/test_middleware.py
@@ -18,6 +18,7 @@ from eventlet.green import httplib
from lxml import etree
import mox
from oslo.config import cfg
+from oslo.utils import timeutils
import webob
import webob.dec
import webob.exc
@@ -25,7 +26,6 @@ import webob.exc
from nova.api import ec2
from nova import context
from nova import exception
-from nova.openstack.common import timeutils
from nova import test
from nova import wsgi
diff --git a/nova/tests/api/openstack/compute/contrib/test_admin_actions.py b/nova/tests/api/openstack/compute/contrib/test_admin_actions.py
index 844c1779d2..c0c91fb4c9 100644
--- a/nova/tests/api/openstack/compute/contrib/test_admin_actions.py
+++ b/nova/tests/api/openstack/compute/contrib/test_admin_actions.py
@@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
import webob
from nova.api.openstack import common
@@ -24,7 +25,6 @@ import nova.context
from nova import exception
from nova import objects
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import test
from nova.tests.api.openstack import fakes
diff --git a/nova/tests/api/openstack/compute/contrib/test_cells.py b/nova/tests/api/openstack/compute/contrib/test_cells.py
index b396ae578a..909b9c3b05 100644
--- a/nova/tests/api/openstack/compute/contrib/test_cells.py
+++ b/nova/tests/api/openstack/compute/contrib/test_cells.py
@@ -16,6 +16,7 @@
import copy
from lxml import etree
+from oslo.utils import timeutils
from webob import exc
from nova.api.openstack.compute.contrib import cells as cells_ext_v2
@@ -25,7 +26,6 @@ from nova.api.openstack import xmlutil
from nova.cells import rpcapi as cells_rpcapi
from nova import context
from nova import exception
-from nova.openstack.common import timeutils
from nova import rpc
from nova import test
from nova.tests.api.openstack import fakes
diff --git a/nova/tests/api/openstack/compute/contrib/test_cloudpipe.py b/nova/tests/api/openstack/compute/contrib/test_cloudpipe.py
index 483e27ca42..0e89445298 100644
--- a/nova/tests/api/openstack/compute/contrib/test_cloudpipe.py
+++ b/nova/tests/api/openstack/compute/contrib/test_cloudpipe.py
@@ -15,13 +15,13 @@
from lxml import etree
from oslo.config import cfg
+from oslo.utils import timeutils
from webob import exc
from nova.api.openstack.compute.contrib import cloudpipe
from nova.api.openstack import wsgi
from nova.compute import utils as compute_utils
from nova import exception
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import fake_network
diff --git a/nova/tests/api/openstack/compute/contrib/test_instance_usage_audit_log.py b/nova/tests/api/openstack/compute/contrib/test_instance_usage_audit_log.py
index 0ff6ec3105..dcacb21fe7 100644
--- a/nova/tests/api/openstack/compute/contrib/test_instance_usage_audit_log.py
+++ b/nova/tests/api/openstack/compute/contrib/test_instance_usage_audit_log.py
@@ -15,10 +15,11 @@
import datetime
+from oslo.utils import timeutils
+
from nova.api.openstack.compute.contrib import instance_usage_audit_log as ial
from nova import context
from nova import db
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests.objects import test_service
diff --git a/nova/tests/api/openstack/compute/contrib/test_server_usage.py b/nova/tests/api/openstack/compute/contrib/test_server_usage.py
index 78a30c8505..39fd7dce06 100644
--- a/nova/tests/api/openstack/compute/contrib/test_server_usage.py
+++ b/nova/tests/api/openstack/compute/contrib/test_server_usage.py
@@ -16,6 +16,7 @@
import datetime
from lxml import etree
+from oslo.utils import timeutils
from nova.api.openstack.compute.contrib import server_usage
from nova import compute
@@ -24,7 +25,6 @@ from nova import exception
from nova import objects
from nova.objects import instance as instance_obj
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import fake_instance
diff --git a/nova/tests/api/openstack/compute/contrib/test_services.py b/nova/tests/api/openstack/compute/contrib/test_services.py
index 74f07b92da..43fa6c463b 100644
--- a/nova/tests/api/openstack/compute/contrib/test_services.py
+++ b/nova/tests/api/openstack/compute/contrib/test_services.py
@@ -18,6 +18,7 @@ import datetime
import iso8601
import mock
+from oslo.utils import timeutils
import webob.exc
from nova.api.openstack.compute.contrib import services
@@ -27,7 +28,6 @@ from nova.compute import cells_api
from nova import context
from nova import db
from nova import exception
-from nova.openstack.common import timeutils
from nova.servicegroup.drivers import db as db_driver
from nova import test
from nova.tests.api.openstack import fakes
@@ -146,6 +146,9 @@ def fake_utcnow():
return datetime.datetime(2012, 10, 29, 13, 42, 11)
+fake_utcnow.override_time = None
+
+
def fake_utcnow_ts():
d = fake_utcnow()
return calendar.timegm(d.utctimetuple())
diff --git a/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py b/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py
index 1645d3c4e4..f790fec8b7 100644
--- a/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py
+++ b/nova/tests/api/openstack/compute/contrib/test_simple_tenant_usage.py
@@ -17,6 +17,7 @@ import datetime
from lxml import etree
import mock
+from oslo.utils import timeutils
import webob
from nova.api.openstack.compute.contrib import simple_tenant_usage as \
@@ -31,7 +32,6 @@ from nova import exception
from nova import objects
from nova.openstack.common import jsonutils
from nova.openstack.common import policy as common_policy
-from nova.openstack.common import timeutils
from nova import policy
from nova import test
from nova.tests.api.openstack import fakes
diff --git a/nova/tests/api/openstack/compute/contrib/test_snapshots.py b/nova/tests/api/openstack/compute/contrib/test_snapshots.py
index 5d611d11d0..a20daca788 100644
--- a/nova/tests/api/openstack/compute/contrib/test_snapshots.py
+++ b/nova/tests/api/openstack/compute/contrib/test_snapshots.py
@@ -14,12 +14,12 @@
# under the License.
from lxml import etree
+from oslo.utils import timeutils
import webob
from nova.api.openstack.compute.contrib import volumes
from nova import context
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.volume import cinder
diff --git a/nova/tests/api/openstack/compute/contrib/test_volumes.py b/nova/tests/api/openstack/compute/contrib/test_volumes.py
index 32b4ce09c2..99e2a2ac60 100644
--- a/nova/tests/api/openstack/compute/contrib/test_volumes.py
+++ b/nova/tests/api/openstack/compute/contrib/test_volumes.py
@@ -19,6 +19,7 @@ import datetime
from lxml import etree
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
import webob
from webob import exc
@@ -34,7 +35,6 @@ from nova import db
from nova import exception
from nova import objects
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import fake_block_device
diff --git a/nova/tests/api/openstack/compute/plugins/v3/admin_only_action_common.py b/nova/tests/api/openstack/compute/plugins/v3/admin_only_action_common.py
index 4f4591b990..b24658e1de 100644
--- a/nova/tests/api/openstack/compute/plugins/v3/admin_only_action_common.py
+++ b/nova/tests/api/openstack/compute/plugins/v3/admin_only_action_common.py
@@ -12,13 +12,13 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
import webob
from nova.compute import vm_states
import nova.context
from nova import exception
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import test
from nova.tests import fake_instance
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_consoles.py b/nova/tests/api/openstack/compute/plugins/v3/test_consoles.py
index 31012f7b14..addc5396da 100644
--- a/nova/tests/api/openstack/compute/plugins/v3/test_consoles.py
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_consoles.py
@@ -17,6 +17,7 @@
import datetime
import uuid as stdlib_uuid
+from oslo.utils import timeutils
import webob
from nova.api.openstack.compute.plugins.v3 import consoles
@@ -24,7 +25,6 @@ from nova.compute import vm_states
from nova import console
from nova import db
from nova import exception
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import matchers
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_servers.py b/nova/tests/api/openstack/compute/plugins/v3/test_servers.py
index 62cba6bbfc..00f6064f2f 100644
--- a/nova/tests/api/openstack/compute/plugins/v3/test_servers.py
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_servers.py
@@ -24,6 +24,7 @@ import iso8601
import mock
import mox
from oslo.config import cfg
+from oslo.utils import timeutils
import six.moves.urllib.parse as urlparse
import testtools
import webob
@@ -54,7 +55,6 @@ from nova import objects
from nova.objects import instance as instance_obj
from nova.openstack.common import jsonutils
from nova.openstack.common import policy as common_policy
-from nova.openstack.common import timeutils
from nova import policy
from nova import test
from nova.tests.api.openstack import fakes
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_services.py b/nova/tests/api/openstack/compute/plugins/v3/test_services.py
index 85fca352b7..9e681c6fde 100644
--- a/nova/tests/api/openstack/compute/plugins/v3/test_services.py
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_services.py
@@ -17,6 +17,7 @@ import datetime
import iso8601
import mock
+from oslo.utils import timeutils
import webob.exc
from nova.api.openstack.compute.plugins.v3 import services
@@ -25,7 +26,6 @@ from nova.compute import cells_api
from nova import context
from nova import db
from nova import exception
-from nova.openstack.common import timeutils
from nova.servicegroup.drivers import db as db_driver
from nova import test
from nova.tests.api.openstack import fakes
@@ -144,6 +144,9 @@ def fake_utcnow():
return datetime.datetime(2012, 10, 29, 13, 42, 11)
+fake_utcnow.override_time = None
+
+
def fake_utcnow_ts():
d = fake_utcnow()
return calendar.timegm(d.utctimetuple())
diff --git a/nova/tests/api/openstack/compute/test_consoles.py b/nova/tests/api/openstack/compute/test_consoles.py
index ac844b1c61..df90927060 100644
--- a/nova/tests/api/openstack/compute/test_consoles.py
+++ b/nova/tests/api/openstack/compute/test_consoles.py
@@ -18,6 +18,7 @@ import datetime
import uuid as stdlib_uuid
from lxml import etree
+from oslo.utils import timeutils
import webob
from nova.api.openstack.compute import consoles
@@ -25,7 +26,6 @@ from nova.compute import vm_states
from nova import console
from nova import db
from nova import exception
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import matchers
diff --git a/nova/tests/api/openstack/compute/test_server_metadata.py b/nova/tests/api/openstack/compute/test_server_metadata.py
index 4d1a7b6a71..c6511b787f 100644
--- a/nova/tests/api/openstack/compute/test_server_metadata.py
+++ b/nova/tests/api/openstack/compute/test_server_metadata.py
@@ -17,6 +17,7 @@ import uuid
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
import six
import webob
@@ -29,7 +30,6 @@ import nova.db
from nova import exception
from nova import objects
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import fake_instance
diff --git a/nova/tests/api/openstack/compute/test_servers.py b/nova/tests/api/openstack/compute/test_servers.py
index 5c8de19ab8..06987101f2 100644
--- a/nova/tests/api/openstack/compute/test_servers.py
+++ b/nova/tests/api/openstack/compute/test_servers.py
@@ -25,6 +25,7 @@ import iso8601
from lxml import etree
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
import six.moves.urllib.parse as urlparse
import testtools
import webob
@@ -51,7 +52,6 @@ from nova import objects
from nova.objects import instance as instance_obj
from nova.openstack.common import jsonutils
from nova.openstack.common import policy as common_policy
-from nova.openstack.common import timeutils
from nova import policy
from nova import test
from nova.tests.api.openstack import fakes
diff --git a/nova/tests/api/openstack/fakes.py b/nova/tests/api/openstack/fakes.py
index dcd06fb704..27a26b8898 100644
--- a/nova/tests/api/openstack/fakes.py
+++ b/nova/tests/api/openstack/fakes.py
@@ -16,6 +16,7 @@
import datetime
import uuid
+from oslo.utils import timeutils
import routes
import six
import webob
@@ -39,7 +40,6 @@ from nova import exception as exc
import nova.netconf
from nova.network import api as network_api
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova import quota
from nova.tests import fake_block_device
from nova.tests import fake_network
diff --git a/nova/tests/cells/test_cells_manager.py b/nova/tests/cells/test_cells_manager.py
index 0ccd5e3cdc..e540bf5793 100644
--- a/nova/tests/cells/test_cells_manager.py
+++ b/nova/tests/cells/test_cells_manager.py
@@ -20,11 +20,11 @@ import datetime
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.cells import messaging
from nova.cells import utils as cells_utils
from nova import context
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.cells import fakes
from nova.tests import fake_server_actions
diff --git a/nova/tests/cells/test_cells_messaging.py b/nova/tests/cells/test_cells_messaging.py
index 5b89d07ea1..e9e71bb13e 100644
--- a/nova/tests/cells/test_cells_messaging.py
+++ b/nova/tests/cells/test_cells_messaging.py
@@ -23,6 +23,7 @@ import mock
import mox
from oslo.config import cfg
from oslo import messaging as oslo_messaging
+from oslo.utils import timeutils
from nova.cells import messaging
from nova.cells import utils as cells_utils
@@ -36,7 +37,6 @@ from nova import objects
from nova.objects import base as objects_base
from nova.objects import fields as objects_fields
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import rpc
from nova import test
diff --git a/nova/tests/cells/test_cells_weights.py b/nova/tests/cells/test_cells_weights.py
index ba4716e623..5f0a0ac783 100644
--- a/nova/tests/cells/test_cells_weights.py
+++ b/nova/tests/cells/test_cells_weights.py
@@ -20,9 +20,10 @@ Cells with higher weights should be given priority for new builds.
import datetime
+from oslo.utils import timeutils
+
from nova.cells import state
from nova.cells import weights
-from nova.openstack.common import timeutils
from nova import test
diff --git a/nova/tests/compute/test_compute.py b/nova/tests/compute/test_compute.py
index e677c2a9f7..97b9ee5792 100644
--- a/nova/tests/compute/test_compute.py
+++ b/nova/tests/compute/test_compute.py
@@ -31,7 +31,8 @@ import mock
import mox
from oslo.config import cfg
from oslo import messaging
-from oslo.utils import timeutils as db_timeutils
+from oslo.utils import importutils
+from oslo.utils import timeutils
import six
import testtools
from testtools import matchers as testtools_matchers
@@ -63,10 +64,8 @@ from nova import objects
from nova.objects import base as obj_base
from nova.objects import block_device as block_device_obj
from nova.objects import instance as instance_obj
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import policy
from nova import quota
@@ -272,7 +271,6 @@ class BaseTestCase(test.TestCase):
def tearDown(self):
timeutils.clear_time_override()
- db_timeutils.clear_time_override()
ctxt = context.get_admin_context()
fake_image.FakeImageService_reset()
instances = db.instance_get_all(ctxt)
@@ -3761,20 +3759,12 @@ class ComputeTestCase(BaseTestCase):
old_time = datetime.datetime(2012, 4, 1)
cur_time = datetime.datetime(2012, 12, 21, 12, 21)
- # TODO(ekudryashova): remove this after both nova and oslo.db
- # will use oslo.utils library
- # NOTE: Both projects(nova and oslo.db) use `timeutils.utcnow`,
- # which returns specified time(if override_time is set).
- # So time overriding should be done for both timeutils to make
- # them equal.
- db_timeutils.set_time_override(old_time)
timeutils.set_time_override(old_time)
instance = jsonutils.to_primitive(self._create_fake_instance())
self.compute.run_instance(self.context, instance, {}, {}, [], None,
None, True, None, False)
fake_notifier.NOTIFICATIONS = []
- db_timeutils.set_time_override(cur_time)
timeutils.set_time_override(cur_time)
self.compute.terminate_instance(self.context,
self._objectify(instance), [], [])
diff --git a/nova/tests/compute/test_compute_api.py b/nova/tests/compute/test_compute_api.py
index ae7bad5c4a..810f07af00 100644
--- a/nova/tests/compute/test_compute_api.py
+++ b/nova/tests/compute/test_compute_api.py
@@ -20,6 +20,7 @@ import datetime
import iso8601
import mock
import mox
+from oslo.utils import timeutils
from nova.compute import api as compute_api
from nova.compute import arch
@@ -36,7 +37,6 @@ from nova import exception
from nova import objects
from nova.objects import base as obj_base
from nova.objects import quotas as quotas_obj
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import quota
from nova import test
diff --git a/nova/tests/compute/test_compute_cells.py b/nova/tests/compute/test_compute_cells.py
index e3b7a00467..c8dc115a4c 100644
--- a/nova/tests/compute/test_compute_cells.py
+++ b/nova/tests/compute/test_compute_cells.py
@@ -20,6 +20,7 @@ import inspect
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.cells import manager
from nova.compute import api as compute_api
@@ -29,7 +30,6 @@ from nova.compute import vm_states
from nova import context
from nova import db
from nova import objects
-from nova.openstack.common import timeutils
from nova import quota
from nova import test
from nova.tests.compute import test_compute
diff --git a/nova/tests/compute/test_compute_mgr.py b/nova/tests/compute/test_compute_mgr.py
index 4a2e9c3d82..61c35813c8 100644
--- a/nova/tests/compute/test_compute_mgr.py
+++ b/nova/tests/compute/test_compute_mgr.py
@@ -21,6 +21,7 @@ import mock
import mox
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import importutils
from nova.compute import power_state
from nova.compute import task_states
@@ -33,7 +34,6 @@ from nova import exception
from nova.network import model as network_model
from nova import objects
from nova.objects import block_device as block_device_obj
-from nova.openstack.common import importutils
from nova.openstack.common import uuidutils
from nova import test
from nova.tests.compute import fake_resource_tracker
diff --git a/nova/tests/compute/test_compute_utils.py b/nova/tests/compute/test_compute_utils.py
index 9e8af260b1..0f02edf3c8 100644
--- a/nova/tests/compute/test_compute_utils.py
+++ b/nova/tests/compute/test_compute_utils.py
@@ -21,6 +21,7 @@ import string
import mock
from oslo.config import cfg
+from oslo.utils import importutils
import six
import testtools
@@ -36,7 +37,6 @@ from nova.network import api as network_api
from nova import objects
from nova.objects import block_device as block_device_obj
from nova.objects import instance as instance_obj
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import periodic_task
from nova import rpc
diff --git a/nova/tests/compute/test_compute_xen.py b/nova/tests/compute/test_compute_xen.py
index 11e6d389dd..29300e6511 100644
--- a/nova/tests/compute/test_compute_xen.py
+++ b/nova/tests/compute/test_compute_xen.py
@@ -13,12 +13,12 @@
"""Tests for expectations of behaviour from the Xen driver."""
from oslo.config import cfg
+from oslo.utils import importutils
from nova.compute import power_state
from nova import context
from nova import objects
from nova.objects import instance as instance_obj
-from nova.openstack.common import importutils
from nova.tests.compute import eventlet_utils
from nova.tests import fake_instance
from nova.tests.virt.xenapi import stubs
diff --git a/nova/tests/compute/test_multiple_nodes.py b/nova/tests/compute/test_multiple_nodes.py
index 19ae798dff..6b8c9050e0 100644
--- a/nova/tests/compute/test_multiple_nodes.py
+++ b/nova/tests/compute/test_multiple_nodes.py
@@ -15,11 +15,11 @@
"""Tests for compute service with multiple compute nodes."""
from oslo.config import cfg
+from oslo.utils import importutils
from nova import context
from nova import db
from nova import objects
-from nova.openstack.common import importutils
from nova import test
from nova.virt import fake
diff --git a/nova/tests/compute/test_resource_tracker.py b/nova/tests/compute/test_resource_tracker.py
index 8ae5a86abb..ff2d384957 100644
--- a/nova/tests/compute/test_resource_tracker.py
+++ b/nova/tests/compute/test_resource_tracker.py
@@ -19,6 +19,7 @@ import uuid
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.compute import flavors
from nova.compute import resource_tracker
@@ -30,7 +31,6 @@ from nova import db
from nova import objects
from nova.objects import base as obj_base
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova import rpc
from nova import test
from nova.tests.compute.monitors import test_monitors
diff --git a/nova/tests/compute/test_shelve.py b/nova/tests/compute/test_shelve.py
index 5f3c06f5e4..b39566c9dd 100644
--- a/nova/tests/compute/test_shelve.py
+++ b/nova/tests/compute/test_shelve.py
@@ -14,6 +14,7 @@ import iso8601
import mock
import mox
from oslo.config import cfg
+from oslo.utils import timeutils
from nova.compute import claims
from nova.compute import task_states
@@ -21,7 +22,6 @@ from nova.compute import vm_states
from nova import db
from nova import objects
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova.tests.compute import test_compute
from nova.tests.image import fake as fake_image
from nova import utils
diff --git a/nova/tests/conductor/test_conductor.py b/nova/tests/conductor/test_conductor.py
index 44c412bff0..4ca71c863c 100644
--- a/nova/tests/conductor/test_conductor.py
+++ b/nova/tests/conductor/test_conductor.py
@@ -20,6 +20,7 @@ import contextlib
import mock
import mox
from oslo import messaging
+from oslo.utils import timeutils
from nova.api.ec2 import ec2utils
from nova.compute import arch
@@ -43,7 +44,6 @@ from nova.objects import block_device as block_device_obj
from nova.objects import fields
from nova.objects import quotas as quotas_obj
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova import quota
from nova import rpc
from nova.scheduler import driver as scheduler_driver
diff --git a/nova/tests/console/test_console.py b/nova/tests/console/test_console.py
index bd3dbeb6b6..ba09272978 100644
--- a/nova/tests/console/test_console.py
+++ b/nova/tests/console/test_console.py
@@ -17,6 +17,7 @@
"""Tests For Console proxy."""
from oslo.config import cfg
+from oslo.utils import importutils
from nova.compute import rpcapi as compute_rpcapi
from nova.console import api as console_api
@@ -24,7 +25,6 @@ from nova.console import rpcapi as console_rpcapi
from nova import context
from nova import db
from nova import exception
-from nova.openstack.common import importutils
from nova import test
CONF = cfg.CONF
diff --git a/nova/tests/consoleauth/test_consoleauth.py b/nova/tests/consoleauth/test_consoleauth.py
index 110e1c0c99..571d54fd92 100644
--- a/nova/tests/consoleauth/test_consoleauth.py
+++ b/nova/tests/consoleauth/test_consoleauth.py
@@ -19,11 +19,11 @@ Tests for Consoleauth Code.
"""
import mox
+from oslo.utils import timeutils
from nova.consoleauth import manager
from nova import context
from nova import db
-from nova.openstack.common import timeutils
from nova import test
diff --git a/nova/tests/db/test_db_api.py b/nova/tests/db/test_db_api.py
index f171c90d71..740eb58a9d 100644
--- a/nova/tests/db/test_db_api.py
+++ b/nova/tests/db/test_db_api.py
@@ -30,6 +30,7 @@ from oslo.config import cfg
from oslo.db import exception as db_exc
from oslo.db.sqlalchemy import test_base
from oslo.db.sqlalchemy import utils as sqlalchemyutils
+from oslo.utils import timeutils
import six
from sqlalchemy import Column
from sqlalchemy.dialects import sqlite
@@ -50,7 +51,6 @@ from nova.db.sqlalchemy import types as col_types
from nova.db.sqlalchemy import utils as db_utils
from nova import exception
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova import quota
from nova import test
diff --git a/nova/tests/fake_block_device.py b/nova/tests/fake_block_device.py
index 8cd9721de2..6f27eb3749 100644
--- a/nova/tests/fake_block_device.py
+++ b/nova/tests/fake_block_device.py
@@ -15,8 +15,9 @@
import uuid
+from oslo.utils import timeutils
+
from nova import block_device
-from nova.openstack.common import timeutils
class FakeDbBlockDeviceDict(block_device.BlockDeviceDict):
diff --git a/nova/tests/fake_volume.py b/nova/tests/fake_volume.py
index 6def42f76b..6fbe560162 100644
--- a/nova/tests/fake_volume.py
+++ b/nova/tests/fake_volume.py
@@ -15,11 +15,11 @@
import uuid
from oslo.config import cfg
+from oslo.utils import timeutils
from nova import exception
from nova.i18n import _
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
LOG = logging.getLogger(__name__)
diff --git a/nova/tests/integrated/api_samples_test_base.py b/nova/tests/integrated/api_samples_test_base.py
index 14bd2bf4e4..6faed0ca4b 100644
--- a/nova/tests/integrated/api_samples_test_base.py
+++ b/nova/tests/integrated/api_samples_test_base.py
@@ -17,10 +17,10 @@ import os
import re
from lxml import etree
+from oslo.utils import importutils
import six
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova import test
from nova.tests.integrated import integrated_helpers
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index a94530bb12..0ee3cc2967 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -25,6 +25,8 @@ import uuid as uuid_lib
from lxml import etree
import mock
from oslo.config import cfg
+from oslo.utils import importutils
+from oslo.utils import timeutils
from nova.api.metadata import password
from nova.api.openstack.compute.contrib import fping
@@ -44,10 +46,8 @@ from nova.db.sqlalchemy import models
from nova import exception
from nova.network import api as network_api
from nova import objects
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
import nova.quota
from nova.servicegroup import api as service_group_api
from nova import test
diff --git a/nova/tests/integrated/test_servers.py b/nova/tests/integrated/test_servers.py
index 6a90a8e30b..c821cd4611 100644
--- a/nova/tests/integrated/test_servers.py
+++ b/nova/tests/integrated/test_servers.py
@@ -17,10 +17,11 @@ import datetime
import time
import zlib
+from oslo.utils import timeutils
+
from nova import context
from nova import exception
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.tests import fake_network
from nova.tests.integrated.api import client
from nova.tests.integrated import integrated_helpers
diff --git a/nova/tests/integrated/v3/test_services.py b/nova/tests/integrated/v3/test_services.py
index aedfee8970..b15701358c 100644
--- a/nova/tests/integrated/v3/test_services.py
+++ b/nova/tests/integrated/v3/test_services.py
@@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
+
from nova import db
-from nova.openstack.common import timeutils
from nova.tests.api.openstack.compute.plugins.v3 import test_services
from nova.tests.integrated.v3 import api_sample_base
diff --git a/nova/tests/integrated/v3/test_simple_tenant_usage.py b/nova/tests/integrated/v3/test_simple_tenant_usage.py
index 111aa2e5e7..18d2e7ceb7 100644
--- a/nova/tests/integrated/v3/test_simple_tenant_usage.py
+++ b/nova/tests/integrated/v3/test_simple_tenant_usage.py
@@ -15,7 +15,8 @@
import datetime
import urllib
-from nova.openstack.common import timeutils
+from oslo.utils import timeutils
+
from nova.tests.integrated.v3 import test_servers
diff --git a/nova/tests/network/test_linux_net.py b/nova/tests/network/test_linux_net.py
index e0778477ab..4ce88d43e3 100644
--- a/nova/tests/network/test_linux_net.py
+++ b/nova/tests/network/test_linux_net.py
@@ -21,6 +21,7 @@ import os
import mock
import mox
from oslo.config import cfg
+from oslo.utils import timeutils
from nova import context
from nova import db
@@ -32,7 +33,6 @@ from nova.openstack.common import fileutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
-from nova.openstack.common import timeutils
from nova import test
from nova import utils
diff --git a/nova/tests/network/test_manager.py b/nova/tests/network/test_manager.py
index b1e0d065e0..fa5c7829d2 100644
--- a/nova/tests/network/test_manager.py
+++ b/nova/tests/network/test_manager.py
@@ -24,6 +24,7 @@ import netaddr
from oslo.config import cfg
from oslo.db import exception as db_exc
from oslo import messaging
+from oslo.utils import importutils
import six
from nova import context
@@ -38,7 +39,6 @@ from nova.network import model as net_model
from nova import objects
from nova.objects import quotas as quotas_obj
from nova.objects import virtual_interface as vif_obj
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
from nova import quota
diff --git a/nova/tests/objects/test_aggregate.py b/nova/tests/objects/test_aggregate.py
index a1d016bb2b..9492b26cf8 100644
--- a/nova/tests/objects/test_aggregate.py
+++ b/nova/tests/objects/test_aggregate.py
@@ -13,11 +13,11 @@
# under the License.
import mock
+from oslo.utils import timeutils
from nova import db
from nova import exception
from nova.objects import aggregate
-from nova.openstack.common import timeutils
from nova.tests import fake_notifier
from nova.tests.objects import test_objects
diff --git a/nova/tests/objects/test_bandwidth_usage.py b/nova/tests/objects/test_bandwidth_usage.py
index e8e28bedb1..d7662210b6 100644
--- a/nova/tests/objects/test_bandwidth_usage.py
+++ b/nova/tests/objects/test_bandwidth_usage.py
@@ -14,11 +14,11 @@ import datetime
import iso8601
import mock
+from oslo.utils import timeutils
from nova import context
from nova import db
from nova.objects import bandwidth_usage
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.objects import test_objects
diff --git a/nova/tests/objects/test_compute_node.py b/nova/tests/objects/test_compute_node.py
index c02646f3e2..7401278580 100644
--- a/nova/tests/objects/test_compute_node.py
+++ b/nova/tests/objects/test_compute_node.py
@@ -13,13 +13,13 @@
# under the License.
import mock
+from oslo.utils import timeutils
from nova import db
from nova import exception
from nova.objects import compute_node
from nova.objects import service
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova.tests.objects import test_objects
from nova.virt import hardware
diff --git a/nova/tests/objects/test_fields.py b/nova/tests/objects/test_fields.py
index cfc5b87d9f..806d97773a 100644
--- a/nova/tests/objects/test_fields.py
+++ b/nova/tests/objects/test_fields.py
@@ -16,11 +16,11 @@ import datetime
import iso8601
import netaddr
+from oslo.utils import timeutils
from nova.network import model as network_model
from nova.objects import base as obj_base
from nova.objects import fields
-from nova.openstack.common import timeutils
from nova import test
diff --git a/nova/tests/objects/test_fixed_ip.py b/nova/tests/objects/test_fixed_ip.py
index e30459a124..f699110d78 100644
--- a/nova/tests/objects/test_fixed_ip.py
+++ b/nova/tests/objects/test_fixed_ip.py
@@ -17,10 +17,10 @@ import datetime
import iso8601
import mock
import netaddr
+from oslo.utils import timeutils
from nova import exception
from nova.objects import fixed_ip
-from nova.openstack.common import timeutils
from nova.tests import fake_instance
from nova.tests.objects import test_network
from nova.tests.objects import test_objects
diff --git a/nova/tests/objects/test_instance.py b/nova/tests/objects/test_instance.py
index d89c673fc5..a11a8fc3e9 100644
--- a/nova/tests/objects/test_instance.py
+++ b/nova/tests/objects/test_instance.py
@@ -18,6 +18,7 @@ import iso8601
import mock
import mox
import netaddr
+from oslo.utils import timeutils
from nova.cells import rpcapi as cells_rpcapi
from nova.compute import flavors
@@ -30,7 +31,6 @@ from nova.objects import instance_info_cache
from nova.objects import instance_numa_topology
from nova.objects import pci_device
from nova.objects import security_group
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.api.openstack import fakes
from nova.tests import fake_instance
diff --git a/nova/tests/objects/test_instance_action.py b/nova/tests/objects/test_instance_action.py
index 9d4bc969c1..37804035db 100644
--- a/nova/tests/objects/test_instance_action.py
+++ b/nova/tests/objects/test_instance_action.py
@@ -15,10 +15,10 @@
import traceback
import mock
+from oslo.utils import timeutils
from nova import db
from nova.objects import instance_action
-from nova.openstack.common import timeutils
from nova import test
from nova.tests.objects import test_objects
diff --git a/nova/tests/objects/test_keypair.py b/nova/tests/objects/test_keypair.py
index 1118f51a40..6ac66b04ae 100644
--- a/nova/tests/objects/test_keypair.py
+++ b/nova/tests/objects/test_keypair.py
@@ -12,10 +12,11 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
+
from nova import db
from nova import exception
from nova.objects import keypair
-from nova.openstack.common import timeutils
from nova.tests.objects import test_objects
NOW = timeutils.utcnow().replace(microsecond=0)
diff --git a/nova/tests/objects/test_migration.py b/nova/tests/objects/test_migration.py
index 23e1b857a0..8d6d9c8113 100644
--- a/nova/tests/objects/test_migration.py
+++ b/nova/tests/objects/test_migration.py
@@ -12,11 +12,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo.utils import timeutils
+
from nova import context
from nova import db
from nova import exception
from nova.objects import migration
-from nova.openstack.common import timeutils
from nova.tests import fake_instance
from nova.tests.objects import test_objects
diff --git a/nova/tests/objects/test_objects.py b/nova/tests/objects/test_objects.py
index d8ef3ce19a..4f0aee317a 100644
--- a/nova/tests/objects/test_objects.py
+++ b/nova/tests/objects/test_objects.py
@@ -20,6 +20,7 @@ import os
import pprint
import mock
+from oslo.utils import timeutils
import six
from testtools import matchers
@@ -31,7 +32,6 @@ from nova.objects import base
from nova.objects import fields
from nova.openstack.common import jsonutils
from nova.openstack.common import log
-from nova.openstack.common import timeutils
from nova import rpc
from nova import test
from nova.tests import fake_notifier
diff --git a/nova/tests/objects/test_service.py b/nova/tests/objects/test_service.py
index 8951e9a0dc..cb3f8c3646 100644
--- a/nova/tests/objects/test_service.py
+++ b/nova/tests/objects/test_service.py
@@ -13,12 +13,12 @@
# under the License.
import mock
+from oslo.utils import timeutils
from nova import db
from nova import exception
from nova.objects import aggregate
from nova.objects import service
-from nova.openstack.common import timeutils
from nova.tests.objects import test_compute_node
from nova.tests.objects import test_objects
diff --git a/nova/tests/scheduler/test_caching_scheduler.py b/nova/tests/scheduler/test_caching_scheduler.py
index a7b631c326..def432328f 100644
--- a/nova/tests/scheduler/test_caching_scheduler.py
+++ b/nova/tests/scheduler/test_caching_scheduler.py
@@ -14,9 +14,9 @@
# under the License.
import mock
+from oslo.utils import timeutils
from nova import exception
-from nova.openstack.common import timeutils
from nova.scheduler import caching_scheduler
from nova.scheduler import host_manager
from nova.tests.scheduler import test_scheduler
diff --git a/nova/tests/scheduler/test_host_filters.py b/nova/tests/scheduler/test_host_filters.py
index e277c0180f..7511ec850c 100644
--- a/nova/tests/scheduler/test_host_filters.py
+++ b/nova/tests/scheduler/test_host_filters.py
@@ -17,6 +17,7 @@ Tests For Scheduler Host Filters.
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
import requests
import six
import stubout
@@ -29,7 +30,6 @@ from nova import db
from nova import objects
from nova.objects import base as obj_base
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova.pci import pci_stats
from nova.scheduler import filters
from nova.scheduler.filters import extra_specs_ops
diff --git a/nova/tests/scheduler/test_host_manager.py b/nova/tests/scheduler/test_host_manager.py
index 25361a5b0d..007da28978 100644
--- a/nova/tests/scheduler/test_host_manager.py
+++ b/nova/tests/scheduler/test_host_manager.py
@@ -17,6 +17,7 @@ Tests For HostManager
"""
import mock
+from oslo.utils import timeutils
import six
from nova.compute import task_states
@@ -25,7 +26,6 @@ from nova import db
from nova import exception
from nova.i18n import _LW
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
from nova.scheduler import filters
from nova.scheduler import host_manager
from nova import test
diff --git a/nova/tests/servicegroup/test_db_servicegroup.py b/nova/tests/servicegroup/test_db_servicegroup.py
index 004855da16..6f08e6fb50 100644
--- a/nova/tests/servicegroup/test_db_servicegroup.py
+++ b/nova/tests/servicegroup/test_db_servicegroup.py
@@ -15,10 +15,10 @@
import datetime
import fixtures
+from oslo.utils import timeutils
from nova import context
from nova import db
-from nova.openstack.common import timeutils
from nova import service
from nova import servicegroup
from nova import test
diff --git a/nova/tests/servicegroup/test_mc_servicegroup.py b/nova/tests/servicegroup/test_mc_servicegroup.py
index 7cc6ae5818..f49e6f752f 100644
--- a/nova/tests/servicegroup/test_mc_servicegroup.py
+++ b/nova/tests/servicegroup/test_mc_servicegroup.py
@@ -16,10 +16,10 @@
# under the License.
import fixtures
+from oslo.utils import timeutils
from nova import context
from nova import db
-from nova.openstack.common import timeutils
from nova import service
from nova import servicegroup
from nova import test
diff --git a/nova/tests/test_quota.py b/nova/tests/test_quota.py
index 43a94b3488..ead10c6a63 100644
--- a/nova/tests/test_quota.py
+++ b/nova/tests/test_quota.py
@@ -17,6 +17,7 @@
import datetime
from oslo.config import cfg
+from oslo.utils import timeutils
from nova import compute
from nova.compute import flavors
@@ -25,7 +26,6 @@ from nova import db
from nova.db.sqlalchemy import api as sqa_api
from nova.db.sqlalchemy import models as sqa_models
from nova import exception
-from nova.openstack.common import timeutils
from nova import quota
from nova import test
import nova.tests.image.fake
diff --git a/nova/tests/test_utils.py b/nova/tests/test_utils.py
index 1eba34e9a3..0c1da9535e 100644
--- a/nova/tests/test_utils.py
+++ b/nova/tests/test_utils.py
@@ -25,11 +25,11 @@ import tempfile
import mox
import netaddr
from oslo.config import cfg
+from oslo.utils import timeutils
import nova
from nova import exception
from nova.openstack.common import processutils
-from nova.openstack.common import timeutils
from nova import test
from nova import utils
diff --git a/nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py b/nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py
index 702d2890aa..c42c04d86c 100644
--- a/nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py
+++ b/nova/tests/virt/baremetal/test_nova_baremetal_deploy_helper.py
@@ -20,10 +20,10 @@ import time
import mock
import mox
+from oslo.utils import units
from nova.cmd import baremetal_deploy_helper as bmdh
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova import test
from nova.tests.virt.baremetal.db import base as bm_db_base
from nova.virt.baremetal import db as bm_db
diff --git a/nova/tests/virt/disk/test_api.py b/nova/tests/virt/disk/test_api.py
index e20c005a8a..c86e8bc0b4 100644
--- a/nova/tests/virt/disk/test_api.py
+++ b/nova/tests/virt/disk/test_api.py
@@ -66,7 +66,7 @@ class APITestCase(test.NoDBTestCase):
def fake_import_fails(*args, **kwargs):
raise Exception('Failed')
self.useFixture(fixtures.MonkeyPatch(
- 'nova.openstack.common.importutils.import_module',
+ 'oslo.utils.import_module',
fake_import_fails))
imgfile = tempfile.NamedTemporaryFile()
diff --git a/nova/tests/virt/hyperv/test_hypervapi.py b/nova/tests/virt/hyperv/test_hypervapi.py
index 09749826bf..3005e8504e 100644
--- a/nova/tests/virt/hyperv/test_hypervapi.py
+++ b/nova/tests/virt/hyperv/test_hypervapi.py
@@ -28,6 +28,7 @@ import uuid
import mock
import mox
from oslo.config import cfg
+from oslo.utils import units
from nova.api.metadata import base as instance_metadata
from nova.compute import power_state
@@ -38,7 +39,6 @@ from nova import exception
from nova.i18n import _
from nova.image import glance
from nova.openstack.common import fileutils
-from nova.openstack.common import units
from nova import test
from nova.tests import fake_network
from nova.tests.image import fake as fake_image
diff --git a/nova/tests/virt/hyperv/test_vhdutilsv2.py b/nova/tests/virt/hyperv/test_vhdutilsv2.py
index d813057724..a813d3bbd6 100644
--- a/nova/tests/virt/hyperv/test_vhdutilsv2.py
+++ b/nova/tests/virt/hyperv/test_vhdutilsv2.py
@@ -13,8 +13,8 @@
# under the License.
import mock
+from oslo.utils import units
-from nova.openstack.common import units
from nova import test
from nova.virt.hyperv import constants
from nova.virt.hyperv import vhdutilsv2
diff --git a/nova/tests/virt/libvirt/test_config.py b/nova/tests/virt/libvirt/test_config.py
index 2cedc9ce5e..e74aee9dc6 100644
--- a/nova/tests/virt/libvirt/test_config.py
+++ b/nova/tests/virt/libvirt/test_config.py
@@ -13,9 +13,9 @@
# under the License.
from lxml import etree
+from oslo.utils import units
from nova.compute import arch
-from nova.openstack.common import units
from nova import test
from nova.tests import matchers
from nova.virt.libvirt import config
diff --git a/nova/tests/virt/libvirt/test_driver.py b/nova/tests/virt/libvirt/test_driver.py
index a37628cc4c..34f839e76f 100644
--- a/nova/tests/virt/libvirt/test_driver.py
+++ b/nova/tests/virt/libvirt/test_driver.py
@@ -33,6 +33,9 @@ from lxml import etree
import mock
import mox
from oslo.config import cfg
+from oslo.utils import importutils
+from oslo.utils import timeutils
+from oslo.utils import units
import six
from nova.api.metadata import base as instance_metadata
@@ -50,13 +53,10 @@ from nova import exception
from nova.network import model as network_model
from nova import objects
from nova.openstack.common import fileutils
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import lockutils
from nova.openstack.common import loopingcall
from nova.openstack.common import processutils
-from nova.openstack.common import timeutils
-from nova.openstack.common import units
from nova.openstack.common import uuidutils
from nova.pci import pci_manager
from nova import test
diff --git a/nova/tests/virt/libvirt/test_imagebackend.py b/nova/tests/virt/libvirt/test_imagebackend.py
index 9ff25b95a0..ac68392e1f 100644
--- a/nova/tests/virt/libvirt/test_imagebackend.py
+++ b/nova/tests/virt/libvirt/test_imagebackend.py
@@ -22,12 +22,12 @@ import tempfile
import fixtures
import mock
from oslo.config import cfg
+from oslo.utils import units
from nova import context
from nova import exception
from nova import keymgr
from nova.openstack.common import imageutils
-from nova.openstack.common import units
from nova.openstack.common import uuidutils
from nova import test
from nova.tests import fake_processutils
diff --git a/nova/tests/virt/libvirt/test_imagecache.py b/nova/tests/virt/libvirt/test_imagecache.py
index de238f5c11..2e21d40318 100644
--- a/nova/tests/virt/libvirt/test_imagecache.py
+++ b/nova/tests/virt/libvirt/test_imagecache.py
@@ -21,10 +21,10 @@ import os
import time
from oslo.config import cfg
+from oslo.utils import importutils
from nova import conductor
from nova import db
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
diff --git a/nova/tests/virt/test_configdrive.py b/nova/tests/virt/test_configdrive.py
index 2db65248bf..b8dc717b80 100644
--- a/nova/tests/virt/test_configdrive.py
+++ b/nova/tests/virt/test_configdrive.py
@@ -12,7 +12,8 @@
# License for the specific language governing permissions and limitations
# under the License.
-from nova.openstack.common import strutils
+from oslo.utils import strutils
+
from nova import test
from nova.virt import configdrive
diff --git a/nova/tests/virt/test_virt_drivers.py b/nova/tests/virt/test_virt_drivers.py
index 097db05b1c..d5c0d38734 100644
--- a/nova/tests/virt/test_virt_drivers.py
+++ b/nova/tests/virt/test_virt_drivers.py
@@ -19,16 +19,16 @@ import traceback
import fixtures
import mock
import netaddr
+from oslo.utils import importutils
+from oslo.utils import timeutils
import six
from nova.compute import manager
from nova.console import type as ctype
from nova import exception
from nova import objects
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova import test
from nova.tests import fake_block_device
from nova.tests.image import fake as fake_image
diff --git a/nova/tests/virt/vmwareapi/fake.py b/nova/tests/virt/vmwareapi/fake.py
index d2034853f8..4c55c95f7b 100644
--- a/nova/tests/virt/vmwareapi/fake.py
+++ b/nova/tests/virt/vmwareapi/fake.py
@@ -22,13 +22,13 @@ A fake VMware VI API implementation.
import collections
import pprint
+from oslo.utils import units
from oslo.vmware import exceptions as vexc
from nova import exception
from nova.i18n import _
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova.openstack.common import uuidutils
from nova.virt.vmwareapi import constants
from nova.virt.vmwareapi import ds_util
diff --git a/nova/tests/virt/vmwareapi/test_driver_api.py b/nova/tests/virt/vmwareapi/test_driver_api.py
index 09db96456b..1b49246518 100644
--- a/nova/tests/virt/vmwareapi/test_driver_api.py
+++ b/nova/tests/virt/vmwareapi/test_driver_api.py
@@ -28,6 +28,8 @@ from eventlet import greenthread
import mock
import mox
from oslo.config import cfg
+from oslo.utils import timeutils
+from oslo.utils import units
from oslo.vmware import exceptions as vexc
from oslo.vmware import vim
import suds
@@ -42,8 +44,6 @@ from nova import exception
from nova.image import glance
from nova.network import model as network_model
from nova.openstack.common import jsonutils
-from nova.openstack.common import timeutils
-from nova.openstack.common import units
from nova.openstack.common import uuidutils
from nova import test
from nova.tests import fake_instance
diff --git a/nova/tests/virt/vmwareapi/test_ds_util.py b/nova/tests/virt/vmwareapi/test_ds_util.py
index 26f9cc8381..6314620127 100644
--- a/nova/tests/virt/vmwareapi/test_ds_util.py
+++ b/nova/tests/virt/vmwareapi/test_ds_util.py
@@ -16,12 +16,12 @@ import contextlib
import re
import mock
+from oslo.utils import units
from oslo.vmware import exceptions as vexc
from testtools import matchers
from nova import exception
from nova.i18n import _
-from nova.openstack.common import units
from nova import test
from nova.tests.virt.vmwareapi import fake
from nova.virt.vmwareapi import ds_util
diff --git a/nova/tests/virt/vmwareapi/test_ds_util_datastore_selection.py b/nova/tests/virt/vmwareapi/test_ds_util_datastore_selection.py
index ca211902cf..0d14e8f6a9 100644
--- a/nova/tests/virt/vmwareapi/test_ds_util_datastore_selection.py
+++ b/nova/tests/virt/vmwareapi/test_ds_util_datastore_selection.py
@@ -14,7 +14,8 @@
import collections
import re
-from nova.openstack.common import units
+from oslo.utils import units
+
from nova import test
from nova.virt.vmwareapi import ds_util
diff --git a/nova/tests/virt/vmwareapi/test_imagecache.py b/nova/tests/virt/vmwareapi/test_imagecache.py
index f258bc9ce1..07e80dbe6b 100644
--- a/nova/tests/virt/vmwareapi/test_imagecache.py
+++ b/nova/tests/virt/vmwareapi/test_imagecache.py
@@ -17,8 +17,8 @@ import datetime
import mock
from oslo.config import cfg
+from oslo.utils import timeutils
-from nova.openstack.common import timeutils
from nova import test
from nova.tests import fake_instance
from nova.tests.virt.vmwareapi import fake
diff --git a/nova/tests/virt/vmwareapi/test_vmops.py b/nova/tests/virt/vmwareapi/test_vmops.py
index 351af4d6ba..b25f0a057a 100644
--- a/nova/tests/virt/vmwareapi/test_vmops.py
+++ b/nova/tests/virt/vmwareapi/test_vmops.py
@@ -16,6 +16,7 @@ import contextlib
import copy
import mock
+from oslo.utils import units
from oslo.vmware import exceptions as vexc
from nova.compute import power_state
@@ -24,7 +25,6 @@ from nova import db
from nova import exception
from nova.network import model as network_model
from nova import objects
-from nova.openstack.common import units
from nova.openstack.common import uuidutils
from nova import test
from nova.tests import fake_instance
diff --git a/nova/tests/virt/vmwareapi/test_vmware_images.py b/nova/tests/virt/vmwareapi/test_vmware_images.py
index 487d346deb..fb27e9fc31 100644
--- a/nova/tests/virt/vmwareapi/test_vmware_images.py
+++ b/nova/tests/virt/vmwareapi/test_vmware_images.py
@@ -18,9 +18,9 @@ Test suite for vmware_images.
import contextlib
import mock
+from oslo.utils import units
from nova import exception
-from nova.openstack.common import units
from nova import test
import nova.tests.image.fake
from nova.virt.vmwareapi import constants
diff --git a/nova/tests/virt/xenapi/test_driver.py b/nova/tests/virt/xenapi/test_driver.py
index c4cd964906..b823877ef0 100644
--- a/nova/tests/virt/xenapi/test_driver.py
+++ b/nova/tests/virt/xenapi/test_driver.py
@@ -16,9 +16,9 @@
import math
import mock
+from oslo.utils import units
from nova.compute import arch
-from nova.openstack.common import units
from nova.tests.virt.xenapi import stubs
from nova.virt import driver
from nova.virt import fake
diff --git a/nova/tests/virt/xenapi/test_vm_utils.py b/nova/tests/virt/xenapi/test_vm_utils.py
index 3e29bc65ef..f65891fbec 100644
--- a/nova/tests/virt/xenapi/test_vm_utils.py
+++ b/nova/tests/virt/xenapi/test_vm_utils.py
@@ -21,6 +21,8 @@ import fixtures
import mock
import mox
from oslo.config import cfg
+from oslo.utils import timeutils
+from oslo.utils import units
import six
from nova.compute import flavors
@@ -30,8 +32,6 @@ from nova import context
from nova import exception
from nova.i18n import _
from nova.openstack.common import processutils
-from nova.openstack.common import timeutils
-from nova.openstack.common import units
from nova import test
from nova.tests.virt.xenapi import stubs
from nova.tests.virt.xenapi import test_xenapi
diff --git a/nova/tests/virt/xenapi/test_xenapi.py b/nova/tests/virt/xenapi/test_xenapi.py
index ac8b7b1ce6..2925d6d950 100644
--- a/nova/tests/virt/xenapi/test_xenapi.py
+++ b/nova/tests/virt/xenapi/test_xenapi.py
@@ -25,6 +25,7 @@ import re
import mock
import mox
from oslo.config import cfg
+from oslo.utils import importutils
from nova.compute import api as compute_api
from nova.compute import arch
@@ -41,7 +42,6 @@ from nova import db
from nova import exception
from nova import objects
from nova.objects import instance as instance_obj
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova import test
diff --git a/nova/utils.py b/nova/utils.py
index 521c8e543f..2643171549 100644
--- a/nova/utils.py
+++ b/nova/utils.py
@@ -38,16 +38,16 @@ import eventlet
import netaddr
from oslo.config import cfg
from oslo import messaging
+from oslo.utils import excutils
+from oslo.utils import importutils
+from oslo.utils import timeutils
import six
from nova import exception
from nova.i18n import _
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import lockutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
-from nova.openstack.common import timeutils
notify_decorator = 'nova.notifications.notify_decorator'
diff --git a/nova/virt/baremetal/db/sqlalchemy/api.py b/nova/virt/baremetal/db/sqlalchemy/api.py
index 7f5c7a4799..9a6607ea7b 100644
--- a/nova/virt/baremetal/db/sqlalchemy/api.py
+++ b/nova/virt/baremetal/db/sqlalchemy/api.py
@@ -21,6 +21,7 @@
import uuid
from oslo.db import exception as db_exc
+from oslo.utils import timeutils
import six
from sqlalchemy.sql.expression import asc
from sqlalchemy.sql.expression import literal_column
@@ -30,7 +31,6 @@ import nova.context
from nova.db.sqlalchemy import api as sqlalchemy_api
from nova import exception
from nova.i18n import _
-from nova.openstack.common import timeutils
from nova.openstack.common import uuidutils
from nova.virt.baremetal.db.sqlalchemy import models
from nova.virt.baremetal.db.sqlalchemy import session as db_session
diff --git a/nova/virt/baremetal/driver.py b/nova/virt/baremetal/driver.py
index ce6d1f280d..da3ae6fc07 100644
--- a/nova/virt/baremetal/driver.py
+++ b/nova/virt/baremetal/driver.py
@@ -21,6 +21,8 @@ A driver for Bare-metal platform.
"""
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import importutils
from nova.compute import arch
from nova.compute import flavors
@@ -32,8 +34,6 @@ from nova import context as nova_context
from nova import exception
from nova.i18n import _
from nova.i18n import _LW
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import lockutils
from nova.openstack.common import log as logging
diff --git a/nova/virt/baremetal/iboot_pdu.py b/nova/virt/baremetal/iboot_pdu.py
index 16d037b38c..134c926ac2 100644
--- a/nova/virt/baremetal/iboot_pdu.py
+++ b/nova/virt/baremetal/iboot_pdu.py
@@ -15,9 +15,10 @@
#
# iBoot Power Driver
+from oslo.utils import importutils
+
from nova import exception
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import base
diff --git a/nova/virt/baremetal/pxe.py b/nova/virt/baremetal/pxe.py
index 239adf6872..74fda9283d 100644
--- a/nova/virt/baremetal/pxe.py
+++ b/nova/virt/baremetal/pxe.py
@@ -24,6 +24,7 @@ import os
import jinja2
from oslo.config import cfg
from oslo.db import exception as db_exc
+from oslo.utils import timeutils
from nova.compute import flavors
from nova import exception
@@ -32,7 +33,6 @@ from nova import objects
from nova.openstack.common import fileutils
from nova.openstack.common import log as logging
from nova.openstack.common import loopingcall
-from nova.openstack.common import timeutils
from nova import utils
from nova.virt.baremetal import baremetal_states
from nova.virt.baremetal import base
diff --git a/nova/virt/baremetal/virtual_power_driver.py b/nova/virt/baremetal/virtual_power_driver.py
index 7ff6703409..2adc611561 100644
--- a/nova/virt/baremetal/virtual_power_driver.py
+++ b/nova/virt/baremetal/virtual_power_driver.py
@@ -16,11 +16,11 @@
# Virtual power driver
from oslo.config import cfg
+from oslo.utils import importutils
from nova import context as nova_context
from nova import exception
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
from nova.virt.baremetal import baremetal_states
diff --git a/nova/virt/baremetal/volume_driver.py b/nova/virt/baremetal/volume_driver.py
index f07e988e70..c6176d178d 100644
--- a/nova/virt/baremetal/volume_driver.py
+++ b/nova/virt/baremetal/volume_driver.py
@@ -18,12 +18,12 @@
import re
from oslo.config import cfg
+from oslo.utils import importutils
from nova import context as nova_context
from nova import exception
from nova.i18n import _
from nova import network
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
from nova import utils
diff --git a/nova/virt/block_device.py b/nova/virt/block_device.py
index ed1c40e388..3b8f9e096c 100644
--- a/nova/virt/block_device.py
+++ b/nova/virt/block_device.py
@@ -15,12 +15,13 @@
import functools
import operator
+from oslo.utils import excutils
+
from nova import block_device
from nova.i18n import _
from nova.i18n import _LI
from nova import objects
from nova.objects import base as obj_base
-from nova.openstack.common import excutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.volume import encryptors
diff --git a/nova/virt/configdrive.py b/nova/virt/configdrive.py
index 644b432a57..b2b7f2380d 100644
--- a/nova/virt/configdrive.py
+++ b/nova/virt/configdrive.py
@@ -20,13 +20,13 @@ import shutil
import tempfile
from oslo.config import cfg
+from oslo.utils import strutils
+from oslo.utils import units
from nova import exception
from nova.i18n import _LW
from nova.openstack.common import fileutils
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
-from nova.openstack.common import units
from nova import utils
from nova import version
diff --git a/nova/virt/disk/mount/api.py b/nova/virt/disk/mount/api.py
index 066842b18e..31dcb0496f 100644
--- a/nova/virt/disk/mount/api.py
+++ b/nova/virt/disk/mount/api.py
@@ -16,8 +16,9 @@
import os
import time
+from oslo.utils import importutils
+
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova import utils
diff --git a/nova/virt/disk/vfs/api.py b/nova/virt/disk/vfs/api.py
index cd58bf3533..7942acd5db 100644
--- a/nova/virt/disk/vfs/api.py
+++ b/nova/virt/disk/vfs/api.py
@@ -14,9 +14,10 @@
from nova import exception
from nova.i18n import _LI
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
+from oslo.utils import importutils
+
LOG = logging.getLogger(__name__)
diff --git a/nova/virt/disk/vfs/guestfs.py b/nova/virt/disk/vfs/guestfs.py
index 744479f13b..216b1610b9 100644
--- a/nova/virt/disk/vfs/guestfs.py
+++ b/nova/virt/disk/vfs/guestfs.py
@@ -13,12 +13,12 @@
# under the License.
from eventlet import tpool
+from oslo.utils import importutils
import six
from nova import exception
from nova.i18n import _
from nova.i18n import _LW
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.virt.disk.vfs import api as vfs
diff --git a/nova/virt/disk/vfs/localfs.py b/nova/virt/disk/vfs/localfs.py
index 1bca297eda..8ea70890e9 100644
--- a/nova/virt/disk/vfs/localfs.py
+++ b/nova/virt/disk/vfs/localfs.py
@@ -15,9 +15,10 @@
import os
import tempfile
+from oslo.utils import excutils
+
from nova import exception
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova import utils
from nova.virt.disk.mount import loop
diff --git a/nova/virt/driver.py b/nova/virt/driver.py
index fd483e59cb..ef2d2e8ec4 100644
--- a/nova/virt/driver.py
+++ b/nova/virt/driver.py
@@ -23,9 +23,9 @@ Driver base-classes:
import sys
from oslo.config import cfg
+from oslo.utils import importutils
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova import utils
from nova.virt import event as virtevent
diff --git a/nova/virt/firewall.py b/nova/virt/firewall.py
index 15e65ed9c7..61055d40a3 100644
--- a/nova/virt/firewall.py
+++ b/nova/virt/firewall.py
@@ -16,6 +16,7 @@
# under the License.
from oslo.config import cfg
+from oslo.utils import importutils
from nova.compute import utils as compute_utils
from nova import context
@@ -23,7 +24,6 @@ from nova.i18n import _
from nova.i18n import _LI
from nova.network import linux_net
from nova import objects
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova import utils
from nova.virt import netutils
diff --git a/nova/virt/hyperv/hostops.py b/nova/virt/hyperv/hostops.py
index 98d8e4cd01..375b4d2078 100644
--- a/nova/virt/hyperv/hostops.py
+++ b/nova/virt/hyperv/hostops.py
@@ -22,13 +22,13 @@ import platform
import time
from oslo.config import cfg
+from oslo.utils import units
from nova.compute import arch
from nova.compute import hvtype
from nova.compute import vm_mode
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova.virt.hyperv import constants
from nova.virt.hyperv import utilsfactory
diff --git a/nova/virt/hyperv/imagecache.py b/nova/virt/hyperv/imagecache.py
index 88eacb14fd..07e7ddb812 100644
--- a/nova/virt/hyperv/imagecache.py
+++ b/nova/virt/hyperv/imagecache.py
@@ -18,12 +18,12 @@ Image caching and management.
import os
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import units
from nova.compute import flavors
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova import utils
from nova.virt.hyperv import utilsfactory
from nova.virt.hyperv import vmutils
diff --git a/nova/virt/hyperv/livemigrationops.py b/nova/virt/hyperv/livemigrationops.py
index f41c19d009..150effe237 100644
--- a/nova/virt/hyperv/livemigrationops.py
+++ b/nova/virt/hyperv/livemigrationops.py
@@ -19,9 +19,9 @@ Management class for live migration VM operations.
import functools
from oslo.config import cfg
+from oslo.utils import excutils
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova.virt.hyperv import imagecache
from nova.virt.hyperv import utilsfactory
diff --git a/nova/virt/hyperv/migrationops.py b/nova/virt/hyperv/migrationops.py
index 09270999d5..33154cd8ba 100644
--- a/nova/virt/hyperv/migrationops.py
+++ b/nova/virt/hyperv/migrationops.py
@@ -18,11 +18,12 @@ Management class for migration / resize operations.
"""
import os
+from oslo.utils import excutils
+from oslo.utils import units
+
from nova import exception
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova.virt import configdrive
from nova.virt.hyperv import imagecache
from nova.virt.hyperv import utilsfactory
diff --git a/nova/virt/hyperv/vhdutilsv2.py b/nova/virt/hyperv/vhdutilsv2.py
index 9c26861cc1..d2b69a9a79 100644
--- a/nova/virt/hyperv/vhdutilsv2.py
+++ b/nova/virt/hyperv/vhdutilsv2.py
@@ -26,8 +26,9 @@ if sys.platform == 'win32':
from xml.etree import ElementTree
+from oslo.utils import units
+
from nova.i18n import _
-from nova.openstack.common import units
from nova.virt.hyperv import constants
from nova.virt.hyperv import vhdutils
from nova.virt.hyperv import vmutils
diff --git a/nova/virt/hyperv/vmops.py b/nova/virt/hyperv/vmops.py
index c7f82f764f..634524a6f0 100644
--- a/nova/virt/hyperv/vmops.py
+++ b/nova/virt/hyperv/vmops.py
@@ -23,17 +23,17 @@ import time
from eventlet import timeout as etimeout
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import importutils
+from oslo.utils import units
from nova.api.metadata import base as instance_metadata
from nova import exception
from nova.i18n import _, _LI, _LW
-from nova.openstack.common import excutils
from nova.openstack.common import fileutils
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import loopingcall
from nova.openstack.common import processutils
-from nova.openstack.common import units
from nova.openstack.common import uuidutils
from nova import utils
from nova.virt import configdrive
diff --git a/nova/virt/hyperv/volumeops.py b/nova/virt/hyperv/volumeops.py
index f1908e0ab9..57fa8073aa 100644
--- a/nova/virt/hyperv/volumeops.py
+++ b/nova/virt/hyperv/volumeops.py
@@ -20,10 +20,10 @@ Management class for Storage-related functions (attach, detach, etc).
import time
from oslo.config import cfg
+from oslo.utils import excutils
from nova import exception
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova.virt import driver
from nova.virt.hyperv import constants
diff --git a/nova/virt/ironic/client_wrapper.py b/nova/virt/ironic/client_wrapper.py
index 51dd8723c6..f4e73c6270 100644
--- a/nova/virt/ironic/client_wrapper.py
+++ b/nova/virt/ironic/client_wrapper.py
@@ -18,10 +18,10 @@
import time
from oslo.config import cfg
+from oslo.utils import importutils
from nova import exception
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
diff --git a/nova/virt/ironic/driver.py b/nova/virt/ironic/driver.py
index 81ac1aa59e..53322a5c56 100644
--- a/nova/virt/ironic/driver.py
+++ b/nova/virt/ironic/driver.py
@@ -24,6 +24,8 @@ import logging as py_logging
import time
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import importutils
import six
from nova.compute import arch
@@ -37,8 +39,6 @@ from nova.i18n import _
from nova.i18n import _LE
from nova.i18n import _LW
from nova import objects
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.openstack.common import loopingcall
diff --git a/nova/virt/libvirt/config.py b/nova/virt/libvirt/config.py
index 29feb8c948..994f49feb4 100644
--- a/nova/virt/libvirt/config.py
+++ b/nova/virt/libvirt/config.py
@@ -25,14 +25,14 @@ helpers for populating up config object instances.
import time
+from lxml import etree
+from oslo.utils import units
+
from nova import exception
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova.pci import pci_utils
from nova.virt import hardware
-from lxml import etree
-
LOG = logging.getLogger(__name__)
diff --git a/nova/virt/libvirt/driver.py b/nova/virt/libvirt/driver.py
index c2f497cb50..fb2a41d8ac 100644
--- a/nova/virt/libvirt/driver.py
+++ b/nova/virt/libvirt/driver.py
@@ -49,6 +49,10 @@ from eventlet import tpool
from eventlet import util as eventlet_util
from lxml import etree
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import importutils
+from oslo.utils import timeutils
+from oslo.utils import units
import six
from nova.api.metadata import base as instance_metadata
@@ -71,15 +75,11 @@ from nova.i18n import _LW
from nova import image
from nova.network import model as network_model
from nova import objects
-from nova.openstack.common import excutils
from nova.openstack.common import fileutils
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
from nova.openstack.common import loopingcall
from nova.openstack.common import processutils
-from nova.openstack.common import timeutils
-from nova.openstack.common import units
from nova.pci import pci_manager
from nova.pci import pci_utils
from nova.pci import pci_whitelist
diff --git a/nova/virt/libvirt/firewall.py b/nova/virt/libvirt/firewall.py
index 1825daf824..4bd3a66e1f 100644
--- a/nova/virt/libvirt/firewall.py
+++ b/nova/virt/libvirt/firewall.py
@@ -19,11 +19,11 @@ import uuid
from lxml import etree
from oslo.config import cfg
+from oslo.utils import importutils
from nova.cloudpipe import pipelib
from nova.i18n import _LI
from nova.i18n import _LW
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
import nova.virt.firewall as base_firewall
from nova.virt import netutils
diff --git a/nova/virt/libvirt/imagebackend.py b/nova/virt/libvirt/imagebackend.py
index a5393357c3..1c3c0d8b7d 100644
--- a/nova/virt/libvirt/imagebackend.py
+++ b/nova/virt/libvirt/imagebackend.py
@@ -18,6 +18,8 @@ import contextlib
import os
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import units
import six
from nova import exception
@@ -25,11 +27,9 @@ from nova.i18n import _
from nova.i18n import _LE, _LI
from nova import image
from nova import keymgr
-from nova.openstack.common import excutils
from nova.openstack.common import fileutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova import utils
from nova.virt.disk import api as disk
from nova.virt import images
diff --git a/nova/virt/libvirt/lvm.py b/nova/virt/libvirt/lvm.py
index 2cb2b3eec3..cdddc2fb16 100644
--- a/nova/virt/libvirt/lvm.py
+++ b/nova/virt/libvirt/lvm.py
@@ -22,6 +22,7 @@
import functools
from oslo.config import cfg
+from oslo.utils import units
import six
from nova import exception
@@ -30,7 +31,6 @@ from nova.i18n import _LE
from nova.i18n import _LW
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
-from nova.openstack.common import units
from nova import utils as nova_utils
from nova.virt.libvirt import utils
diff --git a/nova/virt/libvirt/rbd_utils.py b/nova/virt/libvirt/rbd_utils.py
index e638cf97c8..e75e06afaa 100644
--- a/nova/virt/libvirt/rbd_utils.py
+++ b/nova/virt/libvirt/rbd_utils.py
@@ -23,14 +23,15 @@ except ImportError:
rados = None
rbd = None
+from oslo.utils import excutils
+from oslo.utils import units
+
from nova import exception
from nova.i18n import _
from nova.i18n import _LE
from nova.i18n import _LW
-from nova.openstack.common import excutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova import utils
LOG = logging.getLogger(__name__)
diff --git a/nova/virt/vmwareapi/host.py b/nova/virt/vmwareapi/host.py
index 844544dfce..fb9803daf9 100644
--- a/nova/virt/vmwareapi/host.py
+++ b/nova/virt/vmwareapi/host.py
@@ -17,11 +17,12 @@
Management class for host-related functions (start, reboot, etc).
"""
+from oslo.utils import units
+
from nova.compute import arch
from nova.compute import hvtype
from nova.compute import vm_mode
from nova import exception
-from nova.openstack.common import units
from nova import utils
from nova.virt.vmwareapi import ds_util
from nova.virt.vmwareapi import vim_util
diff --git a/nova/virt/vmwareapi/imagecache.py b/nova/virt/vmwareapi/imagecache.py
index de59f61aa4..2edcb7e066 100644
--- a/nova/virt/vmwareapi/imagecache.py
+++ b/nova/virt/vmwareapi/imagecache.py
@@ -36,12 +36,12 @@ This will ensure that a image is not deleted during the spawn.
"""
from oslo.config import cfg
+from oslo.utils import timeutils
from oslo.vmware import exceptions as vexc
from nova.i18n import _
from nova.openstack.common import lockutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
from nova.virt import imagecache
from nova.virt.vmwareapi import ds_util
from nova.virt.vmwareapi import vim_util
diff --git a/nova/virt/vmwareapi/vm_util.py b/nova/virt/vmwareapi/vm_util.py
index 1f44e17098..c890038f79 100644
--- a/nova/virt/vmwareapi/vm_util.py
+++ b/nova/virt/vmwareapi/vm_util.py
@@ -22,13 +22,13 @@ import copy
import functools
from oslo.config import cfg
+from oslo.utils import units
from oslo.vmware import exceptions as vexc
from nova import exception
from nova.i18n import _
from nova.network import model as network_model
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova.virt.vmwareapi import constants
from nova.virt.vmwareapi import vim_util
diff --git a/nova/virt/vmwareapi/vmops.py b/nova/virt/vmwareapi/vmops.py
index 04a96d2ef6..5bb12cdacd 100644
--- a/nova/virt/vmwareapi/vmops.py
+++ b/nova/virt/vmwareapi/vmops.py
@@ -26,6 +26,8 @@ import time
import decorator
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import units
from oslo.vmware import exceptions as vexc
from nova.api.metadata import base as instance_metadata
@@ -38,10 +40,8 @@ from nova import context as nova_context
from nova import exception
from nova.i18n import _, _LE, _LW
from nova import objects
-from nova.openstack.common import excutils
from nova.openstack.common import lockutils
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova.openstack.common import uuidutils
from nova import utils
from nova.virt import configdrive
diff --git a/nova/virt/vmwareapi/vmware_images.py b/nova/virt/vmwareapi/vmware_images.py
index 233a2710c3..d4ae7993fe 100644
--- a/nova/virt/vmwareapi/vmware_images.py
+++ b/nova/virt/vmwareapi/vmware_images.py
@@ -20,12 +20,12 @@ Utility functions for Image transfer and manipulation.
import os
from oslo.config import cfg
+from oslo.utils import strutils
+from oslo.utils import units
from nova import exception
from nova import image
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
-from nova.openstack.common import units
from nova.virt.vmwareapi import constants
from nova.virt.vmwareapi import io_util
from nova.virt.vmwareapi import read_write_util
diff --git a/nova/virt/xenapi/agent.py b/nova/virt/xenapi/agent.py
index 17480dc1f4..f2592549aa 100644
--- a/nova/virt/xenapi/agent.py
+++ b/nova/virt/xenapi/agent.py
@@ -22,6 +22,7 @@ import time
import uuid
from oslo.config import cfg
+from oslo.utils import strutils
from nova.api.metadata import password
from nova.compute import utils as compute_utils
@@ -32,7 +33,6 @@ from nova.i18n import _
from nova import objects
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
from nova import utils
diff --git a/nova/virt/xenapi/driver.py b/nova/virt/xenapi/driver.py
index 164cbdd3da..0d74d18f84 100644
--- a/nova/virt/xenapi/driver.py
+++ b/nova/virt/xenapi/driver.py
@@ -38,12 +38,12 @@ A driver for XenServer or Xen Cloud Platform.
import math
from oslo.config import cfg
+from oslo.utils import units
import six.moves.urllib.parse as urlparse
from nova.i18n import _
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import units
from nova import utils
from nova.virt import driver
from nova.virt.xenapi.client import session
diff --git a/nova/virt/xenapi/fake.py b/nova/virt/xenapi/fake.py
index 4b1175187b..72e79d7bae 100644
--- a/nova/virt/xenapi/fake.py
+++ b/nova/virt/xenapi/fake.py
@@ -56,12 +56,13 @@ import uuid
from xml.sax import saxutils
import zlib
+from oslo.utils import timeutils
+from oslo.utils import units
+
from nova import exception
from nova.i18n import _
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import timeutils
-from nova.openstack.common import units
from nova.virt.xenapi.client import session as xenapi_session
diff --git a/nova/virt/xenapi/vm_utils.py b/nova/virt/xenapi/vm_utils.py
index 75dcdb36a5..e6aa339ca3 100644
--- a/nova/virt/xenapi/vm_utils.py
+++ b/nova/virt/xenapi/vm_utils.py
@@ -29,6 +29,11 @@ from xml.parsers import expat
from eventlet import greenthread
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import importutils
+from oslo.utils import strutils
+from oslo.utils import timeutils
+from oslo.utils import units
import six
import six.moves.urllib.parse as urlparse
@@ -40,13 +45,8 @@ from nova.compute import vm_mode
from nova import exception
from nova.i18n import _, _LI
from nova.network import model as network_model
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.openstack.common import processutils
-from nova.openstack.common import strutils
-from nova.openstack.common import timeutils
-from nova.openstack.common import units
from nova.openstack.common import versionutils
from nova import utils
from nova.virt import configdrive
diff --git a/nova/virt/xenapi/vmops.py b/nova/virt/xenapi/vmops.py
index 54ce17d7d5..76ba7d2d45 100644
--- a/nova/virt/xenapi/vmops.py
+++ b/nova/virt/xenapi/vmops.py
@@ -25,6 +25,11 @@ import zlib
from eventlet import greenthread
import netaddr
from oslo.config import cfg
+from oslo.utils import excutils
+from oslo.utils import importutils
+from oslo.utils import strutils
+from oslo.utils import timeutils
+from oslo.utils import units
from nova import block_device
from nova import compute
@@ -38,13 +43,8 @@ from nova import context as nova_context
from nova import exception
from nova.i18n import _
from nova import objects
-from nova.openstack.common import excutils
-from nova.openstack.common import importutils
from nova.openstack.common import jsonutils
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
-from nova.openstack.common import timeutils
-from nova.openstack.common import units
from nova.pci import pci_manager
from nova import utils
from nova.virt import configdrive
diff --git a/nova/virt/xenapi/volumeops.py b/nova/virt/xenapi/volumeops.py
index 26607eaed9..6aac594c49 100644
--- a/nova/virt/xenapi/volumeops.py
+++ b/nova/virt/xenapi/volumeops.py
@@ -17,9 +17,10 @@
Management class for Storage-related functions (attach, detach, etc).
"""
+from oslo.utils import excutils
+
from nova import exception
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
from nova.virt.xenapi import vm_utils
from nova.virt.xenapi import volume_utils
diff --git a/nova/volume/__init__.py b/nova/volume/__init__.py
index a8a9510acd..0ab9eba300 100644
--- a/nova/volume/__init__.py
+++ b/nova/volume/__init__.py
@@ -15,10 +15,7 @@
# under the License.
import oslo.config.cfg
-
-# Importing full names to not pollute the namespace and cause possible
-# collisions with use of 'from nova.volume import <foo>' elsewhere.
-import nova.openstack.common.importutils
+from oslo.utils import importutils
_volume_opts = [
oslo.config.cfg.StrOpt('volume_api_class',
@@ -31,7 +28,6 @@ oslo.config.cfg.CONF.register_opts(_volume_opts)
def API():
- importutils = nova.openstack.common.importutils
volume_api_class = oslo.config.cfg.CONF.volume_api_class
cls = importutils.import_class(volume_api_class)
return cls()
diff --git a/nova/volume/cinder.py b/nova/volume/cinder.py
index 2070fa21b1..084b1855cf 100644
--- a/nova/volume/cinder.py
+++ b/nova/volume/cinder.py
@@ -25,6 +25,7 @@ from cinderclient import client as cinder_client
from cinderclient import exceptions as cinder_exception
from cinderclient import service_catalog
from oslo.config import cfg
+from oslo.utils import strutils
import six.moves.urllib.parse as urlparse
from nova import availability_zones as az
@@ -32,7 +33,6 @@ from nova import exception
from nova.i18n import _
from nova.i18n import _LW
from nova.openstack.common import log as logging
-from nova.openstack.common import strutils
cinder_opts = [
cfg.StrOpt('catalog_info',
diff --git a/nova/volume/encryptors/__init__.py b/nova/volume/encryptors/__init__.py
index 8c87a9e768..9bc519f20f 100644
--- a/nova/volume/encryptors/__init__.py
+++ b/nova/volume/encryptors/__init__.py
@@ -14,8 +14,9 @@
# under the License.
+from oslo.utils import importutils
+
from nova.i18n import _
-from nova.openstack.common import importutils
from nova.openstack.common import log as logging
from nova.volume.encryptors import nop
diff --git a/nova/wsgi.py b/nova/wsgi.py
index 8d41d66f90..b159202f9e 100644
--- a/nova/wsgi.py
+++ b/nova/wsgi.py
@@ -28,6 +28,7 @@ import eventlet
import eventlet.wsgi
import greenlet
from oslo.config import cfg
+from oslo.utils import excutils
from paste import deploy
import routes.middleware
import webob.dec
@@ -35,7 +36,6 @@ import webob.exc
from nova import exception
from nova.i18n import _
-from nova.openstack.common import excutils
from nova.openstack.common import log as logging
wsgi_opts = [
diff --git a/openstack-common.conf b/openstack-common.conf
index 5186174ba2..b977f7c15a 100644
--- a/openstack-common.conf
+++ b/openstack-common.conf
@@ -5,12 +5,10 @@ module=cliutils
module=config
module=context
module=eventlet_backdoor
-module=excutils
module=fileutils
module=fixture
module=gettextutils
module=imageutils
-module=importutils
module=install_venv_common
module=jsonutils
module=local
@@ -19,7 +17,6 @@ module=log
module=loopingcall
module=memorycache
module=middleware
-module=network_utils
module=periodic_task
module=policy
module=processutils
@@ -32,11 +29,8 @@ module=report.views.text
module=report.views.xml
module=service
module=sslutils
-module=strutils
module=systemd
module=threadgroup
-module=timeutils
-module=units
module=uuidutils
module=versionutils
diff --git a/requirements.txt b/requirements.txt
index 1370a2ffda..8f5eb92a0b 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -40,6 +40,7 @@ oslo.rootwrap>=1.3.0
pycadf>=0.6.0
oslo.messaging>=1.4.0
oslo.i18n>=1.0.0 # Apache-2.0
+oslo.utils>=1.0.0 # Apache-2.0
lockfile>=0.8
simplejson>=2.2.0
rfc3986>=0.2.0 # Apache-2.0
diff --git a/tools/xenserver/vm_vdi_cleaner.py b/tools/xenserver/vm_vdi_cleaner.py
index b460e51c99..c4762bd69b 100755
--- a/tools/xenserver/vm_vdi_cleaner.py
+++ b/tools/xenserver/vm_vdi_cleaner.py
@@ -31,7 +31,7 @@ from nova import config
from nova import context
from nova import db
from nova import exception
-from nova.openstack.common import timeutils
+from oslo.utils import timeutils
from nova.virt import virtapi
from nova.virt.xenapi import driver as xenapi_driver