You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CA-426556: register VM.set_NVRAM_EFI_variables_v2 on the main XAPI dispatcher
The UEFI certificate-expiry feature added a new RPC,
VM.set_NVRAM_EFI_variables_v2, on the varstored-guard wire interface.
In the original design we only considered the indirect call path
(varstored daemon -> varstored-guard -> XAPI), so we reused the existing
set_NVRAM_EFI_variables declaration in the XAPI datamodel and only
registered V2 on varstored-guard.
What we overlooked: both the varstored daemon and the varstored CLI
tools (varstore-set, varstore-rm, ...) emit set_NVRAM_EFI_variables_v2
via the shared xapidb-lib code. Whether the call goes through guard or
straight to XAPI depends on the socket= argument the binary is started
with -- not on whether it is the daemon or a CLI tool. In typical
deployments the daemon is given a varstored-guard per-VM socket and the
CLI tools are run without that argument, so they land on XAPI directly,
where V2 is not declared and the dispatcher returns "Device Error".
Fix: declare set_NVRAM_EFI_variables_v2 in datamodel_vm.ml so it is
also registered on the main XAPI dispatcher. Semantics are identical
to V1; the only schema difference is that [update] is mandatory in V2.
Signed-off-by: Stephen Cheng <stephen.cheng@citrix.com>
0 commit comments