提交 39babffb 编写于 作者: O Osier Yang

undefine: Implement undefineFlags for all other drivers

上级 67d33735
...@@ -3290,7 +3290,8 @@ esxDomainDefineXML(virConnectPtr conn, const char *xml) ...@@ -3290,7 +3290,8 @@ esxDomainDefineXML(virConnectPtr conn, const char *xml)
static int static int
esxDomainUndefine(virDomainPtr domain) esxDomainUndefineFlags(virDomainPtr domain,
unsigned int flags)
{ {
int result = -1; int result = -1;
esxPrivate *priv = domain->conn->privateData; esxPrivate *priv = domain->conn->privateData;
...@@ -3299,6 +3300,8 @@ esxDomainUndefine(virDomainPtr domain) ...@@ -3299,6 +3300,8 @@ esxDomainUndefine(virDomainPtr domain)
esxVI_String *propertyNameList = NULL; esxVI_String *propertyNameList = NULL;
esxVI_VirtualMachinePowerState powerState; esxVI_VirtualMachinePowerState powerState;
virCheckFlags(0, -1);
if (priv->vCenter != NULL) { if (priv->vCenter != NULL) {
ctx = priv->vCenter; ctx = priv->vCenter;
} else { } else {
...@@ -3339,6 +3342,11 @@ esxDomainUndefine(virDomainPtr domain) ...@@ -3339,6 +3342,11 @@ esxDomainUndefine(virDomainPtr domain)
} }
static int
esxDomainUndefine(virDomainPtr domain)
{
return esxDomainUndefineFlags(domain, 0);
}
static int static int
esxDomainGetAutostart(virDomainPtr domain, int *autostart) esxDomainGetAutostart(virDomainPtr domain, int *autostart)
...@@ -4747,6 +4755,7 @@ static virDriver esxDriver = { ...@@ -4747,6 +4755,7 @@ static virDriver esxDriver = {
.domainCreateWithFlags = esxDomainCreateWithFlags, /* 0.8.2 */ .domainCreateWithFlags = esxDomainCreateWithFlags, /* 0.8.2 */
.domainDefineXML = esxDomainDefineXML, /* 0.7.2 */ .domainDefineXML = esxDomainDefineXML, /* 0.7.2 */
.domainUndefine = esxDomainUndefine, /* 0.7.1 */ .domainUndefine = esxDomainUndefine, /* 0.7.1 */
.domainUndefineFlags = esxDomainUndefineFlags, /* 0.9.4 */
.domainGetAutostart = esxDomainGetAutostart, /* 0.9.0 */ .domainGetAutostart = esxDomainGetAutostart, /* 0.9.0 */
.domainSetAutostart = esxDomainSetAutostart, /* 0.9.0 */ .domainSetAutostart = esxDomainSetAutostart, /* 0.9.0 */
.domainGetSchedulerType = esxDomainGetSchedulerType, /* 0.7.0 */ .domainGetSchedulerType = esxDomainGetSchedulerType, /* 0.7.0 */
......
...@@ -458,13 +458,16 @@ cleanup: ...@@ -458,13 +458,16 @@ cleanup:
return dom; return dom;
} }
static int lxcDomainUndefine(virDomainPtr dom) static int lxcDomainUndefineFlags(virDomainPtr dom,
unsigned int flags)
{ {
lxc_driver_t *driver = dom->conn->privateData; lxc_driver_t *driver = dom->conn->privateData;
virDomainObjPtr vm; virDomainObjPtr vm;
virDomainEventPtr event = NULL; virDomainEventPtr event = NULL;
int ret = -1; int ret = -1;
virCheckFlags(0, -1);
lxcDriverLock(driver); lxcDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainFindByUUID(&driver->domains, dom->uuid);
if (!vm) { if (!vm) {
...@@ -509,6 +512,11 @@ cleanup: ...@@ -509,6 +512,11 @@ cleanup:
return ret; return ret;
} }
static int lxcDomainUndefine(virDomainPtr dom)
{
return lxcDomainUndefineFlags(dom, 0);
}
static int lxcDomainGetInfo(virDomainPtr dom, static int lxcDomainGetInfo(virDomainPtr dom,
virDomainInfoPtr info) virDomainInfoPtr info)
{ {
...@@ -2935,6 +2943,7 @@ static virDriver lxcDriver = { ...@@ -2935,6 +2943,7 @@ static virDriver lxcDriver = {
.domainCreateWithFlags = lxcDomainStartWithFlags, /* 0.8.2 */ .domainCreateWithFlags = lxcDomainStartWithFlags, /* 0.8.2 */
.domainDefineXML = lxcDomainDefine, /* 0.4.2 */ .domainDefineXML = lxcDomainDefine, /* 0.4.2 */
.domainUndefine = lxcDomainUndefine, /* 0.4.2 */ .domainUndefine = lxcDomainUndefine, /* 0.4.2 */
.domainUndefineFlags = lxcDomainUndefineFlags, /* 0.9.4 */
.domainGetAutostart = lxcDomainGetAutostart, /* 0.7.0 */ .domainGetAutostart = lxcDomainGetAutostart, /* 0.7.0 */
.domainSetAutostart = lxcDomainSetAutostart, /* 0.7.0 */ .domainSetAutostart = lxcDomainSetAutostart, /* 0.7.0 */
.domainGetSchedulerType = lxcGetSchedulerType, /* 0.5.0 */ .domainGetSchedulerType = lxcGetSchedulerType, /* 0.5.0 */
......
...@@ -1085,13 +1085,16 @@ openvzDomainCreate(virDomainPtr dom) ...@@ -1085,13 +1085,16 @@ openvzDomainCreate(virDomainPtr dom)
} }
static int static int
openvzDomainUndefine(virDomainPtr dom) openvzDomainUndefineFlags(virDomainPtr dom,
unsigned int flags)
{ {
struct openvz_driver *driver = dom->conn->privateData; struct openvz_driver *driver = dom->conn->privateData;
virDomainObjPtr vm; virDomainObjPtr vm;
const char *prog[] = { VZCTL, "--quiet", "destroy", PROGRAM_SENTINAL, NULL }; const char *prog[] = { VZCTL, "--quiet", "destroy", PROGRAM_SENTINAL, NULL };
int ret = -1; int ret = -1;
virCheckFlags(0, -1);
openvzDriverLock(driver); openvzDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainFindByUUID(&driver->domains, dom->uuid);
if (!vm) { if (!vm) {
...@@ -1122,6 +1125,11 @@ cleanup: ...@@ -1122,6 +1125,11 @@ cleanup:
return ret; return ret;
} }
static int
openvzDomainUndefine(virDomainPtr dom)
{
return openvzDomainUndefineFlags(dom, 0);
}
static int static int
openvzDomainSetAutostart(virDomainPtr dom, int autostart) openvzDomainSetAutostart(virDomainPtr dom, int autostart)
{ {
...@@ -1627,6 +1635,7 @@ static virDriver openvzDriver = { ...@@ -1627,6 +1635,7 @@ static virDriver openvzDriver = {
.domainCreateWithFlags = openvzDomainCreateWithFlags, /* 0.8.2 */ .domainCreateWithFlags = openvzDomainCreateWithFlags, /* 0.8.2 */
.domainDefineXML = openvzDomainDefineXML, /* 0.3.3 */ .domainDefineXML = openvzDomainDefineXML, /* 0.3.3 */
.domainUndefine = openvzDomainUndefine, /* 0.3.3 */ .domainUndefine = openvzDomainUndefine, /* 0.3.3 */
.domainUndefineFlags = openvzDomainUndefineFlags, /* 0.9.4 */
.domainGetAutostart = openvzDomainGetAutostart, /* 0.4.6 */ .domainGetAutostart = openvzDomainGetAutostart, /* 0.4.6 */
.domainSetAutostart = openvzDomainSetAutostart, /* 0.4.6 */ .domainSetAutostart = openvzDomainSetAutostart, /* 0.4.6 */
.isEncrypted = openvzIsEncrypted, /* 0.7.3 */ .isEncrypted = openvzIsEncrypted, /* 0.7.3 */
......
...@@ -2535,12 +2535,16 @@ static int testDomainCreate(virDomainPtr domain) { ...@@ -2535,12 +2535,16 @@ static int testDomainCreate(virDomainPtr domain) {
return testDomainCreateWithFlags(domain, 0); return testDomainCreateWithFlags(domain, 0);
} }
static int testDomainUndefine(virDomainPtr domain) { static int testDomainUndefineFlags(virDomainPtr domain,
unsigned int flags)
{
testConnPtr privconn = domain->conn->privateData; testConnPtr privconn = domain->conn->privateData;
virDomainObjPtr privdom; virDomainObjPtr privdom;
virDomainEventPtr event = NULL; virDomainEventPtr event = NULL;
int ret = -1; int ret = -1;
virCheckFlags(0, -1);
testDriverLock(privconn); testDriverLock(privconn);
privdom = virDomainFindByName(&privconn->domains, privdom = virDomainFindByName(&privconn->domains,
domain->name); domain->name);
...@@ -2573,6 +2577,11 @@ cleanup: ...@@ -2573,6 +2577,11 @@ cleanup:
return ret; return ret;
} }
static int testDomainUndefine(virDomainPtr domain)
{
return testDomainUndefineFlags(domain, 0);
}
static int testDomainGetAutostart(virDomainPtr domain, static int testDomainGetAutostart(virDomainPtr domain,
int *autostart) int *autostart)
{ {
...@@ -5556,6 +5565,7 @@ static virDriver testDriver = { ...@@ -5556,6 +5565,7 @@ static virDriver testDriver = {
.domainCreateWithFlags = testDomainCreateWithFlags, /* 0.8.2 */ .domainCreateWithFlags = testDomainCreateWithFlags, /* 0.8.2 */
.domainDefineXML = testDomainDefineXML, /* 0.1.11 */ .domainDefineXML = testDomainDefineXML, /* 0.1.11 */
.domainUndefine = testDomainUndefine, /* 0.1.11 */ .domainUndefine = testDomainUndefine, /* 0.1.11 */
.domainUndefineFlags = testDomainUndefineFlags, /* 0.9.4 */
.domainGetAutostart = testDomainGetAutostart, /* 0.3.2 */ .domainGetAutostart = testDomainGetAutostart, /* 0.3.2 */
.domainSetAutostart = testDomainSetAutostart, /* 0.3.2 */ .domainSetAutostart = testDomainSetAutostart, /* 0.3.2 */
.domainGetSchedulerType = testDomainGetSchedulerType, /* 0.3.2 */ .domainGetSchedulerType = testDomainGetSchedulerType, /* 0.3.2 */
......
...@@ -1778,11 +1778,15 @@ cleanup: ...@@ -1778,11 +1778,15 @@ cleanup:
return dom; return dom;
} }
static int umlDomainUndefine(virDomainPtr dom) { static int umlDomainUndefineFlags(virDomainPtr dom,
unsigned int flags)
{
struct uml_driver *driver = dom->conn->privateData; struct uml_driver *driver = dom->conn->privateData;
virDomainObjPtr vm; virDomainObjPtr vm;
int ret = -1; int ret = -1;
virCheckFlags(0, -1);
umlDriverLock(driver); umlDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainFindByUUID(&driver->domains, dom->uuid);
if (!vm) { if (!vm) {
...@@ -1819,6 +1823,11 @@ cleanup: ...@@ -1819,6 +1823,11 @@ cleanup:
} }
static int umlDomainUndefine(virDomainPtr dom)
{
return umlDomainUndefineFlags(dom, 0);
}
static int umlDomainAttachUmlDisk(struct uml_driver *driver, static int umlDomainAttachUmlDisk(struct uml_driver *driver,
virDomainObjPtr vm, virDomainObjPtr vm,
virDomainDiskDefPtr disk) virDomainDiskDefPtr disk)
...@@ -2427,6 +2436,7 @@ static virDriver umlDriver = { ...@@ -2427,6 +2436,7 @@ static virDriver umlDriver = {
.domainCreateWithFlags = umlDomainStartWithFlags, /* 0.8.2 */ .domainCreateWithFlags = umlDomainStartWithFlags, /* 0.8.2 */
.domainDefineXML = umlDomainDefine, /* 0.5.0 */ .domainDefineXML = umlDomainDefine, /* 0.5.0 */
.domainUndefine = umlDomainUndefine, /* 0.5.0 */ .domainUndefine = umlDomainUndefine, /* 0.5.0 */
.domainUndefineFlags = umlDomainUndefineFlags, /* 0.9.4 */
.domainAttachDevice = umlDomainAttachDevice, /* 0.8.4 */ .domainAttachDevice = umlDomainAttachDevice, /* 0.8.4 */
.domainAttachDeviceFlags = umlDomainAttachDeviceFlags, /* 0.8.4 */ .domainAttachDeviceFlags = umlDomainAttachDeviceFlags, /* 0.8.4 */
.domainDetachDevice = umlDomainDetachDevice, /* 0.8.4 */ .domainDetachDevice = umlDomainDetachDevice, /* 0.8.4 */
......
...@@ -609,12 +609,15 @@ vmwareDomainCreate(virDomainPtr dom) ...@@ -609,12 +609,15 @@ vmwareDomainCreate(virDomainPtr dom)
} }
static int static int
vmwareDomainUndefine(virDomainPtr dom) vmwareDomainUndefineFlags(virDomainPtr dom,
unsigned int flags)
{ {
struct vmware_driver *driver = dom->conn->privateData; struct vmware_driver *driver = dom->conn->privateData;
virDomainObjPtr vm; virDomainObjPtr vm;
int ret = -1; int ret = -1;
virCheckFlags(0, -1);
vmwareDriverLock(driver); vmwareDriverLock(driver);
vm = virDomainFindByUUID(&driver->domains, dom->uuid); vm = virDomainFindByUUID(&driver->domains, dom->uuid);
...@@ -650,6 +653,12 @@ vmwareDomainUndefine(virDomainPtr dom) ...@@ -650,6 +653,12 @@ vmwareDomainUndefine(virDomainPtr dom)
return ret; return ret;
} }
static int
vmwareDomainUndefine(virDomainPtr dom)
{
return vmwareDomainUndefineFlags(dom, 0);
}
static virDomainPtr static virDomainPtr
vmwareDomainLookupByID(virConnectPtr conn, int id) vmwareDomainLookupByID(virConnectPtr conn, int id)
{ {
...@@ -969,6 +978,7 @@ static virDriver vmwareDriver = { ...@@ -969,6 +978,7 @@ static virDriver vmwareDriver = {
.domainCreateWithFlags = vmwareDomainCreateWithFlags, /* 0.8.7 */ .domainCreateWithFlags = vmwareDomainCreateWithFlags, /* 0.8.7 */
.domainDefineXML = vmwareDomainDefineXML, /* 0.8.7 */ .domainDefineXML = vmwareDomainDefineXML, /* 0.8.7 */
.domainUndefine = vmwareDomainUndefine, /* 0.8.7 */ .domainUndefine = vmwareDomainUndefine, /* 0.8.7 */
.domainUndefineFlags = vmwareDomainUndefineFlags, /* 0.9.4 */
.domainIsActive = vmwareDomainIsActive, /* 0.8.7 */ .domainIsActive = vmwareDomainIsActive, /* 0.8.7 */
.domainIsPersistent = vmwareDomainIsPersistent, /* 0.8.7 */ .domainIsPersistent = vmwareDomainIsPersistent, /* 0.8.7 */
}; };
......
...@@ -1527,11 +1527,12 @@ xenUnifiedDomainDefineXML (virConnectPtr conn, const char *xml) ...@@ -1527,11 +1527,12 @@ xenUnifiedDomainDefineXML (virConnectPtr conn, const char *xml)
} }
static int static int
xenUnifiedDomainUndefine (virDomainPtr dom) xenUnifiedDomainUndefineFlags (virDomainPtr dom, unsigned int flags)
{ {
GET_PRIVATE(dom->conn); GET_PRIVATE(dom->conn);
int i; int i;
virCheckFlags(0, -1);
for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i) for (i = 0; i < XEN_UNIFIED_NR_DRIVERS; ++i)
if (priv->opened[i] && drivers[i]->domainUndefine && if (priv->opened[i] && drivers[i]->domainUndefine &&
drivers[i]->domainUndefine (dom) == 0) drivers[i]->domainUndefine (dom) == 0)
...@@ -1540,6 +1541,11 @@ xenUnifiedDomainUndefine (virDomainPtr dom) ...@@ -1540,6 +1541,11 @@ xenUnifiedDomainUndefine (virDomainPtr dom)
return -1; return -1;
} }
static int
xenUnifiedDomainUndefine (virDomainPtr dom) {
return xenUnifiedDomainUndefineFlags(dom, 0);
}
static int static int
xenUnifiedDomainAttachDevice (virDomainPtr dom, const char *xml) xenUnifiedDomainAttachDevice (virDomainPtr dom, const char *xml)
{ {
...@@ -2223,6 +2229,7 @@ static virDriver xenUnifiedDriver = { ...@@ -2223,6 +2229,7 @@ static virDriver xenUnifiedDriver = {
.domainCreateWithFlags = xenUnifiedDomainCreateWithFlags, /* 0.8.2 */ .domainCreateWithFlags = xenUnifiedDomainCreateWithFlags, /* 0.8.2 */
.domainDefineXML = xenUnifiedDomainDefineXML, /* 0.1.1 */ .domainDefineXML = xenUnifiedDomainDefineXML, /* 0.1.1 */
.domainUndefine = xenUnifiedDomainUndefine, /* 0.1.1 */ .domainUndefine = xenUnifiedDomainUndefine, /* 0.1.1 */
.domainUndefineFlags = xenUnifiedDomainUndefineFlags, /* 0.9.4 */
.domainAttachDevice = xenUnifiedDomainAttachDevice, /* 0.1.9 */ .domainAttachDevice = xenUnifiedDomainAttachDevice, /* 0.1.9 */
.domainAttachDeviceFlags = xenUnifiedDomainAttachDeviceFlags, /* 0.7.7 */ .domainAttachDeviceFlags = xenUnifiedDomainAttachDeviceFlags, /* 0.7.7 */
.domainDetachDevice = xenUnifiedDomainDetachDevice, /* 0.1.9 */ .domainDetachDevice = xenUnifiedDomainDetachDevice, /* 0.1.9 */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册