@ -650,18 +650,18 @@ sub configure_pacemaker
# joining the cluster ourselves.
# joining the cluster ourselves.
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0108"});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0108"});
$start_time = time + 120;
$start_time = time + 120;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { start_time => $start_time }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { start_time => $start_time }});
}
}
elsif ((time > $start_time) && (not $tried_starting))
elsif ((time > $start_time) && (not $tried_starting))
{
{
# We've waited a minute, time to try starting the cluster.
# We've waited a minute, time to try starting the cluster.
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0106"});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0106"});
my $cluster_started = $anvil->Cluster->start_cluster({debug => 2, all => 1});
my $cluster_started = $anvil->Cluster->start_cluster({debug => 2, all => 1});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { cluster_started => $cluster_started }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { cluster_started => $cluster_started }});
# Mark that weve tried to start.
# Mark that weve tried to start.
$tried_starting = 1;
$tried_starting = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { tried_starting => $tried_starting }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { tried_starting => $tried_starting }});
}
}
my $problem = $anvil->Cluster->parse_cib({debug => 2});
my $problem = $anvil->Cluster->parse_cib({debug => 2});
@ -678,7 +678,7 @@ sub configure_pacemaker
if (($node1_ready) && ($node2_ready))
if (($node1_ready) && ($node2_ready))
{
{
$both_online = 1;
$both_online = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { both_online => $both_online }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { both_online => $both_online }});
update_progress($anvil, ($anvil->data->{job}{progress} += 2), "job_0104");
update_progress($anvil, ($anvil->data->{job}{progress} += 2), "job_0104");
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0104"});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0104"});
@ -779,7 +779,7 @@ sub configure_pacemaker
}
}
# If we can parse the CIB, then pcsd is running.
# If we can parse the CIB, then pcsd is running.
my $problem = $anvil->Cluster->parse_cib({debug => 3 });
my $problem = $anvil->Cluster->parse_cib({debug => 2 });
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { problem => $problem }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { problem => $problem }});
if ($problem)
if ($problem)
{
{
@ -787,7 +787,7 @@ sub configure_pacemaker
update_progress($anvil, ($anvil->data->{job}{progress} += 2), "job_0102");
update_progress($anvil, ($anvil->data->{job}{progress} += 2), "job_0102");
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0102"});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0102"});
my $cluster_started = $anvil->Cluster->start_cluster({debug => 3 , all => 1});
my $cluster_started = $anvil->Cluster->start_cluster({debug => 2 , all => 1});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { cluster_started => $cluster_started }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { cluster_started => $cluster_started }});
}
}
@ -929,7 +929,7 @@ sub configure_pacemaker
# The --action switch needs to be 'pcmk_off_action' in pcs, so we convert it here.
# The --action switch needs to be 'pcmk_off_action' in pcs, so we convert it here.
$host_ipmi =~ s/--action status//;
$host_ipmi =~ s/--action status//;
$host_ipmi =~ s/--action/--pcmk_off_action/;
$host_ipmi =~ s/--action/--pcmk_off_action/;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
host_ipmi => $host_ipmi =~ /passw/ ? $anvil->Log->is_secure($host_ipmi) : $host_ipmi,
host_ipmi => $host_ipmi =~ /passw/ ? $anvil->Log->is_secure($host_ipmi) : $host_ipmi,
}});
}});
@ -937,12 +937,12 @@ sub configure_pacemaker
if ($node eq "node1")
if ($node eq "node1")
{
{
$node1_use_delay = 1;
$node1_use_delay = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { node1_use_delay => $node1_use_delay }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { node1_use_delay => $node1_use_delay }});
}
}
else
else
{
{
$node2_use_delay = 1;
$node2_use_delay = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { node2_use_delay => $node2_use_delay }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { node2_use_delay => $node2_use_delay }});
}
}
# If we're here, break up the command and turn it into the pcs call.
# If we're here, break up the command and turn it into the pcs call.
@ -980,12 +980,12 @@ sub configure_pacemaker
# Store this to see if it's different from what's already in the CIB.
# Store this to see if it's different from what's already in the CIB.
$old_switches->{$argument} = $value;
$old_switches->{$argument} = $value;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
"old_switches->{$argument}" => $old_switches->{$argument},
"old_switches->{$argument}" => $old_switches->{$argument},
}});
}});
}
}
$pcs_add_command .= "op monitor interval=\"60\"";
$pcs_add_command .= "op monitor interval=\"60\"";
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
pcs_add_command => $pcs_add_command =~ /passw/ ? $anvil->Log->is_secure($pcs_add_command) : $pcs_add_command,
pcs_add_command => $pcs_add_command =~ /passw/ ? $anvil->Log->is_secure($pcs_add_command) : $pcs_add_command,
}});
}});
@ -998,7 +998,7 @@ sub configure_pacemaker
next if $argument eq "action";
next if $argument eq "action";
my $old_entry = $anvil->data->{cib}{parsed}{data}{node}{$node_name}{fencing}{device}{$ipmi_stonith_name}{argument}{$argument}{value};
my $old_entry = $anvil->data->{cib}{parsed}{data}{node}{$node_name}{fencing}{device}{$ipmi_stonith_name}{argument}{$argument}{value};
my $new_entry = exists $old_switches->{$argument} ? $old_switches->{$argument} : "";
my $new_entry = exists $old_switches->{$argument} ? $old_switches->{$argument} : "";
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
's1:argument' => $argument,
's1:argument' => $argument,
's2:old_entry' => $old_entry,
's2:old_entry' => $old_entry,
's3:new_entry' => $new_entry,
's3:new_entry' => $new_entry,
@ -1009,7 +1009,7 @@ sub configure_pacemaker
# Changed, delete and recreate.
# Changed, delete and recreate.
$delete_old = 1;
$delete_old = 1;
$create_entry = 1;
$create_entry = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
delete_old => $delete_old,
delete_old => $delete_old,
create_entry => $create_entry,
create_entry => $create_entry,
}});
}});
@ -1025,7 +1025,7 @@ sub configure_pacemaker
# Are there any old switches left?
# Are there any old switches left?
my $old_switch_count = keys %{$old_switches};
my $old_switch_count = keys %{$old_switches};
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
delete_old => $delete_old,
delete_old => $delete_old,
old_switch_count => $old_switch_count,
old_switch_count => $old_switch_count,
}});
}});
@ -1034,7 +1034,7 @@ sub configure_pacemaker
# Delete and recreate.
# Delete and recreate.
$delete_old = 1;
$delete_old = 1;
$create_entry = 1;
$create_entry = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
delete_old => $delete_old,
delete_old => $delete_old,
create_entry => $create_entry,
create_entry => $create_entry,
}});
}});
@ -1050,7 +1050,7 @@ sub configure_pacemaker
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0116"});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0116"});
$create_entry = 1;
$create_entry = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { create_entry => $create_entry }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { create_entry => $create_entry }});
}
}
}
}
elsif (exists $anvil->data->{cib}{parsed}{data}{node}{$node_name}{fencing}{device}{$ipmi_stonith_name})
elsif (exists $anvil->data->{cib}{parsed}{data}{node}{$node_name}{fencing}{device}{$ipmi_stonith_name})
@ -1058,14 +1058,14 @@ sub configure_pacemaker
# There was an existing fence config, but there's no entry in 'host_ipmi'.
# There was an existing fence config, but there's no entry in 'host_ipmi'.
# Remove the stonith entry.
# Remove the stonith entry.
$delete_old = 1;
$delete_old = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { delete_old => $delete_old }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { delete_old => $delete_old }});
update_progress($anvil, ($anvil->data->{job}{progress} += 2), "job_0118");
update_progress($anvil, ($anvil->data->{job}{progress} += 2), "job_0118");
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0118"});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0118"});
}
}
# Process the IPMI entry.
# Process the IPMI entry.
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
delete_old => $delete_old,
delete_old => $delete_old,
create_entry => $create_entry,
create_entry => $create_entry,
}});
}});
@ -1076,10 +1076,10 @@ sub configure_pacemaker
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0119", variables => { device => $ipmi_stonith_name }});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0119", variables => { device => $ipmi_stonith_name }});
my $shell_call = $anvil->data->{path}{exe}{pcs}." stonith delete ".$ipmi_stonith_name;
my $shell_call = $anvil->data->{path}{exe}{pcs}." stonith delete ".$ipmi_stonith_name;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { shell_call => $shell_call }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { shell_call => $shell_call }});
my ($output, $return_code) = $anvil->System->call({debug => 3, shell_call => $shell_call});
my ($output, $return_code) = $anvil->System->call({debug => 3, shell_call => $shell_call});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
output => $output,
output => $output,
return_code => $return_code,
return_code => $return_code,
}});
}});
@ -1097,7 +1097,7 @@ sub configure_pacemaker
}
}
$something_changed->{$node_name} = 1;
$something_changed->{$node_name} = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { "something_changed->{$node_name}" => $something_changed->{$node_name} }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { "something_changed->{$node_name}" => $something_changed->{$node_name} }});
}
}
if ($create_entry)
if ($create_entry)
{
{
@ -1106,10 +1106,10 @@ sub configure_pacemaker
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0120", variables => { device => $ipmi_stonith_name }});
$anvil->Log->entry({source => $THIS_FILE, line => __LINE__, 'print' => 1, level => 1, key => "job_0120", variables => { device => $ipmi_stonith_name }});
my $shell_call = $pcs_add_command;
my $shell_call = $pcs_add_command;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { shell_call => $shell_call }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { shell_call => $shell_call }});
my ($output, $return_code) = $anvil->System->call({debug => 3, shell_call => $shell_call});
my ($output, $return_code) = $anvil->System->call({debug => 3, shell_call => $shell_call});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => {
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => {
output => $output,
output => $output,
return_code => $return_code,
return_code => $return_code,
}});
}});
@ -1127,7 +1127,7 @@ sub configure_pacemaker
}
}
$something_changed->{$node_name} = 1;
$something_changed->{$node_name} = 1;
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { "something_changed->{$node_name}" => $something_changed->{$node_name} }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { "something_changed->{$node_name}" => $something_changed->{$node_name} }});
}
}
@ -1403,7 +1403,7 @@ sub configure_pacemaker
{
{
# Update our view of the cluster.
# Update our view of the cluster.
my $problem = $anvil->Cluster->parse_cib({debug => 2});
my $problem = $anvil->Cluster->parse_cib({debug => 2});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 3 , list => { problem => $problem }});
$anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2 , list => { problem => $problem }});
# Delete any existing fence levels
# Delete any existing fence levels
if (exists $anvil->data->{cib}{parsed}{data}{node}{$node_name})
if (exists $anvil->data->{cib}{parsed}{data}{node}{$node_name})