-- 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