[pve-devel] [PATCH-SERIES pve-http-server/pve-manager] fix#4689: rewrite_uri: autofind nodename for qemu/lxc

Dominik Csapak d.csapak at proxmox.com
Wed May 31 15:19:12 CEST 2023


On 5/31/23 13:19, Alexandre Derumier wrote:
> Hi,
> 
> Currently, to manage qemu && lxc vms, we always need to specify nodename in uri.
> 
> This is a problem with automation tools like terraform, where is node is registered
> in the state of terraform.
> (That mean, than if we move the vm on another node, terraform don't known it, and try to create the vm
> again or can't delete the vm,...)
> https://github.com/Telmate/terraform-provider-proxmox/issues/168
> 
> This can also be a potential problem with race, if we need to query /cluster/ressources to find the node, then another
> query on the vm.
> 
> I have some discussion with fabian about it:
> https://bugzilla.proxmox.com/show_bug.cgi?id=4689
> 
> 
> This patch series, simply find the nodename if not specified and rewrite url.
> 
> /nodes/(qemu|lxc)/<vmid> ---> /nodes/<nodename>/<qemu|lxc>/<vmid>
> 
> 
> 
> Alexandre Derumier (1):
>    anyevent: add rewrite_uri
> 
>   src/PVE/APIServer/AnyEvent.pm | 7 +++++++
>   1 file changed, 7 insertions(+)
> 
> Alexandre Derumier (1):
>    httpserver: add rewrite uri for /nodes/(qemu/lxc)/<vmid>
> 
>   PVE/HTTPServer.pm | 15 +++++++++++++++
>   1 file changed, 15 insertions(+)
> 

hi, while this can work, it introduces a very specific rewriting into the
http server, which might not be obvious and AFAICT won't show up in the
auto-generated api docs?

wouldn't it be better to have some api calls defined for real
(the ones used most often for example) that make use of the
proxyto_callback method instead?

that way they would at least show up in the api documentation,
even though it's probably a bit of code duplication
(altough we could maybe just insert the api at a different place
and do some perl magic refactoring to have it once
with node parameter and once without?)

or does that seem like a bad idea?





More information about the pve-devel mailing list