Migration to oslo.utils

Common code from sahara.openstack.common.db was replaced
by usage of oslo.utils library.
sahara/openstack/common/network_utils.py module was removed.
excutils.py, importutils.py, timeutils.py and importutils.py
modules are waiting for migration to oslo.utils in other
oslo-incubator modules and still exist.

Change-Id: I6a82a9dfdf704da16ed709c650fa68f9527fd668
This commit is contained in:
Sergey Lukjanov 2014-08-07 15:10:44 +04:00 committed by Andrey Pavlov
parent 543c9df504
commit 9885a98d06
25 changed files with 35 additions and 194 deletions

View File

@ -8,7 +8,6 @@ module=jsonutils
module=lockutils module=lockutils
module=log module=log
module=middleware.base module=middleware.base
module=network_utils
module=periodic_task module=periodic_task
module=processutils module=processutils
module=strutils module=strutils

View File

@ -9,6 +9,7 @@ oslo.config>=1.4.0.0a3
oslo.db>=0.2.0 # Apache-2.0 oslo.db>=0.2.0 # Apache-2.0
oslo.i18n>=0.1.0 # Apache-2.0 oslo.i18n>=0.1.0 # Apache-2.0
oslo.messaging>=1.4.0.0a3 oslo.messaging>=1.4.0.0a3
oslo.utils>=0.1.1
paramiko>=1.13.0 paramiko>=1.13.0
pbr>=0.6,!=0.7,<1.0 pbr>=0.6,!=0.7,<1.0
posix_ipc posix_ipc

View File

