From: "Daniel Kral" <d.kral@proxmox.com>
To: "Fiona Ebner" <f.ebner@proxmox.com>,
"Proxmox VE development discussion" <pve-devel@lists.proxmox.com>
Subject: Re: [pve-devel] [PATCH qemu-server 1/1] api: migration preconditions: add node affinity as blocking cause
Date: Mon, 19 Jan 2026 17:55:16 +0100 [thread overview]
Message-ID: <DFSQ22FOSHRJ.7AL2EY3GF18K@proxmox.com> (raw)
In-Reply-To: <667237ea-ab99-4024-be77-8cbe6d65bc94@proxmox.com>
On Mon Jan 19, 2026 at 4:00 PM CET, Fiona Ebner wrote:
> Am 15.12.25 um 4:54 PM schrieb Daniel Kral:
>> Signed-off-by: Daniel Kral <d.kral@proxmox.com>
>> ---
>> Needs a version bump for pve-ha-manager.
>>
>
> Such a bump is only required in the sense that the enum variant cannot
> actually happen before new ha-manager is installed. The patch here could
> be applied without such a bump, upgraded and nothing would break.
>
> But technically, it's a breaking change in the other direction. New HA
> manager might cause old qemu-server to return something that was not
> declared in the return schema. I guess it won't be a huge issue in
> practice though. API clients already need to be prepared for new
> variants being returned and the issue would only manifest if the API
> client checks the correctness of the result against the installed, old
> qemu-server API schema.
Well this threw me in an unexpected rabbit hole ;)
I only added the bump here because I noticed that we do check the
correctness of the return value of the API handler at the CLI (e.g. if
`ha-manager migrate vm:100 node1` returns 'node-affinity' as a blocking
cause), then it will fail
```
# ha-manager migrate vm:100 node1
400 Result verification failed
blocking-resources[0].cause: value 'node-affinity' does not have a value in the enumeration 'resource-affinity'
ha-manager crm-command migrate <sid> <node>
```
and indeed we verify the result at every CLI invocation [0] (the third
parameter toggles result verification in [1]).
One could enable result verification on a case-by-case basis when
calling the API method directly via the package (e.g.
PVE::API2::Example->method({ param: "something"}, 1)) [2], but otherwise
we do not validate the response with pvesh nor the HTTP server [3] [4]
[5], so this is indeed fine without as bump!
Sorry for going off on a tangent here, I was curious where that
happened.
[0] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l1019
[1] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l486
[2] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l340
[3] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l232
[4] https://git.proxmox.com/?p=pve-common.git;a=blob;f=src/PVE/RESTHandler.pm;h=cc82fe8df56a429d64094209d264621de3d4e89e;hb=refs/heads/master#l413
[5] https://git.proxmox.com/?p=pve-manager.git;a=blob;f=PVE/HTTPServer.pm;h=bb8052e3b428f9b8d11d63f7c7e9d45f40344dca;hb=HEAD#l192
>
>> src/PVE/API2/Qemu.pm | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/src/PVE/API2/Qemu.pm b/src/PVE/API2/Qemu.pm
>> index 190878de..5c4f6eb3 100644
>> --- a/src/PVE/API2/Qemu.pm
>> +++ b/src/PVE/API2/Qemu.pm
>> @@ -5196,7 +5196,7 @@ __PACKAGE__->register_method({
>> type => 'string',
>> description => "The reason why the HA"
>> . " resource is blocking the migration.",
>> - enum => ['resource-affinity'],
>> + enum => ['node-affinity', 'resource-affinity'],
>> },
>> },
>> },
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next prev parent reply other threads:[~2026-01-19 16:55 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-15 15:52 [pve-devel] [PATCH-SERIES container/ha-manager/manager/qemu-server 00/12] HA node affinity blockers (#1497) Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 1/9] ha: put source files on individual new lines Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 2/9] d/pve-ha-manager.install: remove duplicate Config.pm Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 3/9] config: group and sort use statements Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 4/9] manager: " Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 5/9] manager: report all reasons when resources are blocked from migration Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 6/9] config, manager: factor out resource motion info logic Daniel Kral
2026-01-19 15:00 ` Fiona Ebner
2026-01-19 15:24 ` Daniel Kral
2026-01-20 9:25 ` Daniel Kral
2026-01-20 9:35 ` Fiona Ebner
2026-01-20 10:37 ` Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 7/9] tests: add test cases for migrating resources with node affinity rules Daniel Kral
2026-01-19 15:00 ` Fiona Ebner
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 8/9] handle strict node affinity rules in manual migrations Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH ha-manager 9/9] handle node affinity rules with failback " Daniel Kral
2026-01-19 15:00 ` Fiona Ebner
2026-01-19 15:41 ` Daniel Kral
2026-01-20 9:52 ` Fiona Ebner
2025-12-15 15:52 ` [pve-devel] [PATCH qemu-server 1/1] api: migration preconditions: add node affinity as blocking cause Daniel Kral
2026-01-19 15:00 ` Fiona Ebner
2026-01-19 16:55 ` Daniel Kral [this message]
2026-01-20 9:07 ` Fiona Ebner
2025-12-15 15:52 ` [pve-devel] [PATCH container " Daniel Kral
2025-12-15 15:52 ` [pve-devel] [PATCH manager 1/1] ui: migrate: display precondition messages for ha node affinity Daniel Kral
2026-01-19 15:00 ` [pve-devel] [PATCH-SERIES container/ha-manager/manager/qemu-server 00/12] HA node affinity blockers (#1497) Fiona Ebner
2026-01-20 15:33 ` [pve-devel] superseded: " Daniel Kral
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=DFSQ22FOSHRJ.7AL2EY3GF18K@proxmox.com \
--to=d.kral@proxmox.com \
--cc=f.ebner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox