
On Mon, May 03, 2010 at 02:20:28PM +0200, jdenemar@redhat.com wrote:
From: Jiri Denemark <jdenemar@redhat.com>
Report VIR_ERR_OPERATION_INVALID when operation which requires running domain is called on inactive domain and vice versa. --- src/lxc/lxc_driver.c | 18 ++++++++++++++++++ 1 files changed, 18 insertions(+), 0 deletions(-)
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 6884fea..fc0df37 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -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,
Ah, sure :-) ACK Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/