On Mon, Sep 10, 2012 at 07:22:42PM +0400, Dmitry Guryanov wrote:
This patch makes parallelsLoadDomains to be able to load information
about containers. So functions, which return different information
and change state will work.
parallelsDomainDefineXML will be fixed in separate patch.
Signed-off-by: Dmitry Guryanov <dguryanov(a)parallels.com>
---
src/parallels/parallels_driver.c | 27 ++++++++++++++++++++++++---
1 files changed, 24 insertions(+), 3 deletions(-)
diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
index 06a75b3..45a3d82 100644
--- a/src/parallels/parallels_driver.c
+++ b/src/parallels/parallels_driver.c
@@ -130,6 +130,15 @@ parallelsBuildCapabilities(void)
"parallels", NULL, NULL, 0, NULL) ==
NULL)
goto no_memory;
+ if ((guest = virCapabilitiesAddGuest(caps, "exe", PARALLELS_DEFAULT_ARCH,
+ 64, "parallels",
+ NULL, 0, NULL)) == NULL)
+ goto no_memory;
+
+ if (virCapabilitiesAddGuestDomain(guest,
+ "parallels", NULL, NULL, 0, NULL) ==
NULL)
+ goto no_memory;
+
caps->defaultConsoleTargetType = parallelsDefaultConsoleType;
return caps;
@@ -490,8 +499,20 @@ parallelsLoadDomain(parallelsConnPtr privconn, virJSONValuePtr
jobj)
def->mem.max_balloon <<= 10;
def->mem.cur_balloon = def->mem.max_balloon;
- if (!(def->os.type = strdup("hvm")))
- goto no_memory;
+ if (!(tmp = virJSONValueObjectGetString(jobj, "Type"))) {
+ parallelsParseError();
+ goto cleanup;
+ }
+
+ if (STREQ(tmp, "CT")) {
+ if (!(def->os.type = strdup("exe")))
+ goto no_memory;
+ if (!(def->os.init = strdup("/sbin/init")))
+ goto no_memory;
okay so you end up with an hypervisor type of parallels but <os>exe</os>
for those kind of domains. That sounds fine.
+ } else if (STREQ(tmp, "VM")) {
+ if (!(def->os.type = strdup("hvm")))
+ goto no_memory;
+ }
if (!(def->os.arch = strdup(PARALLELS_DEFAULT_ARCH)))
goto no_memory;
@@ -577,7 +598,7 @@ parallelsLoadDomains(parallelsConnPtr privconn, const char
*domain_name)
int ret = -1;
jobj = parallelsParseOutput(PRLCTL, "list", "-j",
"-a", "-i", "-H",
- "--vmtype", "vm", domain_name,
NULL);
+ "--vmtype", "all", domain_name,
NULL);
and here you ask to list both kind of domains,
if (!jobj) {
parallelsParseError();
goto cleanup;
That sounds 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/