X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-remote.git/blobdiff_plain/d7f33e5a8eba8e45cb5ad588a644a5482e82f7d4..227cb65ae3d4b0fd6636700595df6f00b18d4f37:/files/usr/sbin/sipb-xen-remote-listvmsd diff --git a/files/usr/sbin/sipb-xen-remote-listvmsd b/files/usr/sbin/sipb-xen-remote-listvmsd deleted file mode 100755 index 33acef3..0000000 --- a/files/usr/sbin/sipb-xen-remote-listvmsd +++ /dev/null @@ -1,71 +0,0 @@ -#!/usr/bin/perl - -# NOTE: In development; not actually used yet. - -#Collates the results of listvms from multiple VM servers. Part of the xvm -#suite. - -use Net::Remctl (); -use JSON; - -our @servers = qw/black-mesa.mit.edu sx-blade-2.mit.edu/; - -our %connections; - -sub openConnections() { - foreach (@servers) { openConnection($_); } -} - -sub openConnection($) { - my ($server) = @_; - my $remctl = Net::Remctl->new; - $remctl->open($server) - or die "Cannot connect to $server: ", $remctl->error, "\n"; - $connections{$server} = $remctl; -} - -sub doListVMs() { - foreach my $remctl (values %connections) { - $remctl->command("remote", "web", "listvms", "--json"); - } - my %vmstate; - foreach my $server (keys %connections) { - my $remctl = $connections{$server}; - my $jsonData = ''; - do { - $output = $remctl->output; - if ($output->type eq 'output') { - if ($output->stream == 1) { - $jsonData .= $output->data; - } elsif ($output->stream == 2) { - print STDERR $output->data; - } - } elsif ($output->type eq 'error') { - warn $output->error, "\n"; - } elsif ($output->type eq 'status') { - if ($output->status != 0) { - warn "Exit status was ".$output->status; - } - } elsif ($output->type eq 'done') { - #next; - } else { - die "Unknown output token from library: ", $output->type, "\n"; - } - } while ($output->type ne 'done'); - my $vmlist = jsonToObj($jsonData); - foreach my $key (keys %$vmlist) { - $vmstate{$key} = $vmlist->{$key}; - $vmstate{$key}{"host"} = $server; - } - } - return %vmstate; -} - -openConnections(); - -use Data::Dumper; -use Benchmark; -print Dumper({doListVMs()}); -timethis(100, sub {doListVMs()}); - -# vim:et:sw=4:ts=4