2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-30 09:36:41 +00:00

perltidy formatting

This commit is contained in:
Mark Gurevich 2016-06-21 16:35:46 -04:00
parent cdeca9da04
commit 75f8fe246d

View File

@ -41,10 +41,10 @@ Options:
#-------------------------------------
if (
!GetOptions("--help|h" => \$help,
"t" => \$test,
"V" => \$VERBOSE,
"c" => \$CONSISTENCY_CHECK,
"d" => \$DEFINITION_CHECK))
"t" => \$test,
"V" => \$VERBOSE,
"c" => \$CONSISTENCY_CHECK,
"d" => \$DEFINITION_CHECK))
{
probe_utils->send_msg("$output", "f", "Invalid parameter for $program_name");
probe_utils->send_msg("$output", "d", "$::USAGE");
@ -65,10 +65,10 @@ if ($test) {
exit 0;
}
unless(defined($CONSISTENCY_CHECK) || defined($DEFINITION_CHECK)) {
probe_utils->send_msg("$output", "f", "At least one of -c or -d flags is required");
probe_utils->send_msg("$output", "d", "$::USAGE");
exit 1;
unless (defined($CONSISTENCY_CHECK) || defined($DEFINITION_CHECK)) {
probe_utils->send_msg("$output", "f", "At least one of -c or -d flags is required");
probe_utils->send_msg("$output", "d", "$::USAGE");
exit 1;
}
my @nodes = `nodels`;
@ -80,23 +80,24 @@ my $na = "N/A";
# First, extract diskless nodes
foreach (@nodes) {
my $lsdef_provmethod = `lsdef $_ -i provmethod -c`;
if ($lsdef_provmethod =~ /netboot/) {
push(@diskless_nodes, $_);
probe_utils->send_msg("$output", "d", "$_ is diskless");
}
my $lsdef_provmethod = `lsdef $_ -i provmethod -c`;
if ($lsdef_provmethod =~ /netboot/) {
push(@diskless_nodes, $_);
probe_utils->send_msg("$output", "d", "$_ is diskless");
}
}
# Next, check if all diskless nodes are pingable
my $p = Net::Ping->new();
foreach (@diskless_nodes) {
if ($p->ping($_, 2)) {
probe_utils->send_msg("$output", "o", "Pinging $_");
push(@pingable_nodes, $_);
}
else {
probe_utils->send_msg("$output", "f", "Pinging $_");
}
sleep(1);
if ($p->ping($_, 2)) {
probe_utils->send_msg("$output", "o", "Pinging $_");
push(@pingable_nodes, $_);
}
else {
probe_utils->send_msg("$output", "f", "Pinging $_");
}
sleep(1);
}
$p->close();
@ -107,114 +108,115 @@ my %node_running_image_name_hash;
my %node_defined_image_name_hash;
foreach (@pingable_nodes) {
probe_utils->send_msg("$output", "d", "---- Gathering information from node $_ ----");
# Next, from all pingable nodes get the IMAGENAME and IMAGEUUID entries from xcatinfo file
my $output = `xdsh $_ "cat /opt/xcat/xcatinfo"`;
my $xcatinfo_image_UUID = ` echo "$output" | awk -F"=" '/IMAGEUUID/ {gsub(/'"'"'/,"",\$2); print \$2}'`;
my $xcatinfo_image_name = ` echo "$output" | awk -F"=" '/IMAGENAME/ {gsub(/'"'"'/,"",\$2); print \$2}'`;
chomp($xcatinfo_image_UUID);
chomp($xcatinfo_image_name);
if (length($xcatinfo_image_UUID) <= 0) {
$xcatinfo_image_UUID = $na;
}
if (length($xcatinfo_image_name) <= 0) {
$xcatinfo_image_name = $na;
}
$node_running_image_uuid_hash{$_} = $xcatinfo_image_UUID;
$node_running_image_name_hash{$_} = $xcatinfo_image_name;
print "Node $_ is running image $node_running_image_name_hash{$_} with UUID $node_running_image_uuid_hash{$_} \n" if ($VERBOSE);
probe_utils->send_msg("$output", "d", "---- Gathering information from node $_ ----");
# Next, get UUID from rootimg directory xcatinfo file of the provmethod osimage
my $lsdef_provmethod = `lsdef $_ -i provmethod -c | cut -d "=" -f 2`;
chomp($lsdef_provmethod);
my $rootimagedir = $na;
if (length($lsdef_provmethod) > 0) {
$rootimagedir = `lsdef -t osimage $lsdef_provmethod -i rootimgdir -c | cut -d "=" -f 2`;
chomp($rootimagedir);
if (length($rootimagedir) > 0) {
$defined_UUID = `awk -F"'" '/IMAGEUUID/ {print \$2}' $rootimagedir/rootimg/opt/xcat/xcatinfo`;
chomp($defined_UUID);
if (length($defined_UUID) < 1) {
$defined_UUID = $na;
}
}
}
else {
$lsdef_provmethod = $na;
}
$node_defined_image_uuid_hash{$_} = $defined_UUID;
$node_defined_image_name_hash{$_} = $lsdef_provmethod;
print "Node $_ has defined image $lsdef_provmethod at $rootimagedir with UUID $defined_UUID\n" if ($VERBOSE);
# Next, from all pingable nodes get the IMAGENAME and IMAGEUUID entries from xcatinfo file
my $output = `xdsh $_ "cat /opt/xcat/xcatinfo"`;
my $xcatinfo_image_UUID = ` echo "$output" | awk -F"=" '/IMAGEUUID/ {gsub(/'"'"'/,"",\$2); print \$2}'`;
my $xcatinfo_image_name = ` echo "$output" | awk -F"=" '/IMAGENAME/ {gsub(/'"'"'/,"",\$2); print \$2}'`;
chomp($xcatinfo_image_UUID);
chomp($xcatinfo_image_name);
if (length($xcatinfo_image_UUID) <= 0) {
$xcatinfo_image_UUID = $na;
}
if (length($xcatinfo_image_name) <= 0) {
$xcatinfo_image_name = $na;
}
$node_running_image_uuid_hash{$_} = $xcatinfo_image_UUID;
$node_running_image_name_hash{$_} = $xcatinfo_image_name;
print "Node $_ is running image $node_running_image_name_hash{$_} with UUID $node_running_image_uuid_hash{$_} \n" if ($VERBOSE);
# Next, get UUID from rootimg directory xcatinfo file of the provmethod osimage
my $lsdef_provmethod = `lsdef $_ -i provmethod -c | cut -d "=" -f 2`;
chomp($lsdef_provmethod);
my $rootimagedir = $na;
if (length($lsdef_provmethod) > 0) {
$rootimagedir = `lsdef -t osimage $lsdef_provmethod -i rootimgdir -c | cut -d "=" -f 2`;
chomp($rootimagedir);
if (length($rootimagedir) > 0) {
$defined_UUID = `awk -F"'" '/IMAGEUUID/ {print \$2}' $rootimagedir/rootimg/opt/xcat/xcatinfo`;
chomp($defined_UUID);
if (length($defined_UUID) < 1) {
$defined_UUID = $na;
}
}
}
else {
$lsdef_provmethod = $na;
}
$node_defined_image_uuid_hash{$_} = $defined_UUID;
$node_defined_image_name_hash{$_} = $lsdef_provmethod;
print "Node $_ has defined image $lsdef_provmethod at $rootimagedir with UUID $defined_UUID\n" if ($VERBOSE);
}
# Information gathering is done. Now do veification checking.
# Probe verification step 1 - make sure all nodes are running the osimage name and imageUUID as defined on MN
if ($DEFINITION_CHECK) {
foreach (@pingable_nodes) {
my $msg;
my $status;
if (($node_running_image_name_hash{$_} eq $node_defined_image_name_hash{$_}) &&
($node_running_image_uuid_hash{$_} eq $node_defined_image_uuid_hash{$_})) {
if ($node_running_image_uuid_hash{$_} eq $na) {
$msg = "$_: Not able to determing running image name or uuid";
$status = "f";
}
else {
$msg = "$_: Matches running and defined image name and UUID";
$status = "o";
}
}
else {
$msg = "$_: Unmatched image name or image UUID.\n Defined: name = $node_defined_image_name_hash{$_}" .
" uuid = $node_defined_image_uuid_hash{$_}\n Running: name = $node_running_image_name_hash{$_}" .
" uuid = $node_running_image_uuid_hash{$_}";
$status = "f";
}
probe_utils->send_msg("$output", "$status", "$msg");
}
foreach (@pingable_nodes) {
my $msg;
my $status;
if (($node_running_image_name_hash{$_} eq $node_defined_image_name_hash{$_}) &&
($node_running_image_uuid_hash{$_} eq $node_defined_image_uuid_hash{$_})) {
if ($node_running_image_uuid_hash{$_} eq $na) {
$msg = "$_: Not able to determing running image name or uuid";
$status = "f";
}
else {
$msg = "$_: Matches running and defined image name and UUID";
$status = "o";
}
}
else {
$msg = "$_: Unmatched image name or image UUID.\n Defined: name = $node_defined_image_name_hash{$_}" .
" uuid = $node_defined_image_uuid_hash{$_}\n Running: name = $node_running_image_name_hash{$_}" .
" uuid = $node_running_image_uuid_hash{$_}";
$status = "f";
}
probe_utils->send_msg("$output", "$status", "$msg");
}
}
# Probe verification step 2 - make sure all nodes are running the same osimage name and imageUUID
if ($CONSISTENCY_CHECK) {
my $msg = "Undefined";
my $status = "f";
my $image_name_and_uuid;
my $image_uuid;
my %unique_image_hash;
my $msg = "Undefined";
my $status = "f";
my $image_name_and_uuid;
my $image_uuid;
my %unique_image_hash;
# Go throug the nodes and build a hash of key=image_name+image_uuid and value of nodename
foreach (@pingable_nodes) {
$image_name_and_uuid = $node_running_image_name_hash{$_} . ":" . $node_running_image_uuid_hash{$_};
unless (exists $unique_image_hash{$image_name_and_uuid}) {
$unique_image_hash{$image_name_and_uuid} = $_;
}
}
# Go throug the nodes and build a hash of key=image_name+image_uuid and value of nodename
foreach (@pingable_nodes) {
$image_name_and_uuid = $node_running_image_name_hash{$_} . ":" . $node_running_image_uuid_hash{$_};
unless (exists $unique_image_hash{$image_name_and_uuid}) {
$unique_image_hash{$image_name_and_uuid} = $_;
}
}
# print Dumper(\%unique_image_hash);
# If there is more then one key in the hash, nodes have multiple images.
my $number_of_keys = keys %unique_image_hash;
if ($number_of_keys == 1) {
my @image_names = keys %unique_image_hash;
if ($image_names[0] =~ /$na/) {
$msg = "Not able to determine image name or uuid of the image installed on any compute node.";
$status = "f";
}
else {
$msg = "All compute nodes have the same image installed: @image_names.";
$status = "o";
}
}
else {
my $node_image_table;
foreach $compute_node (keys %node_running_image_name_hash) {
$node_image_table .= sprintf("%-15s %-30s : %-20s\n", $compute_node, $node_running_image_name_hash{$compute_node}, $node_running_image_uuid_hash{$compute_node});
}
$msg = "Not all compute nodes are running the same os image.\n" . $node_image_table;
$status = "f";
}
# print Dumper(\%unique_image_hash);
# If there is more then one key in the hash, nodes have multiple images.
my $number_of_keys = keys %unique_image_hash;
if ($number_of_keys == 1) {
my @image_names = keys %unique_image_hash;
if ($image_names[0] =~ /$na/) {
$msg = "Not able to determine image name or uuid of the image installed on any compute node.";
$status = "f";
}
else {
$msg = "All compute nodes have the same image installed: @image_names.";
$status = "o";
}
}
else {
my $node_image_table;
foreach $compute_node (keys %node_running_image_name_hash) {
$node_image_table .= sprintf("%-15s %-30s : %-20s\n", $compute_node, $node_running_image_name_hash{$compute_node}, $node_running_image_uuid_hash{$compute_node});
}
$msg = "Not all compute nodes are running the same os image.\n" . $node_image_table;
$status = "f";
}
probe_utils->send_msg("$output", "$status", "$msg");
probe_utils->send_msg("$output", "$status", "$msg");
}
exit 0;