--
Groeten,
natxo

On Thu, Mar 27, 2014 at 2:30 AM, Benjamin Fernandis <benjo11...@gmail.com>wrote:

> Hi,
>
> I am new with perl and we have virtual machines in our infra. i want to
> use perl sys::virt module to manage them, means to shutdown / start vm by
> script and for that i wrote below small code.
>
> #!/usr/bin/perl
> #
> use strict;
> use warnings;
>
> use Sys::Virt;
>
>
> my $vmm = Sys::Virt->new(uri => "qemu:///system");
>
> my @domains = $vmm->list_domains();
>
> foreach my $dom (@domains) {
>         print "Domain ", $dom->get_id, " ", $dom->get_name, "\n";
>       }
> my $vm = 'win7';
>
> $vm = $vmm->destroy();
>
>
calling destroy will pull off the plug. Do not do that ;-) unless you want
to break things in your vm.

This works (just tested it now on a fedora 20 system):

use strict;
use warnings;
use utf8;

use Sys::Virt;
my $uri = "qemu:///system";

my $con = Sys::Virt->new(
    uri     => $uri,
);

if ($@) {
    die "$@";
}

for my $dom ( $con->list_domains, $con->list_defined_domains) {
    print "name: ", $dom->get_name, "\n";
    print "uuid: ", $dom->get_uuid_string(), "\n";

    print $dom->get_info->{state}, "\n";

  if ($dom->get_info->{state} == Sys::Virt::Domain::STATE_RUNNING) {
    $dom->shutdown();
      print $dom->get_name, " going doing!\n";
  }
  if ($dom->get_info->{state} == Sys::Virt::Domain::STATE_SHUTOFF) {
    $dom->create();
      print $dom->get_name, " starting up!\n";
  }
}

--
regards,
natxo

Reply via email to