mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-10-29 17:33:09 +00:00
Fix autostart of domains with virtual networks used
This commit is contained in:
parent
73bc9c163c
commit
abb02bd18b
@ -1,3 +1,9 @@
|
|||||||
|
Mon Dec 8 11:17:53 GMT 2008 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
|
* src/qemu_driver.c, src/uml_driver.c: Fix guest autostart
|
||||||
|
to have a virConnect object available to allow query of
|
||||||
|
virtual networks
|
||||||
|
|
||||||
Sun Dec 7 20:44:53 GMT 2008 Daniel P. Berrange <berrange@redhat.com>
|
Sun Dec 7 20:44:53 GMT 2008 Daniel P. Berrange <berrange@redhat.com>
|
||||||
|
|
||||||
* src/test.c: Fix integer long long overflow. Fix NULL defernce
|
* src/test.c: Fix integer long long overflow. Fix NULL defernce
|
||||||
|
@ -146,13 +146,22 @@ static struct qemud_driver *qemu_driver = NULL;
|
|||||||
static void
|
static void
|
||||||
qemudAutostartConfigs(struct qemud_driver *driver) {
|
qemudAutostartConfigs(struct qemud_driver *driver) {
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
/* XXX: Figure out a better way todo this. The domain
|
||||||
|
* startup code needs a connection handle in order
|
||||||
|
* to lookup the bridge associated with a virtual
|
||||||
|
* network
|
||||||
|
*/
|
||||||
|
virConnectPtr conn = virConnectOpen(getuid() ?
|
||||||
|
"qemu:///session" :
|
||||||
|
"qemu:///system");
|
||||||
|
/* Ignoring NULL conn which is mostly harmless here */
|
||||||
|
|
||||||
for (i = 0 ; i < driver->domains.count ; i++) {
|
for (i = 0 ; i < driver->domains.count ; i++) {
|
||||||
virDomainObjPtr vm = driver->domains.objs[i];
|
virDomainObjPtr vm = driver->domains.objs[i];
|
||||||
virDomainObjLock(vm);
|
virDomainObjLock(vm);
|
||||||
if (vm->autostart &&
|
if (vm->autostart &&
|
||||||
!virDomainIsActive(vm)) {
|
!virDomainIsActive(vm)) {
|
||||||
int ret = qemudStartVMDaemon(NULL, driver, vm, NULL);
|
int ret = qemudStartVMDaemon(conn, driver, vm, NULL);
|
||||||
if (ret < 0) {
|
if (ret < 0) {
|
||||||
virErrorPtr err = virGetLastError();
|
virErrorPtr err = virGetLastError();
|
||||||
qemudLog(QEMUD_ERR, _("Failed to autostart VM '%s': %s\n"),
|
qemudLog(QEMUD_ERR, _("Failed to autostart VM '%s': %s\n"),
|
||||||
@ -169,6 +178,8 @@ qemudAutostartConfigs(struct qemud_driver *driver) {
|
|||||||
}
|
}
|
||||||
virDomainObjUnlock(vm);
|
virDomainObjUnlock(vm);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virConnectClose(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -126,16 +126,27 @@ static struct uml_driver *uml_driver = NULL;
|
|||||||
static void
|
static void
|
||||||
umlAutostartConfigs(struct uml_driver *driver) {
|
umlAutostartConfigs(struct uml_driver *driver) {
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
|
/* XXX: Figure out a better way todo this. The domain
|
||||||
|
* startup code needs a connection handle in order
|
||||||
|
* to lookup the bridge associated with a virtual
|
||||||
|
* network
|
||||||
|
*/
|
||||||
|
virConnectPtr conn = virConnectOpen(getuid() ?
|
||||||
|
"uml:///session" :
|
||||||
|
"uml:///system");
|
||||||
|
/* Ignoring NULL conn which is mostly harmless here */
|
||||||
|
|
||||||
for (i = 0 ; i < driver->domains.count ; i++) {
|
for (i = 0 ; i < driver->domains.count ; i++) {
|
||||||
if (driver->domains.objs[i]->autostart &&
|
if (driver->domains.objs[i]->autostart &&
|
||||||
!virDomainIsActive(driver->domains.objs[i]) &&
|
!virDomainIsActive(driver->domains.objs[i]) &&
|
||||||
umlStartVMDaemon(NULL, driver, driver->domains.objs[i]) < 0) {
|
umlStartVMDaemon(conn, driver, driver->domains.objs[i]) < 0) {
|
||||||
virErrorPtr err = virGetLastError();
|
virErrorPtr err = virGetLastError();
|
||||||
umlLog(UML_ERR, _("Failed to autostart VM '%s': %s\n"),
|
umlLog(UML_ERR, _("Failed to autostart VM '%s': %s\n"),
|
||||||
driver->domains.objs[i]->def->name, err->message);
|
driver->domains.objs[i]->def->name, err->message);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virConnectClose(conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user