public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
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


  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
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal