Re-introduce mirror blacklisting 75/22975/1
authorStefan K. Berg <stefan.k.berg@ericsson.com>
Tue, 11 Oct 2016 10:33:08 +0000 (12:33 +0200)
committerStefan K. Berg <stefan.k.berg@ericsson.com>
Tue, 11 Oct 2016 10:33:08 +0000 (12:33 +0200)
Some mirrors are misbehaving, for instance due to flood protection,
which makes them unreliable. This change re-introduces the possibility
to blacklist them locally.

Change-Id: I7840ac0a622f2997395e54911685f9eea393dee4
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
build/f_isoroot/f_repobuild/select_ubuntu_repo.sh

index 10a8411..24bd422 100755 (executable)
@@ -1,4 +1,8 @@
 #!/bin/bash
+
+BLACKLIST="http://mirrors.se.eu.kernel.org/ubuntu/"
+#BLACKLIST+=" http://foo.bar"
+
 cleanup() {
     rm -f $TMPFILE
 }
@@ -7,6 +11,19 @@ debugmsg() {
     test -n "$DEBUG" && echo "$@" >&2
 }
 
+
+# Check if url is blacklisted in this script
+blacklisted () {
+  for blackurl in $BLACKLIST
+  do
+    if [ "$1" == "$blackurl" ]; then
+      return 0
+    fi
+  done
+  return 1
+}
+
+
 # Check mirror's integrity
 check_mirror () {
     mirror=$1
@@ -57,7 +74,7 @@ DEBUG=1
 TMPFILE=$(mktemp /tmp/mirrorsXXXXX)A
 trap cleanup exit
 
-# Generated a list of mirrors considered as "up"
+# Generate a list of mirrors considered as "up"
 curl -s  https://launchpad.net/ubuntu/+archivemirrors | \
     grep -P -B8 "statusUP|statusSIX" | \
     grep -o -P "(f|ht)tp.*\""  | \
@@ -67,8 +84,11 @@ curl -s  https://launchpad.net/ubuntu/+archivemirrors | \
 # and sane.
 for url in $(curl -s http://mirrors.ubuntu.com/mirrors.txt)
 do
-    grep -q $url $TMPFILE || debugmsg "$url Faulty (detected by Ubuntu)"
-    if [ -z $BESTURL ]; then
+    if ! grep -q $url $TMPFILE; then
+        debugmsg "$url Faulty (detected by Ubuntu)"
+    elif blacklisted $url; then
+        debugmsg "$url blacklisted"
+    elif [ -z $BESTURL ]; then
         if grep -q $url $TMPFILE && check_mirror $url; then
             debugmsg "$url: OK (setting as primary URL)"
             BESTURL=$url