Charm Interface - Magpie peer relation
Go to file
Liam Young 3cba94a520 Get nodes by cidr
Change-Id: I46f7d3e13c002524bb340988bd6ba163a74ad29c
2021-01-08 10:41:43 +00:00
unit_tests Get ready for opendev 2020-11-16 10:32:00 +00:00
.gitignore Get ready for opendev 2020-11-16 10:32:00 +00:00
.gitreview Fix install hook error 2020-12-14 16:49:24 +01:00
.testr.conf Get ready for opendev 2020-11-16 10:32:00 +00:00
.zuul.yaml Fix install hook error 2020-12-14 16:49:24 +01:00
copyright First working implementation 2016-01-28 12:19:47 +02:00
interface.yaml Fix install hook error 2020-12-14 16:49:24 +01:00
LICENSE Get ready for opendev 2020-11-16 10:32:00 +00:00
peers.py Get nodes by cidr 2021-01-08 10:41:43 +00:00
README.md Add link to launchpad 2020-12-17 13:21:09 +01:00
test-requirements.txt Get nodes by cidr 2021-01-08 10:41:43 +00:00
tox.ini Get ready for opendev 2020-11-16 10:32:00 +00:00

Overview

This interface layer handles the communication among Magpie peers.

Usage

Peers

This interface allows the peers of the Magpie deployment to be aware of each other. This interface layer will set the following states, as appropriate:

  • {relation_name}.joined A new peer in the Magpie service has joined. The Magpie charm should call get_nodes() to get a list of tuples with unit ids and IP addresses for peer members.

    • When a unit joins the set of peers, the interface ensures there is no {relation_name}.departed state set in the conversation.

    • A call to dismiss_joined() will remove the joined state in the peer conversation so this charm can react to subsequent peers joining.

  • {relation_name}.departed A peer in the Magpie service has departed. The Magpie charm should call get_nodes() to get a list of tuples with unit ids and IP addresses for remaining peer members.

    • When a unit leaves the set of peers, the interface ensures there is no {relation_name}.joined state set in the conversation.

    • A call to dismiss_departed() will remove the departed state in the peer conversation so this charm can react to subsequent peers departing.

For example, let's say that a peer is added to the Magpie service deployment. The Magpie charm should handle the new peer like this:

@when('magpie.joined')
def check_peers(magpie):
    nodes = magpie.get_nodes()
    # do stuff with nodes

Bugs

Please report bugs on Launchpad.

For general questions please refer to the OpenStack Charm Guide.