For profiled nodoes: chassis can not be specified together with rack

git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14151 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
leiaibj 2012-10-30 06:24:30 +00:00
parent 47460b48e6
commit 97ee1bb176

View File

@ -714,6 +714,8 @@ sub nodediscoverstart{
}
# rack must be specified with chassis or unit + height.
if (exists $args_dict{'chassis'}){
setrsp_errormsg("Argument chassis can not be used together with rack");
return;
} else{
# We set default value for height and u if rack specified
if(! exists $args_dict{'height'}){$args_dict{'height'} = 1}
@ -723,11 +725,6 @@ sub nodediscoverstart{
# chassis jdugement.
if (exists $args_dict{'chassis'}){
if (! exists $args_dict{'rack'}){
setrsp_errormsg("Argument chassis must be used together with rack");
return;
}
if (! exists $allchassis{$args_dict{'chassis'}}){
setrsp_errormsg("Specified chassis $args_dict{'chassis'} not defined");
return;
@ -740,6 +737,11 @@ sub nodediscoverstart{
# height and u must be valid numbers.
if (exists $args_dict{'unit'}){
# unit must be specified together with rack.
if (! exists $args_dict{'rack'}){
setrsp_errormsg("Argument unit must be specified together with rack");
return;
}
# Not a valid number.
if (!($args_dict{'unit'} =~ /^\d+$/)){
setrsp_errormsg("Specified unit $args_dict{'u'} is a invalid number");
@ -747,6 +749,11 @@ sub nodediscoverstart{
}
}
if (exists $args_dict{'height'}){
# unit must be specified together with rack.
if (! exists $args_dict{'rack'}){
setrsp_errormsg("Argument height must be specified together with rack");
return;
}
# Not a valid number.
if (!($args_dict{'height'} =~ /^\d+$/)){
setrsp_errormsg("Specified height $args_dict{'height'} is a invalid number");
@ -1377,17 +1384,18 @@ sub validate_node_entry{
#TODO: xCAT switch discovery enhance: verify whether switch exists.
}elsif ($_ eq "port"){
}elsif ($_ eq "rack"){
if (not exists $allracks{$node_entry{$_}}){
if (! exists $allracks{$node_entry{$_}}){
return "Specified rack $node_entry{$_} not defined";
}
# rack must be specified with chassis or unit + height.
if (exists $node_entry{"chassis"}){
return "Rack can not be specified together with chassis";
} elsif (exists $node_entry{"height"} and exists $node_entry{"unit"}){
} else {
return "Rack must be specified together with chassis or height + unit ";
}
}elsif ($_ eq "chassis"){
if (not exists $allchassis{$node_entry{$_}}){
if (! exists $allchassis{$node_entry{$_}}){
return "Specified chassis $node_entry{$_} not defined";
}
# Chassis must not be specified with unit and height.
@ -1395,11 +1403,17 @@ sub validate_node_entry{
return "Chassis should not be specified together with height or unit";
}
}elsif ($_ eq "unit"){
if (! exists $node_entry{"rack"}){
return "Unit must be specified together with rack";
}
# Not a valid number.
if (!($node_entry{$_} =~ /^\d+$/)){
return "Specified unit $node_entry{$_} is a invalid number";
}
}elsif ($_ eq "height"){
if (! exists $node_entry{"chassis"}){
return "Chassis must be specified together with rack";
}
# Not a valid number.
if (!($node_entry{$_} =~ /^\d+$/)){
return "Specified height $node_entry{$_} is a invalid number";