mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
virStateDriver - Separate AutoStart from Initialize
Adjust these drivers to handle their Autostart functionality after each of the drivers has gone through their Initialization functions
This commit is contained in:
parent
e4a969092b
commit
cefb97fb81
@ -1348,9 +1348,6 @@ libxlStateInitialize(bool privileged,
|
|||||||
NULL, NULL) < 0)
|
NULL, NULL) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
virDomainObjListForEach(libxl_driver->domains, libxlAutostartDomain,
|
|
||||||
libxl_driver);
|
|
||||||
|
|
||||||
virDomainObjListForEach(libxl_driver->domains, libxlDomainManagedSaveLoad,
|
virDomainObjListForEach(libxl_driver->domains, libxlDomainManagedSaveLoad,
|
||||||
libxl_driver);
|
libxl_driver);
|
||||||
|
|
||||||
@ -1368,6 +1365,18 @@ fail:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
libxlStateAutoStart(void)
|
||||||
|
{
|
||||||
|
if (!libxl_driver)
|
||||||
|
return;
|
||||||
|
|
||||||
|
libxlDriverLock(libxl_driver);
|
||||||
|
virDomainObjListForEach(libxl_driver->domains, libxlAutostartDomain,
|
||||||
|
libxl_driver);
|
||||||
|
libxlDriverUnlock(libxl_driver);
|
||||||
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
libxlStateReload(void)
|
libxlStateReload(void)
|
||||||
{
|
{
|
||||||
@ -4887,6 +4896,7 @@ static virDriver libxlDriver = {
|
|||||||
static virStateDriver libxlStateDriver = {
|
static virStateDriver libxlStateDriver = {
|
||||||
.name = "LIBXL",
|
.name = "LIBXL",
|
||||||
.stateInitialize = libxlStateInitialize,
|
.stateInitialize = libxlStateInitialize,
|
||||||
|
.stateAutoStart = libxlStateAutoStart,
|
||||||
.stateCleanup = libxlStateCleanup,
|
.stateCleanup = libxlStateCleanup,
|
||||||
.stateReload = libxlStateReload,
|
.stateReload = libxlStateReload,
|
||||||
};
|
};
|
||||||
|
@ -1455,8 +1455,6 @@ static int lxcStateInitialize(bool privileged,
|
|||||||
NULL, NULL) < 0)
|
NULL, NULL) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
virLXCProcessAutostartAll(lxc_driver);
|
|
||||||
|
|
||||||
virNWFilterRegisterCallbackDriver(&lxcCallbackDriver);
|
virNWFilterRegisterCallbackDriver(&lxcCallbackDriver);
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -1466,6 +1464,19 @@ cleanup:
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* lxcStateAutoStart:
|
||||||
|
*
|
||||||
|
* Function to autostart the LXC daemons
|
||||||
|
*/
|
||||||
|
static void lxcStateAutoStart(void)
|
||||||
|
{
|
||||||
|
if (!lxc_driver)
|
||||||
|
return;
|
||||||
|
|
||||||
|
virLXCProcessAutostartAll(lxc_driver);
|
||||||
|
}
|
||||||
|
|
||||||
static void lxcNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
|
static void lxcNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
|
||||||
{
|
{
|
||||||
virLXCDriverPtr driver = opaque;
|
virLXCDriverPtr driver = opaque;
|
||||||
@ -4665,6 +4676,7 @@ static virDriver lxcDriver = {
|
|||||||
static virStateDriver lxcStateDriver = {
|
static virStateDriver lxcStateDriver = {
|
||||||
.name = LXC_DRIVER_NAME,
|
.name = LXC_DRIVER_NAME,
|
||||||
.stateInitialize = lxcStateInitialize,
|
.stateInitialize = lxcStateInitialize,
|
||||||
|
.stateAutoStart = lxcStateAutoStart,
|
||||||
.stateCleanup = lxcStateCleanup,
|
.stateCleanup = lxcStateCleanup,
|
||||||
.stateReload = lxcStateReload,
|
.stateReload = lxcStateReload,
|
||||||
};
|
};
|
||||||
|
@ -430,7 +430,6 @@ networkStateInitialize(bool privileged,
|
|||||||
networkFindActiveConfigs(driverState);
|
networkFindActiveConfigs(driverState);
|
||||||
networkReloadFirewallRules(driverState);
|
networkReloadFirewallRules(driverState);
|
||||||
networkRefreshDaemons(driverState);
|
networkRefreshDaemons(driverState);
|
||||||
networkAutostartConfigs(driverState);
|
|
||||||
|
|
||||||
networkDriverUnlock(driverState);
|
networkDriverUnlock(driverState);
|
||||||
|
|
||||||
@ -473,6 +472,22 @@ error:
|
|||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* networkStateAutoStart:
|
||||||
|
*
|
||||||
|
* Function to AutoStart the bridge configs
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
networkStateAutoStart(void)
|
||||||
|
{
|
||||||
|
if (!driverState)
|
||||||
|
return;
|
||||||
|
|
||||||
|
networkDriverLock(driverState);
|
||||||
|
networkAutostartConfigs(driverState);
|
||||||
|
networkDriverUnlock(driverState);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* networkStateReload:
|
* networkStateReload:
|
||||||
*
|
*
|
||||||
@ -3693,6 +3708,7 @@ static virNetworkDriver networkDriver = {
|
|||||||
static virStateDriver networkStateDriver = {
|
static virStateDriver networkStateDriver = {
|
||||||
.name = "Network",
|
.name = "Network",
|
||||||
.stateInitialize = networkStateInitialize,
|
.stateInitialize = networkStateInitialize,
|
||||||
|
.stateAutoStart = networkStateAutoStart,
|
||||||
.stateCleanup = networkStateCleanup,
|
.stateCleanup = networkStateCleanup,
|
||||||
.stateReload = networkStateReload,
|
.stateReload = networkStateReload,
|
||||||
};
|
};
|
||||||
|
@ -837,8 +837,6 @@ qemuStateInitialize(bool privileged,
|
|||||||
if (!qemu_driver->workerPool)
|
if (!qemu_driver->workerPool)
|
||||||
goto error;
|
goto error;
|
||||||
|
|
||||||
qemuAutostartDomains(qemu_driver);
|
|
||||||
|
|
||||||
if (conn)
|
if (conn)
|
||||||
virConnectClose(conn);
|
virConnectClose(conn);
|
||||||
|
|
||||||
@ -855,6 +853,20 @@ error:
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qemuStateAutoStart:
|
||||||
|
*
|
||||||
|
* Function to auto start the QEmu daemons
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
qemuStateAutoStart(void)
|
||||||
|
{
|
||||||
|
if (!qemu_driver)
|
||||||
|
return;
|
||||||
|
|
||||||
|
qemuAutostartDomains(qemu_driver);
|
||||||
|
}
|
||||||
|
|
||||||
static void qemuNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
|
static void qemuNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
|
||||||
{
|
{
|
||||||
virQEMUDriverPtr driver = opaque;
|
virQEMUDriverPtr driver = opaque;
|
||||||
@ -16276,6 +16288,7 @@ static virDriver qemuDriver = {
|
|||||||
static virStateDriver qemuStateDriver = {
|
static virStateDriver qemuStateDriver = {
|
||||||
.name = "QEMU",
|
.name = "QEMU",
|
||||||
.stateInitialize = qemuStateInitialize,
|
.stateInitialize = qemuStateInitialize,
|
||||||
|
.stateAutoStart = qemuStateAutoStart,
|
||||||
.stateCleanup = qemuStateCleanup,
|
.stateCleanup = qemuStateCleanup,
|
||||||
.stateReload = qemuStateReload,
|
.stateReload = qemuStateReload,
|
||||||
.stateStop = qemuStateStop,
|
.stateStop = qemuStateStop,
|
||||||
|
@ -182,7 +182,6 @@ storageStateInitialize(bool privileged,
|
|||||||
driverState->configDir,
|
driverState->configDir,
|
||||||
driverState->autostartDir) < 0)
|
driverState->autostartDir) < 0)
|
||||||
goto error;
|
goto error;
|
||||||
storageDriverAutostart(driverState);
|
|
||||||
|
|
||||||
storageDriverUnlock(driverState);
|
storageDriverUnlock(driverState);
|
||||||
return 0;
|
return 0;
|
||||||
@ -194,6 +193,22 @@ error:
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* storageStateAutoStart:
|
||||||
|
*
|
||||||
|
* Function to auto start the storage driver
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
storageStateAutoStart(void)
|
||||||
|
{
|
||||||
|
if (!driverState)
|
||||||
|
return;
|
||||||
|
|
||||||
|
storageDriverLock(driverState);
|
||||||
|
storageDriverAutostart(driverState);
|
||||||
|
storageDriverUnlock(driverState);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* storageStateReload:
|
* storageStateReload:
|
||||||
*
|
*
|
||||||
@ -2599,6 +2614,7 @@ static virStorageDriver storageDriver = {
|
|||||||
static virStateDriver stateDriver = {
|
static virStateDriver stateDriver = {
|
||||||
.name = "Storage",
|
.name = "Storage",
|
||||||
.stateInitialize = storageStateInitialize,
|
.stateInitialize = storageStateInitialize,
|
||||||
|
.stateAutoStart = storageStateAutoStart,
|
||||||
.stateCleanup = storageStateCleanup,
|
.stateCleanup = storageStateCleanup,
|
||||||
.stateReload = storageStateReload,
|
.stateReload = storageStateReload,
|
||||||
};
|
};
|
||||||
|
@ -570,8 +570,6 @@ umlStateInitialize(bool privileged,
|
|||||||
|
|
||||||
umlDriverUnlock(uml_driver);
|
umlDriverUnlock(uml_driver);
|
||||||
|
|
||||||
umlAutostartConfigs(uml_driver);
|
|
||||||
|
|
||||||
VIR_FREE(userdir);
|
VIR_FREE(userdir);
|
||||||
|
|
||||||
virNWFilterRegisterCallbackDriver(¨CallbackDriver);
|
virNWFilterRegisterCallbackDriver(¨CallbackDriver);
|
||||||
@ -588,6 +586,20 @@ error:
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* umlStateAutoStart:
|
||||||
|
*
|
||||||
|
* Function to autostart the Uml daemons
|
||||||
|
*/
|
||||||
|
static void
|
||||||
|
umlStateAutoStart(void)
|
||||||
|
{
|
||||||
|
if (!uml_driver)
|
||||||
|
return;
|
||||||
|
|
||||||
|
umlAutostartConfigs(uml_driver);
|
||||||
|
}
|
||||||
|
|
||||||
static void umlNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
|
static void umlNotifyLoadDomain(virDomainObjPtr vm, int newVM, void *opaque)
|
||||||
{
|
{
|
||||||
struct uml_driver *driver = opaque;
|
struct uml_driver *driver = opaque;
|
||||||
@ -2885,6 +2897,7 @@ static virDriver umlDriver = {
|
|||||||
static virStateDriver umlStateDriver = {
|
static virStateDriver umlStateDriver = {
|
||||||
.name = "UML",
|
.name = "UML",
|
||||||
.stateInitialize = umlStateInitialize,
|
.stateInitialize = umlStateInitialize,
|
||||||
|
.stateAutoStart = umlStateAutoStart,
|
||||||
.stateCleanup = umlStateCleanup,
|
.stateCleanup = umlStateCleanup,
|
||||||
.stateReload = umlStateReload,
|
.stateReload = umlStateReload,
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user