From 9d208bbe54333b8714fbda85f07e5c3a6749c684 Mon Sep 17 00:00:00 2001 From: David Ames Date: Wed, 25 Mar 2020 10:28:59 -0700 Subject: [PATCH] Update peers with API addresses Create a default_update_peers which all API charms can use to publish their admin, internal and public addresses to their peers. Change-Id: Iacfdc2a0247f35d0bddfef47c9dd5d4cf66cd309 Closes-Bug: #1858132 Depends-On: I1977e2c9625952eb22a63be0da0d6979c9f23072 --- reactive/layer_openstack_api.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/reactive/layer_openstack_api.py b/reactive/layer_openstack_api.py index d722cce..06d1b2d 100644 --- a/reactive/layer_openstack_api.py +++ b/reactive/layer_openstack_api.py @@ -49,3 +49,16 @@ def default_setup_endpoint_connection(keystone): instance.internal_url, instance.admin_url) instance.assess_status() + + +@reactive.when('cluster.available') +def default_update_peers(cluster): + """Inform peers about this unit's API addresses. + + Set public-address, internal-address and admin-address on the + (openstack-ha) peer relation. + """ + with charm.provide_charm_instance() as instance: + # This function ONLY updates the peers if the data has changed. Thus + # it's okay to call it on every hook invocation. + instance.update_peers(cluster)