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 <[email protected]>
> ---
> 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/
[email protected] | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library http://libvirt.org/
--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list