# CHANGES

## 4.7.0

- zuul: Use openstack-python3-next-jobs template

- pre-commit: Bump versions

- Do not install code to build release notes

- Remove Python 3.10 support

- Poll parallel periodic results with AsyncResult.ready()

## 4.6.0

- Deprecate version module

- Remove unused environment variables

- tox: Use new constraints option

- Support running periodic tasks in parallel

- Add pickle support for threading backend Service

- Update master for stable/2026.1

## 4.5.1

- Threading mode: check conf object picklable before ‘spawn’

## 4.5.0

- Run neutron-ovs-tempest-with-oslo-master job in check pipeline

- Fix service multiple workers launching different service instance

- Add register and set method to override the default value for service opts

- Fix ServiceManager singleton race condition in tests

- Fix race condition in EventletServerServiceLauncherTest

- Fix unbounded growth of thread list in threading backend

- Fix the followup comment from signalhander change

- Add signal handler for ProcessLauncher with no_fork

- Refactor threading launchers to prefer spawn-safe multiprocessing

- Fix race condition while creating the cotyledon.ServiceManager

- Fix signal handler for threading mode

- Delay string interpolations at logging calls

- Add multiprocessing utilities with spawn start method

- Remove reference to tag framework

## 4.4.1

- Restore ThreadGroup.max_threads for backward compatibility

## 4.4.0

- trivial: Avoid use of kwargs

- Synch Service.launch() signature

- reno: Update master for unmaintained/2024.1

- Extract shared logic between eventlet and threading backends

- Bump pyupgrade target to 3.10+

- Migrate bandit options to pyproject.toml

- Fix incomplete Launcher in threading backend

- Fix ignored restart_method in threading backend

- Fix wrong mapping in threading backend

- Add license note to optional dependencies

- pre-commit: Bump dependencies

- Migrate setup configuration to pyproject.toml

- Drop Python 3.9 support

- Update master for stable/2025.2

- Prevent WSGI Server usage with threading backend

## 4.3.0

- Fix signal lookup to only include singals

- Update backend documentation with get_backend() and hook behavior

- Add comprehensive backend system documentation

## 4.2.2

- Revert “Fix keyword-arg-before-vararg warning”

- Don’t deprecate the entire oslo_service.wsgi module

- Fix inconsistent interface of ThreadGroup

## 4.2.1

- Fix crash during shutdown by using public shutdown() method

- Accept wait_interval and support multiple launch_service() calls

- Fix keyword-arg-before-vararg warning

- Fix ServiceBase mapping when using threading backend

- add pyproject.toml to support pip 23.1

## 4.2.0

- Add threading backend implementation using cotyledon and standard threads

- Replace os.popen

- Drop redundant injection of VIRTUAL_ENV

- Update master for stable/2025.1

## 4.1.1

- Fix removed public API

## 4.1.0

- Migrate Eventlet components to the new backend system

- Introduce configurable backend system in oslo.service

## 4.0.0

- reno: Update master for unmaintained/2023.1

## 3.6.0

- Add note about requirements lower bounds

- Run pyupgrade to clean up Python 2 syntaxes

- Remove Python 3.8 support

- Fix outdated tox minversion

- Declare Python 3.12 support

- Remove workaround for eventlet < 0.27.0

- Update master for stable/2024.2

## 3.5.0

- reno: Update master for unmaintained/zed

- Remove old excludes

- Update sslutils.wrap for newer Pythons

- Remove deprecated ssl options

- Make signal handling order predictable

- Update master for stable/2024.1

- reno: Update master for unmaintained/xena

- reno: Update master for unmaintained/wallaby

- reno: Update master for unmaintained/victoria

## 3.4.0

- Switch to coverage command

- reno: Update master for unmaintained/yoga

- pre-commit: Integrate doc8 and bandit

- pre-commit: Bump versions

- Bump hacking

- Update python classifier in setup.cfg

## 3.3.0

- Update master for stable/2023.2

## 3.2.0

- Imported Translations from Zanata

- Bump bandit

- Revert “Moves supported python runtimes from version 3.8 to 3.10”

- Moves supported python runtimes from version 3.8 to 3.10

- Update master for stable/2023.1

## 3.1.1

- Fix issues related to tox4

## 3.1.0

- Fix misuse of assertTrue

- Imported Translations from Zanata

- Add Python3 antelope unit tests

- Update master for stable/zed

- Fix native threads on child process

## 3.0.0

- Imported Translations from Zanata

- Drop python3.6/3.7 support in testing runtime

- Add Python3 zed unit tests

- Update master for stable/yoga

## 2.8.0

- Make debug option of wsgi server configurable

## 2.7.0

- Fix fo() backdoor command for non-class objects

- Fix BackOffLoopingCall error so it is not misleading

- Add Python3 yoga unit tests

- Update master for stable/xena

## 2.6.0

- setup.cfg: Replace dashes with underscores

- Remove references to ‘sys.version_info’

- Move flake8 as a pre-commit local target

- Add Python3 xena unit tests

- Update master for stable/wallaby

- Remove lower-constraints remnants

## 2.5.0

- remove unicode from code

- Use TOX_CONSTRAINTS_FILE

- Dropping lower constraints testing

- Drop custom implementation of EVENTLET_HUB

- Use TOX_CONSTRAINTS_FILE

- Use py3 as the default runtime for tox

- Use TOX_CONSTRAINTS_FILE

- Add Python3 wallaby unit tests

- Update master for stable/victoria

- Adding pre-commit

## 2.4.0

- [goal] Migrate testing to ubuntu focal

- Bump bandit version

## 2.3.2

- Do not import “oslo.log” in the main module

## 2.3.1

## 2.3.0

- Fix wsgi SSL tests for wsgi module under python 3

- Reactivate wsgi test related to socket option under python 3

- Fix wsgi/SSL/ipv6 tests for wsgi module under python 3

- Fix some SSL tests for wsgi module under python 3

- Raise minimum version of eventlet to 0.25.2

- Fix pygments style

- Stop to use the __future__ module

## 2.2.0

- Drop six usages

- Fix hacking min version to 3.0.1

- Switch to newer openstackdocstheme and reno versions

- Remove the unused coding style modules

- Remove translation sections from setup.cfg

- Align tests with monkey patch original current_thread _active

- Remove monotonic usage

- Align contributing doc with oslo’s policy

- Monkey patch original current_thread _active

- Bump default tox env from py37 to py38

- Add py38 package metadata

- Use unittest.mock instead of third party mock

- Add release notes links to doc index

- Add Python3 victoria unit tests

- Update master for stable/ussuri

- Cleanup py27 support

## 2.1.1

- Update hacking for Python3

## 2.1.0

- Update eventlet

- Update the minversion parameter

- remove outdated header

- reword releasenote for py27 support dropping

## 2.0.0

- [ussuri][goal] Drop python 2.7 support and testing

- tox: Trivial cleanup

## 1.41.1

- Add ‘is_available’ function

- tox: Keeping going with docs

- Switch to official Ussuri jobs

- Extend test cert validity to 2049

- Update the constraints url

## 1.41.0

- Update master for stable/train

## 1.40.2

- Reno for SIGHUP fix

## 1.40.1

- Polish usage.rst

- restart: don’t stop process on sighup when mutating

- Move doc related modules to doc/requirements.txt

- Add Python 3 Train unit tests

## 1.40.0

- Stop using pbr to build docs

- Make PID availabe as formatstring in backdoor path

## 1.39.0

- Cap Bandit below 1.6.0 and update Sphinx requirement

- Add workers’ type check before launching the services

- Replace git.openstack.org URLs with opendev.org URLs

- OpenDev Migration Patch

- Dropping the py35 testing

- Update master for stable/stein

## 1.38.0

- Update oslo.service to require yappi 1.0 or newer

- add python 3.7 unit test job

- Update hacking version

## 1.37.0

- Bump oslo.utils lower constraint to 3.40.2

## 1.36.0

- Profile Oslo Service processes

- Use eventletutils Event class

- Avoid eventlet_backdoor listing on same port

## 1.35.0

- Use template for lower-constraints

- Deprecate the ThreadGroup.cancel() API

- Document the threadgroup module

- Actually test child SIGHUP signal

- Restore correct signal handling in Python3

- Add stop_on_exception to TG timers

- Add better timer APIs to ThreadGroup

- Update mailinglist from dev to discuss

- Use SleepFixture in looping call test suite

## 1.33.0

- Fixture to mock loopingcall wait()

- Limit monotonic to py2

## 1.32.1

- Fix stop of loopingcall

- Use eventlet Event for loopingcall events

- Clean up .gitignore references to personal tools

- Always build universal wheels

## 1.32.0

- Ensure connection is active in graceful shutdown tests

- Stop asserting on Eventlet internals

- Skips signal handling on Windows

- add lib-forward-testing-python3 test job

- add python 3.6 unit test job

- import zuul job settings from project-config

- Update reno for stable/rocky

## 1.31.3

- Remove unnecessary pyNN testenv

- Convert oslo.service to using stestr

- Add release notes link to README

- Fix oslo.service ProcessLauncher fails to call stop

- fix tox python3 overrides

- Add test dependency on requests

- Remove moxstubout

## 1.31.2

- [ThreadGroup] Don’t remove timer when stop timers

- Make lower-constraints job voting

- tox.ini: Use python3.5 in py35 environment

- Python 3: Fix eventlet wakeup after signal

- Python 3: Fix non-deterministic test

- Remove stale pip-missing-reqs tox test

- Trivial: Update pypi url to new url

- add lower-constraints job

- move doc8 test to pep8 job

- set default python to python3

## 1.31.1

- Revert “Revert “Permit aborting loopingcall while sleeping””

## 1.31.0

- Remove eventlet cap

- Fixup certificates and skip failing test

## 1.30.0

- Imported Translations from Zanata

- Imported Translations from Zanata

- Update links in README

- Imported Translations from Zanata

- Updated from global requirements

- Update reno for stable/queens

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

## 1.29.0

- Maintain shared memory after fork in Python >=3.7

- Updated from global requirements

- Revert “Permit aborting loopingcall while sleeping”

## 1.28.1

## 1.28.0

- Remove -U from pip install

- Avoid tox_install.sh for constraints support

- Updated from global requirements

- Remove setting of version/release from releasenotes

- Updated from global requirements

## 1.27.0

- Updated from global requirements

- change periodic_task to catch all exceptions including BaseException

- Fix bandit scan and make it voting

- Imported Translations from Zanata

## 1.26.0

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Imported Translations from Zanata

- Updated from global requirements

- Updated from global requirements

- Update reno for stable/pike

- Updated from global requirements

## 1.25.0

- Update URLs in documents according to document migration

## 1.24.1

- rearrange existing documentation to fit the new standard layout

- switch from oslosphinx to openstackdocstheme

## 1.24.0

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Permit aborting loopingcall while sleeping

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

## 1.23.0

- Add min_interval to BackOffLoopingCall

## 1.22.0

- Updated from global requirements

- Updated from global requirements

## 1.21.0

- Remove log translations

- Use Sphinx 1.5 warning-is-error

- Fix some reST field lists in docstrings

- Updated from global requirements

## 1.20.0

- Updated from global requirements

- [Fix gate]Update test requirement

- Updated from global requirements

- Updated from global requirements

- Fix race condition with fast threads

- pbr.version.VersionInfo needs package name (oslo.xyz and not oslo_xyz)

- Remove duplicated register_opts call

- Update reno for stable/ocata

- Remove references to Python 3.4

## 1.19.0

- Add FixedIntervalWithTimeoutLoopingCall

- Add Constraints support

- Show team and repo badges on README

## 1.18.0

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Imported Translations from Zanata

- Update .coveragerc after the removal of respective directory

- Delete python bytecode file

## 1.17.0

- Changed the home-page link

- Updated from global requirements

- Replace ‘MagicMock’ with ‘Mock’

- Enable release notes translation

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

## 1.16.0

- Updated from global requirements

- Stay alive on double SIGHUP

## 1.15.0

- Updated from global requirements

## 1.14.0

- Updated from global requirements

- Fix parameters of assertEqual are misplaced

## 1.13.0

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Add reno for release notes management

- Updated from global requirements

## 1.12.0

- Imported Translations from Zanata

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

## 1.11.0

- Trivial: ignore openstack/common in flake8 exclude list

## 1.10.0

- [Trivial] Remove executable privilege of doc/source/conf.py

## 1.9.0

- Updated from global requirements

- Offer mutate_config_files

- Make _spawn_service more flexible

