summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openstack-common.conf1
-rw-r--r--requirements.txt1
-rw-r--r--run_tests.py4
-rw-r--r--trove/backup/models.py2
-rw-r--r--trove/backup/service.py3
-rw-r--r--trove/cluster/models.py3
-rw-r--r--trove/cluster/service.py2
-rw-r--r--trove/cluster/views.py3
-rw-r--r--trove/cmd/common.py6
-rwxr-xr-xtrove/cmd/guest.py4
-rwxr-xr-xtrove/cmd/manage.py5
-rw-r--r--trove/common/auth.py2
-rw-r--r--trove/common/base_wsgi.py16
-rw-r--r--trove/common/cfg.py4
-rw-r--r--trove/common/debug_utils.py5
-rw-r--r--trove/common/exception.py2
-rw-r--r--trove/common/extensions.py2
-rw-r--r--trove/common/profile.py2
-rw-r--r--trove/common/rpc/service.py2
-rw-r--r--trove/common/strategies/cluster/experimental/mongodb/api.py2
-rw-r--r--trove/common/strategies/cluster/experimental/mongodb/guestagent.py3
-rw-r--r--trove/common/strategies/cluster/experimental/mongodb/taskmanager.py2
-rw-r--r--trove/common/strategies/cluster/experimental/vertica/api.py2
-rw-r--r--trove/common/strategies/cluster/experimental/vertica/guestagent.py3
-rw-r--r--trove/common/strategies/cluster/experimental/vertica/taskmanager.py2
-rw-r--r--trove/common/strategies/cluster/strategy.py2
-rw-r--r--trove/common/template.py2
-rw-r--r--trove/common/utils.py3
-rw-r--r--trove/common/wsgi.py2
-rw-r--r--trove/conductor/api.py2
-rw-r--r--trove/conductor/manager.py2
-rw-r--r--trove/conductor/models.py3
-rw-r--r--trove/configuration/models.py3
-rw-r--r--trove/configuration/service.py3
-rw-r--r--trove/configuration/views.py2
-rw-r--r--trove/datastore/models.py3
-rw-r--r--trove/db/models.py3
-rw-r--r--trove/db/sqlalchemy/migrate_repo/schema.py3
-rw-r--r--trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py2
-rw-r--r--trove/db/sqlalchemy/migrate_repo/versions/023_add_instance_indexes.py2
-rw-r--r--trove/db/sqlalchemy/migrate_repo/versions/024_add_backup_indexes.py2
-rw-r--r--trove/db/sqlalchemy/migrate_repo/versions/025_add_service_statuses_indexes.py2
-rw-r--r--trove/db/sqlalchemy/migrate_repo/versions/026_datastore_versions_unique_fix.py2
-rw-r--r--trove/db/sqlalchemy/migrate_repo/versions/028_recreate_agent_heartbeat.py3
-rw-r--r--trove/db/sqlalchemy/migrate_repo/versions/032_clusters.py2
-rw-r--r--trove/db/sqlalchemy/migration.py2
-rw-r--r--trove/db/sqlalchemy/session.py2
-rw-r--r--trove/dns/designate/driver.py2
-rw-r--r--trove/dns/manager.py3
-rw-r--r--trove/dns/models.py3
-rw-r--r--trove/extensions/account/models.py3
-rw-r--r--trove/extensions/account/service.py3
-rw-r--r--trove/extensions/mgmt/clusters/service.py3
-rw-r--r--trove/extensions/mgmt/configuration/service.py3
-rw-r--r--trove/extensions/mgmt/configuration/views.py2
-rw-r--r--trove/extensions/mgmt/host/instance/service.py3
-rw-r--r--trove/extensions/mgmt/host/models.py2
-rw-r--r--trove/extensions/mgmt/host/service.py2
-rw-r--r--trove/extensions/mgmt/instances/models.py3
-rw-r--r--trove/extensions/mgmt/instances/service.py2
-rw-r--r--trove/extensions/mgmt/quota/service.py3
-rw-r--r--trove/extensions/mgmt/upgrade/service.py3
-rw-r--r--trove/extensions/mgmt/volume/models.py2
-rw-r--r--trove/extensions/mgmt/volume/service.py3
-rw-r--r--trove/extensions/mysql/models.py3
-rw-r--r--trove/extensions/mysql/service.py2
-rw-r--r--trove/extensions/routes/account.py2
-rw-r--r--trove/extensions/routes/mgmt.py3
-rw-r--r--trove/extensions/routes/mysql.py2
-rw-r--r--trove/extensions/routes/security_group.py3
-rw-r--r--trove/extensions/security_group/models.py3
-rw-r--r--trove/extensions/security_group/service.py4
-rw-r--r--trove/extensions/security_group/views.py2
-rw-r--r--trove/guestagent/api.py2
-rw-r--r--trove/guestagent/datastore/experimental/cassandra/manager.py2
-rw-r--r--trove/guestagent/datastore/experimental/cassandra/service.py2
-rw-r--r--trove/guestagent/datastore/experimental/couchbase/manager.py2
-rw-r--r--trove/guestagent/datastore/experimental/couchbase/service.py2
-rw-r--r--trove/guestagent/datastore/experimental/couchdb/manager.py2
-rw-r--r--trove/guestagent/datastore/experimental/couchdb/service.py3
-rw-r--r--trove/guestagent/datastore/experimental/db2/manager.py2
-rw-r--r--trove/guestagent/datastore/experimental/db2/service.py3
-rw-r--r--trove/guestagent/datastore/experimental/mongodb/manager.py2
-rw-r--r--trove/guestagent/datastore/experimental/mongodb/service.py2
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/manager.py2
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/pgutil.py3
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/service/access.py3
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/service/config.py3
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/service/database.py3
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/service/install.py3
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/service/process.py3
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/service/root.py3
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/service/status.py3
-rw-r--r--trove/guestagent/datastore/experimental/postgresql/service/users.py3
-rw-r--r--trove/guestagent/datastore/experimental/redis/manager.py2
-rw-r--r--trove/guestagent/datastore/experimental/redis/service.py3
-rw-r--r--trove/guestagent/datastore/experimental/vertica/manager.py2
-rw-r--r--trove/guestagent/datastore/experimental/vertica/service.py2
-rw-r--r--trove/guestagent/datastore/mysql/manager.py2
-rw-r--r--trove/guestagent/datastore/mysql/service.py2
-rw-r--r--trove/guestagent/datastore/service.py3
-rw-r--r--trove/guestagent/dbaas.py5
-rw-r--r--trove/guestagent/models.py3
-rw-r--r--trove/guestagent/pkg.py2
-rw-r--r--trove/guestagent/strategies/backup/__init__.py3
-rw-r--r--trove/guestagent/strategies/backup/base.py3
-rw-r--r--trove/guestagent/strategies/backup/experimental/couchbase_impl.py3
-rw-r--r--trove/guestagent/strategies/backup/experimental/mongo_impl.py3
-rw-r--r--trove/guestagent/strategies/backup/experimental/postgresql_impl.py3
-rw-r--r--trove/guestagent/strategies/backup/mysql_impl.py3
-rw-r--r--trove/guestagent/strategies/replication/__init__.py3
-rw-r--r--trove/guestagent/strategies/replication/mysql_base.py2
-rw-r--r--trove/guestagent/strategies/replication/mysql_binlog.py3
-rw-r--r--trove/guestagent/strategies/replication/mysql_gtid.py3
-rw-r--r--trove/guestagent/strategies/restore/__init__.py3
-rw-r--r--trove/guestagent/strategies/restore/base.py3
-rw-r--r--trove/guestagent/strategies/restore/experimental/couchbase_impl.py3
-rw-r--r--trove/guestagent/strategies/restore/experimental/mongo_impl.py3
-rw-r--r--trove/guestagent/strategies/restore/experimental/postgresql_impl.py2
-rw-r--r--trove/guestagent/strategies/restore/mysql_impl.py2
-rw-r--r--trove/guestagent/strategies/storage/__init__.py3
-rw-r--r--trove/guestagent/strategies/storage/swift.py3
-rw-r--r--trove/guestagent/strategy.py2
-rw-r--r--trove/guestagent/volume.py2
-rw-r--r--trove/instance/models.py2
-rw-r--r--trove/instance/service.py2
-rw-r--r--trove/instance/views.py3
-rw-r--r--trove/network/neutron.py2
-rw-r--r--trove/network/nova.py2
-rw-r--r--trove/openstack/common/log.py718
-rw-r--r--trove/quota/models.py3
-rw-r--r--trove/quota/quota.py2
-rw-r--r--trove/taskmanager/api.py2
-rw-r--r--trove/taskmanager/manager.py2
-rwxr-xr-xtrove/taskmanager/models.py2
-rw-r--r--trove/taskmanager/service.py2
-rw-r--r--trove/tests/db/migrations.py2
-rw-r--r--trove/tests/fakes/common.py3
-rw-r--r--trove/tests/fakes/dns.py2
-rw-r--r--trove/tests/fakes/guestagent.py2
-rw-r--r--trove/tests/fakes/nova.py3
-rw-r--r--trove/tests/fakes/taskmanager.py2
-rw-r--r--trove/tests/util/usage.py2
143 files changed, 228 insertions, 868 deletions
diff --git a/openstack-common.conf b/openstack-common.conf
index e8cb8189..b3165317 100644
--- a/openstack-common.conf
+++ b/openstack-common.conf
@@ -2,7 +2,6 @@
# The list of modules to copy from oslo-incubator
module=local
-module=log
module=notifier
module=pastedeploy
module=rpc
diff --git a/requirements.txt b/requirements.txt
index 47fcd9e4..8374295a 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -41,3 +41,4 @@ six>=1.9.0
stevedore>=1.5.0 # Apache-2.0
oslo.messaging>=1.16.0 # Apache-2.0
osprofiler>=0.3.0 # Apache-2.0
+oslo.log>=1.6.0 # Apache-2.0
diff --git a/run_tests.py b/run_tests.py
index 7b89a8e1..a5cb80d0 100644
--- a/run_tests.py
+++ b/run_tests.py
@@ -24,6 +24,7 @@ import traceback
import urllib
import eventlet
+from oslo_log import log as logging
import proboscis
import wsgi_intercept
from wsgi_intercept.httplib2_intercept import install as wsgi_install
@@ -32,7 +33,6 @@ from trove.common import cfg
from trove.common.rpc import service as rpc_service
from trove.common.rpc import version as rpc_version
from trove.common import utils
-from trove.openstack.common import log as logging
from trove import rpc
from trove.tests.config import CONFIG
@@ -64,7 +64,7 @@ def initialize_trove(config_file):
cfg.CONF(args=[],
project='trove',
default_config_files=[config_file])
- logging.setup(None)
+ logging.setup(CONF, None)
topic = CONF.taskmanager_queue
rpc.init(CONF)
diff --git a/trove/backup/models.py b/trove/backup/models.py
index d2d0b151..3a248bfb 100644
--- a/trove/backup/models.py
+++ b/trove/backup/models.py
@@ -14,6 +14,7 @@
"""Model classes that form the core of snapshots functionality."""
+from oslo_log import log as logging
from sqlalchemy import desc
from swiftclient.client import ClientException
@@ -25,7 +26,6 @@ from trove.common.remote import create_swift_client
from trove.common import utils
from trove.datastore import models as datastore_models
from trove.db.models import DatabaseModelBase
-from trove.openstack.common import log as logging
from trove.quota.quota import run_with_quotas
from trove.taskmanager import api
diff --git a/trove/backup/service.py b/trove/backup/service.py
index 0116ec38..cdba5d80 100644
--- a/trove/backup/service.py
+++ b/trove/backup/service.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.backup.models import Backup
from trove.backup import views
from trove.common import apischema
@@ -20,7 +22,6 @@ from trove.common import cfg
from trove.common.i18n import _
from trove.common import pagination
from trove.common import wsgi
-from trove.openstack.common import log as logging
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
diff --git a/trove/cluster/models.py b/trove/cluster/models.py
index 0c4cabe3..bcf411a2 100644
--- a/trove/cluster/models.py
+++ b/trove/cluster/models.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.cluster.tasks import ClusterTask
from trove.cluster.tasks import ClusterTasks
from trove.common import cfg
@@ -22,7 +24,6 @@ from trove.common.strategies.cluster import strategy
from trove.datastore import models as datastore_models
from trove.db import models as dbmodels
from trove.instance import models as inst_models
-from trove.openstack.common import log as logging
from trove.taskmanager import api as task_api
diff --git a/trove/cluster/service.py b/trove/cluster/service.py
index c9c5b6d0..8b43b32b 100644
--- a/trove/cluster/service.py
+++ b/trove/cluster/service.py
@@ -14,6 +14,7 @@
# under the License.
from oslo_config.cfg import NoSuchOptError
+from oslo_log import log as logging
from trove.cluster import models
from trove.cluster import views
@@ -26,7 +27,6 @@ from trove.common.strategies.cluster import strategy
from trove.common import utils
from trove.common import wsgi
from trove.datastore import models as datastore_models
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/cluster/views.py b/trove/cluster/views.py
index 92230570..5eff6b0f 100644
--- a/trove/cluster/views.py
+++ b/trove/cluster/views.py
@@ -13,11 +13,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.strategies.cluster import strategy
from trove.common.views import create_links
from trove.instance.views import InstanceDetailView
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/cmd/common.py b/trove/cmd/common.py
index 862880bd..f0453b45 100644
--- a/trove/cmd/common.py
+++ b/trove/cmd/common.py
@@ -28,9 +28,11 @@ def initialize(extra_opts=None, pre_logging=None):
# Import only the modules necessary to initialize logging and determine if
# debug_utils are enabled.
import sys
+
+ from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import debug_utils
- from trove.openstack.common import log as logging
conf = cfg.CONF
if extra_opts:
@@ -40,7 +42,7 @@ def initialize(extra_opts=None, pre_logging=None):
if pre_logging:
pre_logging(conf)
- logging.setup(None)
+ logging.setup(conf, None)
debug_utils.setup()
# Patch 'thread' module if debug is disabled.
diff --git a/trove/cmd/guest.py b/trove/cmd/guest.py
index b401daf6..9a79910c 100755
--- a/trove/cmd/guest.py
+++ b/trove/cmd/guest.py
@@ -25,11 +25,11 @@ gettext.install('trove', unicode=1)
import sys
from oslo_config import cfg as openstack_cfg
+from oslo_log import log as logging
from oslo_service import service as openstack_service
from trove.common import cfg
from trove.common import debug_utils
-from trove.openstack.common import log as logging
CONF = cfg.CONF
# The guest_id opt definition must match the one in common/cfg.py
@@ -39,7 +39,7 @@ CONF.register_opts([openstack_cfg.StrOpt('guest_id', default=None,
def main():
cfg.parse_args(sys.argv)
- logging.setup(None)
+ logging.setup(CONF, None)
debug_utils.setup()
diff --git a/trove/cmd/manage.py b/trove/cmd/manage.py
index 0355388e..87a34797 100755
--- a/trove/cmd/manage.py
+++ b/trove/cmd/manage.py
@@ -21,6 +21,8 @@ import sys
gettext.install('trove', unicode=1)
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
@@ -28,7 +30,6 @@ from trove.common import utils
from trove.configuration import models as config_models
from trove.datastore import models as datastore_models
from trove.db import get_db_api
-from trove.openstack.common import log as logging
CONF = cfg.CONF
@@ -173,7 +174,7 @@ def main():
cfg.parse_args(sys.argv)
try:
- logging.setup(None)
+ logging.setup(CONF, None)
Commands().execute()
sys.exit(0)
diff --git a/trove/common/auth.py b/trove/common/auth.py
index ffa345b6..2bec77b9 100644
--- a/trove/common/auth.py
+++ b/trove/common/auth.py
@@ -15,13 +15,13 @@
import re
+from oslo_log import log as logging
from oslo_utils import strutils
import webob.exc
import wsgi
from trove.common import exception
from trove.common.i18n import _
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/common/base_wsgi.py b/trove/common/base_wsgi.py
index b5852e66..bbcf849a 100644
--- a/trove/common/base_wsgi.py
+++ b/trove/common/base_wsgi.py
@@ -22,12 +22,14 @@ eventlet.patcher.monkey_patch(all=False, socket=True)
import datetime
import errno
+import logging as system_logging
import socket
import sys
import time
import eventlet.wsgi
from oslo_config import cfg
+from oslo_log import log as logging
from oslo_serialization import jsonutils
from oslo_service import service
from oslo_service import sslutils
@@ -41,7 +43,6 @@ from xml.parsers import expat
from trove.common import xmlutils
from trove.openstack.common import exception
from trove.openstack.common.gettextutils import _
-from trove.openstack.common import log as logging
socket_opts = [
cfg.IntOpt('backlog',
@@ -65,6 +66,17 @@ def run_server(application, port, **kwargs):
eventlet.wsgi.server(sock, application, **kwargs)
+class WritableLogger(object):
+ """A thin wrapper that responds to `write` and logs."""
+
+ def __init__(self, logger, level=system_logging.INFO):
+ self.logger = logger
+ self.level = level
+
+ def write(self, msg):
+ self.logger.log(self.level, msg.rstrip())
+
+
class Service(service.Service):
"""
Provides a Service API for wsgi servers.
@@ -158,7 +170,7 @@ class Service(service.Service):
eventlet.wsgi.server(socket,
application,
custom_pool=self.tg.pool,
- log=logging.WritableLogger(logger))
+ log=WritableLogger(logger))
class Middleware(object):
diff --git a/trove/common/cfg.py b/trove/common/cfg.py
index 67a12d18..ed9fe9b6 100644
--- a/trove/common/cfg.py
+++ b/trove/common/cfg.py
@@ -18,6 +18,8 @@
import os.path
from oslo_config import cfg
+from oslo_log import log as logging
+
import trove
@@ -977,6 +979,8 @@ CONF.register_opts(db2_opts, db2_group)
CONF.register_opts(rpcapi_cap_opts, upgrade_levels)
+logging.register_options(CONF)
+
def custom_parser(parsername, parser):
CONF.register_cli_opt(cfg.SubCommandOpt(parsername, handler=parser))
diff --git a/trove/common/debug_utils.py b/trove/common/debug_utils.py
index 044ce15c..cabd4ddf 100644
--- a/trove/common/debug_utils.py
+++ b/trove/common/debug_utils.py
@@ -19,11 +19,10 @@
import sys
from oslo_config import cfg
+from oslo_log import log as logging
-from trove.openstack.common import log
-
-LOG = log.getLogger(__name__)
+LOG = logging.getLogger(__name__)
CONF = cfg.CONF
__debug_state = None
diff --git a/trove/common/exception.py b/trove/common/exception.py
index ff1b5379..133fa08b 100644
--- a/trove/common/exception.py
+++ b/trove/common/exception.py
@@ -18,10 +18,10 @@
import re
from oslo_concurrency import processutils
+from oslo_log import log as logging
from trove.common import base_exception as openstack_exception
from trove.common.i18n import _
-from trove.openstack.common import log as logging
ClientConnectionError = openstack_exception.ClientConnectionError
diff --git a/trove/common/extensions.py b/trove/common/extensions.py
index 0c53c0a9..bda93fee 100644
--- a/trove/common/extensions.py
+++ b/trove/common/extensions.py
@@ -16,6 +16,7 @@
import abc
from lxml import etree
+from oslo_log import log as logging
import routes
import six
import stevedore
@@ -27,7 +28,6 @@ from trove.common import base_wsgi
from trove.common import cfg
from trove.common.i18n import _
from trove.common import wsgi
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/common/profile.py b/trove/common/profile.py
index 7c89e9ce..975340a6 100644
--- a/trove/common/profile.py
+++ b/trove/common/profile.py
@@ -14,13 +14,13 @@
# under the License.
from oslo_context import context
+from oslo_log import log as logging
import oslo_messaging as messaging
from osprofiler import notifier
from osprofiler import web
from trove.common import cfg
from trove.common import i18n
-from trove.openstack.common import log as logging
from trove import rpc
diff --git a/trove/common/rpc/service.py b/trove/common/rpc/service.py
index fbf9809b..08559813 100644
--- a/trove/common/rpc/service.py
+++ b/trove/common/rpc/service.py
@@ -19,6 +19,7 @@
import inspect
import os
+from oslo_log import log as logging
import oslo_messaging as messaging
from oslo_service import loopingcall
from oslo_service import service
@@ -28,7 +29,6 @@ from osprofiler import profiler
from trove.common import cfg
from trove.common import profile
from trove.openstack.common.gettextutils import _
-from trove.openstack.common import log as logging
from trove import rpc
diff --git a/trove/common/strategies/cluster/experimental/mongodb/api.py b/trove/common/strategies/cluster/experimental/mongodb/api.py
index 0b1a3323..a960055c 100644
--- a/trove/common/strategies/cluster/experimental/mongodb/api.py
+++ b/trove/common/strategies/cluster/experimental/mongodb/api.py
@@ -14,6 +14,7 @@
# under the License.
from novaclient import exceptions as nova_exceptions
+from oslo_log import log as logging
from trove.cluster import models
from trove.cluster.tasks import ClusterTasks
@@ -28,7 +29,6 @@ from trove.common import wsgi
from trove.datastore import models as datastore_models
from trove.extensions.mgmt.clusters.views import MgmtClusterView
from trove.instance import models as inst_models
-from trove.openstack.common import log as logging
from trove.quota.quota import check_quotas
from trove.taskmanager import api as task_api
diff --git a/trove/common/strategies/cluster/experimental/mongodb/guestagent.py b/trove/common/strategies/cluster/experimental/mongodb/guestagent.py
index 058c260c..40b9d1f9 100644
--- a/trove/common/strategies/cluster/experimental/mongodb/guestagent.py
+++ b/trove/common/strategies/cluster/experimental/mongodb/guestagent.py
@@ -13,10 +13,11 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.strategies.cluster import base
from trove.guestagent import api as guest_api
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/common/strategies/cluster/experimental/mongodb/taskmanager.py b/trove/common/strategies/cluster/experimental/mongodb/taskmanager.py
index f625ab11..0d4181f9 100644
--- a/trove/common/strategies/cluster/experimental/mongodb/taskmanager.py
+++ b/trove/common/strategies/cluster/experimental/mongodb/taskmanager.py
@@ -14,6 +14,7 @@
# under the License.
from eventlet.timeout import Timeout
+from oslo_log import log as logging
from trove.common import cfg
from trove.common.i18n import _
@@ -21,7 +22,6 @@ from trove.common.strategies.cluster import base
from trove.common import utils
from trove.instance.models import DBInstance
from trove.instance.models import Instance
-from trove.openstack.common import log as logging
from trove.taskmanager import api as task_api
import trove.taskmanager.models as task_models
diff --git a/trove/common/strategies/cluster/experimental/vertica/api.py b/trove/common/strategies/cluster/experimental/vertica/api.py
index d5eadf3b..66522d99 100644
--- a/trove/common/strategies/cluster/experimental/vertica/api.py
+++ b/trove/common/strategies/cluster/experimental/vertica/api.py
@@ -12,6 +12,7 @@
# limitations under the License.
from novaclient import exceptions as nova_exceptions
+from oslo_log import log as logging
from trove.cluster import models
from trove.cluster.tasks import ClusterTasks
@@ -22,7 +23,6 @@ from trove.common import remote
from trove.common.strategies.cluster import base
from trove.extensions.mgmt.clusters.views import MgmtClusterView
from trove.instance import models as inst_models
-from trove.openstack.common import log as logging
from trove.quota.quota import check_quotas
from trove.taskmanager import api as task_api
diff --git a/trove/common/strategies/cluster/experimental/vertica/guestagent.py b/trove/common/strategies/cluster/experimental/vertica/guestagent.py
index f5047b5f..a0d4770f 100644
--- a/trove/common/strategies/cluster/experimental/vertica/guestagent.py
+++ b/trove/common/strategies/cluster/experimental/vertica/guestagent.py
@@ -11,10 +11,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.strategies.cluster import base
from trove.guestagent import api as guest_api
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/common/strategies/cluster/experimental/vertica/taskmanager.py b/trove/common/strategies/cluster/experimental/vertica/taskmanager.py
index e1db2cb4..526ddcb6 100644
--- a/trove/common/strategies/cluster/experimental/vertica/taskmanager.py
+++ b/trove/common/strategies/cluster/experimental/vertica/taskmanager.py
@@ -12,13 +12,13 @@
# limitations under the License.
from eventlet.timeout import Timeout
+from oslo_log import log as logging
from trove.common import cfg
from trove.common.i18n import _
from trove.common.strategies.cluster import base
from trove.instance.models import DBInstance
from trove.instance.models import Instance
-from trove.openstack.common import log as logging
from trove.taskmanager import api as task_api
import trove.taskmanager.models as task_models
diff --git a/trove/common/strategies/cluster/strategy.py b/trove/common/strategies/cluster/strategy.py
index 0991591f..10805d59 100644
--- a/trove/common/strategies/cluster/strategy.py
+++ b/trove/common/strategies/cluster/strategy.py
@@ -14,10 +14,10 @@
# under the License.
from oslo_config.cfg import NoSuchOptError
+from oslo_log import log as logging
from trove.common import cfg
from trove.common.utils import import_class
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/common/template.py b/trove/common/template.py
index 838d8ba1..0a0ce868 100644
--- a/trove/common/template.py
+++ b/trove/common/template.py
@@ -16,13 +16,13 @@
import jinja2
from oslo_config import cfg as oslo_config
+from oslo_log import log as logging
from trove.common import cfg
from trove.common import configurations
from trove.common import exception
from trove.common.i18n import _
from trove.common import utils
-from trove.openstack.common import log as logging
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
diff --git a/trove/common/utils.py b/trove/common/utils.py
index 285f4447..0c9f9aec 100644
--- a/trove/common/utils.py
+++ b/trove/common/utils.py
@@ -26,6 +26,7 @@ import uuid
from eventlet.timeout import Timeout
import jinja2
from oslo_concurrency import processutils
+from oslo_log import log as logging
from oslo_service import loopingcall
from oslo_utils import importutils
from oslo_utils import strutils
@@ -36,7 +37,6 @@ import six.moves.urllib.parse as urlparse
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
-from trove.openstack.common import log as logging
CONF = cfg.CONF
@@ -48,7 +48,6 @@ bool_from_string = strutils.bool_from_string
execute = processutils.execute
isotime = timeutils.isotime
-CONF = cfg.CONF
ENV = jinja2.Environment(loader=jinja2.ChoiceLoader([
jinja2.FileSystemLoader(CONF.template_path),
jinja2.PackageLoader("trove", "templates")
diff --git a/trove/common/wsgi.py b/trove/common/wsgi.py
index c97ff082..c924fc97 100644
--- a/trove/common/wsgi.py
+++ b/trove/common/wsgi.py
@@ -22,6 +22,7 @@ import uuid
import eventlet.wsgi
import jsonschema
+from oslo_log import log as logging
from oslo_serialization import jsonutils
from oslo_service import service
import paste.urlmap
@@ -35,7 +36,6 @@ from trove.common import context as rd_context
from trove.common import exception
from trove.common.i18n import _
from trove.common import utils
-from trove.openstack.common import log as logging
from trove.openstack.common import pastedeploy
CONTEXT_KEY = 'trove.context'
diff --git a/trove/conductor/api.py b/trove/conductor/api.py
index d89691c7..c8db2667 100644
--- a/trove/conductor/api.py
+++ b/trove/conductor/api.py
@@ -12,11 +12,11 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
import oslo_messaging as messaging
from trove.common import cfg
from trove.common.rpc import version as rpc_version
-from trove.openstack.common import log as logging
from trove import rpc
diff --git a/trove/conductor/manager.py b/trove/conductor/manager.py
index 01e5367b..2d069dc4 100644
--- a/trove/conductor/manager.py
+++ b/trove/conductor/manager.py
@@ -12,6 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
import oslo_messaging as messaging
from oslo_service import periodic_task
@@ -24,7 +25,6 @@ from trove.common.rpc import version as rpc_version
from trove.conductor.models import LastSeen
from trove.extensions.mysql import models as mysql_models
from trove.instance import models as t_models
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/conductor/models.py b/trove/conductor/models.py
index c7df8c2b..3dcfd2f1 100644
--- a/trove/conductor/models.py
+++ b/trove/conductor/models.py
@@ -12,8 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from oslo_log import log as logging
+
from trove.db import get_db_api
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/configuration/models.py b/trove/configuration/models.py
index 30a95bb7..57a31986 100644
--- a/trove/configuration/models.py
+++ b/trove/configuration/models.py
@@ -16,6 +16,8 @@
from datetime import datetime
import json
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.exception import ModelNotFoundError
@@ -24,7 +26,6 @@ from trove.common import utils
from trove.datastore import models as dstore_models
from trove.db import get_db_api
from trove.db import models as dbmodels
-from trove.openstack.common import log as logging
from trove.taskmanager import api as task_api
diff --git a/trove/configuration/service.py b/trove/configuration/service.py
index 0b904a55..6c80c6b5 100644
--- a/trove/configuration/service.py
+++ b/trove/configuration/service.py
@@ -15,6 +15,8 @@
from datetime import datetime
+from oslo_log import log as logging
+
import trove.common.apischema as apischema
from trove.common import cfg
from trove.common import exception
@@ -26,7 +28,6 @@ from trove.configuration.models import DBConfigurationParameter
from trove.configuration import views
from trove.datastore import models as ds_models
from trove.instance import models as instances_models
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/configuration/views.py b/trove/configuration/views.py
index c2995ee7..6bbf9231 100644
--- a/trove/configuration/views.py
+++ b/trove/configuration/views.py
@@ -13,7 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from trove.openstack.common import log as logging
+from oslo_log import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/datastore/models.py b/trove/datastore/models.py
index 1d06b96a..81d8ee10 100644
--- a/trove/datastore/models.py
+++ b/trove/datastore/models.py
@@ -16,12 +16,13 @@
# under the License.
#
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common import utils
from trove.db import get_db_api
from trove.db import models as dbmodels
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/db/models.py b/trove/db/models.py
index b419c1d3..5a94fc15 100644
--- a/trove/db/models.py
+++ b/trove/db/models.py
@@ -12,6 +12,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import exception
from trove.common.i18n import _
from trove.common import models
@@ -19,7 +21,6 @@ from trove.common import pagination
from trove.common import utils
from trove.db import db_query
from trove.db import get_db_api
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/db/sqlalchemy/migrate_repo/schema.py b/trove/db/sqlalchemy/migrate_repo/schema.py
index 48d4a30b..cc7b3cee 100644
--- a/trove/db/sqlalchemy/migrate_repo/schema.py
+++ b/trove/db/sqlalchemy/migrate_repo/schema.py
@@ -15,10 +15,9 @@
"""Various conveniences used for migration scripts."""
+from oslo_log import log as logging
import sqlalchemy.types
-from trove.openstack.common import log as logging
-
logger = logging.getLogger('trove.db.sqlalchemy.migrate_repo.schema')
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py b/trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py
index 4a433c48..e5c91cce 100644
--- a/trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py
+++ b/trove/db/sqlalchemy/migrate_repo/versions/020_configurations.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from sqlalchemy import ForeignKey
from sqlalchemy.schema import Column
from sqlalchemy.schema import MetaData
@@ -24,7 +25,6 @@ from trove.db.sqlalchemy.migrate_repo.schema import drop_tables
from trove.db.sqlalchemy.migrate_repo.schema import String
from trove.db.sqlalchemy.migrate_repo.schema import Table
from trove.db.sqlalchemy import utils as db_utils
-from trove.openstack.common import log as logging
logger = logging.getLogger('trove.db.sqlalchemy.migrate_repo.schema')
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/023_add_instance_indexes.py b/trove/db/sqlalchemy/migrate_repo/versions/023_add_instance_indexes.py
index b3547131..d1195e01 100644
--- a/trove/db/sqlalchemy/migrate_repo/versions/023_add_instance_indexes.py
+++ b/trove/db/sqlalchemy/migrate_repo/versions/023_add_instance_indexes.py
@@ -12,12 +12,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from sqlalchemy.exc import OperationalError
from sqlalchemy.schema import Index
from sqlalchemy.schema import MetaData
from trove.db.sqlalchemy.migrate_repo.schema import Table
-from trove.openstack.common import log as logging
logger = logging.getLogger('trove.db.sqlalchemy.migrate_repo.schema')
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/024_add_backup_indexes.py b/trove/db/sqlalchemy/migrate_repo/versions/024_add_backup_indexes.py
index 75df8383..22be0a79 100644
--- a/trove/db/sqlalchemy/migrate_repo/versions/024_add_backup_indexes.py
+++ b/trove/db/sqlalchemy/migrate_repo/versions/024_add_backup_indexes.py
@@ -12,12 +12,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from sqlalchemy.exc import OperationalError
from sqlalchemy.schema import Index
from sqlalchemy.schema import MetaData
from trove.db.sqlalchemy.migrate_repo.schema import Table
-from trove.openstack.common import log as logging
logger = logging.getLogger('trove.db.sqlalchemy.migrate_repo.schema')
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/025_add_service_statuses_indexes.py b/trove/db/sqlalchemy/migrate_repo/versions/025_add_service_statuses_indexes.py
index dcc226b2..62eefe8a 100644
--- a/trove/db/sqlalchemy/migrate_repo/versions/025_add_service_statuses_indexes.py
+++ b/trove/db/sqlalchemy/migrate_repo/versions/025_add_service_statuses_indexes.py
@@ -12,12 +12,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from sqlalchemy.exc import OperationalError
from sqlalchemy.schema import Index
from sqlalchemy.schema import MetaData
from trove.db.sqlalchemy.migrate_repo.schema import Table
-from trove.openstack.common import log as logging
logger = logging.getLogger('trove.db.sqlalchemy.migrate_repo.schema')
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/026_datastore_versions_unique_fix.py b/trove/db/sqlalchemy/migrate_repo/versions/026_datastore_versions_unique_fix.py
index 3a04f13c..daa9ea88 100644
--- a/trove/db/sqlalchemy/migrate_repo/versions/026_datastore_versions_unique_fix.py
+++ b/trove/db/sqlalchemy/migrate_repo/versions/026_datastore_versions_unique_fix.py
@@ -13,11 +13,11 @@
# under the License.
from migrate.changeset import UniqueConstraint
+from oslo_log import log as logging
from sqlalchemy.exc import OperationalError
from sqlalchemy.schema import MetaData
from trove.db.sqlalchemy.migrate_repo.schema import Table
-from trove.openstack.common import log as logging
logger = logging.getLogger('trove.db.sqlalchemy.migrate_repo.schema')
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/028_recreate_agent_heartbeat.py b/trove/db/sqlalchemy/migrate_repo/versions/028_recreate_agent_heartbeat.py
index 1e2acf92..d869ee36 100644
--- a/trove/db/sqlalchemy/migrate_repo/versions/028_recreate_agent_heartbeat.py
+++ b/trove/db/sqlalchemy/migrate_repo/versions/028_recreate_agent_heartbeat.py
@@ -12,16 +12,17 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from oslo_log import log as logging
from sqlalchemy.exc import OperationalError
from sqlalchemy.schema import Column
from sqlalchemy.schema import MetaData
+
from trove.db.sqlalchemy.migrate_repo.schema import Boolean
from trove.db.sqlalchemy.migrate_repo.schema import create_tables
from trove.db.sqlalchemy.migrate_repo.schema import DateTime
from trove.db.sqlalchemy.migrate_repo.schema import drop_tables
from trove.db.sqlalchemy.migrate_repo.schema import String
from trove.db.sqlalchemy.migrate_repo.schema import Table
-from trove.openstack.common import log as logging
logger = logging.getLogger('trove.db.sqlalchemy.migrate_repo.schema')
diff --git a/trove/db/sqlalchemy/migrate_repo/versions/032_clusters.py b/trove/db/sqlalchemy/migrate_repo/versions/032_clusters.py
index 590077d4..ca7a9e76 100644
--- a/trove/db/sqlalchemy/migrate_repo/versions/032_clusters.py
+++ b/trove/db/sqlalchemy/migrate_repo/versions/032_clusters.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from sqlalchemy import ForeignKey
from sqlalchemy.schema import Column
from sqlalchemy.schema import Index
@@ -26,7 +27,6 @@ from trove.db.sqlalchemy.migrate_repo.schema import Integer
from trove.db.sqlalchemy.migrate_repo.schema import String
from trove.db.sqlalchemy.migrate_repo.schema import Table
from trove.db.sqlalchemy import utils as db_utils
-from trove.openstack.common import log as logging
logger = logging.getLogger('trove.db.sqlalchemy.migrate_repo.schema')
diff --git a/trove/db/sqlalchemy/migration.py b/trove/db/sqlalchemy/migration.py
index c1798da9..134226a8 100644
--- a/trove/db/sqlalchemy/migration.py
+++ b/trove/db/sqlalchemy/migration.py
@@ -22,9 +22,9 @@ try:
from migrate.versioning import exceptions as versioning_exceptions
except ImportError:
from migrate import exceptions as versioning_exceptions
+from oslo_log import log as logging
from trove.common import exception
-from trove.openstack.common import log as logging
logger = logging.getLogger('trove.db.sqlalchemy.migration')
diff --git a/trove/db/sqlalchemy/session.py b/trove/db/sqlalchemy/session.py
index 3bb4db0e..4737f6b9 100644
--- a/trove/db/sqlalchemy/session.py
+++ b/trove/db/sqlalchemy/session.py
@@ -15,6 +15,7 @@
import contextlib
+from oslo_log import log as logging
import osprofiler.sqlalchemy
import sqlalchemy
from sqlalchemy import create_engine
@@ -24,7 +25,6 @@ from sqlalchemy.orm import sessionmaker
from trove.common import cfg
from trove.common.i18n import _
from trove.db.sqlalchemy import mappers
-from trove.openstack.common import log as logging
_ENGINE = None
_MAKER = None
diff --git a/trove/dns/designate/driver.py b/trove/dns/designate/driver.py
index e35cb737..72652eb2 100644
--- a/trove/dns/designate/driver.py
+++ b/trove/dns/designate/driver.py
@@ -22,11 +22,11 @@ import hashlib
from designateclient.v1 import Client
from designateclient.v1.records import Record
+from oslo_log import log as logging
from trove.common import cfg
from trove.common import exception
from trove.dns import driver
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/dns/manager.py b/trove/dns/manager.py
index c7dab51d..c4f35e9f 100644
--- a/trove/dns/manager.py
+++ b/trove/dns/manager.py
@@ -17,9 +17,10 @@
Dns manager.
"""
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import utils
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/dns/models.py b/trove/dns/models.py
index eb64b5ca..6c77c1bb 100644
--- a/trove/dns/models.py
+++ b/trove/dns/models.py
@@ -18,11 +18,12 @@ Model classes that map instance Ip to dns record.
"""
+from oslo_log import log as logging
+
from trove.common import exception
from trove.common.i18n import _
from trove.common.models import ModelBase
from trove.db import get_db_api
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/account/models.py b/trove/extensions/account/models.py
index 25858812..55eb614e 100644
--- a/trove/extensions/account/models.py
+++ b/trove/extensions/account/models.py
@@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.instance.models import DBInstance
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/account/service.py b/trove/extensions/account/service.py
index 92d3dcfc..0d538ea7 100644
--- a/trove/extensions/account/service.py
+++ b/trove/extensions/account/service.py
@@ -13,13 +13,14 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
import trove.common.apischema as apischema
from trove.common.auth import admin_context
from trove.common.i18n import _
from trove.common import wsgi
from trove.extensions.account import models
from trove.extensions.account import views
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/clusters/service.py b/trove/extensions/mgmt/clusters/service.py
index b9d9e3f9..f5bbfde7 100644
--- a/trove/extensions/mgmt/clusters/service.py
+++ b/trove/extensions/mgmt/clusters/service.py
@@ -14,6 +14,8 @@
# under the License.
+from oslo_log import log as logging
+
from trove.cluster.service import ClusterController
import trove.common.apischema as apischema
from trove.common.auth import admin_context
@@ -22,7 +24,6 @@ from trove.common.i18n import _
from trove.common import wsgi
from trove.extensions.mgmt.clusters import models
from trove.extensions.mgmt.clusters import views
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/configuration/service.py b/trove/extensions/mgmt/configuration/service.py
index 88a8b598..f5e555a6 100644
--- a/trove/extensions/mgmt/configuration/service.py
+++ b/trove/extensions/mgmt/configuration/service.py
@@ -14,6 +14,8 @@
# under the License.
+from oslo_log import log as logging
+
import trove.common.apischema as apischema
from trove.common.auth import admin_context
from trove.common import exception
@@ -22,7 +24,6 @@ from trove.common import wsgi
from trove.configuration import models as config_models
from trove.datastore import models as ds_models
from trove.extensions.mgmt.configuration import views
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/configuration/views.py b/trove/extensions/mgmt/configuration/views.py
index 08b51563..c55616fb 100644
--- a/trove/extensions/mgmt/configuration/views.py
+++ b/trove/extensions/mgmt/configuration/views.py
@@ -13,7 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
#
-from trove.openstack.common import log as logging
+from oslo_log import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/host/instance/service.py b/trove/extensions/mgmt/host/instance/service.py
index 9945d58b..25b6a9dd 100644
--- a/trove/extensions/mgmt/host/instance/service.py
+++ b/trove/extensions/mgmt/host/instance/service.py
@@ -14,11 +14,12 @@
# under the License.
+from oslo_log import log as logging
+
from trove.common import exception
from trove.common.i18n import _
from trove.common import wsgi
from trove.extensions.mgmt.host import models
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/host/models.py b/trove/extensions/mgmt/host/models.py
index 86e6b0c5..c4c2861d 100644
--- a/trove/extensions/mgmt/host/models.py
+++ b/trove/extensions/mgmt/host/models.py
@@ -18,6 +18,7 @@ Model classes that extend the instances functionality for MySQL instances.
"""
from novaclient import exceptions as nova_exceptions
+from oslo_log import log as logging
from trove.common import exception
from trove.common.i18n import _
@@ -26,7 +27,6 @@ from trove.common.remote import create_nova_client
from trove.instance.models import DBInstance
from trove.instance.models import InstanceServiceStatus
from trove.instance.models import SimpleInstance
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/host/service.py b/trove/extensions/mgmt/host/service.py
index 71fab781..aa29212e 100644
--- a/trove/extensions/mgmt/host/service.py
+++ b/trove/extensions/mgmt/host/service.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from trove.common.auth import admin_context
from trove.common.i18n import _
@@ -20,7 +21,6 @@ from trove.common import wsgi
from trove.extensions.mgmt.host import models
from trove.extensions.mgmt.host import views
from trove.instance.service import InstanceController
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/instances/models.py b/trove/extensions/mgmt/instances/models.py
index 87d4d5fe..fb0676da 100644
--- a/trove/extensions/mgmt/instances/models.py
+++ b/trove/extensions/mgmt/instances/models.py
@@ -13,6 +13,8 @@
# under the License.
import datetime
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common import remote
@@ -21,7 +23,6 @@ from trove.extensions.mysql import models as mysql_models
from trove.instance import models as imodels
from trove.instance import models as instance_models
from trove.instance.models import load_instance, InstanceServiceStatus
-from trove.openstack.common import log as logging
from trove import rpc
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/instances/service.py b/trove/extensions/mgmt/instances/service.py
index 22e25bdc..0b8c505b 100644
--- a/trove/extensions/mgmt/instances/service.py
+++ b/trove/extensions/mgmt/instances/service.py
@@ -15,6 +15,7 @@
from novaclient import exceptions as nova_exceptions
+from oslo_log import log as logging
from trove.backup.models import Backup
import trove.common.apischema as apischema
@@ -29,7 +30,6 @@ from trove.extensions.mgmt.instances.views import HwInfoView
from trove.extensions.mysql import models as mysql_models
from trove.instance import models as instance_models
from trove.instance.service import InstanceController
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/quota/service.py b/trove/extensions/mgmt/quota/service.py
index d1417237..454e4815 100644
--- a/trove/extensions/mgmt/quota/service.py
+++ b/trove/extensions/mgmt/quota/service.py
@@ -13,11 +13,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common.auth import admin_context
from trove.common import exception
from trove.common import wsgi
from trove.extensions.mgmt.quota import views
-from trove.openstack.common import log as logging
from trove.quota.models import Quota
from trove.quota.quota import QUOTAS as quota_engine
diff --git a/trove/extensions/mgmt/upgrade/service.py b/trove/extensions/mgmt/upgrade/service.py
index 7c6687d4..55596a8d 100644
--- a/trove/extensions/mgmt/upgrade/service.py
+++ b/trove/extensions/mgmt/upgrade/service.py
@@ -13,12 +13,13 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
import trove.common.apischema as apischema
from trove.common.auth import admin_context
from trove.common.i18n import _
from trove.common import wsgi
from trove.extensions.mgmt.upgrade.models import UpgradeMessageSender
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mgmt/volume/models.py b/trove/extensions/mgmt/volume/models.py
index 9650d48c..0f8b4eb8 100644
--- a/trove/extensions/mgmt/volume/models.py
+++ b/trove/extensions/mgmt/volume/models.py
@@ -17,7 +17,7 @@
Model classes that extend the instances functionality for volumes.
"""
-from trove.openstack.common import log as logging
+from oslo_log import log as logging
from trove.common.remote import create_cinder_client
diff --git a/trove/extensions/mgmt/volume/service.py b/trove/extensions/mgmt/volume/service.py
index a5c55a4e..c6b1b992 100644
--- a/trove/extensions/mgmt/volume/service.py
+++ b/trove/extensions/mgmt/volume/service.py
@@ -14,12 +14,13 @@
# under the License.
+from oslo_log import log as logging
+
from trove.common.auth import admin_context
from trove.common.i18n import _
from trove.common import wsgi
from trove.extensions.mgmt.volume import models
from trove.extensions.mgmt.volume import views
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mysql/models.py b/trove/extensions/mysql/models.py
index abaf7011..7190504d 100644
--- a/trove/extensions/mysql/models.py
+++ b/trove/extensions/mysql/models.py
@@ -17,6 +17,8 @@
Model classes that extend the instances functionality for MySQL instances.
"""
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.remote import create_guest_client
@@ -24,7 +26,6 @@ from trove.common import utils
from trove.db import get_db_api
from trove.guestagent.db import models as guest_models
from trove.instance import models as base_models
-from trove.openstack.common import log as logging
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/mysql/service.py b/trove/extensions/mysql/service.py
index 67651819..932ae6c9 100644
--- a/trove/extensions/mysql/service.py
+++ b/trove/extensions/mysql/service.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from oslo_utils import strutils
import webob.exc
@@ -28,7 +29,6 @@ from trove.extensions.mysql.common import unquote_user_host
from trove.extensions.mysql import models
from trove.extensions.mysql import views
from trove.guestagent.db import models as guest_models
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/routes/account.py b/trove/extensions/routes/account.py
index be46521d..19d21114 100644
--- a/trove/extensions/routes/account.py
+++ b/trove/extensions/routes/account.py
@@ -13,7 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from trove.openstack.common import log as logging
+from oslo_log import log as logging
from trove.common import extensions
from trove.extensions.account import service
diff --git a/trove/extensions/routes/mgmt.py b/trove/extensions/routes/mgmt.py
index 90ee509b..e80dbdb8 100644
--- a/trove/extensions/routes/mgmt.py
+++ b/trove/extensions/routes/mgmt.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import extensions
from trove.extensions.mgmt.clusters.service import MgmtClusterController
from trove.extensions.mgmt.configuration import service as conf_service
@@ -22,7 +24,6 @@ from trove.extensions.mgmt.instances.service import MgmtInstanceController
from trove.extensions.mgmt.quota.service import QuotaController
from trove.extensions.mgmt.upgrade.service import UpgradeController
from trove.extensions.mgmt.volume.service import StorageController
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/routes/mysql.py b/trove/extensions/routes/mysql.py
index 500e48b9..5f138109 100644
--- a/trove/extensions/routes/mysql.py
+++ b/trove/extensions/routes/mysql.py
@@ -13,7 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from trove.openstack.common import log as logging
+from oslo_log import log as logging
from trove.common import extensions
from trove.extensions.mysql import service
diff --git a/trove/extensions/routes/security_group.py b/trove/extensions/routes/security_group.py
index f93b303d..c485a2ec 100644
--- a/trove/extensions/routes/security_group.py
+++ b/trove/extensions/routes/security_group.py
@@ -15,10 +15,11 @@
#
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import extensions
from trove.extensions.security_group import service
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/extensions/security_group/models.py b/trove/extensions/security_group/models.py
index 74d87285..c36c06d7 100644
--- a/trove/extensions/security_group/models.py
+++ b/trove/extensions/security_group/models.py
@@ -17,12 +17,13 @@
"""
Model classes for Security Groups and Security Group Rules on instances.
"""
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
from trove.common.models import NetworkRemoteModelBase
from trove.db.models import DatabaseModelBase
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/extensions/security_group/service.py b/trove/extensions/security_group/service.py
index d3ad2649..02375a34 100644
--- a/trove/extensions/security_group/service.py
+++ b/trove/extensions/security_group/service.py
@@ -13,6 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
#
+
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
@@ -22,7 +25,6 @@ from trove.datastore.models import DatastoreVersion
from trove.extensions.security_group import models
from trove.extensions.security_group import views
from trove.instance import models as instance_models
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/extensions/security_group/views.py b/trove/extensions/security_group/views.py
index 12e208bb..f779c101 100644
--- a/trove/extensions/security_group/views.py
+++ b/trove/extensions/security_group/views.py
@@ -16,7 +16,7 @@
import os
-from trove.openstack.common import log as logging
+from oslo_log import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/api.py b/trove/guestagent/api.py
index e77db550..3ab6c74a 100644
--- a/trove/guestagent/api.py
+++ b/trove/guestagent/api.py
@@ -18,6 +18,7 @@ Handles all request to the Platform or Guest VM
"""
from eventlet import Timeout
+from oslo_log import log as logging
import oslo_messaging as messaging
from oslo_messaging.rpc.client import RemoteError
@@ -25,7 +26,6 @@ from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
import trove.common.rpc.version as rpc_version
-from trove.openstack.common import log as logging
from trove import rpc
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/cassandra/manager.py b/trove/guestagent/datastore/experimental/cassandra/manager.py
index aa74b1e2..f264972c 100644
--- a/trove/guestagent/datastore/experimental/cassandra/manager.py
+++ b/trove/guestagent/datastore/experimental/cassandra/manager.py
@@ -16,6 +16,7 @@
import os
+from oslo_log import log as logging
from oslo_service import periodic_task
from trove.common import cfg
@@ -24,7 +25,6 @@ from trove.common.i18n import _
from trove.guestagent.datastore.experimental.cassandra import service
from trove.guestagent import dbaas
from trove.guestagent import volume
-from trove.openstack.common import log as logging
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/cassandra/service.py b/trove/guestagent/datastore/experimental/cassandra/service.py
index d9db8506..7cebacd9 100644
--- a/trove/guestagent/datastore/experimental/cassandra/service.py
+++ b/trove/guestagent/datastore/experimental/cassandra/service.py
@@ -16,6 +16,7 @@
import os
import tempfile
+from oslo_log import log as logging
from oslo_utils import netutils
import yaml
@@ -29,7 +30,6 @@ from trove.guestagent.common.operating_system import FileMode
from trove.guestagent.datastore.experimental.cassandra import system
from trove.guestagent.datastore import service
from trove.guestagent import pkg
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/couchbase/manager.py b/trove/guestagent/datastore/experimental/couchbase/manager.py
index 3789fe87..20d4f6f3 100644
--- a/trove/guestagent/datastore/experimental/couchbase/manager.py
+++ b/trove/guestagent/datastore/experimental/couchbase/manager.py
@@ -15,6 +15,7 @@
import os
+from oslo_log import log as logging
from oslo_service import periodic_task
from trove.common import cfg
@@ -26,7 +27,6 @@ from trove.guestagent.datastore.experimental.couchbase import service
from trove.guestagent.datastore.experimental.couchbase import system
from trove.guestagent import dbaas
from trove.guestagent import volume
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/couchbase/service.py b/trove/guestagent/datastore/experimental/couchbase/service.py
index fb202f3b..c2fc4f13 100644
--- a/trove/guestagent/datastore/experimental/couchbase/service.py
+++ b/trove/guestagent/datastore/experimental/couchbase/service.py
@@ -19,6 +19,7 @@ import stat
import subprocess
import tempfile
+from oslo_log import log as logging
from oslo_utils import netutils
import pexpect
@@ -32,7 +33,6 @@ from trove.guestagent.datastore.experimental.couchbase import system
from trove.guestagent.datastore import service
from trove.guestagent.db import models
from trove.guestagent import pkg
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/couchdb/manager.py b/trove/guestagent/datastore/experimental/couchdb/manager.py
index b2a5bdf9..43f25d51 100644
--- a/trove/guestagent/datastore/experimental/couchdb/manager.py
+++ b/trove/guestagent/datastore/experimental/couchdb/manager.py
@@ -15,6 +15,7 @@
import os
+from oslo_log import log as logging
from oslo_service import periodic_task
from trove.common import cfg
@@ -23,7 +24,6 @@ from trove.common.i18n import _
from trove.guestagent.datastore.experimental.couchdb import service
from trove.guestagent import dbaas
from trove.guestagent import volume
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/couchdb/service.py b/trove/guestagent/datastore/experimental/couchdb/service.py
index 39c7949f..66a4b15e 100644
--- a/trove/guestagent/datastore/experimental/couchdb/service.py
+++ b/trove/guestagent/datastore/experimental/couchdb/service.py
@@ -15,6 +15,8 @@
import json
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
@@ -25,7 +27,6 @@ from trove.guestagent.common.operating_system import FileMode
from trove.guestagent.datastore.experimental.couchdb import system
from trove.guestagent.datastore import service
from trove.guestagent import pkg
-from trove.openstack.common import log as logging
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/db2/manager.py b/trove/guestagent/datastore/experimental/db2/manager.py
index 6c431dd9..e3d5157d 100644
--- a/trove/guestagent/datastore/experimental/db2/manager.py
+++ b/trove/guestagent/datastore/experimental/db2/manager.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from oslo_service import periodic_task
from trove.common import cfg
@@ -21,7 +22,6 @@ from trove.guestagent.datastore.experimental.db2 import service
from trove.guestagent import dbaas
from trove.guestagent import volume
from trove.openstack.common.gettextutils import _
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/db2/service.py b/trove/guestagent/datastore/experimental/db2/service.py
index eefed321..1a3628b7 100644
--- a/trove/guestagent/datastore/experimental/db2/service.py
+++ b/trove/guestagent/datastore/experimental/db2/service.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common import instance as rd_instance
@@ -22,7 +24,6 @@ from trove.guestagent.datastore.experimental.db2 import system
from trove.guestagent.datastore import service
from trove.guestagent.db import models
from trove.openstack.common.gettextutils import _
-from trove.openstack.common import log as logging
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/mongodb/manager.py b/trove/guestagent/datastore/experimental/mongodb/manager.py
index 0a337f99..5e280f80 100644
--- a/trove/guestagent/datastore/experimental/mongodb/manager.py
+++ b/trove/guestagent/datastore/experimental/mongodb/manager.py
@@ -15,6 +15,7 @@
import os
+from oslo_log import log as logging
from oslo_service import periodic_task
from oslo_utils import netutils
@@ -28,7 +29,6 @@ from trove.guestagent.datastore.experimental.mongodb import service
from trove.guestagent.datastore.experimental.mongodb import system
from trove.guestagent import dbaas
from trove.guestagent import volume
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/mongodb/service.py b/trove/guestagent/datastore/experimental/mongodb/service.py
index fe0fb8fb..69085d40 100644
--- a/trove/guestagent/datastore/experimental/mongodb/service.py
+++ b/trove/guestagent/datastore/experimental/mongodb/service.py
@@ -18,6 +18,7 @@ import os
import re
import tempfile
+from oslo_log import log as logging
from oslo_utils import netutils
import pymongo
@@ -32,7 +33,6 @@ from trove.guestagent.common import operating_system
from trove.guestagent.datastore.experimental.mongodb import system
from trove.guestagent.datastore import service
from trove.guestagent.db import models
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/postgresql/manager.py b/trove/guestagent/datastore/experimental/postgresql/manager.py
index d6a19db8..9dbe33a3 100644
--- a/trove/guestagent/datastore/experimental/postgresql/manager.py
+++ b/trove/guestagent/datastore/experimental/postgresql/manager.py
@@ -17,6 +17,7 @@
import os
from oslo_config import cfg as os_cfg
+from oslo_log import log as logging
from oslo_service import periodic_task
from .service.config import PgSqlConfig
@@ -29,7 +30,6 @@ from trove.common import cfg
from trove.guestagent import backup
from trove.guestagent import dbaas
from trove.guestagent import volume
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/postgresql/pgutil.py b/trove/guestagent/datastore/experimental/postgresql/pgutil.py
index fa95abef..3695bf10 100644
--- a/trove/guestagent/datastore/experimental/postgresql/pgutil.py
+++ b/trove/guestagent/datastore/experimental/postgresql/pgutil.py
@@ -17,10 +17,11 @@ import os
import tempfile
import uuid
+from oslo_log import log as logging
+
from trove.common import utils
from trove.guestagent.common import operating_system
from trove.guestagent.common.operating_system import FileMode
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/postgresql/service/access.py b/trove/guestagent/datastore/experimental/postgresql/service/access.py
index 787eff93..51243649 100644
--- a/trove/guestagent/datastore/experimental/postgresql/service/access.py
+++ b/trove/guestagent/datastore/experimental/postgresql/service/access.py
@@ -13,10 +13,11 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.i18n import _
from trove.guestagent.datastore.experimental.postgresql import pgutil
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/postgresql/service/config.py b/trove/guestagent/datastore/experimental/postgresql/service/config.py
index 42221695..7888f6cc 100644
--- a/trove/guestagent/datastore/experimental/postgresql/service/config.py
+++ b/trove/guestagent/datastore/experimental/postgresql/service/config.py
@@ -15,6 +15,8 @@
import re
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.i18n import _
from trove.common import utils
@@ -24,7 +26,6 @@ from trove.guestagent.datastore.experimental.postgresql.service.process import(
PgSqlProcess)
from trove.guestagent.datastore.experimental.postgresql.service.status import(
PgSqlAppStatus)
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/postgresql/service/database.py b/trove/guestagent/datastore/experimental/postgresql/service/database.py
index 9443b535..f7d62512 100644
--- a/trove/guestagent/datastore/experimental/postgresql/service/database.py
+++ b/trove/guestagent/datastore/experimental/postgresql/service/database.py
@@ -15,10 +15,11 @@
import itertools
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.i18n import _
from trove.guestagent.datastore.experimental.postgresql import pgutil
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/postgresql/service/install.py b/trove/guestagent/datastore/experimental/postgresql/service/install.py
index d928961f..85e8fc47 100644
--- a/trove/guestagent/datastore/experimental/postgresql/service/install.py
+++ b/trove/guestagent/datastore/experimental/postgresql/service/install.py
@@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.i18n import _
from trove.common import instance
@@ -21,7 +23,6 @@ from trove.guestagent.datastore.experimental.postgresql.service.process import(
from trove.guestagent.datastore.experimental.postgresql.service.status import(
PgSqlAppStatus)
from trove.guestagent import pkg
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/postgresql/service/process.py b/trove/guestagent/datastore/experimental/postgresql/service/process.py
index 2b4c7cb1..4495895d 100644
--- a/trove/guestagent/datastore/experimental/postgresql/service/process.py
+++ b/trove/guestagent/datastore/experimental/postgresql/service/process.py
@@ -13,12 +13,13 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import utils
from trove.guestagent.common import operating_system
from trove.guestagent.datastore.experimental.postgresql.service.status import (
PgSqlAppStatus)
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/postgresql/service/root.py b/trove/guestagent/datastore/experimental/postgresql/service/root.py
index 33e10747..01039e16 100644
--- a/trove/guestagent/datastore/experimental/postgresql/service/root.py
+++ b/trove/guestagent/datastore/experimental/postgresql/service/root.py
@@ -15,9 +15,10 @@
import uuid
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.guestagent.datastore.experimental.postgresql import pgutil
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/postgresql/service/status.py b/trove/guestagent/datastore/experimental/postgresql/service/status.py
index d8f860d1..987d0625 100644
--- a/trove/guestagent/datastore/experimental/postgresql/service/status.py
+++ b/trove/guestagent/datastore/experimental/postgresql/service/status.py
@@ -15,12 +15,13 @@
import os
+from oslo_log import log as logging
+
from trove.common import exception
from trove.common import instance
from trove.common import utils
from trove.guestagent.datastore.experimental.postgresql import pgutil
from trove.guestagent.datastore import service
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/postgresql/service/users.py b/trove/guestagent/datastore/experimental/postgresql/service/users.py
index c3972d7a..eaa85756 100644
--- a/trove/guestagent/datastore/experimental/postgresql/service/users.py
+++ b/trove/guestagent/datastore/experimental/postgresql/service/users.py
@@ -15,12 +15,13 @@
import itertools
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.i18n import _
from trove.guestagent.datastore.experimental.postgresql import pgutil
from trove.guestagent.datastore.experimental.postgresql.service.access import (
PgSqlAccess)
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/redis/manager.py b/trove/guestagent/datastore/experimental/redis/manager.py
index a452d9ba..52fe4012 100644
--- a/trove/guestagent/datastore/experimental/redis/manager.py
+++ b/trove/guestagent/datastore/experimental/redis/manager.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from oslo_service import periodic_task
from trove.common import cfg
@@ -24,7 +25,6 @@ from trove.guestagent.datastore.experimental.redis.service import (
RedisApp)
from trove.guestagent import dbaas
from trove.guestagent import volume
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/experimental/redis/service.py b/trove/guestagent/datastore/experimental/redis/service.py
index 020cd098..b216378e 100644
--- a/trove/guestagent/datastore/experimental/redis/service.py
+++ b/trove/guestagent/datastore/experimental/redis/service.py
@@ -17,6 +17,8 @@ import os
import redis
from redis.exceptions import BusyLoadingError, ConnectionError
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
@@ -29,7 +31,6 @@ from trove.guestagent.common import operating_system
from trove.guestagent.datastore.experimental.redis import system
from trove.guestagent.datastore import service
from trove.guestagent import pkg
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
TIME_OUT = 1200 # FIXME(pmalik): should probably use config timeout
diff --git a/trove/guestagent/datastore/experimental/vertica/manager.py b/trove/guestagent/datastore/experimental/vertica/manager.py
index 68b251e4..11539ee4 100644
--- a/trove/guestagent/datastore/experimental/vertica/manager.py
+++ b/trove/guestagent/datastore/experimental/vertica/manager.py
@@ -13,6 +13,7 @@
import os
+from oslo_log import log as logging
from oslo_service import periodic_task
from trove.common import cfg
@@ -24,7 +25,6 @@ from trove.guestagent.datastore.experimental.vertica.service import (
from trove.guestagent.datastore.experimental.vertica.service import VerticaApp
from trove.guestagent import dbaas
from trove.guestagent import volume
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/experimental/vertica/service.py b/trove/guestagent/datastore/experimental/vertica/service.py
index 928183b4..62080754 100644
--- a/trove/guestagent/datastore/experimental/vertica/service.py
+++ b/trove/guestagent/datastore/experimental/vertica/service.py
@@ -16,6 +16,7 @@ import os
import subprocess
import tempfile
+from oslo_log import log as logging
from oslo_utils import netutils
from trove.common import cfg
@@ -27,7 +28,6 @@ from trove.guestagent.datastore.experimental.vertica import system
from trove.guestagent.datastore import service
from trove.guestagent import pkg
from trove.guestagent import volume
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/datastore/mysql/manager.py b/trove/guestagent/datastore/mysql/manager.py
index 35d1b962..1d743e75 100644
--- a/trove/guestagent/datastore/mysql/manager.py
+++ b/trove/guestagent/datastore/mysql/manager.py
@@ -18,6 +18,7 @@
import os
+from oslo_log import log as logging
from oslo_service import periodic_task
from trove.common import cfg
@@ -32,7 +33,6 @@ from trove.guestagent.datastore.mysql.service import MySqlAppStatus
from trove.guestagent import dbaas
from trove.guestagent.strategies.replication import get_replication_strategy
from trove.guestagent import volume
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/mysql/service.py b/trove/guestagent/datastore/mysql/service.py
index 1dce3aba..e012c63f 100644
--- a/trove/guestagent/datastore/mysql/service.py
+++ b/trove/guestagent/datastore/mysql/service.py
@@ -21,6 +21,7 @@ import os
import re
import uuid
+from oslo_log import log as logging
import sqlalchemy
from sqlalchemy import exc
from sqlalchemy import interfaces
@@ -39,7 +40,6 @@ from trove.guestagent.common import sql_query
from trove.guestagent.datastore import service
from trove.guestagent.db import models
from trove.guestagent import pkg
-from trove.openstack.common import log as logging
ADMIN_USER_NAME = "os_admin"
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/datastore/service.py b/trove/guestagent/datastore/service.py
index fdc80d2f..fc4110cd 100644
--- a/trove/guestagent/datastore/service.py
+++ b/trove/guestagent/datastore/service.py
@@ -16,13 +16,14 @@
import time
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import context as trove_context
from trove.common.i18n import _
from trove.common import instance
from trove.conductor import api as conductor_api
from trove.guestagent.common import timeutils
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/dbaas.py b/trove/guestagent/dbaas.py
index f38914eb..16fc4e80 100644
--- a/trove/guestagent/dbaas.py
+++ b/trove/guestagent/dbaas.py
@@ -26,12 +26,13 @@ handles RPC calls relating to Platform specific operations.
from itertools import chain
import os
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.i18n import _
-from trove.openstack.common import log
-LOG = log.getLogger(__name__)
+LOG = logging.getLogger(__name__)
defaults = {
'mysql':
'trove.guestagent.datastore.mysql.manager.Manager',
diff --git a/trove/guestagent/models.py b/trove/guestagent/models.py
index 85ffe86e..07fbad23 100644
--- a/trove/guestagent/models.py
+++ b/trove/guestagent/models.py
@@ -15,13 +15,14 @@
from datetime import datetime
from datetime import timedelta
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
from trove.common import utils
from trove.db import get_db_api
from trove.db import models as dbmodels
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/pkg.py b/trove/guestagent/pkg.py
index c26e233a..bc480790 100644
--- a/trove/guestagent/pkg.py
+++ b/trove/guestagent/pkg.py
@@ -22,6 +22,7 @@ import re
import subprocess
from tempfile import NamedTemporaryFile
+from oslo_log import log as logging
import pexpect
import six
@@ -30,7 +31,6 @@ from trove.common.exception import ProcessExecutionError
from trove.common.i18n import _
from trove.common import utils
from trove.guestagent.common import operating_system
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/backup/__init__.py b/trove/guestagent/strategies/backup/__init__.py
index a8b4b6db..2da9dee9 100644
--- a/trove/guestagent/strategies/backup/__init__.py
+++ b/trove/guestagent/strategies/backup/__init__.py
@@ -14,8 +14,9 @@
# under the License.
#
+from oslo_log import log as logging
+
from trove.guestagent.strategy import Strategy
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/backup/base.py b/trove/guestagent/strategies/backup/base.py
index e038ac2d..631a41a2 100644
--- a/trove/guestagent/strategies/backup/base.py
+++ b/trove/guestagent/strategies/backup/base.py
@@ -16,10 +16,11 @@
import os
import signal
+from oslo_log import log as logging
+
from eventlet.green import subprocess
from trove.common import cfg, utils
from trove.guestagent.strategy import Strategy
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/guestagent/strategies/backup/experimental/couchbase_impl.py b/trove/guestagent/strategies/backup/experimental/couchbase_impl.py
index 5a761f89..6884be05 100644
--- a/trove/guestagent/strategies/backup/experimental/couchbase_impl.py
+++ b/trove/guestagent/strategies/backup/experimental/couchbase_impl.py
@@ -16,6 +16,8 @@
import json
+from oslo_log import log as logging
+
from trove.common import exception
from trove.common.i18n import _
from trove.common import utils
@@ -23,7 +25,6 @@ from trove.guestagent.common import operating_system
from trove.guestagent.datastore.experimental.couchbase import service
from trove.guestagent.datastore.experimental.couchbase import system
from trove.guestagent.strategies.backup import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/backup/experimental/mongo_impl.py b/trove/guestagent/strategies/backup/experimental/mongo_impl.py
index a047033f..30dea546 100644
--- a/trove/guestagent/strategies/backup/experimental/mongo_impl.py
+++ b/trove/guestagent/strategies/backup/experimental/mongo_impl.py
@@ -15,6 +15,8 @@
# under the License.
#
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
@@ -25,7 +27,6 @@ from trove.guestagent.datastore.experimental.mongodb import (
from trove.guestagent.datastore.experimental.mongodb import (
system as mongo_system)
from trove.guestagent.strategies.backup import base
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/guestagent/strategies/backup/experimental/postgresql_impl.py b/trove/guestagent/strategies/backup/experimental/postgresql_impl.py
index 7442cc4e..ae704930 100644
--- a/trove/guestagent/strategies/backup/experimental/postgresql_impl.py
+++ b/trove/guestagent/strategies/backup/experimental/postgresql_impl.py
@@ -13,8 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.guestagent.strategies.backup import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/backup/mysql_impl.py b/trove/guestagent/strategies/backup/mysql_impl.py
index 013a2b7c..5be6a369 100644
--- a/trove/guestagent/strategies/backup/mysql_impl.py
+++ b/trove/guestagent/strategies/backup/mysql_impl.py
@@ -17,11 +17,12 @@
import re
+from oslo_log import log as logging
+
from trove.guestagent.datastore.mysql.service import ADMIN_USER_NAME
from trove.guestagent.datastore.mysql.service import get_auth_password
from trove.guestagent.datastore.mysql.service import get_datadir
from trove.guestagent.strategies.backup import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/replication/__init__.py b/trove/guestagent/strategies/replication/__init__.py
index fe477e7c..49a4db1a 100644
--- a/trove/guestagent/strategies/replication/__init__.py
+++ b/trove/guestagent/strategies/replication/__init__.py
@@ -14,8 +14,9 @@
# under the License.
#
+from oslo_log import log as logging
+
from trove.guestagent.strategy import Strategy
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/replication/mysql_base.py b/trove/guestagent/strategies/replication/mysql_base.py
index 31be26135..45f9e439 100644
--- a/trove/guestagent/strategies/replication/mysql_base.py
+++ b/trove/guestagent/strategies/replication/mysql_base.py
@@ -17,6 +17,7 @@
import abc
import uuid
+from oslo_log import log as logging
from oslo_utils import netutils
from trove.common import cfg
@@ -27,7 +28,6 @@ from trove.guestagent.db import models
from trove.guestagent.strategies import backup
from trove.guestagent.strategies.replication import base
from trove.openstack.common.gettextutils import _
-from trove.openstack.common import log as logging
AGENT = BackupAgent()
CONF = cfg.CONF
diff --git a/trove/guestagent/strategies/replication/mysql_binlog.py b/trove/guestagent/strategies/replication/mysql_binlog.py
index fb66eb70..91b042d1 100644
--- a/trove/guestagent/strategies/replication/mysql_binlog.py
+++ b/trove/guestagent/strategies/replication/mysql_binlog.py
@@ -16,6 +16,8 @@
import csv
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import exception
from trove.common.i18n import _
@@ -24,7 +26,6 @@ from trove.guestagent.common import operating_system
from trove.guestagent.common.operating_system import FileMode
from trove.guestagent.datastore.mysql.service import get_datadir
from trove.guestagent.strategies.replication import mysql_base
-from trove.openstack.common import log as logging
AGENT = BackupAgent()
CONF = cfg.CONF
diff --git a/trove/guestagent/strategies/replication/mysql_gtid.py b/trove/guestagent/strategies/replication/mysql_gtid.py
index 1d9039c6..f76aa04f 100644
--- a/trove/guestagent/strategies/replication/mysql_gtid.py
+++ b/trove/guestagent/strategies/replication/mysql_gtid.py
@@ -14,10 +14,11 @@
# under the License.
#
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.guestagent.backup.backupagent import BackupAgent
from trove.guestagent.strategies.replication import mysql_base
-from trove.openstack.common import log as logging
AGENT = BackupAgent()
CONF = cfg.CONF
diff --git a/trove/guestagent/strategies/restore/__init__.py b/trove/guestagent/strategies/restore/__init__.py
index d6a368ec..9e74efb1 100644
--- a/trove/guestagent/strategies/restore/__init__.py
+++ b/trove/guestagent/strategies/restore/__init__.py
@@ -12,8 +12,9 @@
# See the License for the specific language governing permissions and
# limitations under the License.
+from oslo_log import log as logging
+
from trove.guestagent.strategy import Strategy
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/restore/base.py b/trove/guestagent/strategies/restore/base.py
index a30e2b87..b997dda7 100644
--- a/trove/guestagent/strategies/restore/base.py
+++ b/trove/guestagent/strategies/restore/base.py
@@ -13,12 +13,13 @@
# License for the specific language governing permissions and limitations
# under the License.
#
+
from eventlet.green import subprocess
+from oslo_log import log as logging
from trove.common import cfg
from trove.common import utils
from trove.guestagent.strategy import Strategy
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/strategies/restore/experimental/couchbase_impl.py b/trove/guestagent/strategies/restore/experimental/couchbase_impl.py
index 436b155a..db3ec0fc 100644
--- a/trove/guestagent/strategies/restore/experimental/couchbase_impl.py
+++ b/trove/guestagent/strategies/restore/experimental/couchbase_impl.py
@@ -18,6 +18,8 @@ import json
import os.path
import time
+from oslo_log import log as logging
+
from trove.common import exception
from trove.common import utils
from trove.guestagent.common import operating_system
@@ -25,7 +27,6 @@ from trove.guestagent.datastore.experimental.couchbase import service
from trove.guestagent.datastore.experimental.couchbase import system
from trove.guestagent import dbaas
from trove.guestagent.strategies.restore import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/restore/experimental/mongo_impl.py b/trove/guestagent/strategies/restore/experimental/mongo_impl.py
index 27faaf1c..59e6905c 100644
--- a/trove/guestagent/strategies/restore/experimental/mongo_impl.py
+++ b/trove/guestagent/strategies/restore/experimental/mongo_impl.py
@@ -15,14 +15,15 @@
# under the License.
#
+from oslo_log import log as logging
from oslo_utils import netutils
+
from trove.common import cfg
from trove.common import utils
from trove.guestagent.common import operating_system
from trove.guestagent.datastore.experimental.mongodb import (
service as mongo_service)
from trove.guestagent.strategies.restore import base
-from trove.openstack.common import log as logging
CONF = cfg.CONF
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/restore/experimental/postgresql_impl.py b/trove/guestagent/strategies/restore/experimental/postgresql_impl.py
index b4821e47..b64cc64f 100644
--- a/trove/guestagent/strategies/restore/experimental/postgresql_impl.py
+++ b/trove/guestagent/strategies/restore/experimental/postgresql_impl.py
@@ -16,10 +16,10 @@
import re
from eventlet.green import subprocess
+from oslo_log import log as logging
from trove.common import exception
from trove.guestagent.strategies.restore import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/restore/mysql_impl.py b/trove/guestagent/strategies/restore/mysql_impl.py
index 51a93a89..d4b125cd 100644
--- a/trove/guestagent/strategies/restore/mysql_impl.py
+++ b/trove/guestagent/strategies/restore/mysql_impl.py
@@ -19,6 +19,7 @@ import os
import re
import tempfile
+from oslo_log import log as logging
import pexpect
from trove.common import exception
@@ -28,7 +29,6 @@ from trove.guestagent.common import operating_system
from trove.guestagent.common.operating_system import FileMode
import trove.guestagent.datastore.mysql.service as dbaas
from trove.guestagent.strategies.restore import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/storage/__init__.py b/trove/guestagent/strategies/storage/__init__.py
index 7780c776..bfb8384e 100644
--- a/trove/guestagent/strategies/storage/__init__.py
+++ b/trove/guestagent/strategies/storage/__init__.py
@@ -14,8 +14,9 @@
# under the License.
#
+from oslo_log import log as logging
+
from trove.guestagent.strategy import Strategy
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/strategies/storage/swift.py b/trove/guestagent/strategies/storage/swift.py
index 62798b26..b4af1a65 100644
--- a/trove/guestagent/strategies/storage/swift.py
+++ b/trove/guestagent/strategies/storage/swift.py
@@ -16,11 +16,12 @@
import hashlib
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.i18n import _
from trove.common.remote import create_swift_client
from trove.guestagent.strategies.storage import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/guestagent/strategy.py b/trove/guestagent/strategy.py
index 1365fc24..8139748a 100644
--- a/trove/guestagent/strategy.py
+++ b/trove/guestagent/strategy.py
@@ -16,10 +16,10 @@
import abc
+from oslo_log import log as logging
import six
from trove.common import utils
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/guestagent/volume.py b/trove/guestagent/volume.py
index a48e1329..10b8746e 100644
--- a/trove/guestagent/volume.py
+++ b/trove/guestagent/volume.py
@@ -16,6 +16,7 @@
import os
from tempfile import NamedTemporaryFile
+from oslo_log import log as logging
import pexpect
from trove.common import cfg
@@ -24,7 +25,6 @@ from trove.common.exception import ProcessExecutionError
from trove.common.i18n import _
from trove.common import utils
from trove.guestagent.common import operating_system
-from trove.openstack.common import log as logging
TMP_MOUNT_POINT = "/mnt/volume"
diff --git a/trove/instance/models.py b/trove/instance/models.py
index 9a002a06..8efc2b8b 100644
--- a/trove/instance/models.py
+++ b/trove/instance/models.py
@@ -22,6 +22,7 @@ import re
from novaclient import exceptions as nova_exceptions
from oslo_config.cfg import NoSuchOptError
+from oslo_log import log as logging
from trove.backup.models import Backup
from trove.common import cfg
@@ -41,7 +42,6 @@ from trove.db import models as dbmodels
from trove.extensions.security_group.models import SecurityGroup
from trove.instance.tasks import InstanceTask
from trove.instance.tasks import InstanceTasks
-from trove.openstack.common import log as logging
from trove.quota.quota import run_with_quotas
from trove.taskmanager import api as task_api
diff --git a/trove/instance/service.py b/trove/instance/service.py
index 3c006800..7a62ef06 100644
--- a/trove/instance/service.py
+++ b/trove/instance/service.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from oslo_utils import strutils
import webob.exc
@@ -30,7 +31,6 @@ from trove.datastore import models as datastore_models
from trove.extensions.mysql.common import populate_users
from trove.extensions.mysql.common import populate_validated_databases
from trove.instance import models, views
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/instance/views.py b/trove/instance/views.py
index 24555f9a..59b11f81 100644
--- a/trove/instance/views.py
+++ b/trove/instance/views.py
@@ -13,10 +13,11 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common.views import create_links
from trove.instance import models
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
CONF = cfg.CONF
diff --git a/trove/network/neutron.py b/trove/network/neutron.py
index 77396027..6f8e966d 100644
--- a/trove/network/neutron.py
+++ b/trove/network/neutron.py
@@ -15,11 +15,11 @@
#
from neutronclient.common import exceptions as neutron_exceptions
+from oslo_log import log as logging
from trove.common import exception
from trove.common import remote
from trove.network import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/network/nova.py b/trove/network/nova.py
index d6baf479..5f0623c5 100644
--- a/trove/network/nova.py
+++ b/trove/network/nova.py
@@ -15,11 +15,11 @@
#
from novaclient import exceptions as nova_exceptions
+from oslo_log import log as logging
from trove.common import exception
from trove.common import remote
from trove.network import base
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/openstack/common/log.py b/trove/openstack/common/log.py
deleted file mode 100644
index ffd0e702..00000000
--- a/trove/openstack/common/log.py
+++ /dev/null
@@ -1,718 +0,0 @@
-# Copyright 2011 OpenStack Foundation.
-# Copyright 2010 United States Government as represented by the
-# Administrator of the National Aeronautics and Space Administration.
-# 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.
-
-"""OpenStack logging handler.
-
-This module adds to logging functionality by adding the option to specify
-a context object when calling the various log methods. If the context object
-is not specified, default formatting is used. Additionally, an instance uuid
-may be passed as part of the log message, which is intended to make it easier
-for admins to find messages related to a specific instance.
-
-It also allows setting of formatting information through conf.
-
-"""
-
-import copy
-import inspect
-import itertools
-import logging
-import logging.config
-import logging.handlers
-import os
-import socket
-import sys
-import traceback
-
-from oslo_config import cfg
-from oslo_serialization import jsonutils
-from oslo_utils import importutils
-import six
-from six import moves
-
-_PY26 = sys.version_info[0:2] == (2, 6)
-
-from trove.openstack.common._i18n import _
-from trove.openstack.common import local
-
-
-_DEFAULT_LOG_DATE_FORMAT = "%Y-%m-%d %H:%M:%S"
-
-
-common_cli_opts = [
- cfg.BoolOpt('debug',
- short='d',
- default=False,
- help='Print debugging output (set logging level to '
- 'DEBUG instead of default WARNING level).'),
- cfg.BoolOpt('verbose',
- short='v',
- default=False,
- help='Print more verbose output (set logging level to '
- 'INFO instead of default WARNING level).'),
-]
-
-logging_cli_opts = [
- cfg.StrOpt('log-config-append',
- metavar='PATH',
- deprecated_name='log-config',
- help='The name of a logging configuration file. This file '
- 'is appended to any existing logging configuration '
- 'files. For details about logging configuration files, '
- 'see the Python logging module documentation.'),
- cfg.StrOpt('log-format',
- metavar='FORMAT',
- help='DEPRECATED. '
- 'A logging.Formatter log message format string which may '
- 'use any of the available logging.LogRecord attributes. '
- 'This option is deprecated. Please use '
- 'logging_context_format_string and '
- 'logging_default_format_string instead.'),
- cfg.StrOpt('log-date-format',
- default=_DEFAULT_LOG_DATE_FORMAT,
- metavar='DATE_FORMAT',
- help='Format string for %%(asctime)s in log records. '
- 'Default: %(default)s .'),
- cfg.StrOpt('log-file',
- metavar='PATH',
- deprecated_name='logfile',
- help='(Optional) Name of log file to output to. '
- 'If no default is set, logging will go to stdout.'),
- cfg.StrOpt('log-dir',
- deprecated_name='logdir',
- help='(Optional) The base directory used for relative '
- '--log-file paths.'),
- cfg.BoolOpt('use-syslog',
- default=False,
- help='Use syslog for logging. '
- 'Existing syslog format is DEPRECATED during I, '
- 'and will change in J to honor RFC5424.'),
- cfg.BoolOpt('use-syslog-rfc-format',
- # TODO(bogdando) remove or use True after existing
- # syslog format deprecation in J
- default=False,
- help='(Optional) Enables or disables syslog rfc5424 format '
- 'for logging. If enabled, prefixes the MSG part of the '
- 'syslog message with APP-NAME (RFC5424). The '
- 'format without the APP-NAME is deprecated in I, '
- 'and will be removed in J.'),
- cfg.StrOpt('syslog-log-facility',
- default='LOG_USER',
- help='Syslog facility to receive log lines.')
-]
-
-generic_log_opts = [
- cfg.BoolOpt('use_stderr',
- default=True,
- help='Log output to standard error.')
-]
-
-DEFAULT_LOG_LEVELS = ['amqp=WARN', 'amqplib=WARN', 'boto=WARN',
- 'qpid=WARN', 'sqlalchemy=WARN', 'suds=INFO',
- 'oslo.messaging=INFO', 'iso8601=WARN',
- 'requests.packages.urllib3.connectionpool=WARN',
- 'urllib3.connectionpool=WARN', 'websocket=WARN',
- "keystonemiddleware=WARN", "routes.middleware=WARN",
- "stevedore=WARN"]
-
-log_opts = [
- cfg.StrOpt('logging_context_format_string',
- default='%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
- '%(name)s [%(request_id)s %(user_identity)s] '
- '%(instance)s%(message)s',
- help='Format string to use for log messages with context.'),
- cfg.StrOpt('logging_default_format_string',
- default='%(asctime)s.%(msecs)03d %(process)d %(levelname)s '
- '%(name)s [-] %(instance)s%(message)s',
- help='Format string to use for log messages without context.'),
- cfg.StrOpt('logging_debug_format_suffix',
- default='%(funcName)s %(pathname)s:%(lineno)d',
- help='Data to append to log format when level is DEBUG.'),
- cfg.StrOpt('logging_exception_prefix',
- default='%(asctime)s.%(msecs)03d %(process)d TRACE %(name)s '
- '%(instance)s',
- help='Prefix each line of exception output with this format.'),
- cfg.ListOpt('default_log_levels',
- default=DEFAULT_LOG_LEVELS,
- help='List of logger=LEVEL pairs.'),
- cfg.BoolOpt('publish_errors',
- default=False,
- help='Enables or disables publication of error events.'),
- cfg.BoolOpt('fatal_deprecations',
- default=False,
- help='Enables or disables fatal status of deprecations.'),
-
- # NOTE(mikal): there are two options here because sometimes we are handed
- # a full instance (and could include more information), and other times we
- # are just handed a UUID for the instance.
- cfg.StrOpt('instance_format',
- default='[instance: %(uuid)s] ',
- help='The format for an instance that is passed with the log '
- 'message.'),
- cfg.StrOpt('instance_uuid_format',
- default='[instance: %(uuid)s] ',
- help='The format for an instance UUID that is passed with the '
- 'log message.'),
-]
-
-CONF = cfg.CONF
-CONF.register_cli_opts(common_cli_opts)
-CONF.register_cli_opts(logging_cli_opts)
-CONF.register_opts(generic_log_opts)
-CONF.register_opts(log_opts)
-
-
-def list_opts():
- """Entry point for oslo.config-generator."""
- return [(None, copy.deepcopy(common_cli_opts)),
- (None, copy.deepcopy(logging_cli_opts)),
- (None, copy.deepcopy(generic_log_opts)),
- (None, copy.deepcopy(log_opts)),
- ]
-
-
-# our new audit level
-# NOTE(jkoelker) Since we synthesized an audit level, make the logging
-# module aware of it so it acts like other levels.
-logging.AUDIT = logging.INFO + 1
-logging.addLevelName(logging.AUDIT, 'AUDIT')
-
-
-try:
- NullHandler = logging.NullHandler
-except AttributeError: # NOTE(jkoelker) NullHandler added in Python 2.7
- class NullHandler(logging.Handler):
- def handle(self, record):
- pass
-
- def emit(self, record):
- pass
-
- def createLock(self):
- self.lock = None
-
-
-def _dictify_context(context):
- if context is None:
- return None
- if not isinstance(context, dict) and getattr(context, 'to_dict', None):
- context = context.to_dict()
- return context
-
-
-def _get_binary_name():
- return os.path.basename(inspect.stack()[-1][1])
-
-
-def _get_log_file_path(binary=None):
- logfile = CONF.log_file
- logdir = CONF.log_dir
-
- if logfile and not logdir:
- return logfile
-
- if logfile and logdir:
- return os.path.join(logdir, logfile)
-
- if logdir:
- binary = binary or _get_binary_name()
- return '%s.log' % (os.path.join(logdir, binary),)
-
- return None
-
-
-class BaseLoggerAdapter(logging.LoggerAdapter):
-
- def audit(self, msg, *args, **kwargs):
- self.log(logging.AUDIT, msg, *args, **kwargs)
-
- def isEnabledFor(self, level):
- if _PY26:
- # This method was added in python 2.7 (and it does the exact
- # same logic, so we need to do the exact same logic so that
- # python 2.6 has this capability as well).
- return self.logger.isEnabledFor(level)
- else:
- return super(BaseLoggerAdapter, self).isEnabledFor(level)
-
-
-class LazyAdapter(BaseLoggerAdapter):
- def __init__(self, name='unknown', version='unknown'):
- self._logger = None
- self.extra = {}
- self.name = name
- self.version = version
-
- @property
- def logger(self):
- if not self._logger:
- self._logger = getLogger(self.name, self.version)
- if six.PY3:
- # In Python 3, the code fails because the 'manager' attribute
- # cannot be found when using a LoggerAdapter as the
- # underlying logger. Work around this issue.
- self._logger.manager = self._logger.logger.manager
- return self._logger
-
-
-class ContextAdapter(BaseLoggerAdapter):
- warn = logging.LoggerAdapter.warning
-
- def __init__(self, logger, project_name, version_string):
- self.logger = logger
- self.project = project_name
- self.version = version_string
- self._deprecated_messages_sent = dict()
-
- @property
- def handlers(self):
- return self.logger.handlers
-
- def deprecated(self, msg, *args, **kwargs):
- """Call this method when a deprecated feature is used.
-
- If the system is configured for fatal deprecations then the message
- is logged at the 'critical' level and :class:`DeprecatedConfig` will
- be raised.
-
- Otherwise, the message will be logged (once) at the 'warn' level.
-
- :raises: :class:`DeprecatedConfig` if the system is configured for
- fatal deprecations.
-
- """
- stdmsg = _("Deprecated: %s") % msg
- if CONF.fatal_deprecations:
- self.critical(stdmsg, *args, **kwargs)
- raise DeprecatedConfig(msg=stdmsg)
-
- # Using a list because a tuple with dict can't be stored in a set.
- sent_args = self._deprecated_messages_sent.setdefault(msg, list())
-
- if args in sent_args:
- # Already logged this message, so don't log it again.
- return
-
- sent_args.append(args)
- self.warn(stdmsg, *args, **kwargs)
-
- def process(self, msg, kwargs):
- # NOTE(jecarey): If msg is not unicode, coerce it into unicode
- # before it can get to the python logging and
- # possibly cause string encoding trouble
- if not isinstance(msg, six.text_type):
- msg = six.text_type(msg)
-
- if 'extra' not in kwargs:
- kwargs['extra'] = {}
- extra = kwargs['extra']
-
- context = kwargs.pop('context', None)
- if not context:
- context = getattr(local.store, 'context', None)
- if context:
- extra.update(_dictify_context(context))
-
- instance = kwargs.pop('instance', None)
- instance_uuid = (extra.get('instance_uuid') or
- kwargs.pop('instance_uuid', None))
- instance_extra = ''
- if instance:
- instance_extra = CONF.instance_format % instance
- elif instance_uuid:
- instance_extra = (CONF.instance_uuid_format
- % {'uuid': instance_uuid})
- extra['instance'] = instance_extra
-
- extra.setdefault('user_identity', kwargs.pop('user_identity', None))
-
- extra['project'] = self.project
- extra['version'] = self.version
- extra['extra'] = extra.copy()
- return msg, kwargs
-
-
-class JSONFormatter(logging.Formatter):
- def __init__(self, fmt=None, datefmt=None):
- # NOTE(jkoelker) we ignore the fmt argument, but its still there
- # since logging.config.fileConfig passes it.
- self.datefmt = datefmt
-
- def formatException(self, ei, strip_newlines=True):
- lines = traceback.format_exception(*ei)
- if strip_newlines:
- lines = [moves.filter(
- lambda x: x,
- line.rstrip().splitlines()) for line in lines]
- lines = list(itertools.chain(*lines))
- return lines
-
- def format(self, record):
- message = {'message': record.getMessage(),
- 'asctime': self.formatTime(record, self.datefmt),
- 'name': record.name,
- 'msg': record.msg,
- 'args': record.args,
- 'levelname': record.levelname,
- 'levelno': record.levelno,
- 'pathname': record.pathname,
- 'filename': record.filename,
- 'module': record.module,
- 'lineno': record.lineno,
- 'funcname': record.funcName,
- 'created': record.created,
- 'msecs': record.msecs,
- 'relative_created': record.relativeCreated,
- 'thread': record.thread,
- 'thread_name': record.threadName,
- 'process_name': record.processName,
- 'process': record.process,
- 'traceback': None}
-
- if hasattr(record, 'extra'):
- message['extra'] = record.extra
-
- if record.exc_info:
- message['traceback'] = self.formatException(record.exc_info)
-
- return jsonutils.dumps(message)
-
-
-def _create_logging_excepthook(product_name):
- def logging_excepthook(exc_type, value, tb):
- extra = {'exc_info': (exc_type, value, tb)}
- getLogger(product_name).critical(
- "".join(traceback.format_exception_only(exc_type, value)),
- **extra)
- return logging_excepthook
-
-
-class LogConfigError(Exception):
-
- message = _('Error loading logging config %(log_config)s: %(err_msg)s')
-
- def __init__(self, log_config, err_msg):
- self.log_config = log_config
- self.err_msg = err_msg
-
- def __str__(self):
- return self.message % dict(log_config=self.log_config,
- err_msg=self.err_msg)
-
-
-def _load_log_config(log_config_append):
- try:
- logging.config.fileConfig(log_config_append,
- disable_existing_loggers=False)
- except (moves.configparser.Error, KeyError) as exc:
- raise LogConfigError(log_config_append, six.text_type(exc))
-
-
-def setup(product_name, version='unknown'):
- """Setup logging."""
- if CONF.log_config_append:
- _load_log_config(CONF.log_config_append)
- else:
- _setup_logging_from_conf(product_name, version)
- sys.excepthook = _create_logging_excepthook(product_name)
-
-
-def set_defaults(logging_context_format_string=None,
- default_log_levels=None):
- # Just in case the caller is not setting the
- # default_log_level. This is insurance because
- # we introduced the default_log_level parameter
- # later in a backwards in-compatible change
- if default_log_levels is not None:
- cfg.set_defaults(
- log_opts,
- default_log_levels=default_log_levels)
- if logging_context_format_string is not None:
- cfg.set_defaults(
- log_opts,
- logging_context_format_string=logging_context_format_string)
-
-
-def _find_facility_from_conf():
- facility_names = logging.handlers.SysLogHandler.facility_names
- facility = getattr(logging.handlers.SysLogHandler,
- CONF.syslog_log_facility,
- None)
-
- if facility is None and CONF.syslog_log_facility in facility_names:
- facility = facility_names.get(CONF.syslog_log_facility)
-
- if facility is None:
- valid_facilities = facility_names.keys()
- consts = ['LOG_AUTH', 'LOG_AUTHPRIV', 'LOG_CRON', 'LOG_DAEMON',
- 'LOG_FTP', 'LOG_KERN', 'LOG_LPR', 'LOG_MAIL', 'LOG_NEWS',
- 'LOG_AUTH', 'LOG_SYSLOG', 'LOG_USER', 'LOG_UUCP',
- 'LOG_LOCAL0', 'LOG_LOCAL1', 'LOG_LOCAL2', 'LOG_LOCAL3',
- 'LOG_LOCAL4', 'LOG_LOCAL5', 'LOG_LOCAL6', 'LOG_LOCAL7']
- valid_facilities.extend(consts)
- raise TypeError(_('syslog facility must be one of: %s') %
- ', '.join("'%s'" % fac
- for fac in valid_facilities))
-
- return facility
-
-
-class RFCSysLogHandler(logging.handlers.SysLogHandler):
- def __init__(self, *args, **kwargs):
- self.binary_name = _get_binary_name()
- # Do not use super() unless type(logging.handlers.SysLogHandler)
- # is 'type' (Python 2.7).
- # Use old style calls, if the type is 'classobj' (Python 2.6)
- logging.handlers.SysLogHandler.__init__(self, *args, **kwargs)
-
- def format(self, record):
- # Do not use super() unless type(logging.handlers.SysLogHandler)
- # is 'type' (Python 2.7).
- # Use old style calls, if the type is 'classobj' (Python 2.6)
- msg = logging.handlers.SysLogHandler.format(self, record)
- msg = self.binary_name + ' ' + msg
- return msg
-
-
-def _setup_logging_from_conf(project, version):
- log_root = getLogger(None).logger
- for handler in log_root.handlers:
- log_root.removeHandler(handler)
-
- logpath = _get_log_file_path()
- if logpath:
- filelog = logging.handlers.WatchedFileHandler(logpath)
- log_root.addHandler(filelog)
-
- if CONF.use_stderr:
- streamlog = ColorHandler()
- log_root.addHandler(streamlog)
-
- elif not logpath:
- # pass sys.stdout as a positional argument
- # python2.6 calls the argument strm, in 2.7 it's stream
- streamlog = logging.StreamHandler(sys.stdout)
- log_root.addHandler(streamlog)
-
- if CONF.publish_errors:
- handler = importutils.import_object(
- "oslo.messaging.notify.log_handler.PublishErrorsHandler",
- logging.ERROR)
- log_root.addHandler(handler)
-
- datefmt = CONF.log_date_format
- for handler in log_root.handlers:
- # NOTE(alaski): CONF.log_format overrides everything currently. This
- # should be deprecated in favor of context aware formatting.
- if CONF.log_format:
- handler.setFormatter(logging.Formatter(fmt=CONF.log_format,
- datefmt=datefmt))
- log_root.info('Deprecated: log_format is now deprecated and will '
- 'be removed in the next release')
- else:
- handler.setFormatter(ContextFormatter(project=project,
- version=version,
- datefmt=datefmt))
-
- if CONF.debug:
- log_root.setLevel(logging.DEBUG)
- elif CONF.verbose:
- log_root.setLevel(logging.INFO)
- else:
- log_root.setLevel(logging.WARNING)
-
- for pair in CONF.default_log_levels:
- mod, _sep, level_name = pair.partition('=')
- logger = logging.getLogger(mod)
- # NOTE(AAzza) in python2.6 Logger.setLevel doesn't convert string name
- # to integer code.
- if sys.version_info < (2, 7):
- level = logging.getLevelName(level_name)
- logger.setLevel(level)
- else:
- logger.setLevel(level_name)
-
- if CONF.use_syslog:
- try:
- facility = _find_facility_from_conf()
- # TODO(bogdando) use the format provided by RFCSysLogHandler
- # after existing syslog format deprecation in J
- if CONF.use_syslog_rfc_format:
- syslog = RFCSysLogHandler(address='/dev/log',
- facility=facility)
- else:
- syslog = logging.handlers.SysLogHandler(address='/dev/log',
- facility=facility)
- log_root.addHandler(syslog)
- except socket.error:
- log_root.error('Unable to add syslog handler. Verify that syslog '
- 'is running.')
-
-
-_loggers = {}
-
-
-def getLogger(name='unknown', version='unknown'):
- if name not in _loggers:
- _loggers[name] = ContextAdapter(logging.getLogger(name),
- name,
- version)
- return _loggers[name]
-
-
-def getLazyLogger(name='unknown', version='unknown'):
- """Returns lazy logger.
-
- Creates a pass-through logger that does not create the real logger
- until it is really needed and delegates all calls to the real logger
- once it is created.
- """
- return LazyAdapter(name, version)
-
-
-class WritableLogger(object):
- """A thin wrapper that responds to `write` and logs."""
-
- def __init__(self, logger, level=logging.INFO):
- self.logger = logger
- self.level = level
-
- def write(self, msg):
- self.logger.log(self.level, msg.rstrip())
-
-
-class ContextFormatter(logging.Formatter):
- """A context.RequestContext aware formatter configured through flags.
-
- The flags used to set format strings are: logging_context_format_string
- and logging_default_format_string. You can also specify
- logging_debug_format_suffix to append extra formatting if the log level is
- debug.
-
- For information about what variables are available for the formatter see:
- http://docs.python.org/library/logging.html#formatter
-
- If available, uses the context value stored in TLS - local.store.context
-
- """
-
- def __init__(self, *args, **kwargs):
- """Initialize ContextFormatter instance
-
- Takes additional keyword arguments which can be used in the message
- format string.
-
- :keyword project: project name
- :type project: string
- :keyword version: project version
- :type version: string
-
- """
-
- self.project = kwargs.pop('project', 'unknown')
- self.version = kwargs.pop('version', 'unknown')
-
- logging.Formatter.__init__(self, *args, **kwargs)
-
- def format(self, record):
- """Uses contextstring if request_id is set, otherwise default."""
-
- # NOTE(jecarey): If msg is not unicode, coerce it into unicode
- # before it can get to the python logging and
- # possibly cause string encoding trouble
- if not isinstance(record.msg, six.text_type):
- record.msg = six.text_type(record.msg)
-
- # store project info
- record.project = self.project
- record.version = self.version
-
- # store request info
- context = getattr(local.store, 'context', None)
- if context:
- d = _dictify_context(context)
- for k, v in d.items():
- setattr(record, k, v)
-
- # NOTE(sdague): default the fancier formatting params
- # to an empty string so we don't throw an exception if
- # they get used
- for key in ('instance', 'color', 'user_identity'):
- if key not in record.__dict__:
- record.__dict__[key] = ''
-
- if record.__dict__.get('request_id'):
- fmt = CONF.logging_context_format_string
- else:
- fmt = CONF.logging_default_format_string
-
- if (record.levelno == logging.DEBUG and
- CONF.logging_debug_format_suffix):
- fmt += " " + CONF.logging_debug_format_suffix
-
- if sys.version_info < (3, 2):
- self._fmt = fmt
- else:
- self._style = logging.PercentStyle(fmt)
- self._fmt = self._style._fmt
- # Cache this on the record, Logger will respect our formatted copy
- if record.exc_info:
- record.exc_text = self.formatException(record.exc_info, record)
- return logging.Formatter.format(self, record)
-
- def formatException(self, exc_info, record=None):
- """Format exception output with CONF.logging_exception_prefix."""
- if not record:
- return logging.Formatter.formatException(self, exc_info)
-
- stringbuffer = moves.StringIO()
- traceback.print_exception(exc_info[0], exc_info[1], exc_info[2],
- None, stringbuffer)
- lines = stringbuffer.getvalue().split('\n')
- stringbuffer.close()
-
- if CONF.logging_exception_prefix.find('%(asctime)') != -1:
- record.asctime = self.formatTime(record, self.datefmt)
-
- formatted_lines = []
- for line in lines:
- pl = CONF.logging_exception_prefix % record.__dict__
- fl = '%s%s' % (pl, line)
- formatted_lines.append(fl)
- return '\n'.join(formatted_lines)
-
-
-class ColorHandler(logging.StreamHandler):
- LEVEL_COLORS = {
- logging.DEBUG: '\033[00;32m', # GREEN
- logging.INFO: '\033[00;36m', # CYAN
- logging.AUDIT: '\033[01;36m', # BOLD CYAN
- logging.WARN: '\033[01;33m', # BOLD YELLOW
- logging.ERROR: '\033[01;31m', # BOLD RED
- logging.CRITICAL: '\033[01;31m', # BOLD RED
- }
-
- def format(self, record):
- record.color = self.LEVEL_COLORS[record.levelno]
- return logging.StreamHandler.format(self, record)
-
-
-class DeprecatedConfig(Exception):
- message = _("Fatal call to deprecated config: %(msg)s")
-
- def __init__(self, msg):
- super(Exception, self).__init__(self.message % dict(msg=msg))
diff --git a/trove/quota/models.py b/trove/quota/models.py
index 571c31f1..d6bfacc9 100644
--- a/trove/quota/models.py
+++ b/trove/quota/models.py
@@ -13,10 +13,11 @@
# under the License.
+from oslo_log import log as logging
+
from trove.common import cfg
from trove.common import utils
from trove.db import models as dbmodels
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/quota/quota.py b/trove/quota/quota.py
index 9c01ddb4..b911b59a 100644
--- a/trove/quota/quota.py
+++ b/trove/quota/quota.py
@@ -16,11 +16,11 @@
"""Quotas for DB instances and resources."""
from oslo_config import cfg
+from oslo_log import log as logging
from oslo_utils import importutils
from trove.common import exception
from trove.common.i18n import _
-from trove.openstack.common import log as logging
from trove.quota.models import Quota
from trove.quota.models import QuotaUsage
from trove.quota.models import Reservation
diff --git a/trove/taskmanager/api.py b/trove/taskmanager/api.py
index 7cfcace7..7d350844 100644
--- a/trove/taskmanager/api.py
+++ b/trove/taskmanager/api.py
@@ -18,6 +18,7 @@
Routes all the requests to the task manager.
"""
+from oslo_log import log as logging
import oslo_messaging as messaging
from trove.common import cfg
@@ -25,7 +26,6 @@ from trove.common import exception
import trove.common.rpc.version as rpc_version
from trove.common.strategies.cluster import strategy
from trove.guestagent import models as agent_models
-from trove.openstack.common import log as logging
from trove import rpc
CONF = cfg.CONF
diff --git a/trove/taskmanager/manager.py b/trove/taskmanager/manager.py
index e1ec5b89..ec96ef22 100644
--- a/trove/taskmanager/manager.py
+++ b/trove/taskmanager/manager.py
@@ -15,6 +15,7 @@
from sets import Set
+from oslo_log import log as logging
import oslo_messaging as messaging
from oslo_service import periodic_task
from oslo_utils import importutils
@@ -30,7 +31,6 @@ import trove.common.rpc.version as rpc_version
from trove.common.strategies.cluster import strategy
import trove.extensions.mgmt.instances.models as mgmtmodels
from trove.instance.tasks import InstanceTasks
-from trove.openstack.common import log as logging
from trove.taskmanager import models
from trove.taskmanager.models import FreshInstanceTasks, BuiltInstanceTasks
diff --git a/trove/taskmanager/models.py b/trove/taskmanager/models.py
index ad6fcd1f..994455cf 100755
--- a/trove/taskmanager/models.py
+++ b/trove/taskmanager/models.py
@@ -20,6 +20,7 @@ from cinderclient import exceptions as cinder_exceptions
from eventlet import greenthread
from heatclient import exc as heat_exceptions
from novaclient import exceptions as nova_exceptions
+from oslo_log import log as logging
from oslo_utils import timeutils
from swiftclient.client import ClientException
@@ -64,7 +65,6 @@ from trove.instance.models import FreshInstance
from trove.instance.models import InstanceServiceStatus
from trove.instance.models import InstanceStatus
from trove.instance.tasks import InstanceTasks
-from trove.openstack.common import log as logging
from trove.quota.quota import run_with_quotas
from trove import rpc
diff --git a/trove/taskmanager/service.py b/trove/taskmanager/service.py
index d3651783..36cdb392 100644
--- a/trove/taskmanager/service.py
+++ b/trove/taskmanager/service.py
@@ -13,7 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
-from trove.openstack.common import log as logging
+from oslo_log import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/tests/db/migrations.py b/trove/tests/db/migrations.py
index 48768e06..fe10a8be 100644
--- a/trove/tests/db/migrations.py
+++ b/trove/tests/db/migrations.py
@@ -27,6 +27,7 @@ import os
import migrate.versioning.api as migration_api
from migrate.versioning import repository
from oslo_concurrency import processutils
+from oslo_log import log as logging
from proboscis import after_class
from proboscis.asserts import assert_equal
from proboscis.asserts import assert_true
@@ -38,7 +39,6 @@ import sqlalchemy.exc
from trove.common.i18n import _
import trove.db.sqlalchemy.migrate_repo
-from trove.openstack.common import log as logging
from trove.tests.util import event_simulator
GROUP = "dbaas.db.migrations"
diff --git a/trove/tests/fakes/common.py b/trove/tests/fakes/common.py
index be60d8f2..640b50c5 100644
--- a/trove/tests/fakes/common.py
+++ b/trove/tests/fakes/common.py
@@ -16,8 +16,9 @@
"""Common code to help in faking the models."""
from novaclient import exceptions as nova_exceptions
+from oslo_log import log as logging
+
from trove.common import cfg
-from trove.openstack.common import log as logging
CONF = cfg.CONF
diff --git a/trove/tests/fakes/dns.py b/trove/tests/fakes/dns.py
index 9c88ee3b..eb26e7e2 100644
--- a/trove/tests/fakes/dns.py
+++ b/trove/tests/fakes/dns.py
@@ -12,12 +12,12 @@
# License for the specific language governing permissions and limitations
# under the License.
+from oslo_log import log as logging
from proboscis.asserts import assert_equal
from proboscis.asserts import assert_true
from proboscis.asserts import fail
from trove.dns import driver
-from trove.openstack.common import log as logging
LOG = logging.getLogger(__name__)
diff --git a/trove/tests/fakes/guestagent.py b/trove/tests/fakes/guestagent.py
index 61a80eb7..eed48cb2 100644
--- a/trove/tests/fakes/guestagent.py
+++ b/trove/tests/fakes/guestagent.py
@@ -17,10 +17,10 @@ import re
import time
import eventlet
+from oslo_log import log as logging
from trove.common import exception as rd_exception
from trove.common import instance as rd_instance
-from trove.openstack.common import log as logging
from trove.tests.util import unquote_user_host
DB = {}
diff --git a/trove/tests/fakes/nova.py b/trove/tests/fakes/nova.py
index fa38c43b..e363e84d 100644
--- a/trove/tests/fakes/nova.py
+++ b/trove/tests/fakes/nova.py
@@ -14,9 +14,10 @@
# under the License.
from novaclient import exceptions as nova_exceptions
+from oslo_log import log as logging
+
from trove.common.exception import PollTimeOut
from trove.common import instance as rd_instance
-from trove.openstack.common import log as logging
from trove.tests.fakes.common import authorize
import eventlet
diff --git a/trove/tests/fakes/taskmanager.py b/trove/tests/fakes/taskmanager.py
index 81984728..3266562f 100644
--- a/trove/tests/fakes/taskmanager.py
+++ b/trove/tests/fakes/taskmanager.py
@@ -17,8 +17,8 @@
from collections import defaultdict
import eventlet
+from oslo_log import log as logging
-import trove.openstack.common.log as logging
from trove import rpc
from trove.taskmanager.api import API
from trove.taskmanager.manager import Manager
diff --git a/trove/tests/util/usage.py b/trove/tests/util/usage.py
index 4cffd322..ef808950 100644
--- a/trove/tests/util/usage.py
+++ b/trove/tests/util/usage.py
@@ -15,11 +15,11 @@
from collections import defaultdict
+from oslo_log import log as logging
import proboscis.asserts as asserts
from proboscis.dependencies import SkipTest
from trove.common import utils
-import trove.openstack.common.log as logging
from trove.tests.config import CONFIG
LOG = logging.getLogger(__name__)