Rather than letting the python exception hit the user, catch them and provide a more meaningful message if no or a bad scheme is provided in the URI. --- libvirt-sandbox/image/template.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/libvirt-sandbox/image/template.py b/libvirt-sandbox/image/template.py index efdd845..58904a2 100644 --- a/libvirt-sandbox/image/template.py +++ b/libvirt-sandbox/image/template.py @@ -59,15 +59,21 @@ 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." + - sourcename + "Source") - classname = sourcename + "Source" - classimpl = getattr(mod, classname) - return classimpl() + if self.source == "": + raise Exception("Missing scheme in image URI") + + try: + p = re.compile("\W") + sourcename = "".join([i.capitalize() for i in p.split(self.source)]) + + mod = importlib.import_module( + "libvirt_sandbox.image.sources." + + sourcename + "Source") + classname = sourcename + "Source" + classimpl = getattr(mod, classname) + return classimpl() + except Exception: + raise Exception("Invalid source: '%s'" % self.source) def __repr__(self): if self.protocol is not None: -- 2.1.4 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list