提交 cefb97fb 编写于 作者: J John Ferlan

virStateDriver - Separate AutoStart from Initialize

Adjust these drivers to handle their Autostart functionality after each
of the drivers has gone through their Initialization functions
上级 e4a96909
...@@ -1348,9 +1348,6 @@ libxlStateInitialize(bool privileged, ...@@ -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: ...@@ -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 = { ...@@ -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, ...@@ -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: ...@@ -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 = { ...@@ -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, ...@@ -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: ...@@ -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 = { ...@@ -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, ...@@ -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: ...@@ -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 = { ...@@ -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, ...@@ -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: ...@@ -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 = { ...@@ -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, ...@@ -570,8 +570,6 @@ umlStateInitialize(bool privileged,
umlDriverUnlock(uml_driver); umlDriverUnlock(uml_driver);
umlAutostartConfigs(uml_driver);
VIR_FREE(userdir); VIR_FREE(userdir);
virNWFilterRegisterCallbackDriver(&umlCallbackDriver); virNWFilterRegisterCallbackDriver(&umlCallbackDriver);
...@@ -588,6 +586,20 @@ error: ...@@ -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 = { ...@@ -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,
}; };
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册