Updating domains definitions via API
Michal Prívozník
mprivozn at redhat.com
Mon May 16 09:10:32 UTC 2022
On 5/14/22 21:23, Darragh Bailey wrote:
>
> On Fri, 13 May 2022 at 00:17, Darragh Bailey <daragh.bailey at gmail.com
> <mailto:daragh.bailey at gmail.com>> wrote:
>
> Hi,
>
> On Thu 12 May 2022, 21:34 Laine Stump, <laine at redhat.com
> <mailto:laine at redhat.com>> wrote:
>
> The virDomainDefineXMLFlags API (and also the older/deprecated
> virDomainDefineXML API) doesn't require that the domain first be
> undefined (with one notable exception - see below[*]). If you
> define a
> domain that already exists with the same name and uuid, then the
> effect
> is to "redefine" (or "update" if you prefer) the existing domain
> of that
> name. If the domain is currently active, then the changes will take
> effect the next time the domain is shut down ("Destroy"ed in
> libvirt API
> parlance) and re-started.
>
>
> Unfortunately trying to call this via ruby-libvirt doesn't appear to
> behave as expected. It appears that if I add an nvram element without a
> loader element to the os block, the following code block will execute
> without issue but also without changing the domain XML:
I think that's kind of expected. If you take a look how libvirt parses
that part of XML:
https://gitlab.com/libvirt/libvirt/-/blob/master/src/conf/domain_conf.c#L18257
if no <loader/> is found then the function exits early without looking
at <nvram/> at all. It kind of makes sense - what good does nvram do
without loader?
Michal
More information about the libvirt-users
mailing list