[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH OSSTEST v3] PDU/xenuse: Support xenuse on machine not locked by current user

xenuse checks that whoever is trying to reboot a machine "owns" that machine
via a locking mechanism. This is usually fine doesn't work well when one wants
to book a machine out of the osstest pool for adhoc testing. In this case
machine ownership is maintained by osstest ahd the machine remains locked to
osstest as far as xenuse is concerned.

Therefore add a global configuration option and perhost override to override
$USER (which xenuse obeys) to osstest.
v3: Simplified $ENV{USER} frobbing, more idiomatic Perl.
v2: Use "local $ENV{USER}" which contrary to my previous experiments does
actually work.
 Osstest/PDU/xenuse.pm |    5 +++++
 production-config     |    1 +
 2 files changed, 6 insertions(+)

diff --git a/Osstest/PDU/xenuse.pm b/Osstest/PDU/xenuse.pm
index 73a542d..6b0503f 100644
--- a/Osstest/PDU/xenuse.pm
+++ b/Osstest/PDU/xenuse.pm
@@ -44,7 +44,12 @@ sub pdu_power_state {
     my ($mo, $on) = @_;
     my $onoff= $on ? "on" : "off";
     my $xenuse= $c{XenUsePath} || "xenuse";
+    my $user= get_host_property($mo->{Host}, "XenUseUser", $c{XenUseUser} || 
+    (
+       logm("XenUse overriding \$USER to $user"),
+       local $ENV{USER} = $user
+    ) if $user;
     system_checked($xenuse, "--$onoff", "$mo->{Host}{Name}");
diff --git a/production-config b/production-config
index de9e55c..fb9d750 100644
--- a/production-config
+++ b/production-config
@@ -75,6 +75,7 @@ TftpPxeGroup osstest
 TftpDiVersion 2013-09-23
 XenUsePath /usr/groups/xencore/systems/bin/xenuse
+XenUseUser osstest
 # We use the IP address because Citrix can't manage reliable nameservice
 #DebianMirrorHost debian.uk.xensource.com

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.