
On 06/14/2016 07:26 PM, pvital@linux.vnet.ibm.com wrote:
From: Paulo Vital <pvital@linux.vnet.ibm.com>
urllib2 raised URLError when could not access a remote file due to unauthorized access, for example. This patch gives to VMTemplate the ability of handle this exception and raises a relevant error message to user.
This patch fixes Issue #959
Signed-off-by: Paulo Vital <pvital@linux.vnet.ibm.com> --- i18n.py | 1 + vmtemplate.py | 3 +++ 2 files changed, 4 insertions(+)
diff --git a/i18n.py b/i18n.py index 2d8390f..b33c6ec 100644 --- a/i18n.py +++ b/i18n.py @@ -52,6 +52,7 @@ messages = { "to file access control lists for '%(user)s' user if possible, or add the " "'%(user)s' to the ISO path group, or (not recommended) 'chmod -R o+x 'path_to_iso'." "Details: %(err)s" ), + "KCHISO0009E": _("Unable to access remote ISO. Details: %(err)s"),
"KCHIMG0001E": _("An error occurred when probing image OS information."), "KCHIMG0003E": _("Unable to read image file %(filename)s"), diff --git a/vmtemplate.py b/vmtemplate.py index ef92914..6faf4c5 100644 --- a/vmtemplate.py +++ b/vmtemplate.py @@ -24,6 +24,7 @@ import urlparse import uuid from lxml import etree from lxml.builder import E +from urllib2 import URLError
from wok.exception import InvalidParameter, ImageFormatError, IsoFormatError from wok.exception import MissingParameter, OperationFailed @@ -172,6 +173,8 @@ class VMTemplate(object): return iso_img.probe() except IsoFormatError:
raise InvalidParameter("KCHISO0001E", {'filename': iso}) + except URLError as e: + raise OperationFailed("KCHISO0009E", {'err': e})
The IsoImage() should raise a IsoFormatError. We need to check why it is not being done. Is there proper error handlers there?
def _get_cdrom_xml(self, libvirt_stream_protocols): if 'cdrom' not in self.info: -- 2.5.5