From 7fd861742eab53ad88ab784567e4e5a66b826a94 Mon Sep 17 00:00:00 2001 From: lissav Date: Thu, 25 Jul 2013 11:00:45 +0000 Subject: [PATCH] fix defect 3714 git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@17021 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- xCAT-client/bin/xcatDBcmds | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/xCAT-client/bin/xcatDBcmds b/xCAT-client/bin/xcatDBcmds index 203fc2625..5b063d074 100755 --- a/xCAT-client/bin/xcatDBcmds +++ b/xCAT-client/bin/xcatDBcmds @@ -1,5 +1,4 @@ #!/usr/bin/perl - # IBM(c) 2007 EPL license http://www.eclipse.org/legal/epl-v10.html BEGIN { @@ -107,15 +106,20 @@ foreach my $a (@ARGV) push(@{$cmdref->{arg}}, $a); } -# Set the noderange value - needed for policy table noderange to work -# strip off all options -# use getopt instead of getopts to let long options pass through -getopt('ismot'); -# check the operands for a noderange -while (my $a = shift(@ARGV)) { - if (!($a =~ /=/) && !($a =~ /^-/)) { - $cmdref->{noderange}->[0]=$a; - last; +# For some commands we need to set the noderange value +# - don't want to depend on the order of args so need to pick +# the operand that doesn't have an "=" sign ( ie. attr=val format) +my @checkcmds = ("nimnodeset", "mkdsklsnode", "rmdsklsnode", "xcat2nim", "nimnodecust"); +if (grep(/^$bname$/, @checkcmds) ) { + # strip off all options + # use getopt instead of getopts to let long options pass through + getopt('ismot'); + # check the operands for a noderange + while (my $a = shift(@ARGV)) { + if (!($a =~ /=/) && !($a =~ /^-/)) { + $cmdref->{noderange}->[0]=$a; + last; + } } }