From 6999a3ab54179655b42eb9b64f64b9dcc6be5214 Mon Sep 17 00:00:00 2001 From: Sergey Vilgelm Date: Thu, 25 Jun 2015 11:17:49 +0200 Subject: [PATCH] Switch to oslo.service oslo.service has graduated, so os-brick should consume it. Change-Id: Ibcede019e0a475cf12e6d2439641f213bb041365 Closes-Bug: #1466851 --- openstack-common.conf | 2 - os_brick/initiator/connector.py | 2 +- os_brick/openstack/common/loopingcall.py | 147 --------------------- os_brick/tests/initiator/test_connector.py | 2 +- requirements.txt | 1 + 5 files changed, 3 insertions(+), 151 deletions(-) delete mode 100644 os_brick/openstack/common/loopingcall.py diff --git a/openstack-common.conf b/openstack-common.conf index 55bc6d616..bba267fb6 100644 --- a/openstack-common.conf +++ b/openstack-common.conf @@ -4,5 +4,3 @@ # The base module to hold the copy of openstack.common base=brick - -module=loopingcall diff --git a/os_brick/initiator/connector.py b/os_brick/initiator/connector.py index 3b0f3583a..101a109b7 100644 --- a/os_brick/initiator/connector.py +++ b/os_brick/initiator/connector.py @@ -31,6 +31,7 @@ import time from oslo_concurrency import lockutils from oslo_concurrency import processutils as putils from oslo_log import log as logging +from oslo_service import loopingcall from oslo_utils import strutils import six @@ -44,7 +45,6 @@ from os_brick.initiator import linuxfc from os_brick.initiator import linuxscsi from os_brick.remotefs import remotefs from os_brick.i18n import _, _LE, _LW -from os_brick.openstack.common import loopingcall LOG = logging.getLogger(__name__) diff --git a/os_brick/openstack/common/loopingcall.py b/os_brick/openstack/common/loopingcall.py deleted file mode 100644 index b752a71cd..000000000 --- a/os_brick/openstack/common/loopingcall.py +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright 2010 United States Government as represented by the -# Administrator of the National Aeronautics and Space Administration. -# Copyright 2011 Justin Santa Barbara -# All Rights Reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -import logging -import sys -import time - -from eventlet import event -from eventlet import greenthread - -from os_brick.openstack.common._i18n import _LE, _LW - -LOG = logging.getLogger(__name__) - -# NOTE(zyluo): This lambda function was declared to avoid mocking collisions -# with time.time() called in the standard logging module -# during unittests. -_ts = lambda: time.time() - - -class LoopingCallDone(Exception): - """Exception to break out and stop a LoopingCallBase. - - The poll-function passed to LoopingCallBase can raise this exception to - break out of the loop normally. This is somewhat analogous to - StopIteration. - - An optional return-value can be included as the argument to the exception; - this return-value will be returned by LoopingCallBase.wait() - - """ - - def __init__(self, retvalue=True): - """:param retvalue: Value that LoopingCallBase.wait() should return.""" - self.retvalue = retvalue - - -class LoopingCallBase(object): - def __init__(self, f=None, *args, **kw): - self.args = args - self.kw = kw - self.f = f - self._running = False - self.done = None - - def stop(self): - self._running = False - - def wait(self): - return self.done.wait() - - -class FixedIntervalLoopingCall(LoopingCallBase): - """A fixed interval looping call.""" - - def start(self, interval, initial_delay=None): - self._running = True - done = event.Event() - - def _inner(): - if initial_delay: - greenthread.sleep(initial_delay) - - try: - while self._running: - start = _ts() - self.f(*self.args, **self.kw) - end = _ts() - if not self._running: - break - delay = end - start - interval - if delay > 0: - LOG.warn(_LW('task %(func_name)r run outlasted ' - 'interval by %(delay).2f sec'), - {'func_name': self.f, 'delay': delay}) - greenthread.sleep(-delay if delay < 0 else 0) - except LoopingCallDone as e: - self.stop() - done.send(e.retvalue) - except Exception: - LOG.exception(_LE('in fixed duration looping call')) - done.send_exception(*sys.exc_info()) - return - else: - done.send(True) - - self.done = done - - greenthread.spawn_n(_inner) - return self.done - - -class DynamicLoopingCall(LoopingCallBase): - """A looping call which sleeps until the next known event. - - The function called should return how long to sleep for before being - called again. - """ - - def start(self, initial_delay=None, periodic_interval_max=None): - self._running = True - done = event.Event() - - def _inner(): - if initial_delay: - greenthread.sleep(initial_delay) - - try: - while self._running: - idle = self.f(*self.args, **self.kw) - if not self._running: - break - - if periodic_interval_max is not None: - idle = min(idle, periodic_interval_max) - LOG.debug('Dynamic looping call %(func_name)r sleeping ' - 'for %(idle).02f seconds', - {'func_name': self.f, 'idle': idle}) - greenthread.sleep(idle) - except LoopingCallDone as e: - self.stop() - done.send(e.retvalue) - except Exception: - LOG.exception(_LE('in dynamic looping call')) - done.send_exception(*sys.exc_info()) - return - else: - done.send(True) - - self.done = done - - greenthread.spawn(_inner) - return self.done diff --git a/os_brick/tests/initiator/test_connector.py b/os_brick/tests/initiator/test_connector.py index 5b7391158..1d753a49b 100644 --- a/os_brick/tests/initiator/test_connector.py +++ b/os_brick/tests/initiator/test_connector.py @@ -21,6 +21,7 @@ import time import mock from oslo_concurrency import processutils as putils from oslo_log import log as logging +from oslo_service import loopingcall import six import testtools @@ -30,7 +31,6 @@ from os_brick.initiator import connector from os_brick.initiator import host_driver from os_brick.initiator import linuxfc from os_brick.initiator import linuxscsi -from os_brick.openstack.common import loopingcall from os_brick.remotefs import remotefs from os_brick.tests import base diff --git a/requirements.txt b/requirements.txt index faa791f7d..d634a4bfc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,6 +9,7 @@ oslo.concurrency>=2.0.0 # Apache-2.0 oslo.log>=1.2.0 # Apache-2.0 oslo.serialization>=1.4.0 # Apache-2.0 oslo.i18n>=1.5.0 # Apache-2.0 +oslo.service>=0.1.0 # Apache-2.0 oslo.utils>=1.6.0 # Apache-2.0 retrying>=1.2.3,!=1.3.0 # Apache-2.0 six>=1.9.0