Charm Interface - Service Control
Go to file
Hervé Beraud 714ef09e17 Use unittest.mock instead of mock
The mock third party library was needed for mock support in py2
runtimes. Since we now only support py36 and later, we can use the
standard lib unittest.mock module instead.

Note that https://github.com/openstack/charms.openstack is used during tests
and he need `mock`, unfortunatelly it doesn't declare `mock` in its
requirements so it retrieve mock from other charm project (cross dependency).
So we depend on charms.openstack first and when
Ib1ed5b598a52375e29e247db9ab4786df5b6d142 will be merged then CI
will pass without errors.

Depends-On: Ib1ed5b598a52375e29e247db9ab4786df5b6d142
Change-Id: Ic1a687f95e5fd16ffa7f63102d6f8f2de383780e
2020-06-09 17:47:50 +02:00
unit_tests Use unittest.mock instead of mock 2020-06-09 17:47:50 +02:00
__init__.py Initial commit 2016-08-31 07:25:48 +00:00
.gitignore Fixup repo config 2019-01-09 07:53:26 +01:00
.gitreview OpenDev Migration Patch 2019-04-19 19:42:00 +00:00
.stestr.conf Fixup repo config 2019-01-09 07:53:26 +01:00
.zuul.yaml Switch to Ussuri jobs 2019-10-31 18:09:13 +08:00
copyright Switch to service-control 2016-08-31 10:42:05 +00:00
interface.yaml Change openstack-dev to openstack-discuss 2019-01-10 10:39:39 +08:00
README.md More RWADME updates 2016-08-31 11:05:30 +00:00
requires.py Switch to service-control 2016-08-31 10:42:05 +00:00
test-requirements.txt Use unittest.mock instead of mock 2020-06-09 17:47:50 +02:00
tox.ini Avoid pollution and false positives with tox.ini 2019-08-27 09:19:02 -04:00

Overview

This interface is used for a charm to request a restart of a service managed by another charm.

Usage

The interface provides the {relation-name}.connected state.

Requesting a restart of all remote services:

@reactive.when('service-control.connected')
def configure(service_control):
    ...
    service_control.request_restart()

Requesting a restart of a specific type of remote services:

@reactive.when('service-control.connected')
def configure(service_control):
    ...
    service_control.request_restart(service_type='neutron')

Metadata

To consume this interface in your charm or layer, add the following to layer.yaml:

includes: ['interface:service-control']

and add a requires interface of type service-control to your charm or layers metadata.yaml eg:

requires:
  neutron-control:
    interface: service-control

Bugs

Please report bugs on Launchpad.

For development questions please refer to the OpenStack Charm Guide.