
On Mon, 2017-12-11 at 11:56 +0100, Michal Privoznik wrote:
https://bugzilla.redhat.com/show_bug.cgi?id=1522706
If domain is active, but the undefine API was called without the VIR_DOMAIN_UNDEFINE_KEEP_NVRAM flag set, the following incorrect error message is produced:
error: Requested operation is not valid: cannot delete inactive domain with nvram
Signed-off-by: Michal Privoznik <mprivozn@redhat.com> ---
Diff to v1: - switched to different code pattern to make it easier for translators
src/qemu/qemu_driver.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index aa30b119a..cc5520c54 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -7537,8 +7537,13 @@ qemuDomainUndefineFlags(virDomainPtr dom, goto endjob; } } else if (!(flags & VIR_DOMAIN_UNDEFINE_KEEP_NVRAM)) { - virReportError(VIR_ERR_OPERATION_INVALID, "%s", - _("cannot delete inactive domain with nvram")); + if (virDomainObjIsActive(vm)) { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("cannot delete active domain with nvram")); + } else { + virReportError(VIR_ERR_OPERATION_INVALID, "%s", + _("cannot delete inactive domain with nvram")); + } goto endjob; } }
I'm probably missing something, but can't we just avoid including the domain state in the error message? -- Andrea Bolognani / Red Hat / Virtualization