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
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list