- Remove direct dependency on babel

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Fix argument type for _sd_notify() on python3

- Use a timeutils.StopWatch for cancel timing

- Add ability to cancel Threads and ThreadGroups

- Exception: message need ‘_’ function

- Fix Heartbeats stop when time is changed

- Updated from global requirements

## 1.7.0

- Updated from global requirements

- Correct some help text

- Fix typo in help text

- wsgi: decrease the default number of greenthreads in pool

- Updated from global requirements

## 1.6.0

- Updated from global requirements

- Allow the backdoor to serve from a local unix domain socket

- Updated from global requirements

## 1.5.0

- Use requests in TestWSGIServerWithSSL instead of raw socket client

## 1.4.0

- Updated from global requirements

- Updated from global requirements

- Fix misspelling and rewrite sentence

- Add a more useful/detailed frame dumping function

- Updated from global requirements

- Update translation setup

- Fix race condition on handling signals

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Fix artificial service.wait()

## 1.3.0

- Graceful shutdown added to ServiceLauncher

- Fix test execution on CentOS 7

- Updated from global requirements

- Fix some inconsistency in docstrings

- Refactoring of tests/eventlet_service.py

- Updated from global requirements

- Remove argument ServiceLauncher.wait() method

- fix a couple of assert issues

- Run sslutils and wsgi tests for python3

- Updated from global requirements

## 1.2.0

- Updated from global requirements

- Fix a race condition in signal handlers

- Enable py3 mock.patch of RuntimeError

- Delete python bytecode before every test run

- Trival: Remove ‘MANIFEST.in’

## 1.1.0

- Avoid warning when time taken is close to zero

- Update the _i18n.py file and fix the domain value

- Add Bandit to tox for security static analysis

- Code refactoring of ThreadGroup::stop_timers()

## 1.0.0

- Updated from global requirements

- Updated from global requirements

- Add functionality for creating Unix domain WSGI servers

- Use reflection.get_class_name() from oslo.utils

- Remove Python 2.6 classifier

- Remove openstack-common.conf

- cleanup tox.ini

- Change “started child” messages to DEBUG

- Support for SSL protocol and cipher controls

## 0.13.0

- Default value of graceful_shutdown_timeout is set to 60sec

- Updated from global requirements

- Logger name argument was added into wsgi.Server constructor

- Avoid the dual-naming confusion

- Forbid launching services with 0 or negative number of workers

## 0.12.0

- Document graceful_shutdown_timeout config option

- Remove py26 env from test list

- Added config option graceful_shutdown_timeout

- Updated from global requirements

- Add docstring for LoopingCallBase._start()

- Updated from global requirements

## 0.11.0

- Updated from global requirements

- Add doc8 to py27 tox env and fix raised issues

- Document termination of children on SIGHUP

- Updated from global requirements

- Updated from global requirements

## 0.10.0

- RetryDecorator should not log warnings/errors for expected exceptions

- Termination children on SIGHUP added

- Fix coverage configuration and execution

- Add register_opts function to sslutils

- Move the common thread manipulating routine to a shared routine

- Update log string to correctly denote what it waits on

- Avoid removing entries for timers that didn’t stop

- Cleanup thread on thread done callback

- Move ‘history’ -> release notes section

- Add unit tests for sslutils

- Expand README and clean up intro to sphinx docs

- Add shields.io version/downloads links/badges into README.rst

- add auto-generated docs for config options

- Move backoff looping call from IPA to oslo.service

- Change ignore-errors to ignore_errors

- Fix the home-page value in setup.cfg

- WSGI module was corrected

- Updated from global requirements

- ThreadGroup’s stop didn’t recognise the current thread correctly

- doing monkey_patch for unittest

## 0.9.0

- Handling corner cases in dynamic looping call

- Change DEBUG log in loopingcall to TRACE level log

- Updated from global requirements

## 0.8.0

- Added wsgi functionality

## 0.7.0

- Updated from global requirements

- Update “Signal handling” section of usage docs

- Use oslo_utils reflection to get ‘f’ callable name

- Updated from global requirements

- Prefix the ‘safe_wrapper’ function to be ‘_safe_wrapper’

- Setup translations

- Check that sighup is supported before accessing signal.SIGHUP

- Use contextlib.closing instead of try … finally: sock.close

