aboutsummaryrefslogtreecommitdiffstats
path: root/patches/opnfv-fuel/0026-f_repobuild-Repeat-mirror-build-up-to-ten-times.patch
blob: 0b1f92f1fe877b09175165f4e37a266cb32ee4ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
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 <Alexandru.Avadanii@enea.com>
---
 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