diff --git a/perl-xCAT/xCAT/FSPUtils.pm b/perl-xCAT/xCAT/FSPUtils.pm index 36ccb9e3a..73f2b5236 100644 --- a/perl-xCAT/xCAT/FSPUtils.pm +++ b/perl-xCAT/xCAT/FSPUtils.pm @@ -145,7 +145,9 @@ sub getIPaddress my $vpd = $request->{vpd}; # only need to parse IP addresses for Frame/CEC/BPA/FSP - + if ($type eq "lpar") { + $type = xCAT::DBobjUtils->getnodetype($nodetocheck); + } #my $type = xCAT::DBobjUtils->getnodetype($nodetocheck); #my $type = $$attrs[4]; if ($type) { diff --git a/perl-xCAT/xCAT/FSPflash.pm b/perl-xCAT/xCAT/FSPflash.pm index c02d140e5..837ec5595 100644 --- a/perl-xCAT/xCAT/FSPflash.pm +++ b/perl-xCAT/xCAT/FSPflash.pm @@ -261,7 +261,7 @@ sub rflash { my $frame = $$d[5]; my $type = xCAT::DBobjUtils->getnodetype($frame); - if ( ( $frame ne $name ) && ( $type eq "frame" ) ){ + if ( ( $frame ne $name ) && ( $type eq "frame" ) && $activate !~ /^deferred$/){ my @frame_d = (0, 0, 0, $frame, "frame", 0); $action = "list_firmware_level"; @@ -327,7 +327,8 @@ sub rflash { if($housekeeping =~ /^commit$/) { $action = "code_commit"} if($housekeeping =~ /^recover$/) { $action = "code_reject"} - if($activate =~ /^disruptive$/) { + if($housekeeping =~ /^bpa_acdl$/) { $action = "acdl"} + if($activate =~ /^(disruptive|deferred)$/) { $action = "code_update"; } if($activate =~ /^concurrent$/) { diff --git a/perl-xCAT/xCAT/PPCrflash.pm b/perl-xCAT/xCAT/PPCrflash.pm index db5fec182..272ccc0f1 100644 --- a/perl-xCAT/xCAT/PPCrflash.pm +++ b/perl-xCAT/xCAT/PPCrflash.pm @@ -94,7 +94,7 @@ sub parse_args { $Getopt::Long::ignorecase = 0; Getopt::Long::Configure( "bundling" ); - if ( !GetOptions( \%opt, qw(h|help v|version V|verbose p=s d=s activate=s commit recover) )) { + if ( !GetOptions( \%opt, qw(h|help v|version V|verbose p=s d=s activate=s commit recover bpa_acdl) )) { return( usage() ); } @@ -112,6 +112,11 @@ sub parse_args { ################################# #Option --activate not valid with --commit or --recover ################################# + if (exists($opt{bpa_acdl}) && (exists($opt{activate}) || exists($opt{commit}) || + exists($opt{recover}) || exists($opt{p}) || exists($opt{d}))) { + return ( usage("Option --bpa_acdl not valid with other options ")); + } + if( exists( $opt{activate} ) && (exists( $opt{commit}) || exists( $opt{recover}))) { return( usage("Option --activate not valid with --commit or --recover ") ); } @@ -181,6 +186,9 @@ sub parse_args { } elsif( defined( $opt{ recover }) ) { print "recover flag\n"; $housekeeping = "recover"; + } elsif (defined( $opt{ bpa_acdl})) { + print "bpa_acdl flag\n"; + $housekeeping = "bpa_acdl"; } else { print "no housekeeping - update mode\n"; $housekeeping = undef; diff --git a/perl-xCAT/xCAT/Usage.pm b/perl-xCAT/xCAT/Usage.pm index f5afc5dd6..802bd5c29 100644 --- a/perl-xCAT/xCAT/Usage.pm +++ b/perl-xCAT/xCAT/Usage.pm @@ -268,8 +268,9 @@ my %usage = ( rflash -p [--activate concurrent | disruptive][-V|--verbose] rflash [--commit | --recover] [-V|--verbose] PPC (using Direct FSP Management) specific: - rflash -p --activate disruptive [-d ] - rflash [--commit | --recover] [-V|--verbose]", + rflash -p [--activate disruptive | deferred] [-d ] + rflash [--commit | --recover] [-V|--verbose] + rflash [--bpa_acdl]", "mkhwconn" => "Usage: mkhwconn [-h|--help] diff --git a/xCAT-server/lib/xcat/plugins/blade.pm b/xCAT-server/lib/xcat/plugins/blade.pm index f53228197..49c1accf8 100644 --- a/xCAT-server/lib/xcat/plugins/blade.pm +++ b/xCAT-server/lib/xcat/plugins/blade.pm @@ -4373,6 +4373,9 @@ sub network { if (!$ip and !$host and !$gateway and !$mask) { return([1,"No changes specified"]); } + if ($mpa ne $node) { + $host = undef; + } } else { if ( $value !~ /^\*$/) {