From f5c2917312725374ebca1b0e0eeae5501356b302 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Tue, 17 Mar 2015 07:48:31 +0100 Subject: [PATCH] remove test_ha_agent_lock We need to use the normal get_ha_agent_lock --- src/PVE/HA/Env.pm | 9 +-------- src/PVE/HA/Env/PVE2.pm | 15 ++------------- src/PVE/HA/NodeStatus.pm | 2 +- src/PVE/HA/Sim/Env.pm | 31 +++++++++++-------------------- src/PVE/HA/Sim/RTHardware.pm | 2 +- src/PVE/HA/Sim/TestEnv.pm | 8 -------- 6 files changed, 16 insertions(+), 51 deletions(-) diff --git a/src/PVE/HA/Env.pm b/src/PVE/HA/Env.pm index 14f7d64..5161e93 100644 --- a/src/PVE/HA/Env.pm +++ b/src/PVE/HA/Env.pm @@ -115,16 +115,9 @@ sub get_ha_manager_lock { # aquire a cluster wide node agent lock sub get_ha_agent_lock { - my ($self) = @_; - - return $self->{plug}->get_ha_agent_lock(); -} - -# same as get_ha_agent_lock(), but immeditaley release the lock on success -sub test_ha_agent_lock { my ($self, $node) = @_; - return $self->{plug}->test_ha_agent_lock($node); + return $self->{plug}->get_ha_agent_lock($node); } # return true when cluster is quorate diff --git a/src/PVE/HA/Env/PVE2.pm b/src/PVE/HA/Env/PVE2.pm index d131352..4f6cd49 100644 --- a/src/PVE/HA/Env/PVE2.pm +++ b/src/PVE/HA/Env/PVE2.pm @@ -301,22 +301,11 @@ sub get_ha_manager_lock { } sub get_ha_agent_lock { - my ($self) = @_; - - my $node = $self->nodename(); - - return $self->get_pve_lock("ha_agent_${node}_lock"); -} - -sub test_ha_agent_lock { my ($self, $node) = @_; - my $lockid = "ha_agent_${node}_lock"; - my $filename = "$lockdir/$lockid"; - my $res = $self->get_pve_lock($lockid); - rmdir $filename if $res; # cfs unlock + $node = $self->nodename() if !defined($node); - return $res; + return $self->get_pve_lock("ha_agent_${node}_lock"); } sub quorate { diff --git a/src/PVE/HA/NodeStatus.pm b/src/PVE/HA/NodeStatus.pm index 3b14210..c5d0568 100644 --- a/src/PVE/HA/NodeStatus.pm +++ b/src/PVE/HA/NodeStatus.pm @@ -145,7 +145,7 @@ sub fence_node { &$set_node_state($self, $node, 'fence'); } - my $success = $haenv->test_ha_agent_lock($node); + my $success = $haenv->get_ha_agent_lock($node); if ($success) { $haenv->log("info", "fencing: acknowleged - got agent lock for node '$node'"); diff --git a/src/PVE/HA/Sim/Env.pm b/src/PVE/HA/Sim/Env.pm index 1dc05b0..f881e64 100644 --- a/src/PVE/HA/Sim/Env.pm +++ b/src/PVE/HA/Sim/Env.pm @@ -4,7 +4,7 @@ use strict; use warnings; use POSIX qw(strftime EINTR); use Data::Dumper; -use JSON; +use JSON; use IO::File; use Fcntl qw(:DEFAULT :flock); @@ -16,7 +16,7 @@ sub new { die "missing nodename" if !$nodename; die "missing log_id" if !$log_id; - + my $class = ref($this) || $this; my $self = bless {}, $class; @@ -47,7 +47,7 @@ sub sim_get_lock { my $code = sub { - my $data = PVE::HA::Tools::read_json_from_file($filename, {}); + my $data = PVE::HA::Tools::read_json_from_file($filename, {}); my $res; @@ -58,7 +58,7 @@ sub sim_get_lock { if (my $d = $data->{$lock_name}) { my $tdiff = $ctime - $d->{time}; - + if ($tdiff > $self->{lock_timeout}) { $res = 1; } elsif (($tdiff <= $self->{lock_timeout}) && ($d->{node} eq $nodename)) { @@ -72,9 +72,9 @@ sub sim_get_lock { } else { if (my $d = $data->{$lock_name}) { - + my $tdiff = $ctime - $d->{time}; - + if ($tdiff <= $self->{lock_timeout}) { if ($d->{node} eq $nodename) { $d->{time} = $ctime; @@ -99,7 +99,7 @@ sub sim_get_lock { } } - PVE::HA::Tools::write_json_to_file($filename, $data); + PVE::HA::Tools::write_json_to_file($filename, $data); return $res; }; @@ -109,10 +109,10 @@ sub sim_get_lock { sub read_manager_status { my ($self) = @_; - + my $filename = "$self->{statusdir}/manager_status"; - return PVE::HA::Tools::read_json_from_file($filename, {}); + return PVE::HA::Tools::read_json_from_file($filename, {}); } sub write_manager_status { @@ -120,7 +120,7 @@ sub write_manager_status { my $filename = "$self->{statusdir}/manager_status"; - PVE::HA::Tools::write_json_to_file($filename, $status_obj); + PVE::HA::Tools::write_json_to_file($filename, $status_obj); } sub read_lrm_status { @@ -218,19 +218,10 @@ sub get_ha_agent_lock_name { } sub get_ha_agent_lock { - my ($self) = @_; - - my $lck = $self->get_ha_agent_lock_name(); - return $self->sim_get_lock($lck); -} - -sub test_ha_agent_lock { my ($self, $node) = @_; my $lck = $self->get_ha_agent_lock_name($node); - my $res = $self->sim_get_lock($lck); - $self->sim_get_lock($lck, 1) if $res; # unlock - return $res; + return $self->sim_get_lock($lck); } # return true when cluster is quorate diff --git a/src/PVE/HA/Sim/RTHardware.pm b/src/PVE/HA/Sim/RTHardware.pm index 7f1282a..2482f86 100644 --- a/src/PVE/HA/Sim/RTHardware.pm +++ b/src/PVE/HA/Sim/RTHardware.pm @@ -265,7 +265,7 @@ sub cleanup { sub append_text { my ($self, $text) = @_; - + my $logview = $self->{gui}->{text_view} || die "GUI not ready"; my $textbuf = $logview->get_buffer(); diff --git a/src/PVE/HA/Sim/TestEnv.pm b/src/PVE/HA/Sim/TestEnv.pm index 6a81c4e..914bf37 100644 --- a/src/PVE/HA/Sim/TestEnv.pm +++ b/src/PVE/HA/Sim/TestEnv.pm @@ -64,14 +64,6 @@ sub get_ha_agent_lock { return $res; } -sub test_ha_agent_lock { - my ($self, $node) = @_; - - my $res = $self->SUPER::test_ha_agent_lock($node); - ++$self->{loop_delay}; - return $res; -} - sub loop_start_hook { my ($self, $starttime) = @_; -- 2.39.5