Ian Campbell
2013-Oct-25 10:29 UTC
[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} || undef);
+ (
+ 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
--
1.7.10.4
Ian Jackson
2013-Oct-28 15:47 UTC
Re: [PATCH OSSTEST v3] PDU/xenuse: Support xenuse on machine not locked by current user
Ian Campbell writes ("[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.
Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
Ian Campbell
2013-Oct-31 17:53 UTC
Re: [PATCH OSSTEST v3] PDU/xenuse: Support xenuse on machine not locked by current user
On Mon, 2013-10-28 at 15:47 +0000, Ian Jackson wrote:> Ian Campbell writes ("[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. > > Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>Thanks. Pushed to pretest.