bitbake/fetch: if mirror fetching fails, ensure exception is raised

We catch any exception raised by the fetchers go() method and attempt to work
around it by trying any (post) mirrors which are configured. However, should
the mirrors fail the exception is lost and the fetch is assumed to have
completed successfully.

Instead, save the exception and if the local file does not exist after trying
the mirrors re-raise the exception.

Fixes [BUGID #362]

Signed-off-by: Joshua Lock <josh@linux.intel.com>
This commit is contained in:
Joshua Lock 2010-10-05 12:44:08 +01:00
parent 8e5c0841ea
commit 0ee7a9e6bd
1 changed files with 3 additions and 1 deletions

View File

@ -272,10 +272,12 @@ def go(d, urls = None):
try:
m.go(u, ud, d)
localpath = ud.localpath
except:
except FetchError:
# Finally, try fetching uri, u, from MIRRORS
mirrors = [ i.split() for i in (bb.data.getVar('MIRRORS', d, 1) or "").split('\n') if i ]
localpath = try_mirrors (d, u, mirrors)
if not localpath or not os.path.exists(localpath):
raise FetchError("Unable to fetch URL %s from any source." % u)
if localpath:
ud.localpath = localpath