From 7987c18c8312fe033beac5362dc8c3f9813d83e4 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Wed, 16 Dec 2015 08:14:07 +0100 Subject: [PATCH] correctly reset node status on power on/off --- src/PVE/HA/Sim/RTHardware.pm | 3 ++- src/PVE/HA/Sim/TestEnv.pm | 7 +------ src/PVE/HA/Sim/TestHardware.pm | 4 +++- src/test/test-basic5/log.expect | 2 ++ src/test/test-reboot1/log.expect | 8 ++++---- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/PVE/HA/Sim/RTHardware.pm b/src/PVE/HA/Sim/RTHardware.pm index 54f6fba..2148e20 100644 --- a/src/PVE/HA/Sim/RTHardware.pm +++ b/src/PVE/HA/Sim/RTHardware.pm @@ -207,7 +207,7 @@ sub sim_hardware_cmd { if ($cmd eq 'power') { if ($cstatus->{$node}->{power} ne $action) { - if ($action eq 'on') { + if ($action eq 'on') { $d->{crm} = $self->fork_daemon($lockfh, 'crm', $node) if !$d->{crm}; $d->{lrm} = $self->fork_daemon($lockfh, 'lrm', $node) if !$d->{lrm}; } else { @@ -222,6 +222,7 @@ sub sim_hardware_cmd { $d->{lrm} = undef; } $self->watchdog_reset_nolock($node); + $self->write_service_status($node, {}); } } diff --git a/src/PVE/HA/Sim/TestEnv.pm b/src/PVE/HA/Sim/TestEnv.pm index 8e47db0..414c274 100644 --- a/src/PVE/HA/Sim/TestEnv.pm +++ b/src/PVE/HA/Sim/TestEnv.pm @@ -123,12 +123,7 @@ sub is_node_shutdown { die "undefined node status for node '$node'" if !defined($cstatus->{$node}); - if (defined($cstatus->{$node}->{shutdown}) && - $cstatus->{$node}->{shutdown} eq 'shutdown') { - return 1; - } - - return 0; + return defined($cstatus->{$node}->{shutdown}) ? 1 : 0; } 1; diff --git a/src/PVE/HA/Sim/TestHardware.pm b/src/PVE/HA/Sim/TestHardware.pm index 3a06906..89af119 100644 --- a/src/PVE/HA/Sim/TestHardware.pm +++ b/src/PVE/HA/Sim/TestHardware.pm @@ -106,7 +106,7 @@ sub sim_hardware_cmd { if ($cmd eq 'power') { die "sim_hardware_cmd: unknown action '$action'" if $action !~ m/^(on|off)$/; if ($cstatus->{$node}->{power} ne $action) { - if ($action eq 'on') { + if ($action eq 'on') { $d->{crm} = PVE::HA::CRM->new($d->{crm_env}) if !$d->{crm}; $d->{lrm} = PVE::HA::LRM->new($d->{lrm_env}) if !$d->{lrm}; } else { @@ -118,6 +118,8 @@ sub sim_hardware_cmd { $d->{lrm_env}->log('info', "killed by poweroff"); $d->{lrm} = undef; } + $self->watchdog_reset_nolock($node); + $self->write_service_status($node, {}); } } diff --git a/src/test/test-basic5/log.expect b/src/test/test-basic5/log.expect index ca25f00..7a1782b 100644 --- a/src/test/test-basic5/log.expect +++ b/src/test/test-basic5/log.expect @@ -62,4 +62,6 @@ info 523 node2/lrm: service vm:101 - end migrate to node 'node1' info 524 node3/crm: service 'vm:101': state changed from 'migrate' to 'started' (node = node1) info 541 node1/lrm: got lock 'ha_agent_node1_lock' info 541 node1/lrm: status change wait_for_agent_lock => active +info 541 node1/lrm: starting service vm:101 +info 541 node1/lrm: service status vm:101 started info 1100 hardware: exit simulation - done diff --git a/src/test/test-reboot1/log.expect b/src/test/test-reboot1/log.expect index 43e7d0f..48e43cb 100644 --- a/src/test/test-reboot1/log.expect +++ b/src/test/test-reboot1/log.expect @@ -21,8 +21,7 @@ info 25 node3/lrm: status change wait_for_agent_lock => active info 25 node3/lrm: starting service vm:103 info 25 node3/lrm: service status vm:103 started info 120 cmdlist: execute reboot node3 -info 120 node3/lrm: restart LRM, freeze all services -info 120 node1/crm: service 'vm:103': state changed from 'started' to 'freeze' +info 120 node3/lrm: shutdown LRM, stop all services info 126 node3/lrm: exit (loop end) info 126 reboot: execute power node3 off info 125 node3/crm: killed by poweroff @@ -30,6 +29,7 @@ info 126 reboot: execute power node3 on info 125 node3/crm: status change startup => wait_for_quorum info 126 node3/lrm: status change startup => wait_for_agent_lock info 144 node3/crm: status change wait_for_quorum => slave -info 160 node1/crm: service 'vm:103': state changed from 'freeze' to 'started' -info 165 node3/lrm: status change wait_for_agent_lock => active +info 145 node3/lrm: status change wait_for_agent_lock => active +info 145 node3/lrm: starting service vm:103 +info 145 node3/lrm: service status vm:103 started info 720 hardware: exit simulation - done -- 2.39.5