mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-02 01:45:17 +00:00
test_driver: Introduce testDomainActionSetState helper
This helper extracts common lifecycle action code from both testDomainShutdownFlags and testDomainReboot. Signed-off-by: Ilias Stamatis <stamatis.iliass@gmail.com> Reviewed-by: Erik Skultety <eskultet@redhat.com>
This commit is contained in:
parent
e95f9459d3
commit
423ca282f4
@ -1902,6 +1902,40 @@ static int testDomainSuspend(virDomainPtr domain)
|
||||
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,
|
||||
unsigned int flags)
|
||||
{
|
||||
@ -1922,13 +1956,17 @@ static int testDomainShutdownFlags(virDomainPtr domain,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
testDomainShutdownState(domain, privdom, VIR_DOMAIN_SHUTOFF_SHUTDOWN);
|
||||
event = virDomainEventLifecycleNewFromObj(privdom,
|
||||
VIR_DOMAIN_EVENT_STOPPED,
|
||||
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
|
||||
testDomainActionSetState(privdom, privdom->def->onPoweroff);
|
||||
|
||||
if (!privdom->persistent)
|
||||
virDomainObjListRemove(privconn->domains, privdom);
|
||||
if (virDomainObjGetState(privdom, NULL) == VIR_DOMAIN_SHUTOFF) {
|
||||
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;
|
||||
cleanup:
|
||||
@ -1964,35 +2002,7 @@ static int testDomainReboot(virDomainPtr domain,
|
||||
if (virDomainObjCheckActive(privdom) < 0)
|
||||
goto cleanup;
|
||||
|
||||
virDomainObjSetState(privdom, VIR_DOMAIN_SHUTDOWN,
|
||||
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;
|
||||
}
|
||||
testDomainActionSetState(privdom, privdom->def->onReboot);
|
||||
|
||||
if (virDomainObjGetState(privdom, NULL) == VIR_DOMAIN_SHUTOFF) {
|
||||
testDomainShutdownState(domain, privdom, VIR_DOMAIN_SHUTOFF_SHUTDOWN);
|
||||
|
Loading…
x
Reference in New Issue
Block a user