Implement destory/create as per toolstack methods, including implementing the libvirt version which previously didn't work. To do this we use the virsh capability to convert an xl/xm style config file into the correct XML.
xend basically calls into the xl helper since they are compatible. xl/xm, uses ->{Command} which will eventually become private. Signed-off-by: Ian Campbell <ian.campb...@citrix.com> --- v3: Rebased of prototype changes to guest_create/destroy (only $gho) Use xen-xl format to domxml-from-native rather than xen-xm Moved spurious change in ts-save-restore to correct home later in the series. Suggested switch to passing $gho to ->start has been deferred to a new patch towards the end of the series --- Osstest/TestSupport.pm | 4 ++-- Osstest/Toolstack/libvirt.pm | 20 ++++++++++++++++++++ Osstest/Toolstack/xl.pm | 13 +++++++++++++ ts-guest-start | 4 +--- ts-windows-install | 7 +------ 5 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm index 6124d19..5c753b4 100644 --- a/Osstest/TestSupport.pm +++ b/Osstest/TestSupport.pm @@ -1328,13 +1328,13 @@ sub guest_await_shutdown ($$$) { sub guest_destroy ($) { my ($gho) = @_; my $ho = $gho->{Host}; - target_cmd_root($ho, toolstack($ho)->{Command}." destroy $gho->{Name}", 40); + toolstack($ho)->destroy($gho); } sub guest_create ($) { my ($gho) = @_; my $ho = $gho->{Host}; - target_cmd_root($ho, toolstack($ho)->{Command}." create $gho->{CfgPath}", 100); + toolstack($ho)->create($gho->{CfgPath}); } diff --git a/Osstest/Toolstack/libvirt.pm b/Osstest/Toolstack/libvirt.pm index 90fe434..0d09ffc 100644 --- a/Osstest/Toolstack/libvirt.pm +++ b/Osstest/Toolstack/libvirt.pm @@ -20,15 +20,35 @@ package Osstest::Toolstack::libvirt; use strict; use warnings; +use Osstest::TestSupport; + sub new { my ($class, $ho, $methname,$asset) = @_; return bless { Name => "libvirt", Host => $ho, NewDaemons => [qw(libvirtd)], Dom0MemFixed => 1, + CfgPathVar => 'cfgpath', Command => 'virsh', ExtraPackages => [qw(libnl1 libavahi-client3)], }, $class; } +sub destroy ($$) { + my ($self,$gho) = @_; + my $gn = $gho->{Name}; + target_cmd_root($self->{Host}, "virsh destroy $gn", 40); +} + +sub create ($$) { + my ($self,$cfg) = @_; + my $ho = $self->{Host}; + my $lcfg = $cfg; + $lcfg =~ s,/,-,g; + $lcfg = "$ho->{Name}--$lcfg"; + target_cmd_root($ho, "virsh domxml-from-native xen-xl $cfg > $cfg.xml", 30); + target_getfile_root($ho,60,"$cfg.xml", "$stash/$lcfg"); + target_cmd_root($ho, "virsh create --file $cfg.xml", 100); +} + 1; diff --git a/Osstest/Toolstack/xl.pm b/Osstest/Toolstack/xl.pm index 0b66201..12417ca 100644 --- a/Osstest/Toolstack/xl.pm +++ b/Osstest/Toolstack/xl.pm @@ -20,6 +20,8 @@ package Osstest::Toolstack::xl; use strict; use warnings; +use Osstest::TestSupport; + sub new { my ($class, $ho, $methname,$asset) = @_; return bless { Name => "xl", @@ -32,4 +34,15 @@ sub new { }, $class; } +sub destroy ($$) { + my ($self,$gho) = @_; + my $gn = $gho->{Name}; + target_cmd_root($self->{Host}, $self->{Command}." destroy $gn", 40); +} + +sub create ($$) { + my ($self,$cfg) = @_; + target_cmd_root($self->{Host}, $self->{Command}." create $cfg", 100); +} + 1; diff --git a/ts-guest-start b/ts-guest-start index bfbb734..fb6a174 100755 --- a/ts-guest-start +++ b/ts-guest-start @@ -26,9 +26,7 @@ our ($ho,$gho) = ts_get_host_guest(@ARGV); sub start () { guest_umount_lv($ho, $gho); - my $cmd= toolstack($ho)->{Command}." create ". - $r{ $gho->{Guest}.'_'. toolstack($ho)->{CfgPathVar} }; - target_cmd_root($ho, $cmd, 30); + toolstack($ho)->create($r{ $gho->{Guest}.'_'. toolstack($ho)->{CfgPathVar} }); } sub checkstart () { diff --git a/ts-windows-install b/ts-windows-install index 4b06310..7740ee6 100755 --- a/ts-windows-install +++ b/ts-windows-install @@ -49,13 +49,8 @@ END store_runvar("$gho->{Guest}_pingbroken", 1); } -sub start () { - target_cmd_root($ho, toolstack($ho)->{Command}. - " create $gho->{CfgPath}", 100); -} - prep(); -start(); +guest_create($gho); guest_await_dhcp_tcp($gho,7000); guest_check_up($gho); -- 2.1.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel