From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: [PATCH OSSTEST v3] PDU/xenuse: Support xenuse on machine not locked by current user Date: Fri, 25 Oct 2013 11:29:42 +0100 Message-ID: <1382696982-6316-1-git-send-email-ian.campbell@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: ian.jackson@eu.citrix.com Cc: Ian Campbell , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org 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