Updated format_stanza() and format_xml() output
git-svn-id: https://svn.code.sf.net/p/xcat/code/xcat-core/trunk@622 8638fb3e-16cb-4fca-ae20-7b5d299a9bcd
This commit is contained in:
@ -19,24 +19,30 @@ use constant {
|
||||
HARDWARE_SERVICE => "service:management-hardware.IBM",
|
||||
SOFTWARE_SERVICE => "service:management-software.IBM",
|
||||
WILDCARD_SERVICE => "service:management-*.IBM:",
|
||||
SERVICE_CEC => "cec-service-processor",
|
||||
SERVICE_FSP => "cec-service-processor",
|
||||
SERVICE_BPA => "bulk-power-controller",
|
||||
SERVICE_HMC => "hardware-management-console",
|
||||
SERVICE_IVM => "integrated-virtualization-manager",
|
||||
SERVICE_MM => "management-module",
|
||||
SERVICE_RSA => "remote-supervisor-adapter"
|
||||
SERVICE_RSA => "remote-supervisor-adapter",
|
||||
TYPE_MM => "MM",
|
||||
TYPE_RSA => "RSA",
|
||||
TYPE_BPA => "BPA",
|
||||
TYPE_HMC => "HMC",
|
||||
TYPE_IVM => "IVM",
|
||||
TYPE_FSP => "IVM",
|
||||
};
|
||||
|
||||
#######################################
|
||||
# Globals
|
||||
#######################################
|
||||
my %service_slp = (
|
||||
@{[ SERVICE_CEC ]} => "FSP",
|
||||
@{[ SERVICE_BPA ]} => "BPA",
|
||||
@{[ SERVICE_HMC ]} => "HMC",
|
||||
@{[ SERVICE_IVM ]} => "IVM",
|
||||
@{[ SERVICE_MM ]} => "MM",
|
||||
@{[ SERVICE_RSA ]} => "RSA"
|
||||
@{[ SERVICE_FSP ]} => TYPE_FSP,
|
||||
@{[ SERVICE_BPA ]} => TYPE_BPA,
|
||||
@{[ SERVICE_HMC ]} => TYPE_HMC,
|
||||
@{[ SERVICE_IVM ]} => TYPE_IVM,
|
||||
@{[ SERVICE_MM ]} => TYPE_MM,
|
||||
@{[ SERVICE_RSA ]} => TYPE_RSA
|
||||
);
|
||||
|
||||
#######################################
|
||||
@ -54,7 +60,7 @@ my @header = (
|
||||
# Hardware specific SLP attributes
|
||||
#######################################
|
||||
my %exattr = (
|
||||
@{[ SERVICE_CEC ]} => [
|
||||
@{[ SERVICE_FSP ]} => [
|
||||
"bpc-machinetype-model",
|
||||
"bpc-serial-number",
|
||||
"cage-number"
|
||||
@ -64,6 +70,19 @@ my %exattr = (
|
||||
]
|
||||
);
|
||||
|
||||
#######################################
|
||||
# Power methods
|
||||
#######################################
|
||||
my %mgt = (
|
||||
lc(TYPE_FSP) => "hmc",
|
||||
lc(TYPE_HMC) => "hmc",
|
||||
lc(TYPE_MM) => "blade",
|
||||
lc(TYPE_HMC) => "hmc",
|
||||
lc(TYPE_IVM) => "ivm",
|
||||
lc(TYPE_RSA) => "blade"
|
||||
);
|
||||
|
||||
my @attribs = qw(nodetype model serial groups mgt mpa id);
|
||||
my $verbose = 0;
|
||||
my %ip_addr = ();
|
||||
my %slp_result = ();
|
||||
@ -126,7 +145,7 @@ sub parse_args {
|
||||
HMC => SOFTWARE_SERVICE.":".SERVICE_HMC.":",
|
||||
IVM => SOFTWARE_SERVICE.":".SERVICE_IVM.":",
|
||||
BPA => HARDWARE_SERVICE.":".SERVICE_BPA,
|
||||
FSP => HARDWARE_SERVICE.":".SERVICE_CEC,
|
||||
FSP => HARDWARE_SERVICE.":".SERVICE_FSP,
|
||||
RSA => HARDWARE_SERVICE.":".SERVICE_RSA.":",
|
||||
MM => HARDWARE_SERVICE.":".SERVICE_MM.":"
|
||||
);
|
||||
@ -966,7 +985,7 @@ sub xCATdB {
|
||||
$frame = "$bpc_model*$bpc_serial";
|
||||
}
|
||||
########################################
|
||||
# "Factory-default" CEC name format:
|
||||
# "Factory-default" FSP name format:
|
||||
# Server-<type>-<model>-<serialnumber>
|
||||
# ie. Server-9117-MMA-SN10F6F3D
|
||||
#
|
||||
@ -1008,35 +1027,47 @@ sub xCATdB {
|
||||
sub format_stanza {
|
||||
|
||||
my $outhash = shift;
|
||||
my $text;
|
||||
my $result;
|
||||
|
||||
#####################################
|
||||
# Remove hostname from header
|
||||
#####################################
|
||||
pop @header;
|
||||
|
||||
#####################################
|
||||
# Write attributes
|
||||
# Write attributes
|
||||
#####################################
|
||||
foreach ( keys %$outhash ) {
|
||||
my @data = @{ $outhash->{$_}};
|
||||
my @data = @{$outhash->{$_}};
|
||||
my $type = lc($data[0]);
|
||||
my $name = $data[4];
|
||||
my $i = 0;
|
||||
|
||||
#################################
|
||||
# Node attributes
|
||||
#################################
|
||||
$text.= "$data[4]:\n objtype=node\n";
|
||||
$result .= "$name:\n\tobjtype=node\n";
|
||||
|
||||
#################################
|
||||
# Display attributes
|
||||
# Add each attribute
|
||||
#################################
|
||||
foreach ( @header ) {
|
||||
$text.= " @$_[0]=$data[$i++]\n";
|
||||
foreach ( @attribs ) {
|
||||
my $d = $data[$i++];
|
||||
|
||||
if ( /^device|ip-addresses|hostname$/ ) {
|
||||
next;
|
||||
} elsif ( /^nodetype$/ ) {
|
||||
$d = $type;
|
||||
} elsif ( /^groups$/ ) {
|
||||
$d = "$type,all";
|
||||
} elsif ( /^mgt$/ ) {
|
||||
$d = $mgt{$type};
|
||||
} elsif ( /^id|mpa$/ ) {
|
||||
if ( $type =~ /^mm|rsa$/ ) {
|
||||
$d = (/^id$/) ? "0" : $name;
|
||||
} else {
|
||||
next;
|
||||
}
|
||||
}
|
||||
$result .= "\t$_=$d\n";
|
||||
}
|
||||
$text.= "\n";
|
||||
}
|
||||
return( $text );
|
||||
|
||||
return( $result );
|
||||
}
|
||||
|
||||
|
||||
@ -1046,14 +1077,16 @@ sub format_stanza {
|
||||
##########################################################################
|
||||
sub format_xml {
|
||||
|
||||
my $outhash = shift;
|
||||
my $outhash = shift;
|
||||
my $xml;
|
||||
|
||||
#####################################
|
||||
# Create XML formatted attributes
|
||||
# Create XML formatted attributes
|
||||
#####################################
|
||||
foreach ( keys %$outhash ) {
|
||||
my @data = @{ $outhash->{$_}};
|
||||
my $type = lc($data[0]);
|
||||
my $name = $data[4];
|
||||
my $i = 0;
|
||||
|
||||
#################################
|
||||
@ -1063,13 +1096,30 @@ sub format_xml {
|
||||
Node => { }
|
||||
};
|
||||
#################################
|
||||
# Add each attribute
|
||||
# Add each attribute
|
||||
#################################
|
||||
foreach ( @header ) {
|
||||
$href->{"Node"}->{@$_[0]} = $data[$i++];
|
||||
foreach ( @attribs ) {
|
||||
my $d = $data[$i++];
|
||||
|
||||
if ( /^device|ip-addresses|hostname$/ ) {
|
||||
next;
|
||||
} elsif ( /^nodetype$/ ) {
|
||||
$d = $type;
|
||||
} elsif ( /^groups$/ ) {
|
||||
$d = "$type,all";
|
||||
} elsif ( /^mgt$/ ) {
|
||||
$d = $mgt{$type};
|
||||
} elsif ( /^id|mpa$/ ) {
|
||||
if ( $type =~ /^mm|rsa$/ ) {
|
||||
$d = (/^id$/) ? "0" : $name;
|
||||
} else {
|
||||
next;
|
||||
}
|
||||
}
|
||||
$href->{Node}->{$_} = $d;
|
||||
}
|
||||
#################################
|
||||
# XML encoding
|
||||
# XML encoding
|
||||
#################################
|
||||
$xml.= XMLout($href,
|
||||
NoAttr => 1,
|
||||
@ -1271,3 +1321,4 @@ sub process_request {
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user