Charm Interface - Neutron Plugin API Subordinate
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ghanshyam Mann 575c16cdb2 Dropping the py35 testing 1 month ago
.gitignore Generl tidy, docstrings, copyright, tox.ini etc 2 years ago
.gitreview OpenDev Migration Patch 1 month ago
.zuul.yaml Dropping the py35 testing 1 month ago README update 2 years ago
copyright Generl tidy, docstrings, copyright, tox.ini etc 2 years ago
interface.yaml Change openstack-dev to openstack-discuss 6 months ago subordinate_configuration in the interface expects a dict 6 months ago
test-requirements.txt Generl tidy, docstrings, copyright, tox.ini etc 2 years ago
tox.ini Dropping the py35 testing 1 month ago


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.



The interface provides the {relation-name}.connected and {relation_name}.available states.


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

def configure_principle(api_principle):
    inject_config = {
        "neutron-api": {
            "/etc/neutron/neutron.conf": {
                "sections": {
                    'DEFAULT': [
                        ('foo', 'bar')


Requesting a restart of all remote services:

def remote_restart(api_principle):

Requesting a restart of a specific type of remote services:

def remote_restart(api_principle):


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:

    interface: neutron-plugin-api-subordinate
    scope: container


Please report bugs on Launchpad.

For development questions please refer to the OpenStack Charm Guide.