#!/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 () { 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"; }