- Avoid using the global lockutils semaphore collection

- Updated from global requirements

## 0.6.0

- Added newline at end of file

- Added class SignalHandler

- Updated from global requirements

- Activate pep8 check that _ is imported

- Denote what happens when no exceptions are passed in

- Allow LoopingCall to continue on exception in callee

## 0.5.0

- Updated from global requirements

- Updated from global requirements

- Updated from global requirements

- Add oslo_debug_helper to tox.ini

- Add usage documentation for oslo_service.service module

## 0.4.0

- Updated from global requirements

- save docstring, name etc using six.wraps

- Move backdoor-related tests from test_service

- Add mock to test_requirements

- Remove usage of mox in test_eventlet_backdoor

## 0.3.0

- Copy RetryDecorator from oslo.vmware

- Increase test coverage of systemd

- Ensure we set the event and wait on the timer in the test

- Make it easier to use the eventlet backdoor locally

- Track created thread and disallow more than one start being active

## 0.2.0

- Documentation on the use of the oslo-config-generator

- Add greenlet to requirements

- Add tox target to find missing requirements

- Enforce H405 check

- Enforce H301 check

- Return timer after adding it to internal list

- Updated from global requirements

- Have all the looping calls share a common run loop

- Move service abstract base class check to launch_service methods

- Fix a typo in a comment

- Updated from global requirements

- Use a signal name->sigval and sigval->signal name mapping

## 0.1.0

- Test for instantaneous shutdown fixed

- Graceful shutdown WSGI/RPC server

- Use monotonic.monotonic and stopwatches instead of time.time

- Updated from global requirements

- Eventlet service fixed

- Add documentation for the service module

- Improve test coverage for loopingcall module

- Add oslo.service documentation

- Remove usage of global CONF

- Make logging option values configurable

- Introduce abstract base class for services

- Add entrypoints for option discovery

- Updated from global requirements

- Move the option definitions into a private file

- Fix unit tests

- Fix pep8

- exported from oslo-incubator by graduate.sh

- Clean up logging to conform to guidelines

- Port service to Python 3

- Test for shutting down eventlet server on signal

- service child process normal SIGTERM exit

- Revert “Revert “Revert “Optimization of waiting subprocesses in ProcessLauncher”””

- Revert “Revert “Optimization of waiting subprocesses in ProcessLauncher””

- Revert “Optimization of waiting subprocesses in ProcessLauncher”

- ProcessLauncher: reload config file in parent process on SIGHUP

- Add check to test__signal_handlers_set

- Store ProcessLauncher signal handlers on class level

- Remove unused validate_ssl_version

- Update tests for optional sslv3

- Fixed ssl.PROTOCOL_SSLv3 not supported by Python 2.7.9

- Optimization of waiting subprocesses in ProcessLauncher

- Switch from oslo.config to oslo_config

- Change oslo.config to oslo_config

- Remove oslo.log code and clean up versionutils API

- Replace mox by mox3

- Allow overriding name for periodic tasks

- Separate add_periodic_task from the metaclass __init__

- Upgrade to hacking 0.10

- Remove unnecessary import of eventlet

- Added graceful argument on Service.stop method

- Remove extra white space in log message

- Prefer delayed %r formatting over explicit repr use

- ServiceRestartTest: make it more resilient

- threadgroup: don’t log GreenletExit

- add list_opts to all modules with configuration options

- Remove code that moved to oslo.i18n

- Remove graduated test and fixtures libraries

- rpc, notifier: remove deprecated modules

- Let oslotest manage the six.move setting for mox

- Remove usage of readlines()

- Allow test_service to run in isolation

- Changes calcuation of variable delay

- Use timestamp in loopingcall

- Remove unnecessary setUp function

- Log the function name of looping call

- pep8: fixed multiple violations

- Make periodic tasks run on regular spacing interval

- Use moxstubout and mockpatch from oslotest

- Implement stop method in ProcessLauncher

- Fix parenthesis typo misunderstanding in periodic_task

- Fix docstring indentation in systemd

- Remove redundant default=None for config options

- Make unspecified periodic spaced tasks run on default interval

- Make stop_timers() method public

- Remove deprecated LoopingCall

- Fixed several typos

- Add graceful stop function to ThreadGroup.stop

