+Fri Aug 25 17:42:12 EDT 2006 Daniel Berrange <berrange@redhat.com>
+
+ * src/virsh.c: Allow VIRSH_DEFAULT_CONNECT_URI to be set to
+ override the default Xen connection attempt in favour of a
+ different backend. Fix 'virsh list' so that it doesn't assume
+ there is always a Domain-0 (a Xen-ism).
+
Thu Aug 24 16:43:47 EDT 2006 Daniel Berrange <berrange@redhat.com>
* tests/virshtest.c: Test suite for validating output / operation
static int
cmdList(vshControl * ctl, vshCmd * cmd ATTRIBUTE_UNUSED)
{
- int *ids, maxid, i;
+ int *ids = NULL, maxid, i;
if (!vshConnectionUsability(ctl, ctl->conn, TRUE))
return FALSE;
maxid = virConnectNumOfDomains(ctl->conn);
- if (maxid <= 0) {
- /* strange, there should be at least dom0... */
+ if (maxid < 0) {
vshError(ctl, FALSE, "failed to list active domains.");
return FALSE;
}
- ids = vshMalloc(ctl, sizeof(int) * maxid);
+ if (maxid) {
+ ids = vshMalloc(ctl, sizeof(int) * maxid);
- if (virConnectListDomains(ctl->conn, &ids[0], maxid) < 0) {
- vshError(ctl, FALSE, "failed to list active domains.");
- return FALSE;
+ if (virConnectListDomains(ctl->conn, &ids[0], maxid) < 0) {
+ vshError(ctl, FALSE, "failed to list active domains.");
+ return FALSE;
+ }
}
-
vshPrintExtra(ctl, "%3s %-20s %s\n", "Id", "Name", "State");
vshPrintExtra(ctl, "----------------------------------\n");
0 ? "no state" : vshDomainStateToString(info.state));
virDomainFree(dom);
}
- free(ids);
+ if (ids)
+ free(ids);
return TRUE;
}
main(int argc, char **argv)
{
vshControl _ctl, *ctl = &_ctl;
+ char *defaultConn;
int ret = TRUE;
if (!(progname = strrchr(argv[0], '/')))
memset(ctl, 0, sizeof(vshControl));
ctl->imode = TRUE; /* default is interactive mode */
+ if ((defaultConn = getenv("VIRSH_DEFAULT_CONNECT_URI"))) {
+ ctl->name = strdup(defaultConn);
+ }
+
if (!vshParseArgv(ctl, argc, argv))
exit(EXIT_FAILURE);