提交 423ca282 编写于 作者: I Ilias Stamatis 提交者: Erik Skultety

test_driver: Introduce testDomainActionSetState helper

This helper extracts common lifecycle action code from both
testDomainShutdownFlags and testDomainReboot.
Signed-off-by: NIlias Stamatis <stamatis.iliass@gmail.com>
Reviewed-by: NErik Skultety <eskultet@redhat.com>
上级 e95f9459
...@@ -1902,6 +1902,40 @@ static int testDomainSuspend(virDomainPtr domain) ...@@ -1902,6 +1902,40 @@ static int testDomainSuspend(virDomainPtr domain)
return ret; return ret;
} }
static void
testDomainActionSetState(virDomainObjPtr dom,
int lifecycle_type)
{
switch (lifecycle_type) {
case VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY:
virDomainObjSetState(dom, VIR_DOMAIN_SHUTOFF,
VIR_DOMAIN_SHUTOFF_SHUTDOWN);
break;
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART:
virDomainObjSetState(dom, VIR_DOMAIN_RUNNING,
VIR_DOMAIN_RUNNING_BOOTED);
break;
case VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE:
virDomainObjSetState(dom, VIR_DOMAIN_SHUTOFF,
VIR_DOMAIN_SHUTOFF_SHUTDOWN);
break;
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART_RENAME:
virDomainObjSetState(dom, VIR_DOMAIN_RUNNING,
VIR_DOMAIN_RUNNING_BOOTED);
break;
default:
virDomainObjSetState(dom, VIR_DOMAIN_SHUTOFF,
VIR_DOMAIN_SHUTOFF_SHUTDOWN);
break;
}
}
static int testDomainShutdownFlags(virDomainPtr domain, static int testDomainShutdownFlags(virDomainPtr domain,
unsigned int flags) unsigned int flags)
{ {
...@@ -1922,13 +1956,17 @@ static int testDomainShutdownFlags(virDomainPtr domain, ...@@ -1922,13 +1956,17 @@ static int testDomainShutdownFlags(virDomainPtr domain,
goto cleanup; goto cleanup;
} }
testDomainShutdownState(domain, privdom, VIR_DOMAIN_SHUTOFF_SHUTDOWN); testDomainActionSetState(privdom, privdom->def->onPoweroff);
event = virDomainEventLifecycleNewFromObj(privdom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
if (!privdom->persistent) if (virDomainObjGetState(privdom, NULL) == VIR_DOMAIN_SHUTOFF) {
virDomainObjListRemove(privconn->domains, privdom); testDomainShutdownState(domain, privdom, VIR_DOMAIN_SHUTOFF_SHUTDOWN);
event = virDomainEventLifecycleNewFromObj(privdom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
if (!privdom->persistent)
virDomainObjListRemove(privconn->domains, privdom);
}
ret = 0; ret = 0;
cleanup: cleanup:
...@@ -1964,35 +2002,7 @@ static int testDomainReboot(virDomainPtr domain, ...@@ -1964,35 +2002,7 @@ static int testDomainReboot(virDomainPtr domain,
if (virDomainObjCheckActive(privdom) < 0) if (virDomainObjCheckActive(privdom) < 0)
goto cleanup; goto cleanup;
virDomainObjSetState(privdom, VIR_DOMAIN_SHUTDOWN, testDomainActionSetState(privdom, privdom->def->onReboot);
VIR_DOMAIN_SHUTDOWN_USER);
switch (privdom->def->onReboot) {
case VIR_DOMAIN_LIFECYCLE_ACTION_DESTROY:
virDomainObjSetState(privdom, VIR_DOMAIN_SHUTOFF,
VIR_DOMAIN_SHUTOFF_SHUTDOWN);
break;
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART:
virDomainObjSetState(privdom, VIR_DOMAIN_RUNNING,
VIR_DOMAIN_RUNNING_BOOTED);
break;
case VIR_DOMAIN_LIFECYCLE_ACTION_PRESERVE:
virDomainObjSetState(privdom, VIR_DOMAIN_SHUTOFF,
VIR_DOMAIN_SHUTOFF_SHUTDOWN);
break;
case VIR_DOMAIN_LIFECYCLE_ACTION_RESTART_RENAME:
virDomainObjSetState(privdom, VIR_DOMAIN_RUNNING,
VIR_DOMAIN_RUNNING_BOOTED);
break;
default:
virDomainObjSetState(privdom, VIR_DOMAIN_SHUTOFF,
VIR_DOMAIN_SHUTOFF_SHUTDOWN);
break;
}
if (virDomainObjGetState(privdom, NULL) == VIR_DOMAIN_SHUTOFF) { if (virDomainObjGetState(privdom, NULL) == VIR_DOMAIN_SHUTOFF) {
testDomainShutdownState(domain, privdom, VIR_DOMAIN_SHUTOFF_SHUTDOWN); testDomainShutdownState(domain, privdom, VIR_DOMAIN_SHUTOFF_SHUTDOWN);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册