Viewing file: events.pl (1.01 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/usr/bin/perl
use Sys::Virt; use Sys::Virt::Event;
my $uri = shift @ARGV;
Sys::Virt::Event::register_default();
my $quit = 0;
my $c = Sys::Virt->new(uri => $uri, readonly => 1);
sub lifecycle_event { my $conn = shift; my $dom = shift; my $event = shift; my $detail = shift;
printf "%s %s %d %d\n", $conn->get_uri, $dom->get_name, $event, $detail; }
sub agent_lifecycle_event { my $conn = shift; my $dom = shift; my $state = shift; my $reason = shift;
printf "Agent %s %s state=%d reason=%d\n", $conn->get_uri, $dom->get_name, $state, $reason; }
$c->domain_event_register_any(undef, Sys::Virt::Domain::EVENT_ID_LIFECYCLE, \&lifecycle_event); $c->domain_event_register_any(undef, Sys::Virt::Domain::EVENT_ID_AGENT_LIFECYCLE, \&agent_lifecycle_event);
$c->register_close_callback( sub { my $con = shift ; my $reason = shift ; print "Closed reason=$reason\n"; $quit = 1; });
while (!$quit) { Sys::Virt::Event::run_default(); }
|