On Mon, May 24, 2010 at 09:07:24AM -0400, Brian K. White wrote:
On 5/24/2010 6:24 AM, Daniel P. Berrange wrote:
>On Fri, May 21, 2010 at 02:11:47PM +0200, Guido Winkelmann wrote:
>
>>Hi,
>>
>>Sometimes when stopping a virtual domain using virDomainDestroy(), I come
>>across a domain that is already stopped. (For example when someone already
>>stopped the domain manually using virsh or because the guest OS issued a
>>shutdown.) This is a special case that I absolutely need to catch and
>>handle.
>>
>>Unfortunately, when this happens, and I call virGetLastError()
>>afterwards, I
>>always just get the error code VIR_ERR_OPERATION_INVALID, which doesn't
>>look
>>very precise to me...
>>
>>Two questions about this:
>>
>>Is the domain not running at that moment the only possible condition that
>>can
>>trigger this particular error code when calling virDomainDestroy()?
>>
>The VIR_ERR_OPERATION_INVALID is a precise code that says the request
>operation is not valid wrt the current state of the guest. So for the
>virDomainDestroy() method, the only cause of this message is requesting
>destroy of a guest that is not running.
>
You are saying there is, and can only ever be, one possible way that the
operation could ever be considered invalid?
You are debating the semantics of the word 'invalid'. The error code
VIR_ERR_OPERATION_INVALID is associated with just one specific sceanario,
regardless of how many different semantics you can attach to the word.
Even within the limited scope of virDomainDestroy() and the
particular
values it was called with, I find that hard to believe on general principle.
A guest VM has a set of lifecycle states (shutoff, running, paused).
An operation on a VM can optional have a pre-requisite lifecycle
state that the VM must be in.
If that pre-requisite lifecycle state is not satisfied, the error
code VIR_ERR_OPERATION_INVALID is raised.
This error code is not used for any other reason.
Daniel
--
|: Red Hat, Engineering, London -o-
http://people.redhat.com/berrange/ :|
|:
http://libvirt.org -o-
http://virt-manager.org -o-
http://deltacloud.org :|
|:
http://autobuild.org -o-
http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505 -o- F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|