Cleanup the manager state if we get promoted to manager to avoid deletions of deprecated hash entries. Just safe: * service status: as it may contain unprocessed results * relocate tried nodes: so we do not accidentally restart the start failure policy on a manager restart (e.g. update) * manager_node: this is set only once before this cleanup so do not delete it.
Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com> --- new in this version src/PVE/HA/Manager.pm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/PVE/HA/Manager.pm b/src/PVE/HA/Manager.pm index 1208720..017e4b2 100644 --- a/src/PVE/HA/Manager.pm +++ b/src/PVE/HA/Manager.pm @@ -30,6 +30,8 @@ sub new { ss => $ss, # service status }, $class; + $self->cleanup_manager_status(); + return $self; } @@ -39,6 +41,23 @@ sub cleanup { # todo: ? } +sub cleanup_manager_status { + my ($self) = @_; + + my $ms = $self->{ms}; + my $new_state = {}; + + # safe only the state part of the manager which cannot be auto generated + my @key_withelist = qw(service_status relocate_tried_nodes master_node); + + foreach my $k (@key_withelist) { + next if !$ms->{$k}; + $new_state->{$k} = $ms->{$k}; + } + + $self->{ms} = $new_state; +} + sub flush_master_status { my ($self) = @_; -- 2.1.4 _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel