diff --git a/contrib/heat_docker/heat_docker/tests/test_docker_container.py b/contrib/heat_docker/heat_docker/tests/test_docker_container.py index 378d4e163c..b2793b6c23 100644 --- a/contrib/heat_docker/heat_docker/tests/test_docker_container.py +++ b/contrib/heat_docker/heat_docker/tests/test_docker_container.py @@ -15,12 +15,12 @@ # under the License. import mock +from oslo.utils import importutils from heat.common import exception from heat.common import template_format from heat.engine import resource from heat.engine import scheduler -from heat.openstack.common.importutils import try_import from heat.tests.common import HeatTestCase from heat.tests import utils @@ -29,7 +29,7 @@ from testtools import skipIf from ..resources import docker_container # noqa from .fake_docker_client import FakeDockerClient # noqa -docker = try_import('docker') +docker = importutils.try_import('docker') template = ''' diff --git a/contrib/heat_keystoneclient_v2/heat_keystoneclient_v2/client.py b/contrib/heat_keystoneclient_v2/heat_keystoneclient_v2/client.py index 674958c989..95938a6beb 100644 --- a/contrib/heat_keystoneclient_v2/heat_keystoneclient_v2/client.py +++ b/contrib/heat_keystoneclient_v2/heat_keystoneclient_v2/client.py @@ -17,10 +17,10 @@ from keystoneclient.v2_0 import client as kc from oslo.config import cfg +from oslo.utils import importutils from heat.common import exception from heat.common.i18n import _ -from heat.openstack.common import importutils from heat.openstack.common import log as logging LOG = logging.getLogger('heat.common.keystoneclient') diff --git a/contrib/heat_keystoneclient_v2/heat_keystoneclient_v2/tests/test_client.py b/contrib/heat_keystoneclient_v2/heat_keystoneclient_v2/tests/test_client.py index e52ab7ff98..8fd056749d 100644 --- a/contrib/heat_keystoneclient_v2/heat_keystoneclient_v2/tests/test_client.py +++ b/contrib/heat_keystoneclient_v2/heat_keystoneclient_v2/tests/test_client.py @@ -16,9 +16,9 @@ import mock import mox from oslo.config import cfg +from oslo.utils import importutils from heat.common import exception -from heat.openstack.common import importutils from heat.tests.common import HeatTestCase from heat.tests import utils diff --git a/heat/api/aws/ec2token.py b/heat/api/aws/ec2token.py index c3efa73c20..921720068e 100644 --- a/heat/api/aws/ec2token.py +++ b/heat/api/aws/ec2token.py @@ -14,6 +14,7 @@ import hashlib from oslo.config import cfg +from oslo.utils import importutils import requests import webob @@ -23,7 +24,6 @@ from heat.common.i18n import _ from heat.common.i18n import _LE from heat.common.i18n import _LI from heat.common import wsgi -from heat.openstack.common import importutils from heat.openstack.common import jsonutils as json from heat.openstack.common import log as logging diff --git a/heat/common/auth_url.py b/heat/common/auth_url.py index d588700aa7..d80b103502 100644 --- a/heat/common/auth_url.py +++ b/heat/common/auth_url.py @@ -15,11 +15,11 @@ # limitations under the License. from oslo.config import cfg +from oslo.utils import importutils from webob.exc import HTTPBadRequest from webob.exc import HTTPUnauthorized from heat.common import wsgi -from heat.openstack.common import importutils class AuthUrlFilter(wsgi.Middleware): diff --git a/heat/common/context.py b/heat/common/context.py index 6eb3e8c3f4..2e4b78d060 100644 --- a/heat/common/context.py +++ b/heat/common/context.py @@ -11,13 +11,14 @@ # License for the specific language governing permissions and limitations # under the License. +from oslo.utils import importutils + from heat.common import exception from heat.common import policy from heat.common import wsgi from heat.db import api as db_api from heat.engine import clients from heat.openstack.common import context -from heat.openstack.common import importutils from heat.openstack.common import local from heat.openstack.common.middleware import request_id diff --git a/heat/common/heat_keystoneclient.py b/heat/common/heat_keystoneclient.py index cafd60cdba..c2aecc3c32 100644 --- a/heat/common/heat_keystoneclient.py +++ b/heat/common/heat_keystoneclient.py @@ -16,6 +16,7 @@ from collections import namedtuple import copy import json +from oslo.utils import importutils import uuid from keystoneclient.auth.identity import v3 as kc_auth_v3 @@ -29,7 +30,6 @@ from heat.common import exception from heat.common.i18n import _ from heat.common.i18n import _LE from heat.common.i18n import _LW -from heat.openstack.common import importutils from heat.openstack.common import log as logging LOG = logging.getLogger('heat.common.keystoneclient') diff --git a/heat/common/identifier.py b/heat/common/identifier.py index c8228703aa..f4789d2a03 100644 --- a/heat/common/identifier.py +++ b/heat/common/identifier.py @@ -14,10 +14,9 @@ import collections import re +from oslo.utils import encodeutils from six.moves.urllib import parse as urlparse -from heat.openstack.common import strutils - class HeatIdentifier(collections.Mapping): @@ -116,7 +115,7 @@ class HeatIdentifier(collections.Mapping): stacks// """ return 'stacks/%s%s' % (self.stack_path(), - urlparse.quote(strutils.safe_encode( + urlparse.quote(encodeutils.safe_encode( self.path))) def stack_path(self): diff --git a/heat/common/param_utils.py b/heat/common/param_utils.py index 7bf3fc51d2..ceacd09530 100644 --- a/heat/common/param_utils.py +++ b/heat/common/param_utils.py @@ -11,8 +11,9 @@ # License for the specific language governing permissions and limitations # under the License. +from oslo.utils import strutils + from heat.openstack.common.gettextutils import _ -from heat.openstack.common import strutils def extract_bool(subject): diff --git a/heat/common/wsgi.py b/heat/common/wsgi.py index 8480790893..b8dc36c015 100644 --- a/heat/common/wsgi.py +++ b/heat/common/wsgi.py @@ -34,6 +34,7 @@ from eventlet.green import ssl import eventlet.greenio import eventlet.wsgi from oslo.config import cfg +from oslo.utils import importutils from paste import deploy import routes import routes.middleware @@ -45,7 +46,6 @@ from heat.api.aws import exception as aws_exception from heat.common import exception from heat.common import serializers from heat.openstack.common import gettextutils -from heat.openstack.common import importutils URL_LENGTH_LIMIT = 50000 diff --git a/heat/db/sqlalchemy/migrate_repo/versions/035_event_uuid_to_id.py b/heat/db/sqlalchemy/migrate_repo/versions/035_event_uuid_to_id.py index 37b762d858..850f43455c 100644 --- a/heat/db/sqlalchemy/migrate_repo/versions/035_event_uuid_to_id.py +++ b/heat/db/sqlalchemy/migrate_repo/versions/035_event_uuid_to_id.py @@ -15,10 +15,9 @@ import itertools import uuid import migrate.changeset.constraint as constraint +from oslo.utils import timeutils import sqlalchemy -from heat.openstack.common import timeutils - def upgrade(migrate_engine): if migrate_engine.name == 'sqlite': diff --git a/heat/db/sqlalchemy/models.py b/heat/db/sqlalchemy/models.py index c408978420..1aec505755 100644 --- a/heat/db/sqlalchemy/models.py +++ b/heat/db/sqlalchemy/models.py @@ -17,6 +17,7 @@ SQLAlchemy models for heat data. import uuid from oslo.db.sqlalchemy import models +from oslo.utils import timeutils import six import sqlalchemy from sqlalchemy.ext.declarative import declarative_base @@ -25,7 +26,6 @@ from sqlalchemy.orm import relationship from sqlalchemy.orm.session import Session from heat.db.sqlalchemy.types import Json -from heat.openstack.common import timeutils BASE = declarative_base() diff --git a/heat/engine/api.py b/heat/engine/api.py index 5594da3ec0..2ffad97de5 100644 --- a/heat/engine/api.py +++ b/heat/engine/api.py @@ -11,12 +11,13 @@ # License for the specific language governing permissions and limitations # under the License. +from oslo.utils import timeutils + from heat.common.i18n import _ from heat.common import param_utils from heat.common import template_format from heat.engine import constraints as constr from heat.openstack.common import log as logging -from heat.openstack.common import timeutils from heat.rpc import api LOG = logging.getLogger(__name__) diff --git a/heat/engine/clients/__init__.py b/heat/engine/clients/__init__.py index d1e65e4fb3..2f2705c367 100644 --- a/heat/engine/clients/__init__.py +++ b/heat/engine/clients/__init__.py @@ -12,11 +12,11 @@ # under the License. from oslo.config import cfg +from oslo.utils import importutils from stevedore import extension import warnings from heat.common.i18n import _ -from heat.openstack.common import importutils from heat.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/heat/engine/constraints.py b/heat/engine/constraints.py index 2da0b39e36..bf9c2e1073 100644 --- a/heat/engine/constraints.py +++ b/heat/engine/constraints.py @@ -15,11 +15,11 @@ import collections import numbers import re +from oslo.utils import strutils import six from heat.common import exception from heat.engine import resources -from heat.openstack.common import strutils class Schema(collections.Mapping): diff --git a/heat/engine/parameters.py b/heat/engine/parameters.py index 5d8c9c73f1..18bdfb30a1 100644 --- a/heat/engine/parameters.py +++ b/heat/engine/parameters.py @@ -15,11 +15,12 @@ import collections import itertools import json +from oslo.utils import encodeutils +from oslo.utils import strutils import six from heat.common import exception from heat.engine import constraints as constr -from heat.openstack.common import strutils PARAMETER_KEYS = ( @@ -270,7 +271,7 @@ class Parameter(object): if self.hidden(): return '******' else: - return strutils.safe_encode(six.text_type(value)) + return encodeutils.safe_encode(six.text_type(value)) class NumberParam(Parameter): @@ -394,7 +395,7 @@ class JsonParam(Parameter): def __str__(self): if self.hidden(): return super(JsonParam, self).__str__() - return strutils.safe_decode(json.dumps(self.value())) + return encodeutils.safe_decode(json.dumps(self.value())) def _validate(self, val, context): val = self.parse(val) diff --git a/heat/engine/resource.py b/heat/engine/resource.py index f16cdee3a0..b08222cc3a 100644 --- a/heat/engine/resource.py +++ b/heat/engine/resource.py @@ -15,6 +15,7 @@ import base64 import contextlib from datetime import datetime from oslo.config import cfg +from oslo.utils import excutils import six import warnings @@ -33,7 +34,6 @@ from heat.engine import resources from heat.engine import rsrc_defn from heat.engine import scheduler from heat.engine import support -from heat.openstack.common import excutils from heat.openstack.common import log as logging cfg.CONF.import_opt('action_retry_limit', 'heat.common.config') diff --git a/heat/engine/resources/autoscaling.py b/heat/engine/resources/autoscaling.py index b0778c9801..0d0b83971c 100644 --- a/heat/engine/resources/autoscaling.py +++ b/heat/engine/resources/autoscaling.py @@ -14,6 +14,7 @@ import copy import math +from oslo.utils import excutils import six from heat.common import environment_format @@ -27,7 +28,6 @@ from heat.engine import properties from heat.engine import rsrc_defn from heat.engine import scheduler from heat.engine import stack_resource -from heat.openstack.common import excutils from heat.openstack.common import log as logging from heat.scaling import cooldown from heat.scaling import template diff --git a/heat/engine/resources/eip.py b/heat/engine/resources/eip.py index 549ec1e257..071a9682df 100644 --- a/heat/engine/resources/eip.py +++ b/heat/engine/resources/eip.py @@ -11,6 +11,8 @@ # License for the specific language governing permissions and limitations # under the License. +from oslo.utils import excutils + from heat.common import exception from heat.common.i18n import _ from heat.engine import attributes @@ -18,7 +20,6 @@ from heat.engine import constraints from heat.engine import properties from heat.engine import resource from heat.engine.resources.vpc import VPC -from heat.openstack.common import excutils from heat.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/heat/engine/resources/nova_floatingip.py b/heat/engine/resources/nova_floatingip.py index 4adb955d7b..50de67f3dc 100644 --- a/heat/engine/resources/nova_floatingip.py +++ b/heat/engine/resources/nova_floatingip.py @@ -11,11 +11,12 @@ # License for the specific language governing permissions and limitations # under the License. +from oslo.utils import excutils + from heat.common.i18n import _ from heat.engine import attributes from heat.engine import properties from heat.engine import resource -from heat.openstack.common import excutils from heat.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/heat/engine/scheduler.py b/heat/engine/scheduler.py index f24d841235..1c257e3b1f 100644 --- a/heat/engine/scheduler.py +++ b/heat/engine/scheduler.py @@ -18,10 +18,10 @@ from time import time as wallclock import types import eventlet +from oslo.utils import excutils import six from heat.common.i18n import _ -from heat.openstack.common import excutils from heat.openstack.common import log as logging LOG = logging.getLogger(__name__) diff --git a/heat/engine/service.py b/heat/engine/service.py index b2909c8523..0160ae55e9 100644 --- a/heat/engine/service.py +++ b/heat/engine/service.py @@ -19,6 +19,7 @@ import os import eventlet from oslo.config import cfg from oslo import messaging +from oslo.utils import timeutils import requests import six import warnings @@ -47,7 +48,6 @@ from heat.openstack.common import jsonutils from heat.openstack.common import log as logging from heat.openstack.common import service from heat.openstack.common import threadgroup -from heat.openstack.common import timeutils from heat.openstack.common import uuidutils from heat.rpc import api as rpc_api diff --git a/heat/engine/stack.py b/heat/engine/stack.py index 53b7e8a52f..a7db89c7c3 100644 --- a/heat/engine/stack.py +++ b/heat/engine/stack.py @@ -18,6 +18,7 @@ import re import warnings from oslo.config import cfg +from oslo.utils import encodeutils import six from heat.common import context as common_context @@ -38,7 +39,6 @@ from heat.engine import scheduler from heat.engine.template import Template from heat.engine import update from heat.openstack.common import log as logging -from heat.openstack.common import strutils from heat.rpc import api as rpc_api LOG = logging.getLogger(__name__) @@ -458,7 +458,7 @@ class Stack(collections.Mapping): raise ex except Exception as ex: LOG.exception(ex) - raise StackValidationFailed(message=strutils.safe_decode( + raise StackValidationFailed(message=encodeutils.safe_decode( six.text_type(ex))) if result: raise StackValidationFailed(message=result) diff --git a/heat/engine/stack_lock.py b/heat/engine/stack_lock.py index bb71c80a1e..708657138e 100644 --- a/heat/engine/stack_lock.py +++ b/heat/engine/stack_lock.py @@ -16,12 +16,12 @@ import uuid from oslo.config import cfg from oslo import messaging +from oslo.utils import excutils from heat.common import exception from heat.common.i18n import _ from heat.common import messaging as rpc_messaging from heat.db import api as db_api -from heat.openstack.common import excutils from heat.openstack.common import log as logging cfg.CONF.import_opt('engine_life_check_timeout', 'heat.common.config') diff --git a/heat/engine/watchrule.py b/heat/engine/watchrule.py index ab12b391cf..d1cfca8550 100644 --- a/heat/engine/watchrule.py +++ b/heat/engine/watchrule.py @@ -14,13 +14,14 @@ import datetime +from oslo.utils import timeutils + from heat.common import exception from heat.common.i18n import _ from heat.db import api as db_api from heat.engine import parser from heat.engine import timestamp from heat.openstack.common import log as logging -from heat.openstack.common import timeutils from heat.rpc import api as rpc_api LOG = logging.getLogger(__name__) diff --git a/heat/scaling/cooldown.py b/heat/scaling/cooldown.py index 54e84ccc27..882b99de29 100644 --- a/heat/scaling/cooldown.py +++ b/heat/scaling/cooldown.py @@ -11,7 +11,7 @@ # License for the specific language governing permissions and limitations # under the License. -from heat.openstack.common import timeutils +from oslo.utils import timeutils class CooldownMixin(object): diff --git a/heat/tests/test_api_ec2token.py b/heat/tests/test_api_ec2token.py index 86ad0df143..47d6e20b30 100644 --- a/heat/tests/test_api_ec2token.py +++ b/heat/tests/test_api_ec2token.py @@ -16,12 +16,12 @@ import json import six from oslo.config import cfg +from oslo.utils import importutils import requests from heat.api.aws import ec2token from heat.api.aws import exception from heat.common.wsgi import Request -from heat.openstack.common import importutils from heat.tests.common import HeatTestCase diff --git a/heat/tests/test_autoscaling.py b/heat/tests/test_autoscaling.py index 9674278f53..edb804a139 100644 --- a/heat/tests/test_autoscaling.py +++ b/heat/tests/test_autoscaling.py @@ -17,6 +17,7 @@ import datetime import mock import mox from oslo.config import cfg +from oslo.utils import timeutils import six from heat.common import exception @@ -31,7 +32,6 @@ from heat.engine.resources import loadbalancer from heat.engine.resources.neutron import loadbalancer as neutron_lb from heat.engine import rsrc_defn from heat.engine import scheduler -from heat.openstack.common import timeutils from heat.tests.common import HeatTestCase from heat.tests import utils diff --git a/heat/tests/test_heat_autoscaling_group.py b/heat/tests/test_heat_autoscaling_group.py index eb3c12f9df..1e2cbc12fd 100644 --- a/heat/tests/test_heat_autoscaling_group.py +++ b/heat/tests/test_heat_autoscaling_group.py @@ -15,6 +15,7 @@ import datetime import itertools from oslo.config import cfg +from oslo.utils import timeutils from heat.common import exception from heat.common import short_id @@ -23,7 +24,6 @@ from heat.engine import resource from heat.engine import rsrc_defn from heat.engine import scheduler from heat.engine import stack_resource -from heat.openstack.common import timeutils from heat.tests.common import HeatTestCase from heat.tests import generic_resource from heat.tests import utils diff --git a/heat/tests/test_notifications.py b/heat/tests/test_notifications.py index cd78fc7225..88fe25ce66 100644 --- a/heat/tests/test_notifications.py +++ b/heat/tests/test_notifications.py @@ -12,6 +12,7 @@ # under the License. import mock +from oslo.utils import timeutils from heat.common import exception from heat.common import template_format @@ -28,7 +29,6 @@ from heat.engine.resources import user from heat.engine.resources import wait_condition as waitc from heat.engine import signal_responder as signal from heat.engine import stack_resource -from heat.openstack.common import timeutils from heat.tests import common from heat.tests import generic_resource # reuse the same template than autoscaling tests diff --git a/heat/tests/test_sqlalchemy_api.py b/heat/tests/test_sqlalchemy_api.py index c83e76578c..a76c5a78b4 100644 --- a/heat/tests/test_sqlalchemy_api.py +++ b/heat/tests/test_sqlalchemy_api.py @@ -21,6 +21,7 @@ import uuid import fixtures import mock import mox +from oslo.utils import timeutils from heat.common import context from heat.common import exception @@ -33,7 +34,6 @@ from heat.engine import parser from heat.engine.resource import Resource from heat.engine.resources import instance as instances from heat.engine import scheduler -from heat.openstack.common import timeutils from heat.tests.common import HeatTestCase from heat.tests import utils from heat.tests.v1_1 import fakes diff --git a/heat/tests/test_watch.py b/heat/tests/test_watch.py index ba00ddc982..ccf0257259 100644 --- a/heat/tests/test_watch.py +++ b/heat/tests/test_watch.py @@ -15,13 +15,13 @@ import datetime import mox +from oslo.utils import timeutils from heat.common import exception from heat.db import api as db_api from heat.engine import parser from heat.engine import template from heat.engine import watchrule -from heat.openstack.common import timeutils from heat.tests.common import HeatTestCase from heat.tests import utils diff --git a/openstack-common.conf b/openstack-common.conf index bb711072f2..e295fb37d9 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -5,9 +5,7 @@ module=config module=context module=crypto module=eventlet_backdoor -module=excutils module=gettextutils -module=importutils module=jsonutils module=local module=log @@ -15,9 +13,7 @@ module=loopingcall module=policy module=processutils module=service -module=strutils module=threadgroup -module=timeutils module=uuidutils module=versionutils module=middleware.base diff --git a/requirements.txt b/requirements.txt index 378180693b..0cff1838f9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -17,6 +17,7 @@ oslo.config>=1.4.0 # Apache-2.0 oslo.db>=1.0.0 # Apache-2.0 oslo.i18n>=1.0.0 # Apache-2.0 oslo.messaging>=1.4.0 +oslo.utils>=1.0.0 # Apache-2.0 PasteDeploy>=1.5.0 posix_ipc pycrypto>=2.6