The Go code represents it as a boolean for example.
I think our only option is to define a new API
virDomainSetAutostartPolicy()
and make it take an int parameter for which we can define an enum.
The existing API will just have to map new values onto true/false
as appropriate.
That’s the same conclusion I came to. As with the version numbers,
I’ll
continue implementing functions within the existing API before I
attempt to add anything new to it.
I think it helps to consider the use case where someone might pick
to
set "Restart if previously active".
Consider if you have 2 hosts, and the same VM config is present on
both hosts. You only want the VM running on one host at any point
in time. In this case you do *not* want to use "always start" as
if both hosts reboot, you'd get two copies of the VM.
"Restart if previously active" solves this scenario by only starting
it on the host it was originally running on.
With this in mind, making libvirt treat "restart if previously active"
the same as "always start" is a dangerous configuration. The safe option
is to consider "restart if previously active" the same as "none".
So I think values 2 and 3 should map to autostart disabled and
value 4 to autostart enabled.
I hadn’t considered things like high availability
setups. I’ll update my
code to only treat 4 as enabled.
Thanks!
Matt