fcf04868ab
We want to default to running all tox environments under python 3, so set the basepython value in each environment. We do not want to specify a minor version number, because we do not want to have to update the file every time we upgrade python. We do not want to set the override once in testenv, because that breaks the more specific versions used in default environments like py35 and py36. Change-Id: I87cec522de2e0f13119701e44a6226c9a4e85e36 Signed-off-by: Doug Hellmann <doug@doughellmann.com> |
||
---|---|---|
.gitignore | ||
.gitreview | ||
.zuul.yaml | ||
README.md | ||
copyright | ||
interface.yaml | ||
provides.py | ||
test-requirements.txt | ||
tox.ini |
README.md
Overview
This interface is used for a charm to send configuration information to the neutron-api principle charm and request a restart of a service managed by that charm.
Usage
States
The interface provides the {relation-name}.connected
and
{relation_name}.available
states.
configure_plugin
The configure_plugin method allows the following to be configured in the principle charm:
- neutron_plugin: Name of the plugin type eg 'ovs', 'odl' etc. This is not currently used in the principle but should be set to something representitve of the plugin type.
- core_plugin: Value of core_plugin to be set in neutron.conf
- neutron_plugin_config: File containing plugin config. This config file is appended to the list of configs the neutron services read on startup.
- service_plugins: Value of service_plugins to be set in neutron.conf
- subordinate_configuration: Config to be inserted into a configuration file that the principle manages.
Request foo = bar
is inserted into the DEFAULT
section of neutron.conf
@reactive.when('neutron-plugin-api-subordinate.connected')
def configure_principle(api_principle):
...
inject_config = {
"neutron-api": {
"/etc/neutron/neutron.conf": {
"sections": {
'DEFAULT': [
('foo', 'bar')
],
}
}
}
}
api_principle.configure_plugin(
neutron_plugin='odl',
core_plugin='neutron.plugins.ml2.plugin.Ml2Plugin',
neutron_plugin_config='/etc/neutron/plugins/ml2/ml2_conf.ini',
service_plugins='router,firewall,lbaas,vpnaas,metering',
subordinate_configuration=inject_config)
request_restart
Requesting a restart of all remote services:
@reactive.when('neutron-plugin-api-subordinate.connected')
def remote_restart(api_principle):
...
api_principle.request_restart()
Requesting a restart of a specific type of remote services:
@reactive.when('neutron-plugin-api-subordinate.connected')
def remote_restart(api_principle):
...
api_principle.request_restart(service_type='neutron')
Metadata
To consume this interface in your charm or layer, add the following to
layer.yaml
:
includes: ['interface:neutron-plugin-api-subordinate']
and add a provides interface of type neutron-plugin-api-subordinate
to your
charm or layers metadata.yaml
eg:
provides:
neutron-plugin-api-subordinate:
interface: neutron-plugin-api-subordinate
scope: container
Bugs
Please report bugs on Launchpad.
For development questions please refer to the OpenStack Charm Guide.