xcat-core/xCAT-client/bin/xcoll

54 lines
1.2 KiB
Plaintext
Raw Normal View History

#!/usr/bin/env perl
# IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html
BEGIN { $::XCATROOT = $ENV{'XCATROOT'} ? $ENV{'XCATROOT'} : -d '/opt/xcat' ? '/opt/xcat' : '/usr'; }
use lib "$::XCATROOT/lib/perl";
use Data::Dumper;
use xCAT::Client;
use Getopt:Long;
use strict;
my %output;
my $option;
GetOptions("n"=>\$option);
while (<STDIN>) {
my $node;
my $output;
if (/:/) {
($node,$output) = split /:/,$_,2;
} else {
$node= "UNKNOWN";
$output = $_;
}
$output =~ s/^ //;
$output{$node}.=$output;
}
my %collated;
foreach (keys %output) {
$collated{$output{$_}}->{$_}=1;
}
my $nodes;
sub fillerup {
my $response = shift;
if ($response->{data}->[0]) {
$nodes = $response->{data}->[0];
}
}
foreach my $output (keys %collated) {
$nodes = join(',',sort (keys %{$collated{$output}}));
my $cmdref = {
noderange => [$nodes],
command => ['rnoderange'],
};
unless ($option) {
xCAT::Client::submit_request($cmdref,\&fillerup);
}
print "====================================\n";
print "$nodes\n";
print "====================================\n";
print $output;
print "\n";
}