diff --git a/heatclient/common/http.py b/heatclient/common/http.py index 68245f37..e9bce95f 100644 --- a/heatclient/common/http.py +++ b/heatclient/common/http.py @@ -25,9 +25,9 @@ from six.moves.urllib import parse from oslo.serialization import jsonutils from oslo.utils import encodeutils +from oslo.utils import importutils from heatclient import exc -from heatclient.openstack.common import importutils LOG = logging.getLogger(__name__) USER_AGENT = 'python-heatclient' diff --git a/heatclient/common/utils.py b/heatclient/common/utils.py index 7c322fe7..efa3593b 100644 --- a/heatclient/common/utils.py +++ b/heatclient/common/utils.py @@ -22,10 +22,10 @@ import uuid import yaml from oslo.serialization import jsonutils +from oslo.utils import importutils from heatclient import exc from heatclient.openstack.common import cliutils -from heatclient.openstack.common import importutils supported_formats = { "json": lambda x: jsonutils.dumps(x, indent=2), diff --git a/heatclient/openstack/common/importutils.py b/heatclient/openstack/common/importutils.py deleted file mode 100644 index 7b4b09af..00000000 --- a/heatclient/openstack/common/importutils.py +++ /dev/null @@ -1,73 +0,0 @@ -# Copyright 2011 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. - -""" -Import related utilities and helper functions. -""" - -import sys -import traceback - - -def import_class(import_str): - """Returns a class from a string including module and class.""" - mod_str, _sep, class_str = import_str.rpartition('.') - try: - __import__(mod_str) - return getattr(sys.modules[mod_str], class_str) - except (ValueError, AttributeError): - raise ImportError('Class %s cannot be found (%s)' % - (class_str, - traceback.format_exception(*sys.exc_info()))) - - -def import_object(import_str, *args, **kwargs): - """Import a class and return an instance of it.""" - return import_class(import_str)(*args, **kwargs) - - -def import_object_ns(name_space, import_str, *args, **kwargs): - """Tries to import object from default namespace. - - Imports a class and return an instance of it, first by trying - to find the class in a default namespace, then failing back to - a full path if not found in the default namespace. - """ - import_value = "%s.%s" % (name_space, import_str) - try: - return import_class(import_value)(*args, **kwargs) - except ImportError: - return import_class(import_str)(*args, **kwargs) - - -def import_module(import_str): - """Import a module.""" - __import__(import_str) - return sys.modules[import_str] - - -def import_versioned_module(version, submodule=None): - module = 'heatclient.v%s' % version - if submodule: - module = '.'.join((module, submodule)) - return import_module(module) - - -def try_import(import_str, default=None): - """Try to import a module and if it fails return default.""" - try: - return import_module(import_str) - except ImportError: - return default diff --git a/heatclient/shell.py b/heatclient/shell.py index 97f78d9d..b714bce2 100644 --- a/heatclient/shell.py +++ b/heatclient/shell.py @@ -24,6 +24,7 @@ import six import six.moves.urllib.parse as urlparse from oslo.utils import encodeutils +from oslo.utils import importutils from keystoneclient.auth.identity import v2 as v2_auth from keystoneclient.auth.identity import v3 as v3_auth @@ -36,7 +37,6 @@ from heatclient import client as heat_client from heatclient.common import utils from heatclient import exc from heatclient.openstack.common.gettextutils import _ # noqa -from heatclient.openstack.common import importutils logger = logging.getLogger(__name__) osprofiler_profiler = importutils.try_import("osprofiler.profiler")