support attribute cleanup for nice single value column
[gnt-info] / gnt-instance-mac-ip.pl
1 #!/usr/bin/perl
2 use warnings;
3 use strict;
4 use autodie;
5
6 my $mac2ip_vlan;
7 my ($in,$out);
8 open(my $in, '<', '/dev/shm/mac-ip-vlan');
9 while(<$in>) {
10         print $out $_ if $out;
11         chomp;
12         my ( $mac, $ip, $vlan ) = split(/\s/,$_);
13         $mac2ip_vlan->{$mac} = [ $ip, $vlan ];
14 }
15
16 open(my $gnt, '-|', qq{gnt-instance list --no-header --separator=' ' -o name,nic.macs,nic.bridges,tags});
17 while(<$gnt>) {
18         chomp;
19         my ( $name,$macs,$bridges,$tags ) = split(/\s/,$_,4);
20         my @macs = split(/,/,$macs);
21         my @br  = split(/,/,$bridges);
22         for my $i ( 0 .. $#macs ) {
23                 my $mac = $macs[$i];
24                 print "$name $mac $br[$i] ";
25                 if ( exists $mac2ip_vlan->{$mac} ) {
26                         print join(' ', @{ $mac2ip_vlan->{$mac} });
27                 } else {
28                         print "? ?";
29                 }
30                 $tags =~ s/ganeti:watcher[^,]*,*//g;
31                 $tags =~ s/ganetimgr://g;
32                 print " $tags\n";
33         }
34 }