From: Alexandru Avadanii Date: Sun, 8 May 2016 22:37:43 +0200 Subject: [PATCH] f_repobuild: Repeat mirror build up to ten times. OPNFV ISO build uses fuel-mirror to create a local Ubuntu partial mirror in nailgun. Work around temporary mirror issue (e.g. during rsync) by retrying mirror build up to 10 times. Signed-off-by: Alexandru Avadanii --- build/f_isoroot/f_repobuild/Makefile | 6 +++++- build/f_isoroot/f_repobuild/fuel_mirror_loop | 26 ++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100755 build/f_isoroot/f_repobuild/fuel_mirror_loop diff --git a/build/f_isoroot/f_repobuild/Makefile b/build/f_isoroot/f_repobuild/Makefile index 5e7157b..9abe9bb 100644 --- a/build/f_isoroot/f_repobuild/Makefile +++ b/build/f_isoroot/f_repobuild/Makefile @@ -23,6 +23,9 @@ export OPENSTACK_VERSION .PHONY: all all: nailgun +nailgun_mirror: + sudo fuel-mirror --debug --config ./opnfv-config.yaml create --group ubuntu --pattern=ubuntu + nailgun: sudo apt-get install -y git libxml2-dev libxslt-dev python-dev python-pip libz-dev libyaml-dev createrepo python-yaml # python-debian from Ubuntu can't parse foreign arch relationships, use pip @@ -35,7 +38,8 @@ nailgun: sudo pip install ./fuel-mirror sudo pip install ./fuel-mirror/contrib/fuel_mirror ./opnfv_mirror_conf.py - sudo fuel-mirror --debug --config ./opnfv-config.yaml create --group ubuntu --pattern=ubuntu + # Repeat mirror build up to ten times + sudo -E ./fuel_mirror_loop sudo chmod -R 755 /var/www/nailgun cp -Rp /var/www/nailgun . # On the end we want to have ubuntu repository in mirrors/ubuntu directory diff --git a/build/f_isoroot/f_repobuild/fuel_mirror_loop b/build/f_isoroot/f_repobuild/fuel_mirror_loop new file mode 100755 index 0000000..f123cf2 --- /dev/null +++ b/build/f_isoroot/f_repobuild/fuel_mirror_loop @@ -0,0 +1,26 @@ +#!/bin/bash +############################################################################## +# Copyright (c) 2016 Ericsson AB and others. +# Copyright (c) 2016 Enea AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## + +maxcount=10 +cnt=0 +rc=1 +while [ $cnt -lt $maxcount ] && [ $rc -ne 0 ] +do + cnt=$[cnt + 1] + echo -e "\n\n\n*** Starting mirror build attempt # $cnt" + make nailgun_mirror + rc=$? + if [ $rc -ne 0 ]; then + echo "### Mirror build failed with rc $rc ###" + else + echo "### Mirror build successful at attempt # $cnt" + fi +done +exit $rc