Event > List of events > Lifecycle events >
leader-settings-changed
Source:
ops.LeaderSettingsChanged
See also: Leadership hook tools
The leader-settings-changed
event is emitted when a leadership change occurs, all units that are not the new leader will receive the event. Also, this event is emitted if changes have been made to leader settings.
Contents:
Emission sequence
During startup sequence, for all non-leader units:
Scenario | Example Command | Resulting Events |
---|---|---|
Create unit | juju deploy foo -n 2 |
install -> leader-settings-changed -> config-changed -> start (non-leader) |
If the leader unit is rescheduled, or removed entirely. When the new leader is elected:
Scenario | Example Command | Resulting Events |
---|---|---|
Removal of leader | juju remove-unit foo/0 (foo/0 being leader) |
leader-settings-changed (for all non leaders) |
Since this event needs leadership changes to trigger, check out triggers for
leader-elected
as the same situations apply forleader-settings-changed
.
Observing this event in Ops
In Ops, you can observe the event like you would any other:
self.framework.observe(
charm.on.leader_settings_changed,
self._leader_settings_changed
)
With Ops, you can test for leadership with self.unit.is_leader()
(ops.Unit.is_leader
).
When writing unit tests with the OF harness, leadership is set with self.harness.set_leader(True)
(ops.testing.Harness.set_leader
).
Behind the scenes, OF uses the hook-tools is-leader, leader-set and leader-get to interact with juju regarding leadership.