Charm Interface - Keystone Domain backend
Go to file
Frode Nordahl 18893a5c38
Add subordinate packages interface helper
Publish releases packages map to principal charm

Related-Bug: #1806111
Change-Id: I1d58e9735360a43f9d2d32d6aefe18d0e5a2937d
2021-03-22 17:42:04 +01:00
.gitignore Initial cut of interface 2017-01-27 11:10:44 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:42:09 +00:00
.stestr.conf Migrate unit tests from testr to stestr 2021-02-10 12:01:36 +00:00
.zuul.yaml import zuul job settings from project-config 2018-10-04 12:42:50 +00:00
interface.yaml Initial cut of interface 2017-01-27 11:10:44 +00:00
LICENSE Add LICENSE file 2017-01-27 11:12:20 +00:00
provides.py Add subordinate packages interface helper 2021-03-22 17:42:04 +01:00
README.md Fix some errors for ill-syntax in README.md 2019-01-07 09:05:33 +08:00
test-requirements.txt Migrate unit tests from testr to stestr 2021-02-10 12:01:36 +00:00
tox.ini Migrate unit tests from testr to stestr 2021-02-10 12:01:36 +00:00

Overview

This interface layer handles the communication with Keystone via the 'keystone-domain-backend' interface protocol.

Usage

Provides

The interface layer will set the following state:

  • {relation_name}.connected The relation is established.

For example:

from charms.reactive import when


@when('domain-backend.connected')
@when('configuration.complete')
def configure_domain(domain):
    domain.domain_name('mynewkeystonedomain')
    domain.trigger_restart()

Typically a domain backend charm should validate that it has sufficient and good configuration for the domain backend, write its configuration to /etc/keystone/domains/keystone.<domain-name>.conf and then trigger a restart of keystone using the trigger_restart method of the inteface, supplying the domain name at this point in time as well.

The keystone charm will create the domain in the keystone database, mapping to the underlying domain configuration on disk.