[libvirt] [PATCH sandbox v5 12/20] Image: Add get_disk function to Source
Cedric Bosdonnat
cbosdonnat at suse.com
Wed Sep 9 12:03:45 UTC 2015
On Tue, 2015-09-08 at 17:29 +0100, Daniel P. Berrange wrote:
> From: Eren Yagdiran <erenyagdiran at gmail.com>
>
> Provide a way to know which disk image to use for the sandbox depending on the used source
> DockerSource will need to locate the topmost disk image among all the layers images
>
> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> ---
> libvirt-sandbox/image/sources/DockerSource.py | 12 ++++++++++++
> libvirt-sandbox/image/sources/Source.py | 12 ++++++++++++
> 2 files changed, 24 insertions(+)
>
> diff --git a/libvirt-sandbox/image/sources/DockerSource.py b/libvirt-sandbox/image/sources/DockerSource.py
> index 2607011..31c1d80 100644
> --- a/libvirt-sandbox/image/sources/DockerSource.py
> +++ b/libvirt-sandbox/image/sources/DockerSource.py
> @@ -362,6 +362,18 @@ class DockerSource(Source):
> configfile = templatedir + "/" + toplayer + "/template.json"
> return configfile, diskfile
>
> + def get_disk(self,templatename, templatedir, imagedir, sandboxname):
> + configfile, diskfile = self._get_template_data(templatename, templatedir)
> + tempfile = imagedir + "/" + sandboxname + ".qcow2"
> + if not os.path.exists(imagedir):
> + os.makedirs(imagedir)
> + cmd = ["qemu-img","create","-q","-f","qcow2"]
> + cmd.append("-o")
> + cmd.append("backing_fmt=qcow2,backing_file=%s" % diskfile)
> + cmd.append(tempfile)
> + subprocess.call(cmd)
> + return tempfile
> +
> def get_command(self, templatename, templatedir, userargs):
> configfile, diskfile = self._get_template_data(templatename, templatedir)
> configParser = DockerConfParser(configfile)
> diff --git a/libvirt-sandbox/image/sources/Source.py b/libvirt-sandbox/image/sources/Source.py
> index 4305d0b..a5d3844 100644
> --- a/libvirt-sandbox/image/sources/Source.py
> +++ b/libvirt-sandbox/image/sources/Source.py
> @@ -83,3 +83,15 @@ class Source():
> is specified, then this should override the default args in
> the image"""
> pass
> +
> + @abstractmethod
> + def get_disk(self,templatename, templatedir, imagedir, sandboxname):
> + """
> + :param templatename: name of the template image to download
> + :param templatedir: local directory path in which to find template
> + :param imagedir: local directory in which to storage disk image
> +
> + Creates an instance private disk image, backed by the content
> + of a template.
> + """
> + pass
ACK
--
Cedric
More information about the libvir-list
mailing list