From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <pve-devel-bounces@lists.proxmox.com>
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	by lore.proxmox.com (Postfix) with ESMTPS id 134701FF166
	for <inbox@lore.proxmox.com>; Fri,  8 Nov 2024 02:47:26 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 472C939C7F;
	Fri,  8 Nov 2024 02:47:23 +0100 (CET)
To: pve-devel@lists.proxmox.com
Date: Fri,  8 Nov 2024 14:46:19 +1300
In-Reply-To: <20241108014620.73352-1-severen.redwood@sitehost.co.nz>
References: <mailman.62.1731030290.372.pve-devel@lists.proxmox.com>
 <20241108014620.73352-1-severen.redwood@sitehost.co.nz>
MIME-Version: 1.0
Message-ID: <mailman.66.1731030442.372.pve-devel@lists.proxmox.com>
List-Id: Proxmox VE development discussion <pve-devel.lists.proxmox.com>
List-Post: <mailto:pve-devel@lists.proxmox.com>
From: Severen Redwood via pve-devel <pve-devel@lists.proxmox.com>
Precedence: list
Cc: Severen Redwood <severen.redwood@sitehost.co.nz>, t.lamprecht@proxmox.com
X-Mailman-Version: 2.1.29
X-BeenThere: pve-devel@lists.proxmox.com
List-Subscribe: <https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=subscribe>
List-Unsubscribe: <https://lists.proxmox.com/cgi-bin/mailman/options/pve-devel>, 
 <mailto:pve-devel-request@lists.proxmox.com?subject=unsubscribe>
List-Archive: <http://lists.proxmox.com/pipermail/pve-devel/>
Reply-To: Proxmox VE development discussion <pve-devel@lists.proxmox.com>
List-Help: <mailto:pve-devel-request@lists.proxmox.com?subject=help>
Subject: [pve-devel] [PATCH qemu-server v4] api: record VM ID as used after
 a virtual machine is destroyed
Content-Type: multipart/mixed; boundary="===============5402053668595287330=="
Errors-To: pve-devel-bounces@lists.proxmox.com
Sender: "pve-devel" <pve-devel-bounces@lists.proxmox.com>

--===============5402053668595287330==
Content-Type: message/rfc822
Content-Disposition: inline

Return-Path: <severen.redwood@sitehost.co.nz>
X-Original-To: pve-devel@lists.proxmox.com
Delivered-To: pve-devel@lists.proxmox.com
Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature RSA-PSS (2048 bits))
	(No client certificate requested)
	by lists.proxmox.com (Postfix) with ESMTPS id 21554C107C
	for <pve-devel@lists.proxmox.com>; Fri,  8 Nov 2024 02:47:22 +0100 (CET)
Received: from firstgate.proxmox.com (localhost [127.0.0.1])
	by firstgate.proxmox.com (Proxmox) with ESMTP id 04CBB39B2F
	for <pve-devel@lists.proxmox.com>; Fri,  8 Nov 2024 02:46:52 +0100 (CET)
Received: from mx3.ext.sitehost.co.nz (mx3.ext.sitehost.co.nz [120.138.20.239])
	(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by firstgate.proxmox.com (Proxmox) with ESMTPS
	for <pve-devel@lists.proxmox.com>; Fri,  8 Nov 2024 02:46:51 +0100 (CET)
Received: from localhost (extmx1-new.vps.sitehost.co.nz [127.0.0.1])
	by mx3.ext.sitehost.co.nz (Postfix) with ESMTP id 8E35B180A91;
	Fri,  8 Nov 2024 14:46:37 +1300 (NZDT)
X-Virus-Scanned: SiteHost Virus/Spam Prevention on mx3.ext.sitehost.co.nz
X-Spam-Flag: NO
X-Spam-Score: -3.449
X-Spam-Status: No, score=-3.449 tagged_above=-100 required=5
	tests=[ALL_TRUSTED=-1, BAYES_00=-1.9, RP_MATCHES_RCVD=-0.55,
	URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mx3.ext.sitehost.co.nz ([127.0.0.1])
	by localhost (mx3.ext.sitehost.co.nz [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id e46sW1Y11yzo; Fri,  8 Nov 2024 14:46:33 +1300 (NZDT)
Received: from yggdrasill.. (oep.nct.sitehost.co.nz [120.138.23.30])
	by mx3.ext.sitehost.co.nz (Postfix) with ESMTPSA id 88AD4180BB2;
	Fri,  8 Nov 2024 14:46:33 +1300 (NZDT)
From: Severen Redwood <severen.redwood@sitehost.co.nz>
To: pve-devel@lists.proxmox.com
Cc: a.lauterer@proxmox.com,
	t.lamprecht@proxmox.com,
	Severen Redwood <severen.redwood@sitehost.co.nz>,
	Daniel Krambrock <krambrock@hrz.uni-marburg.de>
Subject: [PATCH qemu-server v4] api: record VM ID as used after a virtual machine is destroyed
Date: Fri,  8 Nov 2024 14:46:19 +1300
Message-ID: <20241108014620.73352-5-severen.redwood@sitehost.co.nz>
X-Mailer: git-send-email 2.47.0
In-Reply-To: <20241108014620.73352-1-severen.redwood@sitehost.co.nz>
References: <mailman.62.1731030290.372.pve-devel@lists.proxmox.com>
 <20241108014620.73352-1-severen.redwood@sitehost.co.nz>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-SPAM-LEVEL: Spam detection results:  0
	AWL                     0.058 Adjusted score from AWL reputation of From: address
	BAYES_00                 -1.9 Bayes spam probability is 0 to 1%
	DMARC_PASS               -0.1 DMARC pass policy
	KAM_DMARC_STATUS         0.01 Test Rule for DKIM or SPF Failure with Strict Alignment
	SPF_HELO_PASS          -0.001 SPF: HELO matches SPF record
	SPF_PASS               -0.001 SPF: sender matches SPF record

After a virtual machine is destroyed, record that its ID has been used
via the `PVE::UsedVmidList` module so that the `/cluster/nextids`
endpoint can later optionally avoid suggesting previously used IDs.

Co-authored-by: Daniel Krambrock <krambrock@hrz.uni-marburg.de>
Signed-off-by: Severen Redwood <severen.redwood@sitehost.co.nz>
Tested-by: Aaron Lauterer <a.lauterer@proxmox.com>
Reviewed-by: Aaron Lauterer <a.lauterer@proxmox.com>
---
Changed since v3 is removing an unnecessary `qw(add_vmid)` after
`use PVE::UsedVmidList`.

 PVE/API2/Qemu.pm | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 848001b6..22bc58d6 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -52,6 +52,7 @@ use PVE::Replication;
 use PVE::ReplicationState;
 use PVE::StorageTunnel;
 use PVE::RESTEnvironment qw(log_warn);
+use PVE::UsedVmidList;
 
 BEGIN {
     if (!$ENV{PVE_GENERATING_DOCS}) {
@@ -2335,7 +2336,9 @@ __PACKAGE__->register_method({
 		    }
 		}
 
-		# only now remove the zombie config, else we can have reuse race
+		# only now mark the VM ID as previously used and remove the
+		# zombie config, else we can have reuse race
+		PVE::UsedVmidList::add_vmid($vmid);
 		PVE::QemuConfig->destroy_config($vmid);
 	    });
 	};
-- 
2.47.0



--===============5402053668595287330==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

--===============5402053668595287330==--