#!/usr/bin/perl
use strict;
use warnings;
use Sys::Virt;
my $xml = <<EOF;
<domain type='kvm'>
<name>perl-demo</name>
<memory>219200</memory>
<currentMemory>219136</currentMemory>
<vcpu>1</vcpu>
<os>
<type arch='i686'>hvm</type>
<boot dev='network'/>
</os>
<features>
<acpi/>
</features>
<clock offset='utc'/>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<serial type='pty'>
<target port='0'/>
</serial>
</devices>
</domain>
EOF
my $conn = Sys::Virt->new(uri => "qemu:///session");
print "Starting a transient guest\n";
my $dom = $conn->create_domain($xml);
print "Saving the guest\n";
my $curxml = $dom->get_xml_description();
$dom->save("perl-demo.img", $curxml, Sys::Virt::Domain::SAVE_BYPASS_CACHE);
my $newxml = $conn->get_save_image_xml_description("perl-demo.img");
print $newxml;
print "Restoring the guest\n";
$conn->restore_domain("perl-demo.img", $newxml, Sys::Virt::Domain::SAVE_BYPASS_CACHE);
print "Destroying the guest\n";
$dom = $conn->get_domain_by_name("perl-demo");
$dom->destroy;
unlink "perl-demo.img";