return ret;
}
+static void
+testDomainShutdownState(virDomainPtr domain,
+ virDomainObjPtr privdom)
+{
+ privdom->state = VIR_DOMAIN_SHUTOFF;
+ privdom->def->id = -1;
+ domain->id = -1;
+}
+
static int testOpenDefault(virConnectPtr conn) {
int u;
struct timeval tv;
goto cleanup;
}
- privdom->state = VIR_DOMAIN_SHUTOFF;
- privdom->def->id = -1;
- domain->id = -1;
+ testDomainShutdownState(domain, privdom);
event = virDomainEventNewFromObj(privdom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_DESTROYED);
+
if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains,
privdom);
privdom = NULL;
}
-
ret = 0;
cleanup:
if (privdom)
goto cleanup;
}
- privdom->state = VIR_DOMAIN_SHUTOFF;
- domain->id = -1;
- privdom->def->id = -1;
+ testDomainShutdownState(domain, privdom);
event = virDomainEventNewFromObj(privdom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
+
if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains,
privdom);
privdom = NULL;
}
- ret = 0;
+ ret = 0;
cleanup:
if (privdom)
virDomainObjUnlock(privdom);
switch (privdom->def->onReboot) {
case VIR_DOMAIN_LIFECYCLE_DESTROY:
privdom->state = VIR_DOMAIN_SHUTOFF;
- domain->id = -1;
- privdom->def->id = -1;
break;
case VIR_DOMAIN_LIFECYCLE_RESTART:
case VIR_DOMAIN_LIFECYCLE_PRESERVE:
privdom->state = VIR_DOMAIN_SHUTOFF;
- domain->id = -1;
- privdom->def->id = -1;
break;
case VIR_DOMAIN_LIFECYCLE_RESTART_RENAME:
default:
privdom->state = VIR_DOMAIN_SHUTOFF;
- domain->id = -1;
- privdom->def->id = -1;
break;
}
if (privdom->state == VIR_DOMAIN_SHUTOFF) {
+ testDomainShutdownState(domain, privdom);
event = virDomainEventNewFromObj(privdom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SHUTDOWN);
+
if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains,
privdom);
}
ret = 0;
-
cleanup:
if (privdom)
virDomainObjUnlock(privdom);
}
fd = -1;
- privdom->state = VIR_DOMAIN_SHUTOFF;
+ testDomainShutdownState(domain, privdom);
event = virDomainEventNewFromObj(privdom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_SAVED);
+
if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains,
privdom);
privdom = NULL;
}
- ret = 0;
+ ret = 0;
cleanup:
VIR_FREE(xml);
domain->name, to);
goto cleanup;
}
- privdom->state = VIR_DOMAIN_SHUTOFF;
+
+ testDomainShutdownState(domain, privdom);
event = virDomainEventNewFromObj(privdom,
VIR_DOMAIN_EVENT_STOPPED,
VIR_DOMAIN_EVENT_STOPPED_CRASHED);
+
if (!privdom->persistent) {
virDomainRemoveInactive(&privconn->domains,
privdom);
privdom = NULL;
}
- ret = 0;
+ ret = 0;
cleanup:
if (fd != -1)
close(fd);