[libvirt] [sandbox PATCH v3 14/22] Image: Add run function
Cedric Bosdonnat
cbosdonnat at suse.com
Tue Aug 18 09:31:05 UTC 2015
On Tue, 2015-08-18 at 06:53 +0000, Eren Yagdiran wrote:
> Run an already-built template
> If there is no execution command specified by user, source.get_command will
> find the command to invoke
> ---
> virt-sandbox-image/virt-sandbox-image.py | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/virt-sandbox-image/virt-sandbox-image.py b/virt-sandbox-image/virt-sandbox-image.py
> index c46abd4..278d19a 100755
> --- a/virt-sandbox-image/virt-sandbox-image.py
> +++ b/virt-sandbox-image/virt-sandbox-image.py
> @@ -128,6 +128,31 @@ def check_connect(connectstr):
> raise ValueError("%s is not supported by Virt-sandbox" %connectstr)
> return True
>
> +def run(args):
> + try:
> + if args.connect is not None:
> + check_connect(args.connect)
> + source = dynamic_source_loader(args.source)
> + diskfile,configfile = source.get_disk(name=args.name,templatedir=args.template_dir)
This is the place where the temporary disk file would be created. Don't
forget it's a per-sandbox disk layer. Compute the sandbox name here, use
it to create the disk layer in the sandbox state directory...
> +
> + format = "qcow2"
> + commandToRun = args.igniter
> + if commandToRun is None:
> + commandToRun = source.get_command(configfile)
> + cmd = ['virt-sandbox']
...and add --name parameter to virt-sandbox to define that name.
--
Cedric
> + if args.connect is not None:
> + cmd.append("-c")
> + cmd.append(args.connect)
> + params = ['-m','host-image:/=%s,format=%s' %(diskfile,format),
> + '--',
> + commandToRun]
> + cmd = cmd + params
> + subprocess.call(cmd)
> + subprocess.call(["rm", "-rf", diskfile])
Remove the temporary disk layer and the sandbox state directory here.
--
Cedric
> + except Exception,e:
> + print "Run Error %s" % str(e)
> +
> def requires_name(parser):
> parser.add_argument("name",
> help=_("name of the template"))
More information about the libvir-list
mailing list