2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2025-05-31 10:06:39 +00:00

Merge pull request #897 from penguhyang/mess_output_rscan

change the rscan output format
This commit is contained in:
yangsong 2016-04-13 01:01:27 -05:00
commit 5338644b00

View File

@ -3055,6 +3055,17 @@ sub rscan {
$hash_vm2host{$vm_node_host->{node}} = $vm_node_host->{host};
}
my @maxlength;
my @rscan_header = (
["type", "" ],
["name", "" ],
["hypervisor", "" ],
["id", "" ],
["cpu", "" ],
["memory", "" ],
["nic", "" ],
["disk", "" ]);
#operate every domain in current hypervisor
foreach $dom (@doms) {
my $name=$dom->get_name();
@ -3071,16 +3082,31 @@ sub rscan {
$uuid =~ s/^(..)(..)(..)(..)-(..)(..)-(..)(..)/$4$3$2$1-$6$5-$8$7/;
}
my $type = $domain->findnodes("/domain")->[0]->getAttribute("type");
if (length($type) > $maxlength[0]) {
$maxlength[0] = length($type);
}
my @nodeobj = $domain->findnodes("/domain/name");
if (@nodeobj and defined($nodeobj[0])) {
$node = $nodeobj[0]->to_literal;
}
if (length($node) > $maxlength[1]) {
$maxlength[1] = length($node);
}
my $hypervisor = $hyper;
if (length($hypervisor) > $maxlength[2]) {
$maxlength[2] = length($hypervisor);
}
my $id = $domain->findnodes("/domain")->[0]->getAttribute("id");
if (length($id) > $maxlength[3]) {
$maxlength[3] = length($id);
}
my @vmcpusobj = $domain->findnodes("/domain/vcpu");
if (@vmcpusobj and defined($vmcpusobj[0])) {
$vmcpus = $vmcpusobj[0]->to_literal;
}
if (length($vmcpus) > $maxlength[4]) {
$maxlength[4] = length($vmcpus);
}
my @vmmemoryobj = $domain->findnodes("/domain/memory");
if (@vmmemoryobj and defined($vmmemoryobj[0])) {
my $mem = $vmmemoryobj[0]->to_literal;
@ -3105,6 +3131,9 @@ sub rscan {
$vmmemory=($mem*1024)/(1024*1024);
}
}
if (length($vmmemory) > $maxlength[5]) {
$maxlength[5] = length($vmmemory);
}
my @vmstoragediskobjs = $domain->findnodes("/domain/devices/disk");
foreach my $vmstoragediskobj (@vmstoragediskobjs) {
if (($vmstoragediskobj->getAttribute("device") eq "disk") and ($vmstoragediskobj->getAttribute("type") eq "file")) {
@ -3115,6 +3144,9 @@ sub rscan {
}
}
}
if (length($vmstorage) > $maxlength[7]) {
$maxlength[7] = length($vmstorage);
}
my @archobj = $domain->findnodes("/domain/os/type");
if (@archobj and defined($archobj[0])) {
$arch = $archobj[0]->getAttribute("arch");
@ -3133,6 +3165,9 @@ sub rscan {
}
}
}
if (length($vmnics) > $maxlength[6]) {
$maxlength[6] = length($vmnics);
}
push @{$host2kvm{$uuid}}, join( ",", $type,$node,$hypervisor,$id,$vmcpus,$vmmemory,$vmnics,$vmstorage,$arch,$mac,$vmnicnicmodel );
if ($write) {
unless (exists $hash_vm2host{$node}) {
@ -3222,15 +3257,14 @@ sub rscan {
if (!$stanza) {
my $header;
my @rscan_header = (
["type", "%-8s" ],
["name", "%-9s" ],
["hypervisor", "%-15s"],
["id", "%-7s" ],
["cpu", "%-8s" ],
["memory", "%-11s"],
["nic", "%-8s" ],
["disk", "%-9s" ]);
$rscan_header[0][1] = sprintf "%%-%ds",($maxlength[0]+3);
$rscan_header[1][1] = sprintf "%%-%ds",($maxlength[1]+3);
$rscan_header[2][1] = sprintf "%%-%ds",($maxlength[2]+3);
$rscan_header[3][1] = sprintf "%%-%ds",($maxlength[3]+3);
$rscan_header[4][1] = sprintf "%%-%ds",($maxlength[4]+3);
$rscan_header[5][1] = sprintf "%%-%ds",($maxlength[5]+3);
$rscan_header[6][1] = sprintf "%%-%ds",($maxlength[6]+3);
$rscan_header[7][1] = sprintf "%%-%ds",($maxlength[7]+3);
foreach (@rscan_header) {
$header .= sprintf ( @$_[1], @$_[0] );
}