Convert importutils to oslo.utils

Change-Id: I58dfdc608bcddd0fce9df818033b2cb33eee3296
Partial-Bug: #1380629
This commit is contained in:
Steven Hardy
2014-10-29 16:57:01 +00:00
parent 5e9e65138b
commit 0e93da5dee
4 changed files with 3 additions and 76 deletions

View File

@@ -25,9 +25,9 @@ from six.moves.urllib import parse
from oslo.serialization import jsonutils from oslo.serialization import jsonutils
from oslo.utils import encodeutils from oslo.utils import encodeutils
from oslo.utils import importutils
from heatclient import exc from heatclient import exc
from heatclient.openstack.common import importutils
LOG = logging.getLogger(__name__) LOG = logging.getLogger(__name__)
USER_AGENT = 'python-heatclient' USER_AGENT = 'python-heatclient'

View File

@@ -22,10 +22,10 @@ import uuid
import yaml import yaml
from oslo.serialization import jsonutils from oslo.serialization import jsonutils
from oslo.utils import importutils
from heatclient import exc from heatclient import exc
from heatclient.openstack.common import cliutils from heatclient.openstack.common import cliutils
from heatclient.openstack.common import importutils
supported_formats = { supported_formats = {
"json": lambda x: jsonutils.dumps(x, indent=2), "json": lambda x: jsonutils.dumps(x, indent=2),

View File

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

View File

@@ -24,6 +24,7 @@ import six
import six.moves.urllib.parse as urlparse import six.moves.urllib.parse as urlparse
from oslo.utils import encodeutils from oslo.utils import encodeutils
from oslo.utils import importutils
from keystoneclient.auth.identity import v2 as v2_auth from keystoneclient.auth.identity import v2 as v2_auth
from keystoneclient.auth.identity import v3 as v3_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.common import utils
from heatclient import exc from heatclient import exc
from heatclient.openstack.common.gettextutils import _ # noqa from heatclient.openstack.common.gettextutils import _ # noqa
from heatclient.openstack.common import importutils
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
osprofiler_profiler = importutils.try_import("osprofiler.profiler") osprofiler_profiler = importutils.try_import("osprofiler.profiler")