From ae316495afa5492d735f23577c99abb9b9fc55ed Mon Sep 17 00:00:00 2001 From: leiaibj Date: Mon, 24 Dec 2012 03:49:00 +0000 Subject: [PATCH] PureFlex x nodes import& discovery supporting git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@14704 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd --- xCAT-server/lib/xcat/plugins/00kitnodebase.pm | 11 +++++++---- xCAT-server/lib/xcat/plugins/profilednodes.pm | 18 +++++++++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/xCAT-server/lib/xcat/plugins/00kitnodebase.pm b/xCAT-server/lib/xcat/plugins/00kitnodebase.pm index c286f6d1c..a77c56d8e 100644 --- a/xCAT-server/lib/xcat/plugins/00kitnodebase.pm +++ b/xCAT-server/lib/xcat/plugins/00kitnodebase.pm @@ -91,11 +91,14 @@ sub process_request { log_cmd_return($retref); my $firstnode = (@$nodelist)[0]; - my $profileref = xCAT::ProfiledNodeUtils->get_nodes_profiles([$firstnode]); - my %profilehash = %$profileref; - if (exists $profilehash{$firstnode}{"ImageProfile"}){ + my $chaintab = xCAT::Table->new("chain"); + my $chainref = $chaintab->getNodeAttribs($firstnode, ['chain']); + my $chainstr = $chainref->{'chain'}; + my @chainarray = split(",", $chainstr); + + if ($chainarray[0]){ setrsp_progress("Update nodes' boot settings"); - $retref = xCAT::Utils->runxcmd({command=>["nodeset"], node=>$nodelist, arg=>['osimage='.$profilehash{$firstnode}{"ImageProfile"}]}, $request_command, 0, 2); + $retref = xCAT::Utils->runxcmd({command=>["nodeset"], node=>$nodelist, arg=>[$chainarray[0]]}, $request_command, 0, 2); log_cmd_return($retref); } diff --git a/xCAT-server/lib/xcat/plugins/profilednodes.pm b/xCAT-server/lib/xcat/plugins/profilednodes.pm index a24107027..e98bacacc 100644 --- a/xCAT-server/lib/xcat/plugins/profilednodes.pm +++ b/xCAT-server/lib/xcat/plugins/profilednodes.pm @@ -1232,7 +1232,10 @@ sub gen_new_hostinfo_string{ # Get node's provisioning method my $provmethod = xCAT::ProfiledNodeUtils->get_imageprofile_prov_method($args_dict{'imageprofile'}); - + + # Check whether this is Power env. + my $is_fsp = xCAT::ProfiledNodeUtils->is_fsp_node($args_dict{'networkprofile'}); + # compose the stanza string for hostinfo file. my $hostsinfostr = ""; foreach my $item (keys %hostinfo_dict){ @@ -1272,6 +1275,19 @@ sub gen_new_hostinfo_string{ if (exists $args_dict{'imageprofile'}){$hostinfo_dict{$item}{"groups"} .= ",".$args_dict{'imageprofile'}} if (exists $args_dict{'hardwareprofile'}){$hostinfo_dict{$item}{"groups"} .= ",".$args_dict{'hardwareprofile'}} if (exists $args_dict{'groups'}){$hostinfo_dict{$item}{"groups"} .= ",".$args_dict{'groups'}} + + # xCAT limitation: slotid attribute only for power, id is for x. + if ((exists $hostinfo_dict{$item}{"slotid"}) && (! $is_fsp) ){ + $hostinfo_dict{$item}{"id"} = $hostinfo_dict{$item}{"slotid"}; + delete($hostinfo_dict{$item}{"slotid"}); + } + # generage mpa attribute for blades managed by CMM. + if (exists $hostinfo_dict{$item}{"chassis"}){ + my $chassisname = $hostinfo_dict{$item}{"chassis"}; + if(exists $allcmmchassis{$chassisname}){ + $hostinfo_dict{$item}{"mpa"} = $chassisname; + } + } $hostinfo_dict{$item}{"chain"} = 'osimage='.$provmethod; if (exists $netprofileattr{"bmc"}){ # Update BMC records.