- Use oslotest instead of common test module

- Remove duplicated “caught” message

- Move notification point to a better place

- Remove rendundant parentheses of cfg help strings

- Adds test condition in test_periodic

- Fixed spelling error - occured to occurred

- Add missing _LI for LOG.info in service module

- notify calling process we are ready to serve

- Reap child processes gracefully if greenlet thread gets killed

- Improve help strings for sslutils module

- Remove unnecessary usage of noqa

- Removes use of timeutils.set_time_override

- Update oslo log messages with translation domains

- Refactor unnecessary arithmetic ops in periodic_task

- Refactor if logic in periodic_task

- Use timestamp in periodic tasks

- Add basic Python 3 tests

- Clear time override in test_periodic

- Don’t share periodic_task instance data in a class attr

- Revert “service: replace eventlet event by threading”

- Simplify launch method

- Simple typo correction

- Cleanup unused log related code

- Utilizes assertIsNone and assertIsNotNone

- Fix filter() usage due to python 3 compability

- Use hacking import_exceptions for gettextutils._

- threadgroup: use threading rather than greenthread

- disable SIGHUP restart behavior in foreground

- service: replace eventlet event by threading

- Allow configurable ProcessLauncher liveness check

- Make wait & stop methods work on all threads

- Typos fix in db and periodic_task module

- Remove vim header

- os._exit in _start_child may cause unexpected exception

- Adjust import order according to PEP8 imports rule

- Add a link method to Thread

- Use multiprocessing.Event to ensure services have started

- Apply six for metaclass

- Removed calls to locals()

- Move comment in service.py to correct location

- Fixes issue with SUGHUP in services on Windows

- Replace using tests.utils part2

- Bump hacking to 0.7.0

- Replace using tests.utils with openstack.common.test

- Refactors boolean returns

- Add service restart function in oslo-incubator

- Fix stylistic problems with help text

- Enable H302 hacking check

- Convert kombu SSL version string into integer

- Allow launchers to be stopped multiple times

- Ignore any exceptions from rpc.cleanup()

- Add graceful service shutdown support to Launcher

- Improve usability when backdoor_port is nonzero

- Enable hacking H404 test

- Enable hacking H402 test

- Enable hacking H401 test

- Fixes import order nits

- Add DynamicLoopCall timers to ThreadGroups

- Pass backdoor_port to services being launched

- Improve python3 compatibility

- Use print_function __future__ import

- Improve Python 3.x compatibility

- Import nova’s looping call

- Copy recent changes in periodic tasks from nova

- Fix IBM copyright strings

- Removes unused imports in the tests module

- update OpenStack, LLC to OpenStack Foundation

- Add function for listing native threads to eventlet backdoor

- Use oslo-config-2013.1b3

- Support for SSL in wsgi.Service

- Replace direct use of testtools BaseTestCase

- Use testtools as test base class

- ThreadGroup remove unused name parameters

- Implement importutils.try_import

- Fix test cases in tests.unit.test_service

- Don’t rely on os.wait() blocking

- Use Service thread group for WSGI request handling

- Make project pyflakes clean

- Replace try: import with extras.try_import

- raise_on_error parameter shouldn’t be passed to task function

- Account for tasks duration in LoopingCall delay

- updating sphinx documentation

- Enable eventlet_backdoor to return port

- Use the ThreadGroup for the Launcher

- Change RPC cleanup ordering

- threadgroup : greethread.cancel() should be kill()

- Use spawn_n when not capturing return value

- Make ThreadGroup derived from object to make mocking possible

- Don’t log exceptions for GreenletExit and thread_done

- Log CONF from ProcessLauncher.wait, like ServiceLauncher

- Import order clean-up

- Added a missing `cfg` import in service.py

- Log config on startup

- Integrate eventlet backdoor

- Add the rpc service and delete manager

- Use pep8 v1.3.3

- Add threadgroup to manage timers and greenthreads

- Add basic periodic task infrastructure

- Add multiprocess service launcher

- Add signal handling to service launcher

- Basic service launching infrastructure

- Move manager.py and service.py into common

- Copy eventlet_backdoor into common from nova

- Copy LoopingCall from nova for service.py

- initial commit

- Initial skeleton project

this page last updated: 2026-07-15 01:15:39

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

found an error? report a bug