~gnuoy/charms/trusty/rabbitmq-server/ssl-only

« back to all changes in this revision

Viewing changes to hooks/charmhelpers/contrib/peerstorage/__init__.py

  • Committer: Liam Young
  • Date: 2015-08-03 13:59:47 UTC
  • Revision ID: liam.young@canonical.com-20150803135947-w3ah41nje3lrnxnf
[gnuoy,trivial] Pre-release charmhelper sync to pickup leadership election peer migration fix

Show diffs side-by-side

added added

removed removed

Lines of Context:
59
59
"""
60
60
 
61
61
 
62
 
def leader_get(attribute=None):
 
62
def leader_get(attribute=None, rid=None):
63
63
    """Wrapper to ensure that settings are migrated from the peer relation.
64
64
 
65
65
    This is to support upgrading an environment that does not support
94
94
        # If attribute not present in leader db, check if this unit has set
95
95
        # the attribute in the peer relation
96
96
        if not leader_settings:
97
 
            peer_setting = relation_get(attribute=attribute, unit=local_unit())
 
97
            peer_setting = _relation_get(attribute=attribute, unit=local_unit(),
 
98
                                         rid=rid)
98
99
            if peer_setting:
99
100
                leader_set(settings={attribute: peer_setting})
100
101
                leader_settings = peer_setting
103
104
            settings_migrated = True
104
105
            migrated.add(attribute)
105
106
    else:
106
 
        r_settings = relation_get(unit=local_unit())
 
107
        r_settings = _relation_get(unit=local_unit(), rid=rid)
107
108
        if r_settings:
108
109
            for key in set(r_settings.keys()).difference(migrated):
109
110
                # Leader setting wins
151
152
    """
152
153
    try:
153
154
        if rid in relation_ids('cluster'):
154
 
            return leader_get(attribute)
 
155
            return leader_get(attribute, rid)
155
156
        else:
156
157
            raise NotImplementedError
157
158
    except NotImplementedError: