From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id B6B441FF15E for ; Mon, 1 Sep 2025 14:26:15 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6B0572E7C6; Mon, 1 Sep 2025 14:26:28 +0200 (CEST) Date: Mon, 1 Sep 2025 14:26:24 +0200 From: Wolfgang Bumiller To: Dominik Csapak Message-ID: References: <20250829100702.1123171-1-d.csapak@proxmox.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20250829100702.1123171-1-d.csapak@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1756729572187 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.075 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pdm-devel] applied-series: [PATCH proxmox-api-types 1/2] fix PVE8 node status API call X-BeenThere: pdm-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Datacenter Manager development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Datacenter Manager development discussion Cc: pdm-devel@lists.proxmox.com Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pdm-devel-bounces@lists.proxmox.com Sender: "pdm-devel" Applied this for now. Will need to think about how to best do this in general. One way or another it would probably be good to have the API as a json input. Ideally we could also drop the *use* of `PVE::API2` in the generator then, but then we also need to store the named schemas from registered into `PVE::JSONSchema` from PVE (which does make sense, though, given that this is part of the API...) On Fri, Aug 29, 2025 at 12:06:51PM +0200, Dominik Csapak wrote: > PVE9 added a new non-optional field that does not exist in 8, so for now > overwrite that specific struct with a custom one where 'available' is > optional. This makes the deserialization work again for PVE8 too > > In the future we need to think about how to handle different APIs > between version in a better way. > > Signed-off-by: Dominik Csapak > --- > pve-api-types/generate.pl | 29 +++++++++++++++++++++++++++++ > 1 file changed, 29 insertions(+) > > diff --git a/pve-api-types/generate.pl b/pve-api-types/generate.pl > index b761a88..966c4d0 100644 > --- a/pve-api-types/generate.pl > +++ b/pve-api-types/generate.pl > @@ -264,6 +264,35 @@ Schema2Rust::derive('NetworkInterface' => 'Clone', 'PartialEq'); > api(GET => '/nodes/{node}/storage', 'list_storages', 'return-name' => 'StorageInfo'); > Schema2Rust::derive('StorageInfo' => 'Clone', 'PartialEq'); > > +# FIXME: PVE9 introduced a new non optional property, but that does not > +# exist in PVE8, so make it optional here for older PVEs to work > +Schema2Rust::generate_struct( > + 'NodeStatusMemory', > + { > + type => 'object', > + properties => { > + 'available' => { > + type => 'integer', > + description => 'The available memory in bytes.', > + optional => 1, > + }, > + 'free' => { > + type => 'integer', > + description => 'The free memory in bytes.', > + }, > + 'total' => { > + type => 'integer', > + description => 'The total memory in bytes.', > + }, > + 'used' => { > + type => 'integer', > + description => 'The used memory in bytes.', > + }, > + }, > + }, > + {}, > + {}, > +); > api(GET => '/nodes/{node}/status', 'node_status', 'return-name' => 'NodeStatus'); > > Schema2Rust::register_api_override('ClusterMetrics', '/properties/data/items', { type => "ClusterMetricsData"}); > -- > 2.47.2 _______________________________________________ pdm-devel mailing list pdm-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel