diff --git a/share/words.xml b/share/words.xml index 746c50ba..14c44ab4 100644 --- a/share/words.xml +++ b/share/words.xml @@ -949,7 +949,7 @@ resource #!variable!server!# { Storage Group Used Free - Anvil! Node Pair + Anvil! Node Interface Gateway (*DG) Transmitted @@ -971,6 +971,9 @@ resource #!variable!server!# { Recipient Anvil! Node Alert Override UUID + Host Type + Host UUID + Machines Configure Network diff --git a/tools/anvil-manage-alerts b/tools/anvil-manage-alerts index 79e1059c..36b98797 100755 --- a/tools/anvil-manage-alerts +++ b/tools/anvil-manage-alerts @@ -762,6 +762,10 @@ sub show_existing $anvil->data->{longest}{alert_override_anvil_name} = length($anvil->Words->string({key => "header_0101"})); $anvil->data->{longest}{alert_override_alert_level} = length($anvil->Words->string({key => "header_0096"})); $anvil->data->{longest}{alert_override_uuid} = length($anvil->Words->string({key => "header_0102"})); + $anvil->data->{longest}{host_name} = length($anvil->Words->string({key => "header_0026"})); + $anvil->data->{longest}{host_type} = length($anvil->Words->string({key => "header_0103"})); + $anvil->data->{longest}{host_anvil_name} = length($anvil->Words->string({key => "header_0081"})); + $anvil->data->{longest}{host_uuid} = length($anvil->Words->string({key => "header_0104"})); $anvil->data->{say_alert}{1} = "1 (".$anvil->Words->string({key => "unit_0024"}).")"; $anvil->data->{say_alert}{2} = "2 (".$anvil->Words->string({key => "unit_0025"}).")"; @@ -995,6 +999,75 @@ sub show_existing } } + # Pull out the Strikers, node pair members and DR hosts. + foreach my $host_name (sort {$a cmp $b} keys %{$anvil->data->{sys}{hosts}{by_name}}) + { + my $host_uuid = $anvil->data->{sys}{hosts}{by_name}{$host_name}; + my $short_host_name = $anvil->data->{hosts}{host_uuid}{$host_uuid}{short_host_name}; + my $host_type = $anvil->data->{hosts}{host_uuid}{$host_uuid}{host_type}; + my $anvil_name = $anvil->data->{hosts}{host_uuid}{$host_uuid}{anvil_name} ? $anvil->data->{hosts}{host_uuid}{$host_uuid}{anvil_name} : "--"; + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + 's1:host_name' => $host_name, + 's2:short_host_name' => $short_host_name, + 's3:host_type' => $host_type, + 's4:anvil_name' => $anvil_name, + }}); + + if (length($short_host_name) > $anvil->data->{longest}{host_name}) + { + $anvil->data->{longest}{host_name} = length($short_host_name); + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + 'longest::host_name' => $anvil->data->{longest}{host_name}, + }}); + } + + $anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type} = ""; + if ($host_type eq "striker") + { + $anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type} = $anvil->Words->string({key => "brand_0003"}); + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + "hosts::host_uuid::${host_uuid}::say_host_type" => $anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type}, + }}); + } + elsif ($host_type eq "node") + { + $anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type} = $anvil->Words->string({key => "brand_0007"}); + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + "hosts::host_uuid::${host_uuid}::say_host_type" => $anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type}, + }}); + } + elsif ($host_type eq "dr") + { + $anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type} = $anvil->Words->string({key => "brand_0008"}); + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + "hosts::host_uuid::${host_uuid}::say_host_type" => $anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type}, + }}); + } + if (length($anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type}) > $anvil->data->{longest}{host_type}) + { + $anvil->data->{longest}{host_type} = length($anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type}); + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + 'longest::host_type' => $anvil->data->{longest}{host_type}, + }}); + } + + if (length($anvil_name) > $anvil->data->{longest}{host_anvil_name}) + { + $anvil->data->{longest}{host_anvil_name} = length($anvil_name); + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + 'longest::host_anvil_name' => $anvil->data->{longest}{host_anvil_name}, + }}); + } + + if (length($host_uuid) > $anvil->data->{longest}{host_uuid}) + { + $anvil->data->{longest}{host_uuid} = length($host_uuid); + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + 'longest::host_uuid' => $anvil->data->{longest}{host_uuid}, + }}); + } + } + # Now show the data. if ($anvil->data->{sys}{show}{mail_servers}) { @@ -1246,35 +1319,61 @@ sub show_existing # Lastly, show machines. if ($anvil->data->{sys}{show}{systems}) { - print "-=] Striker Dashboards;\n"; - foreach my $host_name (sort {$a cmp $b} keys %{$anvil->data->{sys}{hosts}{by_name}}) + my $longest_host_name = $anvil->data->{longest}{host_name}; + my $longest_host_type = $anvil->data->{longest}{host_type}; + my $longest_host_anvil_name = $anvil->data->{longest}{host_anvil_name}; + my $longest_host_uuid = $anvil->data->{longest}{host_uuid}; + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + 's1:longest_host_name' => $longest_host_name, + 's2:longest_host_type' => $longest_host_type, + 's3:longest_host_anvil_name' => $longest_host_anvil_name, + 's4:longest_host_uuid' => $longest_host_uuid, + }}); + + my $break_line = "+-".sprintf("%0${longest_host_name}d", 0); + $break_line .= "-+-".sprintf("%0${longest_host_type}d", 0); + $break_line .= "-+-".sprintf("%0${longest_host_anvil_name}d", 0); + $break_line .= "-+-".sprintf("%0${longest_host_uuid}d", 0)."-+"; + $break_line =~ s/0/-/g; + + my $header_line = "| ".sprintf("%-${longest_host_name}s", $anvil->Words->string({key => "header_0026"}))." "; + $header_line .= "| ".sprintf("%-${longest_host_type}s", $anvil->Words->string({key => "header_0103"}))." "; + $header_line .= "| ".sprintf("%-${longest_host_anvil_name}s", $anvil->Words->string({key => "header_0081"}))." "; + $header_line .= "| ".sprintf("%-${longest_host_uuid}s", $anvil->Words->string({key => "header_0104"}))." |"; + + # Display + print "-=] ".$anvil->Words->string({key => "header_0105"})."\n"; + print $break_line."\n"; + print $header_line."\n"; + print $break_line."\n"; + foreach my $show_host_type ("striker", "node", "dr") { - my $host_uuid = $anvil->data->{sys}{hosts}{by_name}{$host_name}; - my $host_type = $anvil->data->{hosts}{host_uuid}{$host_uuid}{host_type}; - next if $host_type ne "striker"; - $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { - 's1:host_name' => $host_name, - 's2:host_uuid' => $host_uuid, - }}); - - print "- ".$host_name.", UUID: [".$host_uuid."]\n"; - } - print "\n"; - print "-=] Anvil! Nodes;\n"; - foreach my $anvil_name (sort {$a cmp $b} keys %{$anvil->data->{anvils}{anvil_name}}) - { - my $anvil_uuid = $anvil->data->{anvils}{anvil_name}{$anvil_name}{anvil_uuid}; - my $anvil_description = $anvil->data->{anvils}{anvil_name}{$anvil_name}{anvil_description}; - my $anvil_node1_host_uuid = $anvil->data->{anvils}{anvil_name}{$anvil_name}{anvil_node1_host_uuid}; - my $anvil_node2_host_uuid = $anvil->data->{anvils}{anvil_name}{$anvil_name}{anvil_node2_host_uuid}; - my $anvil_dr1_host_uuid = $anvil->data->{anvils}{anvil_name}{$anvil_name}{anvil_dr1_host_uuid}; - my $say_dr1_name = $anvil_dr1_host_uuid ? $anvil->data->{hosts}{host_uuid}{$anvil_dr1_host_uuid}{short_host_name} : "--"; - my $say_dr1_uuid = $anvil_dr1_host_uuid ? $anvil_dr1_host_uuid : "--"; - print "- Name: [".$anvil_name."], UUID: [".$anvil_uuid."], Description: [".$anvil_uuid."]\n"; - print " - Node 1: .. [".$anvil->data->{hosts}{host_uuid}{$anvil_node1_host_uuid}{short_host_name}."], UUID: [".$anvil_node1_host_uuid."]\n"; - print " - Node 2: .. [".$anvil->data->{hosts}{host_uuid}{$anvil_node2_host_uuid}{short_host_name}."], UUID: [".$anvil_node2_host_uuid."]\n"; - print " - DR Host 1: [".$say_dr1_name."], UUID: [".$say_dr1_uuid."]\n"; + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { show_host_type => $show_host_type }}); + foreach my $host_name (sort {$a cmp $b} keys %{$anvil->data->{sys}{hosts}{by_name}}) + { + my $host_uuid = $anvil->data->{sys}{hosts}{by_name}{$host_name}; + my $short_host_name = $anvil->data->{hosts}{host_uuid}{$host_uuid}{short_host_name}; + my $host_type = $anvil->data->{hosts}{host_uuid}{$host_uuid}{host_type}; + my $say_host_type = $anvil->data->{hosts}{host_uuid}{$host_uuid}{say_host_type}; + my $anvil_name = $anvil->data->{hosts}{host_uuid}{$host_uuid}{anvil_name} ? $anvil->data->{hosts}{host_uuid}{$host_uuid}{anvil_name} : "--"; + next if $host_type ne $show_host_type; + $anvil->Log->variables({source => $THIS_FILE, line => __LINE__, level => 2, list => { + 's1:host_name' => $host_name, + 's2:host_uuid' => $host_uuid, + 's3:short_host_name' => $short_host_name, + 's4:host_type' => $host_type, + 's5:say_host_type' => $say_host_type, + 's6:anvil_name' => $anvil_name, + }}); + + my $entry_line = "| ".sprintf("%-${longest_host_name}s", $short_host_name)." "; + $entry_line .= "| ".sprintf("%-${longest_host_type}s", $say_host_type)." "; + $entry_line .= "| ".sprintf("%-${longest_host_anvil_name}s", $anvil_name)." "; + $entry_line .= "| ".sprintf("%-${longest_host_uuid}s", $host_uuid)." |"; + print $entry_line."\n"; + } } + print $break_line."\n"; } return(0);