Show tree for only nodes in given noderange.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@9661 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
phamt 2011-05-23 18:49:45 +00:00
parent eb1ecfbc5b
commit 6cba9f824e
2 changed files with 43 additions and 14 deletions

View File

@ -1084,4 +1084,24 @@ sub getUserProfile {
# Return the file contents
$out = `ssh $hcp "cat $file"`;
return $out;
}
#-------------------------------------------------------
=head3 inArray
Description : Checks if a value exists in an array
Arguments : Value to search for
Array to search in
Returns : The searched expression
Example : my $rtn = xCAT::zvmUtils->inArray($needle, @haystack);
=cut
#-------------------------------------------------------
sub inArray {
# Get inputs
my ( $class, $needle, @haystack ) = @_;
return grep{ $_ eq $needle } @haystack;
}

View File

@ -4127,6 +4127,7 @@ sub listTree {
my $tab = xCAT::Table->new( 'zvm', -create => 1, -autocommit => 0 );
# Get CEC entries
# There should be few of these nodes
my @entries = $tab->getAllAttribsWhere( "nodetype = 'cec'", 'node', 'parent' );
foreach (@entries) {
$node = $_->{'node'};
@ -4136,6 +4137,7 @@ sub listTree {
}
# Get LPAR entries
# There should be a couple of these nodes
@entries = $tab->getAllAttribsWhere( "nodetype = 'lpar'", 'node', 'parent' );
foreach (@entries) {
$node = $_->{'node'}; # LPAR
@ -4146,6 +4148,7 @@ sub listTree {
}
# Get zVM entries
# There should be a couple of these nodes
$found = 0;
@entries = $tab->getAllAttribsWhere( "nodetype = 'zvm'", 'node', 'parent' );
foreach (@entries) {
@ -4172,24 +4175,30 @@ sub listTree {
$found = 1;
last;
}
}
}
} # End of foreach zVM
} # End of foreach LPAR
# Exit loop if LPAR branch added
if ($found) {
last;
}
}
} # End of foreach CEC
}
# Get VM entries
# There should be many of these nodes
$found = 0;
@entries = $tab->getAllAttribsWhere( "nodetype = 'vm'", 'node', 'parent', 'userid' );
foreach (@entries) {
$node = $_->{'node'}; # VM
$parent = $_->{'parent'}; # zVM
# Find CEC root based on zVM
# Skip node if it is not in noderange
if (!xCAT::zvmUtils->inArray($node, @nodes)) {
next;
}
# Find CEC/LPAR root based on zVM
# CEC -> LPAR -> zVM
$found = 0;
foreach my $cec(sort keys %tree) {
@ -4210,22 +4219,22 @@ sub listTree {
$found = 1;
last;
}
}
}
} # End of foreach VM
} # End of foreach zVM
# Exit loop if zVM branch added
if ($found) {
last;
}
}
} # End of foreach LPAR
# Exit loop if zVM branch added
if ($found) {
last;
}
}
}
} # End of foreach CEC
} # End of foreach VM node
# Print tree
# Loop through CECs
foreach my $cec(sort keys %tree) {
@ -4250,9 +4259,9 @@ sub listTree {
} else {
xCAT::zvmUtils->printLn( $callback, " |__VM: $vm ($tree{$cec}{$lpar}{$zvm}{$vm})" );
}
}
}
}
}
} # End of foreach VM
} # End of foreach zVM
} # End of foreach LPAR
} # End of foreach CEC
return;
}