From 7b76ebb85d94d6fc4ccfae35264e0e6ceab5c821 Mon Sep 17 00:00:00 2001 From: Frode Nordahl Date: Wed, 24 Mar 2021 15:30:52 +0100 Subject: [PATCH] Add method for publishing releases packages map Related-Bug: #1806111 Change-Id: Ice633e5a4011218f20a112968427fbf3fd5a0f7f --- provides.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/provides.py b/provides.py index 062f23d..cd338be 100644 --- a/provides.py +++ b/provides.py @@ -6,6 +6,8 @@ from charms.reactive import RelationBase from charms.reactive import hook from charms.reactive import scopes +import charmhelpers.core.hookenv as hookenv + class CinderBackendProvides(RelationBase): @@ -52,3 +54,18 @@ class CinderBackendProvides(RelationBase): backend_name=backend_name, stateless=stateless, subordinate_configuration=json.dumps(subordinate_configuration)) + + def publish_releases_packages_map(self, releases_packages_map): + """Publish releases_packages_map. + + :param releases_packages_map: Map of releases and packages + :type releases_packages_map: Dict[str,Dict[str,List[str]]] + """ + # NOTE: To allow relation updates outside of relation hook execution, + # e.g. upgrade-charm hook, we need to revert to classic hookenv tools. + for rid in hookenv.relation_ids(self.relation_name): + relation_info = { + 'releases-packages-map': json.dumps( + releases_packages_map, sort_keys=True) + } + hookenv.relation_set(rid, relation_info)