@ -16,8 +16,7 @@
"""Base class for classes that need modular database access.""" """Base class for classes that need modular database access."""
from oslo.config import cfg from oslo.config import cfg
from oslo.utils import importutils
from sahara.openstack.common import importutils
db_driver_opt = cfg.StrOpt('db_driver', db_driver_opt = cfg.StrOpt('db_driver',
@ -32,4 +31,4 @@ class Base(object):
"""DB driver is injected in the init method.""" """DB driver is injected in the init method."""
def __init__(self): def __init__(self):
self.db = importutils.import_module(CONF.db_driver) self.db = importutils.try_import(CONF.db_driver)

View File

@ -19,14 +19,14 @@ from __future__ import with_statement
from logging import config as c from logging import config as c
from alembic import context from alembic import context
from oslo.utils import importutils
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlalchemy import pool from sqlalchemy import pool
from sahara.db.sqlalchemy import model_base from sahara.db.sqlalchemy import model_base
from sahara.openstack.common import importutils
importutils.import_module('sahara.db.sqlalchemy.models') importutils.try_import('sahara.db.sqlalchemy.models')
# this is the Alembic Config object, which provides # this is the Alembic Config object, which provides
# access to the values within the .ini file in use. # access to the values within the .ini file in use.

View File

@ -1,163 +0,0 @@
# Copyright 2012 OpenStack Foundation.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
"""
Network-related utilities and helper functions.
"""
import logging
import socket
from six.moves.urllib import parse
from sahara.openstack.common.gettextutils import _LW
LOG = logging.getLogger(__name__)
def parse_host_port(address, default_port=None):
"""Interpret a string as a host:port pair.
An IPv6 address MUST be escaped if accompanied by a port,
because otherwise ambiguity ensues: 2001:db8:85a3::8a2e:370:7334
means both [2001:db8:85a3::8a2e:370:7334] and
[2001:db8:85a3::8a2e:370]:7334.
>>> parse_host_port('server01:80')
('server01', 80)
>>> parse_host_port('server01')
('server01', None)
>>> parse_host_port('server01', default_port=1234)
('server01', 1234)
>>> parse_host_port('[::1]:80')
('::1', 80)
>>> parse_host_port('[::1]')
('::1', None)
>>> parse_host_port('[::1]', default_port=1234)
('::1', 1234)
>>> parse_host_port('2001:db8:85a3::8a2e:370:7334', default_port=1234)
('2001:db8:85a3::8a2e:370:7334', 1234)
>>> parse_host_port(None)
(None, None)
"""
if not address:
return (None, None)
if address[0] == '[':
# Escaped ipv6
_host, _port = address[1:].split(']')
host = _host
if ':' in _port:
port = _port.split(':')[1]
else:
port = default_port
else:
if address.count(':') == 1:
host, port = address.split(':')
else:
# 0 means ipv4, >1 means ipv6.
# We prohibit unescaped ipv6 addresses with port.
host = address
port = default_port
return (host, None if port is None else int(port))
class ModifiedSplitResult(parse.SplitResult):
"""Split results class for urlsplit."""
# NOTE(dims): The functions below are needed for Python 2.6.x.
# We can remove these when we drop support for 2.6.x.
@property
def hostname(self):
netloc = self.netloc.split('@', 1)[-1]
host, port = parse_host_port(netloc)
return host
@property
def port(self):
netloc = self.netloc.split('@', 1)[-1]
host, port = parse_host_port(netloc)
return port
def urlsplit(url, scheme='', allow_fragments=True):
"""Parse a URL using urlparse.urlsplit(), splitting query and fragments.
This function papers over Python issue9374 when needed.
The parameters are the same as urlparse.urlsplit.
"""
scheme, netloc, path, query, fragment = parse.urlsplit(
url, scheme, allow_fragments)
if allow_fragments and '#' in path:
path, fragment = path.split('#', 1)
if '?' in path:
path, query = path.split('?', 1)
return ModifiedSplitResult(scheme, netloc,
path, query, fragment)
def set_tcp_keepalive(sock, tcp_keepalive=True,
tcp_keepidle=None,
tcp_keepalive_interval=None,
tcp_keepalive_count=None):
"""Set values for tcp keepalive parameters
This function configures tcp keepalive parameters if users wish to do
so.
:param tcp_keepalive: Boolean, turn on or off tcp_keepalive. If users are
not sure, this should be True, and default values will be used.
:param tcp_keepidle: time to wait before starting to send keepalive probes
:param tcp_keepalive_interval: time between successive probes, once the
initial wait time is over
:param tcp_keepalive_count: number of probes to send before the connection
is killed
"""
# NOTE(praneshp): Despite keepalive being a tcp concept, the level is
# still SOL_SOCKET. This is a quirk.
if isinstance(tcp_keepalive, bool):
sock.setsockopt(socket.SOL_SOCKET, socket.SO_KEEPALIVE, tcp_keepalive)
else:
raise TypeError("tcp_keepalive must be a boolean")
if not tcp_keepalive:
return
# These options aren't available in the OS X version of eventlet,
# Idle + Count * Interval effectively gives you the total timeout.
if tcp_keepidle is not None:
if hasattr(socket, 'TCP_KEEPIDLE'):
sock.setsockopt(socket.IPPROTO_TCP,
socket.TCP_KEEPIDLE,
tcp_keepidle)
else:
LOG.warning(_LW('tcp_keepidle not available on your system'))
if tcp_keepalive_interval is not None:
if hasattr(socket, 'TCP_KEEPINTVL'):
sock.setsockopt(socket.IPPROTO_TCP,
socket.TCP_KEEPINTVL,
tcp_keepalive_interval)
else:
LOG.warning(_LW('tcp_keepintvl not available on your system'))
if tcp_keepalive_count is not None:
if hasattr(socket, 'TCP_KEEPCNT'):
sock.setsockopt(socket.IPPROTO_TCP,
socket.TCP_KEEPCNT,
tcp_keepalive_count)
else:
LOG.warning(_LW('tcp_keepknt not available on your system'))

View File

@ -13,9 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from oslo.utils import netutils
from six.moves.urllib import parse as urlparse from six.moves.urllib import parse as urlparse
from sahara.openstack.common import network_utils
from sahara.plugins.general import exceptions as ex from sahara.plugins.general import exceptions as ex
@ -53,9 +53,9 @@ def generate_fqdn_host_names(nodes):
def get_port_from_address(address): def get_port_from_address(address):
parse_result = urlparse.urlparse(address) parse_result = urlparse.urlparse(address)
# urlparse do not parse values like 0.0.0.0:8000, # urlparse do not parse values like 0.0.0.0:8000,
# network_utils do not parse values like http://localhost:8000, # netutils do not parse values like http://localhost:8000,
# so combine approach is using # so combine approach is using
if parse_result.port: if parse_result.port:
return parse_result.port return parse_result.port
else: else:
return network_utils.parse_host_port(address)[1] return netutils.parse_host_port(address)[1]

View File

@ -15,10 +15,10 @@
import os import os
from oslo.utils import timeutils
import six import six
from sahara import context from sahara import context
from sahara.openstack.common import timeutils
from sahara.plugins.general import exceptions as ex from sahara.plugins.general import exceptions as ex
from sahara.plugins.general import utils from sahara.plugins.general import utils
from sahara.plugins.spark import config_helper as c_helper from sahara.plugins.spark import config_helper as c_helper

View File

@ -13,8 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from oslo.utils import timeutils
from sahara import context from sahara import context
from sahara.openstack.common import timeutils
from sahara.plugins.general import exceptions as ex from sahara.plugins.general import exceptions as ex
from sahara.plugins.general import utils as u from sahara.plugins.general import utils as u
from sahara.plugins.vanilla.hadoop2 import config from sahara.plugins.vanilla.hadoop2 import config

View File

@ -15,10 +15,10 @@
import os import os
from oslo.utils import timeutils
import six import six
from sahara import context from sahara import context
from sahara.openstack.common import timeutils
from sahara.plugins.general import exceptions as ex from sahara.plugins.general import exceptions as ex
from sahara.plugins.general import utils from sahara.plugins.general import utils
from sahara.plugins.vanilla.v1_2_1 import config_helper from sahara.plugins.vanilla.v1_2_1 import config_helper

View File

@ -14,12 +14,12 @@
# limitations under the License. # limitations under the License.
from oslo.config import cfg from oslo.config import cfg
from oslo.utils import excutils
import six import six
from six.moves.urllib import parse as urlparse from six.moves.urllib import parse as urlparse
from sahara import conductor as c from sahara import conductor as c
from sahara import context from sahara import context
from sahara.openstack.common import excutils
from sahara.openstack.common import log as logging from sahara.openstack.common import log as logging
from sahara.plugins import base as plugin_base from sahara.plugins import base as plugin_base
from sahara.plugins import provisioning from sahara.plugins import provisioning

View File

@ -15,6 +15,7 @@
from novaclient import exceptions as nova_exceptions from novaclient import exceptions as nova_exceptions
from oslo.config import cfg from oslo.config import cfg
from oslo.utils import excutils
import six import six
from sahara import conductor as c from sahara import conductor as c
@ -23,7 +24,6 @@ from sahara import exceptions as exc
from sahara.i18n import _ from sahara.i18n import _
from sahara.i18n import _LI from sahara.i18n import _LI
from sahara.i18n import _LW from sahara.i18n import _LW
from sahara.openstack.common import excutils
from sahara.openstack.common import log as logging from sahara.openstack.common import log as logging
from sahara.service import engine as e from sahara.service import engine as e
from sahara.service import networks from sahara.service import networks

View File

@ -15,6 +15,7 @@
from heatclient import exc as heat_exc from heatclient import exc as heat_exc
from oslo.config import cfg from oslo.config import cfg
from oslo.utils import excutils
import six import six
from sahara import conductor as c from sahara import conductor as c
@ -22,7 +23,6 @@ from sahara import context
from sahara.i18n import _LE from sahara.i18n import _LE
from sahara.i18n import _LI from sahara.i18n import _LI
from sahara.i18n import _LW from sahara.i18n import _LW
from sahara.openstack.common import excutils
from sahara.openstack.common import log as logging from sahara.openstack.common import log as logging
from sahara.service import engine as e from sahara.service import engine as e
from sahara.service import volumes from sahara.service import volumes

View File

@ -16,6 +16,7 @@
import random import random
from oslo.config import cfg from oslo.config import cfg
from oslo.utils import timeutils
import six import six
from sahara import conductor as c from sahara import conductor as c
@ -24,7 +25,6 @@ from sahara.i18n import _LI
from sahara.openstack.common import log from sahara.openstack.common import log
from sahara.openstack.common import periodic_task from sahara.openstack.common import periodic_task
from sahara.openstack.common import threadgroup from sahara.openstack.common import threadgroup
from sahara.openstack.common import timeutils
from sahara.service import api from sahara.service import api
from sahara.service.edp import job_manager from sahara.service.edp import job_manager
from sahara.service import trusts from sahara.service import trusts

View File

@ -14,6 +14,7 @@
# limitations under the License. # limitations under the License.
from oslo.config import cfg from oslo.config import cfg
from oslo.utils import timeutils as tu
from sahara import conductor as c from sahara import conductor as c
from sahara import context from sahara import context
@ -22,7 +23,6 @@ from sahara.i18n import _
from sahara.i18n import _LE from sahara.i18n import _LE
from sahara.i18n import _LW from sahara.i18n import _LW
from sahara.openstack.common import log as logging from sahara.openstack.common import log as logging
from sahara.openstack.common import timeutils as tu
from sahara.utils.openstack import cinder from sahara.utils.openstack import cinder
from sahara.utils.openstack import nova from sahara.utils.openstack import nova

View File

@ -22,6 +22,7 @@ import fixtures
from keystoneclient.v2_0 import client as keystone_client from keystoneclient.v2_0 import client as keystone_client
from neutronclient.v2_0 import client as neutron_client from neutronclient.v2_0 import client as neutron_client
from novaclient.v1_1 import client as nova_client from novaclient.v1_1 import client as nova_client
from oslo.utils import excutils
from oslotest import base from oslotest import base
from saharaclient.api import base as client_base from saharaclient.api import base as client_base
import saharaclient.client as sahara_client import saharaclient.client as sahara_client
@ -29,7 +30,6 @@ import six
from swiftclient import client as swift_client from swiftclient import client as swift_client
from testtools import testcase from testtools import testcase
from sahara.openstack.common import excutils
from sahara.tests.integration.configs import config as cfg from sahara.tests.integration.configs import config as cfg
import sahara.utils.openstack.images as imgs import sahara.utils.openstack.images as imgs
from sahara.utils import ssh_remote from sahara.utils import ssh_remote

View File

@ -13,7 +13,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from sahara.openstack.common import excutils from oslo.utils import excutils
from sahara.tests.integration.tests import base from sahara.tests.integration.tests import base

View File

@ -19,8 +19,8 @@ import time
import uuid import uuid
import fixtures import fixtures
from oslo.utils import excutils
from sahara.openstack.common import excutils
from sahara.swift import swift_helper as sw from sahara.swift import swift_helper as sw
from sahara.tests.integration.tests import base from sahara.tests.integration.tests import base
from sahara.utils import edp from sahara.utils import edp

View File

@ -13,9 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from oslo.utils import excutils
from testtools import testcase from testtools import testcase
from sahara.openstack.common import excutils
from sahara.tests.integration.configs import config as cfg from sahara.tests.integration.configs import config as cfg
from sahara.tests.integration.tests import cinder from sahara.tests.integration.tests import cinder
from sahara.tests.integration.tests import edp from sahara.tests.integration.tests import edp

View File

@ -13,9 +13,9 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from oslo.utils import excutils
from testtools import testcase from testtools import testcase
from sahara.openstack.common import excutils
from sahara.tests.integration.configs import config as cfg from sahara.tests.integration.configs import config as cfg
from sahara.tests.integration.tests import cinder from sahara.tests.integration.tests import cinder
from sahara.tests.integration.tests import cluster_configs from sahara.tests.integration.tests import cluster_configs

View File

@ -13,7 +13,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from sahara.openstack.common import excutils from oslo.utils import excutils
from sahara.tests.integration.tests import base from sahara.tests.integration.tests import base

View File

@ -13,7 +13,8 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
from sahara.openstack.common import excutils from oslo.utils import excutils
from sahara.tests.integration.tests import base from sahara.tests.integration.tests import base

View File

@ -15,7 +15,8 @@
import uuid import uuid
from sahara.openstack.common import excutils from oslo.utils import excutils
from sahara.tests.integration.tests import base from sahara.tests.integration.tests import base

View File

@ -15,9 +15,9 @@
import time import time
from oslo.utils import timeutils
import saharaclient.api.base as sab import saharaclient.api.base as sab
from sahara.openstack.common import timeutils
from sahara.tests.integration.tests import base from sahara.tests.integration.tests import base
from sahara.tests.integration.tests import edp from sahara.tests.integration.tests import edp
from sahara.utils import edp as utils_edp from sahara.utils import edp as utils_edp

View File

@ -16,10 +16,10 @@
import datetime import datetime
import mock import mock
from oslo.utils import timeutils
from sahara.conductor import manager from sahara.conductor import manager
from sahara import context from sahara import context
from sahara.openstack.common import timeutils
import sahara.service.periodic as p import sahara.service.periodic as p
import sahara.tests.unit.base as base import sahara.tests.unit.base as base
from sahara.tests.unit.conductor.manager import test_clusters as tc from sahara.tests.unit.conductor.manager import test_clusters as tc
@ -51,7 +51,7 @@ class TestPeriodicBack(base.SaharaWithDbTestCase):
get_job_status.assert_has_calls([mock.call(u'2'), get_job_status.assert_has_calls([mock.call(u'2'),
mock.call(u'3')]) mock.call(u'3')])
@mock.patch('sahara.openstack.common.timeutils.utcnow') @mock.patch('oslo.utils.timeutils.utcnow')
@mock.patch('sahara.service.api.terminate_cluster') @mock.patch('sahara.service.api.terminate_cluster')
def test_cluster_terminate(self, terminate_cluster, utcnow): def test_cluster_terminate(self, terminate_cluster, utcnow):
@ -83,7 +83,7 @@ class TestPeriodicBack(base.SaharaWithDbTestCase):
self.assertEqual(terminate_cluster.call_count, 1) self.assertEqual(terminate_cluster.call_count, 1)
terminate_cluster.assert_has_calls([mock.call(u'1')]) terminate_cluster.assert_has_calls([mock.call(u'1')])
@mock.patch('sahara.openstack.common.timeutils.utcnow') @mock.patch('oslo.utils.timeutils.utcnow')
@mock.patch('sahara.service.api.terminate_cluster') @mock.patch('sahara.service.api.terminate_cluster')
def test_cluster_not_killed_too_early(self, terminate_cluster, utcnow): def test_cluster_not_killed_too_early(self, terminate_cluster, utcnow):
@ -96,7 +96,7 @@ class TestPeriodicBack(base.SaharaWithDbTestCase):
p.SaharaPeriodicTasks().terminate_unneeded_clusters(None) p.SaharaPeriodicTasks().terminate_unneeded_clusters(None)
self.assertEqual(terminate_cluster.call_count, 0) self.assertEqual(terminate_cluster.call_count, 0)
@mock.patch('sahara.openstack.common.timeutils.utcnow') @mock.patch('oslo.utils.timeutils.utcnow')
@mock.patch('sahara.service.api.terminate_cluster') @mock.patch('sahara.service.api.terminate_cluster')
def test_cluster_killed_in_time(self, terminate_cluster, utcnow): def test_cluster_killed_in_time(self, terminate_cluster, utcnow):

View File

@ -38,6 +38,7 @@ import uuid
from eventlet import semaphore from eventlet import semaphore
from eventlet import timeout as e_timeout from eventlet import timeout as e_timeout
from oslo.config import cfg from oslo.config import cfg
from oslo.utils import excutils
import paramiko import paramiko
import requests import requests
import six import six
@ -46,7 +47,6 @@ from sahara import context
from sahara import exceptions as ex from sahara import exceptions as ex
from sahara.i18n import _ from sahara.i18n import _
from sahara.i18n import _LE from sahara.i18n import _LE
from sahara.openstack.common import excutils
from sahara.utils import crypto from sahara.utils import crypto
from sahara.utils import hashabledict as h from sahara.utils import hashabledict as h
from sahara.utils.openstack import base from sahara.utils.openstack import base