Fix some mistakes.

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@12497 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
yinle 2012-05-03 06:36:27 +00:00
parent 1745668bfa
commit 195d7771f3

View File

@ -123,7 +123,7 @@ my @invalidiplist = (
my %ip4neigh;
my %ip6neigh;
my %searchmacs;
my %globalopt;
#these globals are only used in mn
my %ip_addr = ();
@ -280,7 +280,7 @@ sub parse_args {
# Option -V for verbose output
#############################################
if ( exists( $opt{V} )) {
$request->{verbose} = 1;
$globalopt{verbose} = 1;
}
#############################################
@ -293,13 +293,11 @@ sub parse_args {
# Command tries
#############################################
if ( exists( $opt{t} )) {
$request->{maxtries} = $opt{t};
$globalopt{maxtries} = $opt{t};
if ( $request->{maxtries} !~ /^0?[1-9]$/ ) {
if ( $globalopt{maxtries} !~ /^0?[1-9]$/ ) {
return( usage( "Invalid command tries (1-9)" ));
}
} else {
$request->{maxtries} = 0;
}
#############################################
@ -309,40 +307,33 @@ sub parse_args {
if ( !exists( $services{$opt{s}} )) {
return(usage( "Invalid service: $opt{s}" ));
}
$request->{service} = $services{$opt{s}};
} else {
$request->{service} = [WILDCARD_SERVICE,HARDWARE_SERVICE,SOFTWARE_SERVICE];
$globalopt{service} = $services{$opt{s}};
}
#############################################
# Check the validation of -T option
#############################################
if ( exists( $opt{T} )) {
$request->{time_out} = $opt{T};
if ( $request->{time_out} !~ /^\d+$/ ) {
$globalopt{time_out} = $opt{T};
if ( $globalopt{time_out} !~ /^\d+$/ ) {
return( usage( "Invalid timeout value, should be number" ));
}
if (!exists( $opt{C} )) {
return ( usage( "-T should be used with -C" ));
}
}else{
$request->{time_out} = 300;
}
#############################################
# Check the validation of -C option
#############################################
if ( exists( $opt{C} )) {
$request->{C} = $opt{C};
$globalopt{C} = $opt{C};
if ( $request->{C} !~ /^\d+$/ ) {
if ( $globalopt{C} !~ /^\d+$/ ) {
return( usage( "Invalid expect entries, should be number" ));
}
if ( !exists($opt{i} )) {
return( usage( "-C should be used with -i" ));
}
}else {
$request->{C} = 0;
}
#############################################
@ -364,57 +355,57 @@ sub parse_args {
}
}
}
$request->{i} = $opt{i};
$globalopt{i} = $opt{i};
}
#############################################
# write to the database
#############################################
if ( exists( $opt{w} )) {
$request->{w} = 1;
$globalopt{w} = 1;
}
#############################################
# list the raw information
#############################################
if ( exists( $opt{r} )) {
$request->{r} = 1;
$globalopt{r} = 1;
}
#############################################
# list the xml formate data
#############################################
if ( exists( $opt{x} )) {
$request->{x} = 1;
$globalopt{x} = 1;
}
#############################################
# list the stanza formate data
#############################################
if ( exists( $opt{z} )) {
$request->{z} = 1;
$globalopt{z} = 1;
}
#############################################
# match vpd table
#############################################
if ( exists( $opt{vpdtable} )) {
$request->{vpdtable} = 1;
$globalopt{vpdtable} = 1;
}
#########################################################
# only list the nodes that discovered for the first time
#########################################################
if ( exists( $opt{n} )) {
$request->{n} = 1;
$globalopt{n} = 1;
}
##############################################
# warn for no discovered nodes in database
##############################################
if ( exists( $opt{I} )) {
$request->{I} = 1;
$globalopt{I} = 1;
}
return(0);
return (0);
}
@ -434,7 +425,7 @@ sub trace {
send_msg( $request, 0, $msg );
}
} else {
if ( exists($request->{verbose}) ) {
if ( exists($globalopt{verbose}) ) {
my ($sec,$min,$hour,$mday,$mon,$yr,$wday,$yday,$dst) = localtime(time);
my $msg = sprintf "%02d:%02d:%02d %5d %s", $hour,$min,$sec,$$,$msg;
send_msg( $request, 0, $msg );
@ -500,8 +491,30 @@ sub invoke_dodiscover {
########################################
# SLP command
########################################
my $services = $request->{service};
my $result = xCAT::SLP::dodiscover(SrvTypes=>$services,Callback=>\&handle_new_slp_entity, Ip=>$request->{i}, Retry=>$request->{maxtries} );
my $services;
my $maxt;
if ($globalopt{service}) {
$services = $globalopt{service};
} else {
$services = [WILDCARD_SERVICE,HARDWARE_SERVICE,SOFTWARE_SERVICE];
}
if ($globalopt{maxtries}) {
$maxt = $globalopt{maxtries};
} else {
$maxt = 0;
}
unless ($globalopt{time_out}){
$globalopt{time_out} = 300;
}
unless ($globalopt{C}){
$globalopt{C} = 0;
}
my %arg;
$arg{SrvTypes} = $services;
$arg{Callback} = \&handle_new_slp_entity;
$arg{Ip} = $globalopt{i} if($globalopt{i});
$arg{Retry} = $maxt;
my $result = xCAT::SLP::dodiscover(%arg);
#########################################
@ -523,7 +536,7 @@ sub invoke_dodiscover {
# my $start_time = Time::HiRes::gettimeofday();
# my $elapse;
# my $found = scalar(keys %found_cec);
# while ( $found < $request->{C} ) {
# while ( $found < $globalopt{C} ) {
# $rlt = xCAT::SLP::dodiscover(SrvTypes=>$services,Callback=>sub { print Dumper(@_) });
# $val = @$rlt[1];
# for my $v (keys %$val) {
@ -535,7 +548,7 @@ sub invoke_dodiscover {
# }
# $found = scalar(keys %val_tmp);
# $elapse = Time::HiRes::gettimeofday() - $start_time;
# if ( $elapse > $request->{time_out} ) {
# if ( $elapse > $globalopt{time_out} ) {
# send_msg( $request, 0, "Time out, Force return.\n" );
# last;
# }
@ -583,7 +596,7 @@ sub format_output {
###########################################
# -w flag for write to xCat database
###########################################
if ( $request->{w} ) {
if ( $globalopt{w} ) {
send_msg( $request, 0, "Begin to write into Database, this may change node name" );
xCATdB( $outhash );
}
@ -594,7 +607,7 @@ sub format_output {
# -r flag for raw response format
###########################################
my %rawhash;
if ( $request->{r} ) {
if ( $globalopt{r} ) {
foreach ( keys %$outhash ) {
my $raw = ${$outhash->{$_}}{url};
$rawhash{$raw} = 1;
@ -609,14 +622,14 @@ sub format_output {
###########################################
# -x flag for xml format
###########################################
if ( $request->{x} ) {
if ( $globalopt{x} ) {
send_msg( $request, 0, format_xml( $outhash ));
return;
}
###########################################
# -z flag for stanza format
###########################################
if ( $request->{z} ) {
if ( $globalopt{z} ) {
send_msg( $request, 0, format_stanza( $outhash ));
return;
}
@ -624,7 +637,7 @@ sub format_output {
###########################################
# -T flag for vpd table format
###########################################
if ( $request->{vpdtable} ) {
if ( $globalopt{vpdtable} ) {
send_msg( $request, 0, format_table( $outhash ) );
return;
}
@ -777,7 +790,7 @@ sub get_host_from_url {
# Extract IP from URL
#######################################
my $nets = xCAT::Utils::my_nets();
my $inc = $request->{i};
my $inc = $globalopt{i};
my @ips = @{$attr->{'ip-address'}};
my @ips2 = split /,/, $inc;
@ -809,7 +822,7 @@ sub get_host_from_url {
if (scalar(@validip) == 0) {
if ($request->{verbose}) {
if ($globalopt{verbose}) {
trace( $request, "Invalid IP address in URL" );
}
return undef;
@ -891,7 +904,7 @@ sub parse_responses {
# attribute not found
###########################################
if ( !exists(${$searchmacs{$rsp}}{attributes} )) {
if ( $request->{verbose} ) {
if ( $globalopt{verbose} ) {
trace( $request, "Attribute not found for: $rsp" );
}
next;
@ -902,7 +915,7 @@ sub parse_responses {
my $attributes = ${$searchmacs{$rsp}}{attributes};
my $type = ${$attributes->{'type'}}[0] ;
if ( !exists($service_slp{$type} )) {
if ( $request->{verbose} ) {
if ( $globalopt{verbose} ) {
trace( $request, "Discarding unsupported type: $type" );
}
next;
@ -1075,7 +1088,7 @@ sub parse_responses {
##########################################################
# If there is -n flag, skip the matched nodes
##########################################################
if (exists($request->{n})) {
if (exists($globalopt{n})) {
trace( $request, "\n\n\nThere is -n flag, skip these nodes:\n", 1);
for my $matchednode (@matchnode) {
if ($outhash{$matchednode}) {
@ -1084,7 +1097,7 @@ sub parse_responses {
}
}
}
if (exists($request->{I})) {
if (exists($globalopt{I})) {
my %existsnodes;
my $nodelisttab = xCAT::Table->new('nodelist');
unless ( $nodelisttab ) {
@ -1398,7 +1411,6 @@ sub process_request {
my $req = shift;
my $callback = shift;
my $doreq = shift;
#unless ($macmap) { $macmap = xCAT::MacMap->new(); }
###########################################
@ -1428,7 +1440,7 @@ sub process_request {
###########################################
my $start;
if ( exists($req->{verbose}) ) {
if ( exists($globalopt{verbose}) ) {
#######################################
# Write header for trace
#######################################
@ -1441,7 +1453,7 @@ sub process_request {
###########################################
# Record begin time
###########################################
if ( exists($req->{verbose}) ) {
if ( exists($globalopt{verbose}) ) {
$start = Time::HiRes::gettimeofday();
}
############################################
@ -1470,12 +1482,12 @@ sub process_request {
#}
#while (child_response($callback,$fds)) {}
invoke_dodiscover(\%request);
invoke_dodiscover();
###########################################
# Record ending time
###########################################
if ( exists($req->{verbose}) ) {
if ( exists($globalopt{verbose}) ) {
my $elapsed = Time::HiRes::gettimeofday() - $start;
my $msg = sprintf( "Total SLP Time: %.3f sec\n", $elapsed );
trace( $req, $msg );
@ -1545,7 +1557,7 @@ sub filtersamevlan {
my $nets = xCAT::Utils::my_nets();
my $validnets;
for my $net ( keys %$nets) {
for my $nic ( split /,/, $request->{i} ) {
for my $nic ( split /,/, $globalopt{i} ) {
if ( $nets->{$net} eq $nic ) {
$validnets->{$net} = $nic;
}