aboutsummaryrefslogtreecommitdiffstats
path: root/layerindex/update.py
diff options
context:
space:
mode:
authorPaul Eggleton <paul.eggleton@linux.intel.com>2013-05-08 22:00:14 +0100
committerPaul Eggleton <paul.eggleton@linux.intel.com>2013-05-08 22:52:09 +0100
commita490f057d6764941c75ecd4d6842ab67a5323802 (patch)
tree69b6554fa50cca0aff93b4c5cdb4fd395405b620 /layerindex/update.py
parent714bc8e39f1b250c3be82ecd49d2bf339e37a505 (diff)
downloadopenembedded-core-contrib-a490f057d6764941c75ecd4d6842ab67a5323802.tar.gz
update.py: improve fetch failure handling
* Report layer which failed to fetch in error message * Don't retry fetching a repo if it already failed for another layer (where more than one layer is in the same repository) * Exit immediately if all fetches failed Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'layerindex/update.py')
-rwxr-xr-xlayerindex/update.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/layerindex/update.py b/layerindex/update.py
index c32d8cc684..60baa92ff4 100755
--- a/layerindex/update.py
+++ b/layerindex/update.py
@@ -233,7 +233,7 @@ def main():
# Handle multiple layers in a single repo
urldir = layer.get_fetch_dir()
repodir = os.path.join(fetchdir, urldir)
- if not layer.vcs_url in fetchedrepos:
+ if not (layer.vcs_url in fetchedrepos or layer.vcs_url in failedrepos):
logger.info("Fetching remote repository %s" % layer.vcs_url)
out = None
try:
@@ -242,11 +242,15 @@ def main():
else:
out = runcmd("git fetch", repodir)
except Exception as e:
- logger.error("fetch failed: %s" % str(e))
+ logger.error("Fetch of layer %s failed: %s" % (layer.name, str(e)))
failedrepos.append(layer.vcs_url)
continue
fetchedrepos.append(layer.vcs_url)
+ if not fetchedrepos:
+ logger.error("No repositories could be fetched, exiting")
+ sys.exit(1)
+
logger.info("Fetching bitbake from remote repository %s" % settings.BITBAKE_REPO_URL)
if not os.path.exists(bitbakepath):
out = runcmd("git clone %s %s" % (settings.BITBAKE_REPO_URL, 'bitbake'), fetchdir)