On Tue, Dec 04, 2012 at 05:43:05PM +0400, Dmitry Guryanov wrote:
There are no storage pools in Parallels Cloud Server -
All VM data stored in a single directory: config, snapshots,
memory dump together with disk images.
Let's look through list of VMs and create a storage pool for
each directory, containing VMs.
So if you have 3 vms: /var/parallels/vm-1.pvm,
/var/parallels/vm-2.pvm and /root/test.pvm - 2 storage pools
appear: -var-parallels and -root. xml descriptions of the pools
will be saved in /etc/libvirt/parallels-storage, so UUIDs will
not change netween connections to libvirt.
Signed-off-by: Dmitry Guryanov <dguryanov(a)parallels.com>
---
src/parallels/parallels_driver.c | 9 ++
src/parallels/parallels_storage.c | 155 +++++++++++++++++++++++++++++++++++++
src/parallels/parallels_utils.h | 1 +
3 files changed, 165 insertions(+), 0 deletions(-)
diff --git a/src/parallels/parallels_driver.c b/src/parallels/parallels_driver.c
index 11c5b83..fe91968 100644
--- a/src/parallels/parallels_driver.c
+++ b/src/parallels/parallels_driver.c
@@ -104,6 +104,7 @@ parallelsDomObjFreePrivate(void *p)
return;
VIR_FREE(pdom->uuid);
+ VIR_FREE(pdom->home);
VIR_FREE(p);
};
@@ -666,6 +667,14 @@ parallelsLoadDomain(parallelsConnPtr privconn, virJSONValuePtr
jobj)
if (!(pdom->uuid = strdup(tmp)))
goto no_memory;
+ if (!(tmp = virJSONValueObjectGetString(jobj, "Home"))) {
+ parallelsParseError();
+ goto cleanup;
+ }
+
+ if (!(pdom->home = strdup(tmp)))
+ goto no_memory;
+
if (!(tmp = virJSONValueObjectGetString(jobj, "OS")))
goto cleanup;
diff --git a/src/parallels/parallels_storage.c b/src/parallels/parallels_storage.c
index 90c425a..148d870 100644
--- a/src/parallels/parallels_storage.c
+++ b/src/parallels/parallels_storage.c
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include <dirent.h>
#include <sys/statvfs.h>
+#include <libgen.h>
okay, I was a bit worried by ortability there, but apparently we
already use this for cgroup support so as long as parallels platform
is linux only we should be safe there,
#include "datatypes.h"
#include "memory.h"
@@ -114,12 +115,159 @@ cleanup:
ACK,
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | virtualization library
http://libvirt.org/