From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id GAoHNomhp2XysAAA62LTzQ:P1 (envelope-from ) for ; Wed, 17 Jan 2024 10:44:42 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e224::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id GAoHNomhp2XysAAA62LTzQ (envelope-from ) for ; Wed, 17 Jan 2024 10:44:41 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=zancanaro.id.au header.s=k1 header.b=Ojrtxmr4; dmarc=pass (policy=none) header.from=zancanaro.id.au; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1705484681; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=oq7aR1FAkppx5l1z4c3X/Wb+Lz/CNIo9+ub0xqggWLY=; b=SDrwVBtKmv0FLuNSAEuxADkeuCTD/UWYPVLuS2ElDVaygV60c7Y024TDONpuY3GTVq9GnI hVeRuNfO0OG5T3GLwePzEed7XOYMLxZ1LiKtGzDAMRu2ExSAXKvmwy48pzg9HHIw/b1DyC rH42Cr5c3kFkERlI1STR+foDrjmoG0xZIGJk+dK5fX+GQhrXLVHfMwZVW/+XnkRZkN5lPB uAjqGz6fY5CwJk0g2ajpsyW14ZeOlzm1Pa3Ov2CGMU1MdmJ1BOF4PeL7TsbMQq6VHafzBt VkGESUfT4HEl2YFHAyfW4vqXUn4VJuQVeLQSE8BcTdkyCPAFTWxYe68j1V+lJQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=zancanaro.id.au header.s=k1 header.b=Ojrtxmr4; dmarc=pass (policy=none) header.from=zancanaro.id.au; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org" ARC-Seal: i=1; s=key1; d=yhetil.org; t=1705484681; a=rsa-sha256; cv=none; b=X3ZiGxSct1nUnIOYZ2k8cIxrPYrfIYhaLR+ZcF816W1UJ9ZKA39zGo7Y4xVs67y2n2YDnH a9Gl8jbjv4WzHgM0aE5QlUaULNTCz7p4JzL+duzCipRN0fID61PcJ934smywZIOuK9laLq Pbj38HgzYMyE+vaidslb4h5w8j09nBAuTha2AZDTIwTTQ5Ktgt2aRIr0BFFN8HPhbvbmWs DLbopw22TcEZAgt7VeeejoZZefamwqf9hYpqG5/azXitQP+fZxx1kzikViyLXKxqCb9Bzn G7XDFMgPyATbsJxgx3yY8JBwNceGtn+tg6Oh0Wdhi657JiS36kP4zMw7+Vs1MQ== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B478E2093F for ; Wed, 17 Jan 2024 10:44:41 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rQ2Sp-0006oR-2a; Wed, 17 Jan 2024 04:44:03 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rQ2Sn-0006o3-1c for guix-devel@gnu.org; Wed, 17 Jan 2024 04:44:01 -0500 Received: from voltorb.zancanaro.id.au ([45.77.50.64]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rQ2Sk-0002mS-Rt for guix-devel@gnu.org; Wed, 17 Jan 2024 04:44:00 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; s=k1; bh=oq7aR1FAkppx5l1 z4c3X/Wb+Lz/CNIo9+ub0xqggWLY=; h=date:references:in-reply-to:subject: cc:to:from; d=zancanaro.id.au; b=Ojrtxmr4/2xwwg9i/NBnjYSPzEDLpjdCsNlkc Pp15P5obBEfzedIdKpm014PRtThGzalyHqwFpbZJNT9yt+9c5ubXGQyegJUBSCm35RIUKd 1Y+cWlGuqNerDbZ5L59fDTujkpneWG9Zmvu3CVqTlIlxgetCHuTuCcGOFdLYTBD0= Received: by voltorb.zancanaro.id.au (OpenSMTPD) with ESMTPSA id 1e20a999 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Wed, 17 Jan 2024 09:43:47 +0000 (UTC) From: Carlo Zancanaro To: Richard Sent Cc: guix-devel@gnu.org Subject: Re: Guix deploy --keep-going equivalent for machine connection failures In-Reply-To: <494a6ad05644e3b4c215d2bdaf388811@freakingpenguin.com> (Richard Sent's message of "Mon, 15 Jan 2024 17:47:58 -0500") References: <494a6ad05644e3b4c215d2bdaf388811@freakingpenguin.com> Date: Wed, 17 Jan 2024 20:43:49 +1100 Message-ID: <874jfc8fca.fsf@zancanaro.id.au> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=45.77.50.64; envelope-from=carlo@zancanaro.id.au; helo=voltorb.zancanaro.id.au X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: -9.75 X-Spam-Score: -9.75 X-Migadu-Queue-Id: B478E2093F X-Migadu-Scanner: mx12.migadu.com X-TUID: eNdIZ5FTfcuS On Mon, Jan 15 2024, Richard Sent wrote: > At present this can be worked around by commenting out entries on the > list, but this requires > a) Already knowing what machine is offline > b) Remembering to uncomment it later when the machine goes back online > c) Generally feels "ugly" in a way that most Guix commands don't. > d) Makes version control a pain This is generally what I've done, but I see this as a manual form of something that could easily be added the machines.scm file itself. For instance, you could define a helper function and use it to filter the list of machines, like so: (define (reachable-host? machine) (let ((configuration (machine-configuration machine))) (cond ((machine-ssh-configuration? configuration) (zero? (system* "ssh" (machine-ssh-configuration-host-name configuration) "--" "true"))) (else #f)))) (filter reachable-host? (list (machine ...) (machine ...))) Using this sort of approach can implement whatever strategy you want, as long as you can determine the machines which you want to deploy to up-front (i.e. this can't implement a strategy that handles failure partway through deployment). Carlo