charmhelpers.contrib.peerstorage package¶
-
charmhelpers.contrib.peerstorage.
leader_get
(attribute=None, rid=None)¶ Wrapper to ensure that settings are migrated from the peer relation.
This is to support upgrading an environment that does not support Juju leadership election to one that does.
If a setting is not extant in the leader-get but is on the relation-get peer rel, it is migrated and marked as such so that it is not re-migrated.
-
charmhelpers.contrib.peerstorage.
peer_echo
(includes=None, force=False)¶ Echo filtered attributes back onto the same relation for storage.
This is a requirement to use the peerstorage module - it needs to be called from the peer relation’s changed hook.
If Juju leader support exists this will be a noop unless force is True.
-
charmhelpers.contrib.peerstorage.
peer_retrieve
(key, relation_name='cluster')¶ Retrieve a named key from peer relation relation_name.
-
charmhelpers.contrib.peerstorage.
peer_retrieve_by_prefix
(prefix, relation_name='cluster', delimiter='_', inc_list=None, exc_list=None)¶ Retrieve k/v pairs given a prefix and filter using {inc,exc}_list
-
charmhelpers.contrib.peerstorage.
peer_store
(key, value, relation_name='cluster')¶ Store the key/value pair on the named peer relation relation_name.
-
charmhelpers.contrib.peerstorage.
peer_store_and_set
(relation_id=None, peer_relation_name='cluster', peer_store_fatal=False, relation_settings=None, delimiter='_', **kwargs)¶ Store passed-in arguments both in argument relation and in peer storage.
It functions like doing relation_set() and peer_store() at the same time, with the same data.
- @param relation_id: the id of the relation to store the data on. Defaults
- to the current relation.
- @param peer_store_fatal: Set to True, the function will raise an exception
- should the peer sotrage not be avialable.
-
charmhelpers.contrib.peerstorage.
relation_get
(attribute=None, unit=None, rid=None)¶ Attempt to use leader-get if supported in the current version of Juju, otherwise falls back on relation-get.
Note that we only attempt to use leader-get if the provided rid is a peer relation id or no relation id is provided (in which case we assume we are within the peer relation context).
-
charmhelpers.contrib.peerstorage.
relation_set
(relation_id=None, relation_settings=None, **kwargs)¶ Attempt to use leader-set if supported in the current version of Juju, otherwise falls back on relation-set.
Note that we only attempt to use leader-set if the provided relation_id is a peer relation id or no relation id is provided (in which case we assume we are within the peer relation context).