From 99b2a7c2e363b0083b929a3f58ccfb841fa430d9 Mon Sep 17 00:00:00 2001 From: Edward Hope-Morley Date: Fri, 15 Apr 2016 13:29:52 +0100 Subject: [PATCH] Ensure all units provide ceph-public-addr radosgw relation was only providing information when executed by a leader unit. This patch ensures that the minimum info is provided regardless. Change-Id: I2f841933f70847fb1bddc94f5ae525f5588021c2 Closes-Bug: 1570823 --- hooks/ceph_hooks.py | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/hooks/ceph_hooks.py b/hooks/ceph_hooks.py index 3769f52..aec816a 100755 --- a/hooks/ceph_hooks.py +++ b/hooks/ceph_hooks.py @@ -515,26 +515,29 @@ def radosgw_relation(relid=None, unit=None): apt_install(packages=filter_installed_packages(['radosgw'])) if not unit: unit = remote_unit() - """Process broker request(s).""" + if ceph.is_quorum(): + log('mon cluster in quorum - providing radosgw with keys') + public_addr = get_public_addr() + data = { + 'fsid': leader_get('fsid'), + 'radosgw_key': ceph.get_radosgw_key(), + 'auth': config('auth-supported'), + 'ceph-public-address': public_addr, + } + settings = relation_get(rid=relid, unit=unit) + """Process broker request(s).""" if 'broker_req' in settings: - if not ceph.is_leader(): - log("Not leader - ignoring broker request", level=DEBUG) - else: + if ceph.is_leader(): rsp = process_requests(settings['broker_req']) unit_id = unit.replace('/', '-') unit_response_key = 'broker-rsp-' + unit_id - log('mon cluster in quorum - providing radosgw with keys') - public_addr = get_public_addr() - data = { - 'fsid': leader_get('fsid'), - 'radosgw_key': ceph.get_radosgw_key(), - 'auth': config('auth-supported'), - 'ceph-public-address': public_addr, - unit_response_key: rsp, - } - relation_set(relation_id=relid, relation_settings=data) + data[unit_response_key] = rsp + else: + log("Not leader - ignoring broker request", level=DEBUG) + + relation_set(relation_id=relid, relation_settings=data) else: log('mon cluster not in quorum - deferring key provision')