From: Ian Campbell <ian.campbell@citrix.com>
To: ian.jackson@eu.citrix.com
Cc: Jim Fehlig <jfehlig@suse.com>,
Ian Campbell <ian.campbell@citrix.com>,
xen-devel@lists.xen.org
Subject: [PATCH OSSTEST v2 05/18] Toolstack: use get_host_method_object() to manage toolstack selection
Date: Tue, 2 Dec 2014 16:04:46 +0000 [thread overview]
Message-ID: <1417536299-1810-5-git-send-email-ian.campbell@citrix.com> (raw)
In-Reply-To: <1417536141.29004.6.camel@citrix.com>
This will allow us to more easily have per-toolstack methods etc.
The previous hash of toolstack parameters is now a blessed object. For
now the callers don't need to change but over the following patches we
will refactor things to use method calls. In particular we will be
aiming to remove Command from the hash and use method calls for
everything.
Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
---
Osstest/TestSupport.pm | 37 ++++---------------------------------
Osstest/Toolstack/libvirt.pm | 34 ++++++++++++++++++++++++++++++++++
Osstest/Toolstack/xend.pm | 35 +++++++++++++++++++++++++++++++++++
Osstest/Toolstack/xl.pm | 35 +++++++++++++++++++++++++++++++++++
4 files changed, 108 insertions(+), 33 deletions(-)
create mode 100644 Osstest/Toolstack/libvirt.pm
create mode 100644 Osstest/Toolstack/xend.pm
create mode 100644 Osstest/Toolstack/xl.pm
diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index b7887bc..df05d8a 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -1862,42 +1862,13 @@ sub guest_vncsnapshot_stash ($$$$) {
target_getfile_root($ho,100, "$rfile", "$stash/$leaf");
}
-our %toolstacks=
- ('xend' => {
- NewDaemons => [qw(xend)],
- OldDaemonInitd => 'xend',
- Command => 'xm',
- CfgPathVar => 'cfgpath',
- Dom0MemFixed => 1,
- },
- 'xl' => {
- NewDaemons => [],
- Dom0MemFixed => 1,
- Command => 'xl',
- CfgPathVar => 'cfgpath',
- RestoreNeedsConfig => 1,
- },
- 'libvirt' => {
- NewDaemons => [qw(libvirtd)],
- Dom0MemFixed => 1,
- Command => 'virsh',
- ExtraPackages => [qw(libnl1 libavahi-client3)],
- },
- );
-
sub toolstack ($) {
my ($ho) = @_;
return $ho->{Toolstack} if $ho->{Toolstack};
- my $tsname= $r{toolstack};
- $tsname= 'xend' if !defined $tsname;
- my $ts= $toolstacks{$tsname};
- die "$tsname ?" unless defined $ts;
- if (!exists $ts->{Name}) {
- logm("toolstack $tsname");
- $ts->{Name}= $tsname;
- }
- $ho->{Toolstack} = $ts;
- return $ts;
+
+ my $tsname= $r{toolstack} || 'xend';
+ $ho->{Toolstack}= get_host_method_object($ho, 'Toolstack', $tsname);
+ return $ho->{Toolstack};
}
sub authorized_keys () {
diff --git a/Osstest/Toolstack/libvirt.pm b/Osstest/Toolstack/libvirt.pm
new file mode 100644
index 0000000..90fe434
--- /dev/null
+++ b/Osstest/Toolstack/libvirt.pm
@@ -0,0 +1,34 @@
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2014 Citrix Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+package Osstest::Toolstack::libvirt;
+
+use strict;
+use warnings;
+
+sub new {
+ my ($class, $ho, $methname,$asset) = @_;
+ return bless { Name => "libvirt",
+ Host => $ho,
+ NewDaemons => [qw(libvirtd)],
+ Dom0MemFixed => 1,
+ Command => 'virsh',
+ ExtraPackages => [qw(libnl1 libavahi-client3)],
+ }, $class;
+}
+
+1;
diff --git a/Osstest/Toolstack/xend.pm b/Osstest/Toolstack/xend.pm
new file mode 100644
index 0000000..881417d
--- /dev/null
+++ b/Osstest/Toolstack/xend.pm
@@ -0,0 +1,35 @@
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2014 Citrix Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+package Osstest::Toolstack::xend;
+
+use strict;
+use warnings;
+
+sub new {
+ my ($class, $ho, $methname,$asset) = @_;
+ return bless { Name => "xend",
+ Host => $ho,
+ NewDaemons => [qw(xend)],
+ OldDaemonInitd => 'xend',
+ Command => 'xm',
+ CfgPathVar => 'cfgpath',
+ Dom0MemFixed => 1,
+ }, $class;
+}
+
+1;
diff --git a/Osstest/Toolstack/xl.pm b/Osstest/Toolstack/xl.pm
new file mode 100644
index 0000000..0b66201
--- /dev/null
+++ b/Osstest/Toolstack/xl.pm
@@ -0,0 +1,35 @@
+# This is part of "osstest", an automated testing framework for Xen.
+# Copyright (C) 2014 Citrix Inc.
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+package Osstest::Toolstack::xl;
+
+use strict;
+use warnings;
+
+sub new {
+ my ($class, $ho, $methname,$asset) = @_;
+ return bless { Name => "xl",
+ Host => $ho,
+ NewDaemons => [],
+ Dom0MemFixed => 1,
+ Command => 'xl',
+ CfgPathVar => 'cfgpath',
+ RestoreNeedsConfig => 1,
+ }, $class;
+}
+
+1;
--
2.1.1
next prev parent reply other threads:[~2014-12-02 16:04 UTC|newest]
Thread overview: 62+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-12-02 16:02 [PATCH v2 OSSTEST 0/18] Implement for driving libvirt via virsh Ian Campbell
2014-12-02 16:04 ` [PATCH OSSTEST v2 01/18] apt: lock osstest's usages of apt-get against each other Ian Campbell
2015-01-20 18:19 ` Ian Jackson
2015-01-21 11:29 ` Ian Campbell
2015-01-21 12:13 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 02/18] ts-logs-capture: Collect some libvirt logs and capabilities Ian Campbell
2015-01-20 18:20 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 03/18] Pass host to toolstack() Ian Campbell
2015-01-20 18:21 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 04/18] ts-rumpuserxen-demo-xenstorels: Use standard functions for things Ian Campbell
2015-01-20 18:22 ` Ian Jackson
2014-12-02 16:04 ` Ian Campbell [this message]
2015-01-20 18:23 ` [PATCH OSSTEST v2 05/18] Toolstack: use get_host_method_object() to manage toolstack selection Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 06/18] TestSupport: always use xl for generic operations Ian Campbell
2015-01-20 18:26 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 07/18] TestSupport: guest_create takes a $ho Ian Campbell
2015-01-20 18:27 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 08/18] Toolstack: Refactor guest lifecycle Ian Campbell
2015-01-13 16:16 ` Ian Campbell
2015-01-14 17:01 ` Ian Jackson
2015-01-20 18:32 ` Ian Jackson
2015-01-21 15:59 ` Ian Campbell
2015-01-21 16:28 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 09/18] Toolstack: Refactor consolecmd handling Ian Campbell
2015-01-20 18:34 ` Ian Jackson
2015-01-22 11:24 ` Ian Campbell
2015-01-22 11:26 ` Ian Campbell
2015-01-22 14:35 ` Ian Campbell
2015-01-22 14:41 ` Ian Jackson
2015-01-22 14:42 ` Ian Campbell
2015-01-22 15:15 ` Ian Jackson
2015-01-22 15:17 ` Ian Campbell
2014-12-02 16:04 ` [PATCH OSSTEST v2 10/18] Toolstack: Refactor shutdown support Ian Campbell
2015-01-20 18:35 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 11/18] Toolstack: Refactor migration support check Ian Campbell
2015-01-20 18:45 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 12/18] Toolstack: Refactor migration support Ian Campbell
2015-01-20 18:38 ` Ian Jackson
2015-01-22 15:06 ` Ian Campbell
2015-01-22 15:17 ` Ian Jackson
2015-01-22 15:19 ` Ian Campbell
2015-01-22 15:38 ` Ian Jackson
2015-01-22 16:11 ` Ian Campbell
2014-12-02 16:04 ` [PATCH OSSTEST v2 13/18] Toolstack: Refactor save/restore support Ian Campbell
2015-01-20 18:41 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 14/18] libvirt: Implement initscript restart which has some hope of working Ian Campbell
2015-01-20 18:37 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 15/18] libvirt: Implement shutdown_wait Ian Campbell
2015-01-20 18:44 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 16/18] Toolstack: Remove Command field for all toolstacks Ian Campbell
2015-01-20 18:39 ` Ian Jackson
2015-01-21 11:49 ` Ian Campbell
2015-01-21 12:14 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 17/18] ts-guest-start: Use guest_create Ian Campbell
2015-01-20 18:46 ` Ian Jackson
2014-12-02 16:04 ` [PATCH OSSTEST v2 18/18] WIP: libvirt: migration + save/restore support Ian Campbell
2014-12-13 16:06 ` Wei Liu
2015-01-20 18:49 ` Ian Jackson
2015-01-21 5:42 ` Jim Fehlig
2015-01-21 9:48 ` Ian Campbell
2015-01-21 11:36 ` [PATCH OSSTEST v2 18/18] WIP: libvirt: migration + save/restore support. [and 1 more messages] Ian Jackson
2015-01-21 15:05 ` Jim Fehlig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1417536299-1810-5-git-send-email-ian.campbell@citrix.com \
--to=ian.campbell@citrix.com \
--cc=ian.jackson@eu.citrix.com \
--cc=jfehlig@suse.com \
--cc=xen-devel@lists.xen.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.