To compute the source class name from the URI scheme, we need to be a
bit smarter to have a nice scheme for sources like the virt-builder one.
In order to have a scheme like virt-builder:// and a class name like
VirtBuilderSource, strip the non-word characters from the scheme and
camel case the words.
---
libvirt-sandbox/image/template.py | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/libvirt-sandbox/image/template.py b/libvirt-sandbox/image/template.py
index 17da6c0..4713b0a 100644
--- a/libvirt-sandbox/image/template.py
+++ b/libvirt-sandbox/image/template.py
@@ -21,6 +21,7 @@
import urlparse
import importlib
+import re
class Template(object):
@@ -56,10 +57,13 @@ class Template(object):
self.params = {}
def get_source_impl(self):
+ p = re.compile("\W")
+ sourcename = "".join([i.capitalize() for i in p.split(self.source)])
+
mod = importlib.import_module(
"libvirt_sandbox.image.sources." +
- self.source.capitalize() + "Source")
- classname = self.source.capitalize() + "Source"
+ sourcename + "Source")
+ classname = sourcename + "Source"
classimpl = getattr(mod, classname)
return classimpl()
--
2.1.4