lxc: Check domain is active/inactive as required by operation

Report VIR_ERR_OPERATION_INVALID when operation which requires running
domain is called on inactive domain and vice versa.
This commit is contained in:
Jiri Denemark 2010-05-03 14:04:44 +02:00
parent b94b72b457
commit eca81e08be

View File

@ -1378,6 +1378,12 @@ static int lxcDomainStart(virDomainPtr dom)
goto cleanup;
}
if (virDomainObjIsActive(vm)) {
lxcError(VIR_ERR_OPERATION_INVALID,
"%s", _("Domain is already running"));
goto cleanup;
}
ret = lxcVmStart(dom->conn, driver, vm);
if (ret == 0)
@ -1483,6 +1489,12 @@ static int lxcDomainShutdown(virDomainPtr dom)
goto cleanup;
}
if (!virDomainObjIsActive(vm)) {
lxcError(VIR_ERR_OPERATION_INVALID,
"%s", _("Domain is not running"));
goto cleanup;
}
ret = lxcVmTerminate(driver, vm, 0);
event = virDomainEventNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,
@ -1662,6 +1674,12 @@ static int lxcDomainDestroy(virDomainPtr dom)
goto cleanup;
}
if (!virDomainObjIsActive(vm)) {
lxcError(VIR_ERR_OPERATION_INVALID,
"%s", _("Domain is not running"));
goto cleanup;
}
ret = lxcVmTerminate(driver, vm, SIGKILL);
event = virDomainEventNewFromObj(vm,
VIR_DOMAIN_EVENT_STOPPED,