summaryrefslogtreecommitdiffstats
path: root/bitbake
diff options
context:
space:
mode:
authorRichard Purdie <richard.purdie@linuxfoundation.org>2011-02-07 20:46:42 +0000
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-02-07 21:13:13 +0000
commitd4b4b48addfa781d7b94965e0477974c3fb6dbb3 (patch)
tree862d5b35ca263a6b6ef73eb3e0a9592f822f21a9 /bitbake
parent94faffdaf6c13ce59987aab28383d66a9a0bf100 (diff)
downloadpoky-d4b4b48addfa781d7b94965e0477974c3fb6dbb3.tar.gz
bitbake/fetch2: Fix pickling issues with fetcher exceptions
See the problems in http://bugs.python.org/issue1692335, need to set self.args correctly. Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake')
-rw-r--r--bitbake/lib/bb/fetch2/__init__.py35
1 files changed, 21 insertions, 14 deletions
diff --git a/bitbake/lib/bb/fetch2/__init__.py b/bitbake/lib/bb/fetch2/__init__.py
index dda70db489..a37bd2b53e 100644
--- a/bitbake/lib/bb/fetch2/__init__.py
+++ b/bitbake/lib/bb/fetch2/__init__.py
@@ -49,55 +49,62 @@ class BBFetchException(Exception):
49class MalformedUrl(BBFetchException): 49class MalformedUrl(BBFetchException):
50 """Exception raised when encountering an invalid url""" 50 """Exception raised when encountering an invalid url"""
51 def __init__(self, url): 51 def __init__(self, url):
52 self.msg = "The URL: '%s' is invalid and cannot be interpreted" % url 52 msg = "The URL: '%s' is invalid and cannot be interpreted" % url
53 self.url = url 53 self.url = url
54 Exception.__init__(self, self.msg) 54 BBFetchException.__init__(self, msg)
55 self.args = url
55 56
56class FetchError(BBFetchException): 57class FetchError(BBFetchException):
57 """General fetcher exception when something happens incorrectly""" 58 """General fetcher exception when something happens incorrectly"""
58 def __init__(self, message, url = None): 59 def __init__(self, message, url = None):
59 self.msg = "Fetcher failure for URL: '%s'. %s" % (url, message) 60 msg = "Fetcher failure for URL: '%s'. %s" % (url, message)
60 self.url = url 61 self.url = url
61 Exception.__init__(self, self.msg) 62 BBFetchException.__init__(self, msg)
63 self.args = (message, url)
62 64
63class UnpackError(BBFetchException): 65class UnpackError(BBFetchException):
64 """General fetcher exception when something happens incorrectly when unpacking""" 66 """General fetcher exception when something happens incorrectly when unpacking"""
65 def __init__(self, message, url): 67 def __init__(self, message, url):
66 self.msg = "Unpack failure for URL: '%s'. %s" % (url, message) 68 msg = "Unpack failure for URL: '%s'. %s" % (url, message)
67 self.url = url 69 self.url = url
68 Exception.__init__(self, self.msg) 70 BBFetchException.__init__(self, msg)
71 self.args = (message, url)
69 72
70class NoMethodError(BBFetchException): 73class NoMethodError(BBFetchException):
71 """Exception raised when there is no method to obtain a supplied url or set of urls""" 74 """Exception raised when there is no method to obtain a supplied url or set of urls"""
72 def __init__(self, url): 75 def __init__(self, url):
73 self.msg = "Could not find a fetcher which supports the URL: '%s'" % url 76 msg = "Could not find a fetcher which supports the URL: '%s'" % url
74 self.url = url 77 self.url = url
75 Exception.__init__(self, self.msg) 78 BBFetchException.__init__(self, msg)
79 self.args = url
76 80
77class MissingParameterError(BBFetchException): 81class MissingParameterError(BBFetchException):
78 """Exception raised when a fetch method is missing a critical parameter in the url""" 82 """Exception raised when a fetch method is missing a critical parameter in the url"""
79 def __init__(self, missing, url): 83 def __init__(self, missing, url):
80 self.msg = "URL: '%s' is missing the required parameter '%s'" % (url, missing) 84 msg = "URL: '%s' is missing the required parameter '%s'" % (url, missing)
81 self.url = url 85 self.url = url
82 self.missing = missing 86 self.missing = missing
83 Exception.__init__(self, self.msg) 87 BBFetchException.__init__(self, msg)
88 self.args = (missing, url)
84 89
85class ParameterError(BBFetchException): 90class ParameterError(BBFetchException):
86 """Exception raised when a url cannot be proccessed due to invalid parameters.""" 91 """Exception raised when a url cannot be proccessed due to invalid parameters."""
87 def __init__(self, message, url): 92 def __init__(self, message, url):
88 self.msg = "URL: '%s' has invalid parameters. %s" % (url, message) 93 msg = "URL: '%s' has invalid parameters. %s" % (url, message)
89 self.url = url 94 self.url = url
90 Exception.__init__(self, self.msg) 95 BBFetchException.__init__(self, msg)
96 self.args = (message, url)
91 97
92class MD5SumError(BBFetchException): 98class MD5SumError(BBFetchException):
93 """Exception raised when a MD5 checksum of a file does not match for a downloaded file""" 99 """Exception raised when a MD5 checksum of a file does not match for a downloaded file"""
94 def __init__(self, path, wanted, got, url): 100 def __init__(self, path, wanted, got, url):
95 self.msg = "File: '%s' has md5 sum %s when %s was expected (from URL: '%s')" % (path, got, wanted, url) 101 msg = "File: '%s' has md5 sum %s when %s was expected (from URL: '%s')" % (path, got, wanted, url)
96 self.url = url 102 self.url = url
97 self.path = path 103 self.path = path
98 self.wanted = wanted 104 self.wanted = wanted
99 self.got = got 105 self.got = got
100 Exception.__init__(self, self.msg) 106 BBFetchException.__init__(self, msg)
107 self.args = (path, wanted, got, url)
101 108
102class SHA256SumError(MD5SumError): 109class SHA256SumError(MD5SumError):
103 """Exception raised when a SHA256 checksum of a file does not match for a downloaded file""" 110 """Exception raised when a SHA256 checksum of a file does not match for a downloaded file"""