* [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.