Graduating oslo.service

https://blueprints.launchpad.net/oslo-incubator/+spec/graduate-oslo-service

The oslo.service library contains common code for running OpenStack services.

Library Name

oslo.service

Contents

  • openstack/common/eventlet_backdoor.py

  • tests/unit/test_eventlet_backdoor.py

  • openstack/common/loopingcall.py

  • tests/unit/test_loopingcall.py

  • openstack/common/service.py

  • tests/unit/test_service.py

  • tests/unit/eventlet_service.py

  • openstack/common/sslutils.py

  • tests/unit/test_sslutils.py

  • openstack/common/systemd.py

  • tests/unit/test_systemd.py

  • openstack/common/threadgroup.py

  • tests/unit/test_threadgroup.py

  • openstack/common/periodic_task.py

  • tests/unit/test_periodic.py

Early Adopters

  • Ironic

Public API

All of the existing public functions and classes will remain public.

New public function list_opts() that will return a list of oslo.config options available in the library. will be added.

Implementation

Assignee(s)

Primary assignee:

Sachi King (nakato)

Other contributors:

Elena Ezhova (eezhova)

Primary Maintainer

Primary Maintainer:

To Be Determined

Other Contributors:

None

Security Contact

Security Contact:

To Be Determined

Milestones

Target Milestone for completion:

liberty-1

Work Items

  1. https://wiki.openstack.org/wiki/Oslo/CreatingANewLibrary#Checklist

  2. Move the option definitions into a private file.

  3. Create a list_opts() function that will return a list of oslo.config options available in the library.

  4. Change API of launch() in service.py to take a config object as an argument.

  5. Change API of periodic_task() in periodic_task to take a config object as an argument.

  6. Remove usage of global config throughout the library and update the existing classes/functions to register the options they use automatically at runtime.

Adoption Notes

The code changes described above should allow all apps to import with a statement like:

from oslo_service import bar

replacing the current form:

from foo.openstack.common import bar

Dependencies

None

References

Note

This work is licensed under a Creative Commons Attribution 3.0 Unported License. http://creativecommons.org/licenses/by/3.0/legalcode