* [pdm-devel] [PATCH pve-api-types 1/2] generator: fix methods with url params but no query string
@ 2025-02-26 14:05 Stefan Hanreich
2025-02-26 14:05 ` [pdm-devel] [PATCH pve-api-types 2/2] regenerate Stefan Hanreich
0 siblings, 1 reply; 2+ messages in thread
From: Stefan Hanreich @ 2025-02-26 14:05 UTC (permalink / raw)
To: pdm-devel
Commit 076b7f75 introduced a regression where endpoints that have URL
parameters ('/url/with/{param}') would not get generated with format!
calls. This causes URL endpoints such as get_task_status to fail,
since those parameters do not get substituted.
Fixes: 076b7f75 ("generator: avoid useless format!() calls")
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
---
pve-api-types/generator-lib/Schema2Rust.pm | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/pve-api-types/generator-lib/Schema2Rust.pm b/pve-api-types/generator-lib/Schema2Rust.pm
index 1ba21ed..b4de3b6 100644
--- a/pve-api-types/generator-lib/Schema2Rust.pm
+++ b/pve-api-types/generator-lib/Schema2Rust.pm
@@ -487,7 +487,7 @@ my sub print_method_without_body : prototype($$$$$) {
}
}
print {$out} " let url = &format!(\"/api2/extjs$def->{url}\{query}\");\n";
- } elsif (defined($input = $def->{input})) {
+ } elsif (defined($input = $def->{input}) && $input->@*) {
for my $arg ($input->@*) {
print {$out} " $arg->{rust_name}: $arg->{type},\n";
}
@@ -520,7 +520,12 @@ my sub print_method_without_body : prototype($$$$$) {
print_default_impl($out, $name);
return;
}
- print {$out} " let url = \"/api2/extjs$def->{url}\";\n";
+
+ if (defined($def->{url_params}) && $def->{url_params}->@*) {
+ print {$out} " let url = &format!(\"/api2/extjs$def->{url}\");\n";
+ } else {
+ print {$out} " let url = \"/api2/extjs$def->{url}\";\n";
+ }
}
my $call = return_expr($def, "self.0.$method(url).await?");
--
2.39.5
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
* [pdm-devel] [PATCH pve-api-types 2/2] regenerate
2025-02-26 14:05 [pdm-devel] [PATCH pve-api-types 1/2] generator: fix methods with url params but no query string Stefan Hanreich
@ 2025-02-26 14:05 ` Stefan Hanreich
0 siblings, 0 replies; 2+ messages in thread
From: Stefan Hanreich @ 2025-02-26 14:05 UTC (permalink / raw)
To: pdm-devel
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
---
pve-api-types/src/generated/code.rs | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/pve-api-types/src/generated/code.rs b/pve-api-types/src/generated/code.rs
index 597fea4..c9d140a 100644
--- a/pve-api-types/src/generated/code.rs
+++ b/pve-api-types/src/generated/code.rs
@@ -712,7 +712,7 @@ where
/// Read subscription info.
async fn get_subscription(&self, node: &str) -> Result<NodeSubscriptionInfo, Error> {
- let url = "/api2/extjs/nodes/{node}/subscription";
+ let url = &format!("/api2/extjs/nodes/{node}/subscription");
Ok(self.0.get(url).await?.expect_json()?.data)
}
@@ -768,7 +768,7 @@ where
/// Read task status.
async fn get_task_status(&self, node: &str, upid: &str) -> Result<TaskStatus, Error> {
- let url = "/api2/extjs/nodes/{node}/tasks/{upid}/status";
+ let url = &format!("/api2/extjs/nodes/{node}/tasks/{upid}/status");
Ok(self.0.get(url).await?.expect_json()?.data)
}
@@ -780,7 +780,7 @@ where
/// LXC container index (per node).
async fn list_lxc(&self, node: &str) -> Result<Vec<LxcEntry>, Error> {
- let url = "/api2/extjs/nodes/{node}/lxc";
+ let url = &format!("/api2/extjs/nodes/{node}/lxc");
Ok(self.0.get(url).await?.expect_json()?.data)
}
@@ -847,7 +847,7 @@ where
/// Get virtual machine status.
async fn lxc_get_status(&self, node: &str, vmid: u32) -> Result<LxcStatus, Error> {
- let url = "/api2/extjs/nodes/{node}/lxc/{vmid}/status/current";
+ let url = &format!("/api2/extjs/nodes/{node}/lxc/{vmid}/status/current");
Ok(self.0.get(url).await?.expect_json()?.data)
}
@@ -875,7 +875,7 @@ where
/// Read node status
async fn node_status(&self, node: &str) -> Result<NodeStatus, Error> {
- let url = "/api2/extjs/nodes/{node}/status";
+ let url = &format!("/api2/extjs/nodes/{node}/status");
Ok(self.0.get(url).await?.expect_json()?.data)
}
@@ -898,7 +898,7 @@ where
/// Get virtual machine status.
async fn qemu_get_status(&self, node: &str, vmid: u32) -> Result<QemuStatus, Error> {
- let url = "/api2/extjs/nodes/{node}/qemu/{vmid}/status/current";
+ let url = &format!("/api2/extjs/nodes/{node}/qemu/{vmid}/status/current");
Ok(self.0.get(url).await?.expect_json()?.data)
}
@@ -1013,7 +1013,7 @@ where
/// Stop a task.
async fn stop_task(&self, node: &str, upid: &str) -> Result<(), Error> {
- let url = "/api2/extjs/nodes/{node}/tasks/{upid}";
+ let url = &format!("/api2/extjs/nodes/{node}/tasks/{upid}");
self.0.delete(url).await?.nodata()
}
--
2.39.5
_______________________________________________
pdm-devel mailing list
pdm-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pdm-devel
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-02-26 14:05 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-02-26 14:05 [pdm-devel] [PATCH pve-api-types 1/2] generator: fix methods with url params but no query string Stefan Hanreich
2025-02-26 14:05 ` [pdm-devel] [PATCH pve-api-types 2/2] regenerate Stefan Hanreich
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal