OK I think i see the problem here. The logic in the charms for is_elected_leader goes:
is clustered? and does grp resource exist?
If False then not leader. The problem here is that if you reboot the entire cluster there will be a short window where each unit will have:
is_clustered=True
grp_resource_exist=False
So a simple workaround here would be to allow for a re-query in the case where we are clustered but the grp resource does not yet exist since if all units fail to elect a leader the cluster will likely fail in all cases.
OK I think i see the problem here. The logic in the charms for is_elected_leader goes:
is clustered? and does grp resource exist?
If False then not leader. The problem here is that if you reboot the entire cluster there will be a short window where each unit will have:
is_clustered=True exist=False
grp_resource_
So a simple workaround here would be to allow for a re-query in the case where we are clustered but the grp resource does not yet exist since if all units fail to elect a leader the cluster will likely fail in all cases.