On Thu, Nov 12, 2009 at 03:00:51PM +0000, Daniel P. Berrange wrote:
The 'virsh console' command did not check if the domain was
already running before attempting to fetch the XML and extract
the console PTY path. This caused a slightly unhelpful / misleading
error message for the user. The explicit check ensures the user
gets an explicit 'domain is not running' message.
* tools/virsh.c: Validate that state != VIR_DOMAIN_SHUTOFF in
virsh console command
---
tools/virsh.c | 11 +++++++++++
1 files changed, 11 insertions(+), 0 deletions(-)
diff --git a/tools/virsh.c b/tools/virsh.c
index 0d0ebca..9faac35 100644
--- a/tools/virsh.c
+++ b/tools/virsh.c
@@ -523,6 +523,7 @@ cmdRunConsole(vshControl *ctl, virDomainPtr dom)
char *doc;
char *thatHost = NULL;
char *thisHost = NULL;
+ virDomainInfo dominfo;
if (!(thisHost = virGetHostname(ctl->conn))) {
vshError(ctl, "%s", _("Failed to get local hostname"));
@@ -539,6 +540,16 @@ cmdRunConsole(vshControl *ctl, virDomainPtr dom)
goto cleanup;
}
+ if (virDomainGetInfo(dom, &dominfo) < 0) {
+ vshError(ctl, "%s", _("Unable to get domain status"));
+ goto cleanup;
+ }
+
+ if (dominfo.state == VIR_DOMAIN_SHUTOFF) {
+ vshError(ctl, "%s", _("The domain is not running"));
+ goto cleanup;
+ }
+
doc = virDomainGetXMLDesc(dom, 0);
if (!doc)
goto cleanup;
Ah, right, ACK !
Daniel
--
Daniel Veillard | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
daniel(a)veillard.com | Rpmfind RPM search engine
http://rpmfind.net/
http://veillard.com/ | virtualization library
http://libvirt.org/