[libvirt] [PATCH libvirt-tck] bhyve: reconnect to domains after libvirtd restart
Ján Tomko
jtomko at redhat.com
Wed Jul 16 11:24:09 UTC 2014
On 06/29/2014 06:06 PM, Roman Bogorodskiy wrote:
> Try to reconnect to the running domains after libvirtd restart. To
> achieve that, do:
>
> * Save domain state
> - Modify virBhyveProcessStart() to save domain state to the state
> dir
> - Modify virBhyveProcessStop() to cleanup the pidfile and the state
>
> * Detect if the state information loaded from the driver's state
> dir matches the actual state. Consider domain active if:
> - PID it points to exist
> - Process title of this PID matches the expected one with the
> domain name
>
> Otherwise, mark the domain as shut off.
>
> Note: earlier development bhyve versions before FreeBSD 10.0-RELEASE
> didn't set proctitle we expect, so the current code will not detect
> it. I don't plan adding support for this unless somebody requests
> this.
> ---
> src/bhyve/bhyve_driver.c | 18 ++++++++++
> src/bhyve/bhyve_process.c | 91 +++++++++++++++++++++++++++++++++++++++++++++++
> src/bhyve/bhyve_process.h | 2 ++
> 3 files changed, 111 insertions(+)
>
> diff --git a/src/bhyve/bhyve_driver.c b/src/bhyve/bhyve_driver.c
> index eb5fc95..4c7596e 100644
> --- a/src/bhyve/bhyve_driver.c
> +++ b/src/bhyve/bhyve_driver.c
> @@ -1151,6 +1151,8 @@ bhyveStateInitialize(bool priveleged ATTRIBUTE_UNUSED,
> virStateInhibitCallback callback ATTRIBUTE_UNUSED,
> void *opaque ATTRIBUTE_UNUSED)
> {
> + virConnectPtr conn = NULL;
> +
> if (!priveleged) {
> VIR_INFO("Not running priveleged, disabling driver");
> return 0;
> @@ -1199,6 +1201,15 @@ bhyveStateInitialize(bool priveleged ATTRIBUTE_UNUSED,
> }
>
> if (virDomainObjListLoadAllConfigs(bhyve_driver->domains,
> + BHYVE_STATE_DIR,
> + NULL, 1,
> + bhyve_driver->caps,
> + bhyve_driver->xmlopt,
> + 1 << VIR_DOMAIN_VIRT_BHYVE,
> + NULL, NULL) < 0)
> + goto cleanup;
> +
> + if (virDomainObjListLoadAllConfigs(bhyve_driver->domains,
> BHYVE_CONFIG_DIR,
> BHYVE_AUTOSTART_DIR, 0,
> bhyve_driver->caps,
> @@ -1207,9 +1218,16 @@ bhyveStateInitialize(bool priveleged ATTRIBUTE_UNUSED,
> NULL, NULL) < 0)
> goto cleanup;
>
> + conn = virConnectOpen("bhyve:///system");
The connection does not seem to be used anywhere.
QEMU driver uses it for:
qemuTranslateDiskSourcePool
qemuProcessFiltersInstantiate
qemuProcessRecoverJob
Neither of which is done in the bhyve driver.
ACK with the conn removed.
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140716/8b84a860/attachment-0001.sig>
More information about the libvir-list
mailing list