Increase maximum shell command timeout to 2h
[armband.git] / patches / opnfv-fuel / 0026-f_repobuild-Repeat-mirror-build-up-to-ten-times.patch
1 From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
2 Date: Sun, 8 May 2016 22:37:43 +0200
3 Subject: [PATCH] f_repobuild: Repeat mirror build up to ten times.
4
5 OPNFV ISO build uses fuel-mirror to create a local Ubuntu
6 partial mirror in nailgun.
7
8 Work around temporary mirror issue (e.g. during rsync) by
9 retrying mirror build up to 10 times.
10
11 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
12 ---
13  build/f_isoroot/f_repobuild/Makefile         |  6 +++++-
14  build/f_isoroot/f_repobuild/fuel_mirror_loop | 26 ++++++++++++++++++++++++++
15  2 files changed, 31 insertions(+), 1 deletion(-)
16  create mode 100755 build/f_isoroot/f_repobuild/fuel_mirror_loop
17
18 diff --git a/build/f_isoroot/f_repobuild/Makefile b/build/f_isoroot/f_repobuild/Makefile
19 index 5e7157b..9abe9bb 100644
20 --- a/build/f_isoroot/f_repobuild/Makefile
21 +++ b/build/f_isoroot/f_repobuild/Makefile
22 @@ -23,6 +23,9 @@ export OPENSTACK_VERSION
23  .PHONY: all
24  all: nailgun
25  
26 +nailgun_mirror:
27 +       sudo fuel-mirror --debug --config ./opnfv-config.yaml create --group ubuntu --pattern=ubuntu
28 +
29  nailgun:
30         sudo apt-get install -y git libxml2-dev libxslt-dev python-dev  python-pip libz-dev libyaml-dev createrepo python-yaml
31         # python-debian from Ubuntu can't parse foreign arch relationships, use pip
32 @@ -35,7 +38,8 @@ nailgun:
33         sudo pip install ./fuel-mirror
34         sudo pip install ./fuel-mirror/contrib/fuel_mirror
35         ./opnfv_mirror_conf.py
36 -       sudo fuel-mirror --debug --config ./opnfv-config.yaml create --group ubuntu --pattern=ubuntu
37 +       # Repeat mirror build up to ten times
38 +       sudo -E ./fuel_mirror_loop
39         sudo chmod -R 755 /var/www/nailgun
40         cp -Rp /var/www/nailgun .
41         # On the end we want to have ubuntu repository in mirrors/ubuntu directory
42 diff --git a/build/f_isoroot/f_repobuild/fuel_mirror_loop b/build/f_isoroot/f_repobuild/fuel_mirror_loop
43 new file mode 100755
44 index 0000000..f123cf2
45 --- /dev/null
46 +++ b/build/f_isoroot/f_repobuild/fuel_mirror_loop
47 @@ -0,0 +1,26 @@
48 +#!/bin/bash
49 +##############################################################################
50 +# Copyright (c) 2016 Ericsson AB and others.
51 +# Copyright (c) 2016 Enea AB and others.
52 +# All rights reserved. This program and the accompanying materials
53 +# are made available under the terms of the Apache License, Version 2.0
54 +# which accompanies this distribution, and is available at
55 +# http://www.apache.org/licenses/LICENSE-2.0
56 +##############################################################################
57 +
58 +maxcount=10
59 +cnt=0
60 +rc=1
61 +while [ $cnt -lt $maxcount ] && [ $rc -ne 0 ]
62 +do
63 +    cnt=$[cnt + 1]
64 +    echo -e "\n\n\n*** Starting mirror build attempt # $cnt"
65 +    make nailgun_mirror
66 +    rc=$?
67 +    if [ $rc -ne 0 ]; then
68 +        echo "### Mirror build failed with rc $rc ###"
69 +    else
70 +        echo "### Mirror build successful at attempt # $cnt"
71 +    fi
72 +done
73 +exit $rc