From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-12.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id B4E60C4363C for ; Wed, 7 Oct 2020 18:19:34 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 496592173E for ; Wed, 7 Oct 2020 18:19:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 496592173E Authentication-Results: mail.kernel.org; dmarc=pass (p=none dis=none) header.from=xenproject.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from list by lists.xenproject.org with outflank-mailman.3649.10603 (Exim 4.92) (envelope-from ) id 1kQE28-0007Z4-HF; Wed, 07 Oct 2020 18:19:24 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 3649.10603; Wed, 07 Oct 2020 18:19:24 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQE28-0007Yv-Bc; Wed, 07 Oct 2020 18:19:24 +0000 Received: by outflank-mailman (input) for mailman id 3649; Wed, 07 Oct 2020 18:19:23 +0000 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQE27-00072Q-GZ for xen-devel@lists.xenproject.org; Wed, 07 Oct 2020 18:19:23 +0000 Received: from chiark.greenend.org.uk (unknown [2001:ba8:1e3::]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b3a47a31-db37-454f-a28e-22d0be966e38; Wed, 07 Oct 2020 18:19:09 +0000 (UTC) Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk) by chiark.greenend.org.uk (Debian Exim 4.84_2 #1) with esmtp (return-path ijackson@chiark.greenend.org.uk) id 1kQDk4-0007CF-3A; Wed, 07 Oct 2020 19:00:44 +0100 Received: from us1-rack-iad1.inumbo.com ([172.99.69.81]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1kQE27-00072Q-GZ for xen-devel@lists.xenproject.org; Wed, 07 Oct 2020 18:19:23 +0000 X-Inumbo-ID: b3a47a31-db37-454f-a28e-22d0be966e38 Received: from chiark.greenend.org.uk (unknown [2001:ba8:1e3::]) by us1-rack-iad1.inumbo.com (Halon) with ESMTPS id b3a47a31-db37-454f-a28e-22d0be966e38; Wed, 07 Oct 2020 18:19:09 +0000 (UTC) Received: from [172.18.45.5] (helo=zealot.relativity.greenend.org.uk) by chiark.greenend.org.uk (Debian Exim 4.84_2 #1) with esmtp (return-path ijackson@chiark.greenend.org.uk) id 1kQDk4-0007CF-3A; Wed, 07 Oct 2020 19:00:44 +0100 From: Ian Jackson To: xen-devel@lists.xenproject.org Cc: Ian Jackson Subject: [OSSTEST PATCH 42/82] host allocation: selecthost(): Support @IDENT for reuse Date: Wed, 7 Oct 2020 18:59:44 +0100 Message-Id: <20201007180024.7932-43-iwj@xenproject.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201007180024.7932-1-iwj@xenproject.org> References: <20201007180024.7932-1-iwj@xenproject.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit From: Ian Jackson This is the first part of a central way to control host reuse, rather than having to write code in each ts-* script to check Shared etc. No functional change with existing callers. Signed-off-by: Ian Jackson --- Osstest/TestSupport.pm | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm index 3d5f0be3..be6b7119 100644 --- a/Osstest/TestSupport.pm +++ b/Osstest/TestSupport.pm @@ -1175,7 +1175,7 @@ sub selecthost ($;$$) { my ($ident, $none_ok, $prospective) = @_; # must be run outside transaction - # $ident is + # $ident is [@] # # can be , typically "host" or "xxx_host" # which means look up the runvar $r{$ident} which @@ -1191,8 +1191,16 @@ sub selecthost ($;$$) { # can be : meaning use the # Xen domain name on the host specified by # , which is an as above. + # + # The leading @, if present, specifies that this script should be + # skipped if the host is being reused or shared. Specifically: + # if the host is shared and in sharing state `ready'. And, it is + # wrong to specify @ when multiple hosts are being selected. my $name; + + my $isprep = $ident =~ s/^\@//; + if ($ident =~ m/=/) { $ident= $`; $name= $'; #' @@ -1352,13 +1360,27 @@ sub selecthost ($;$$) { $mjobdb->host_check_allocated($ho); - logm("host $ho->{Ident}: selected $ho->{Name} ". + logm("host $ho->{Ident}". + ($isprep ? " (prep)" : ""). + ": selected $ho->{Name} ". (defined $ho->{Ether} ? $ho->{Ether} : ''). " $ho->{Ip}". (!$ho->{Shared} ? '' : sprintf(" - shared %s %s %d", $ho->{Shared}{Type}, $ho->{Shared}{State}, $ho->{Shared}{Others}+1))); + if ($isprep && $ho->{Shared}) { + my $st = $ho->{Shared}{State}; + if ($st eq 'ready') { + logm("host is ready, skipping step"); + exit 0; + } elsif ($st eq 'prep') { + # ok, we need to do it + } else { + die "host sharestate is $st but isprep (@ in ident)"; + } + } + return $ho; } -- 2.20.1