* [PATCH 0/2] Error handling fixes @ 2014-05-29 17:17 Paul Eggleton 2014-05-29 17:17 ` [PATCH 1/2] fetch2: improve handling of two classes of URL parameter mistakes Paul Eggleton 2014-05-29 17:17 ` [PATCH 2/2] utils: avoid printing traceback on ExpansionError during parsing Paul Eggleton 0 siblings, 2 replies; 3+ messages in thread From: Paul Eggleton @ 2014-05-29 17:17 UTC (permalink / raw) To: bitbake-devel The following changes since commit 0e7b594ccbceb3149f38776cea204807031ef69f: fetch2/hg: Fix missing proto param for hg checkout with user and pw (2014-05-28 08:28:17 +0100) are available in the git repository at: git://git.yoctoproject.org/poky-contrib paule/bb-errors http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=paule/bb-errors Paul Eggleton (2): fetch2: improve handling of two classes of URL parameter mistakes utils: avoid printing traceback on ExpansionError during parsing lib/bb/fetch2/__init__.py | 14 ++++++++++---- lib/bb/utils.py | 2 ++ 2 files changed, 12 insertions(+), 4 deletions(-) -- 1.9.3 ^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH 1/2] fetch2: improve handling of two classes of URL parameter mistakes 2014-05-29 17:17 [PATCH 0/2] Error handling fixes Paul Eggleton @ 2014-05-29 17:17 ` Paul Eggleton 2014-05-29 17:17 ` [PATCH 2/2] utils: avoid printing traceback on ExpansionError during parsing Paul Eggleton 1 sibling, 0 replies; 3+ messages in thread From: Paul Eggleton @ 2014-05-29 17:17 UTC (permalink / raw) To: bitbake-devel Handle the following situations in a URL (e.g. in SRC_URI): * Trailing semicolon in a URL - this is now ignored. * Parameter specified with no value (no equals sign). This still produces an error, but at least it is MalformedUrl with a proper message rather than "ValueError: need more than 1 value to unpack". Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> --- lib/bb/fetch2/__init__.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index f571fc4..dcada12 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -56,8 +56,11 @@ class BBFetchException(Exception): class MalformedUrl(BBFetchException): """Exception raised when encountering an invalid url""" - def __init__(self, url): - msg = "The URL: '%s' is invalid and cannot be interpreted" % url + def __init__(self, url, message=''): + if message: + msg = message + else: + msg = "The URL: '%s' is invalid and cannot be interpreted" % url self.url = url BBFetchException.__init__(self, msg) self.args = (url,) @@ -371,8 +374,11 @@ def decodeurl(url): p = {} if parm: for s in parm.split(';'): - s1, s2 = s.split('=') - p[s1] = s2 + if s: + if not '=' in s: + raise MalformedUrl(url, "The URL: '%s' is invalid: parameter %s does not specify a value (missing '=')" % (url, s)) + s1, s2 = s.split('=') + p[s1] = s2 return type, host, urllib.unquote(path), user, pswd, p -- 1.9.3 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/2] utils: avoid printing traceback on ExpansionError during parsing 2014-05-29 17:17 [PATCH 0/2] Error handling fixes Paul Eggleton 2014-05-29 17:17 ` [PATCH 1/2] fetch2: improve handling of two classes of URL parameter mistakes Paul Eggleton @ 2014-05-29 17:17 ` Paul Eggleton 1 sibling, 0 replies; 3+ messages in thread From: Paul Eggleton @ 2014-05-29 17:17 UTC (permalink / raw) To: bitbake-devel If an ExpansionError occurs during better_exec() we should just raise it instead of printing the traceback, so that recipe errors (such as broken URLs in SRC_URI) are more easily comprehensible. Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com> --- lib/bb/utils.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/bb/utils.py b/lib/bb/utils.py index 1be1874..ead5f36 100644 --- a/lib/bb/utils.py +++ b/lib/bb/utils.py @@ -357,6 +357,8 @@ def better_exec(code, context, text = None, realfile = "<code>"): except bb.BBHandledException: # Error already shown so passthrough raise + except bb.data_smart.ExpansionError: + raise except Exception as e: (t, value, tb) = sys.exc_info() -- 1.9.3 ^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2014-05-29 17:18 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-05-29 17:17 [PATCH 0/2] Error handling fixes Paul Eggleton 2014-05-29 17:17 ` [PATCH 1/2] fetch2: improve handling of two classes of URL parameter mistakes Paul Eggleton 2014-05-29 17:17 ` [PATCH 2/2] utils: avoid printing traceback on ExpansionError during parsing Paul Eggleton
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.