[libvirt] [sandbox PATCH v4 03/21] Image: Add Hooking Mechanism

Daniel P. Berrange berrange at redhat.com
Mon Sep 7 12:38:58 UTC 2015


On Fri, Aug 28, 2015 at 01:47:31PM +0000, Eren Yagdiran wrote:
> Any custom source provider can be added to virt-sandbox-image as a source
> ---
>  .gitignore                               |  1 +
>  bin/Makefile.am                          | 16 ++++++++++++----
>  bin/virt-sandbox-image.in                |  3 +++
>  configure.ac                             |  2 ++
>  virt-sandbox-image/Makefile.am           | 13 +++++++++++++
>  virt-sandbox-image/sources/Source.py     | 27 +++++++++++++++++++++++++++
>  virt-sandbox-image/sources/__init__.py   | 26 ++++++++++++++++++++++++++
>  virt-sandbox-image/virt-sandbox-image.py | 15 +++++++++------
>  8 files changed, 93 insertions(+), 10 deletions(-)
>  create mode 100644 bin/virt-sandbox-image.in
>  create mode 100644 virt-sandbox-image/Makefile.am
>  create mode 100644 virt-sandbox-image/sources/Source.py
>  create mode 100644 virt-sandbox-image/sources/__init__.py
>  mode change 100644 => 100755 virt-sandbox-image/virt-sandbox-image.py
> 
> diff --git a/.gitignore b/.gitignore
> index f77ea12..ef5b5aa 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -56,3 +56,4 @@ bin/virt-sandbox
>  bin/virt-sandbox-service-util
>  build/
>  bin/*.1
> +bin/virt-sandbox-image
> diff --git a/bin/Makefile.am b/bin/Makefile.am
> index 416f86f..df4c7dc 100644
> --- a/bin/Makefile.am
> +++ b/bin/Makefile.am
> @@ -3,7 +3,11 @@ bin_PROGRAMS = virt-sandbox
>  
>  libexec_PROGRAMS = virt-sandbox-service-util
>  
> -bin_SCRIPTS = virt-sandbox-service
> +bin_SCRIPTS = virt-sandbox-service \
> +              virt-sandbox-image
> +
> +virt-sandbox-image: virt-sandbox-image.in
> +	sed -e 's,[@]pkgpythondir[@],$(pkgpythondir),g' < $< >$@
>  
>  virtsandboxcompdir = $(datarootdir)/bash-completion/completions/
>  
> @@ -20,8 +24,11 @@ POD_FILES = \
>  	virt-sandbox-service-reload.pod \
>  	virt-sandbox-service-upgrade.pod \
>  	$(NULL)
> -EXTRA_DIST = $(bin_SCRIPTS) $(POD_FILES) virt-sandbox-service-bash-completion.sh virt-sandbox-service.logrotate
> -EXTRA_DIST += virt-sandbox-service-bash-completion.sh
> +EXTRA_DIST = virt-sandbox-service \
> +             virt-sandbox-image.in \
> +             $(POD_FILES) \
> +             virt-sandbox-service-bash-completion.sh \
> +             virt-sandbox-service.logrotate
>  
>  man1_MANS = \
>  	virt-sandbox.1 \
> @@ -64,7 +71,8 @@ virt-sandbox-service-reload.1: virt-sandbox-service-reload.pod Makefile
>  virt-sandbox-service-upgrade.1: virt-sandbox-service-upgrade.pod Makefile
>  	$(AM_V_GEN)$(POD2MAN) $< $(srcdir)/$@
>  
> -CLEANFILES = $(man1_MANS)
> +CLEANFILES = $(man1_MANS) \
> +             virt-sandbox-image
>  
>  virt_sandbox_SOURCES = virt-sandbox.c
>  virt_sandbox_CFLAGS = \
> diff --git a/bin/virt-sandbox-image.in b/bin/virt-sandbox-image.in
> new file mode 100644
> index 0000000..732bb38
> --- /dev/null
> +++ b/bin/virt-sandbox-image.in
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +
> +exec "@pkgpythondir@/virt-sandbox-image.py" "$@"

Per my comment on patch 1, we can actually do this in python

#!/usr/bin/python
# -*- coding: utf-8 -*-

from libvirt_sandbox.image import cli
import sys

if __name__ == '__main__':
   sys.exit(cli.main())


which nicely avoids the need to have a .in file text
substitution.


> diff --git a/virt-sandbox-image/sources/Source.py b/virt-sandbox-image/sources/Source.py
> new file mode 100644
> index 0000000..508ca80
> --- /dev/null
> +++ b/virt-sandbox-image/sources/Source.py

I'm thinking these will be best in libvirt-sandbox/image/sources/Source.py
so we get a python import module of 'libvirt_sandbox.image.sources.Source"

Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|




More information about the libvir-list mailing list