From 35697966da656585c43e2a2342a135ada65703cb Mon Sep 17 00:00:00 2001
From: "Stefan K. Berg" <stefan.k.berg@ericsson.com>
Date: Wed, 20 Jan 2016 17:53:55 +0100
Subject: Turn on fuelmenu by default, turn off biosdevname

Added experimental Fuel build loop, rebuilding up to ten times
while keeping the package cache, in the hope that all packages
will be able to download. Added snapshot support into this script
as well.

Changed naming of OPNFV iso label to OPNFV_FUEL_<id>, made changes
in ks.cfg and isolinux.cfg to look for this name at install.

Change-Id: Ic28a3af769cfc90416d7d988afd6f07eadcef4f1
Signed-off-by: Stefan K. Berg <stefan.k.berg@ericsson.com>
---
 build/Makefile                                     | 13 +++---
 build/f_isoroot/Makefile                           |  8 ++--
 .../f_isoroot/f_bootstrap/bootstrap_admin_node.sh  |  5 ++-
 build/f_isoroot/f_isolinux/Makefile                | 46 ++++++++++++++++++++++
 build/f_isoroot/f_isolinux/isolinux.cfg            | 32 +++++++++++++++
 build/f_isoroot/f_isolinux/isolinux.cfg.orig       | 32 +++++++++++++++
 build/f_isoroot/f_kscfg/Makefile                   |  6 ++-
 build/f_isoroot/f_kscfg/ks.cfg                     |  6 +--
 build/f_isoroot/f_kscfg/ks.cfg.orig                |  4 +-
 build/fuel_build_loop                              | 40 +++++++++++++++++++
 build/install/install.sh                           |  2 +-
 11 files changed, 175 insertions(+), 19 deletions(-)
 create mode 100644 build/f_isoroot/f_isolinux/Makefile
 create mode 100644 build/f_isoroot/f_isolinux/isolinux.cfg
 create mode 100644 build/f_isoroot/f_isolinux/isolinux.cfg.orig
 create mode 100755 build/fuel_build_loop

(limited to 'build')

diff --git a/build/Makefile b/build/Makefile
index 6d252ce2b..f690b7c96 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -20,14 +20,14 @@ SHELL = /bin/bash
 #Input args
 export ISOSRC = file:$(shell pwd)/fuel-8.0.iso
 export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
-export PRODNO = "OPNFV_BGS"
+export PRODNO = "OPNFV_FUEL"
 export REVSTATE = "P0000"
 
 ifdef BUILD_FUEL_PLUGINS
 $(warning Overriding plugin build selection to $(BUILD_FUEL_PLUGINS))
-export NEWISO = $(shell pwd)/release/unofficial-opnfv-${REVSTATE}.iso
+export NEWISO = $(shell pwd)/release/unofficial-opnfv-fuel-${REVSTATE}.iso
 else
-export NEWISO = $(shell pwd)/release/opnfv-${REVSTATE}.iso
+export NEWISO = $(shell pwd)/release/opnfv-fuel-${REVSTATE}.iso
 endif
 
 # Note! Invoke with "make REVSTATE=RXXXX all" to make release build!
@@ -97,8 +97,8 @@ $(ISOCACHE):
 	cd /tmp/fuel-main && ./prepare-build-env.sh
 	cd /tmp/fuel-main && make repos
 	$(REPOINFO) -r /tmp/fuel-main > gitinfo_fuel.txt
-	#
-	cd /tmp/fuel-main && sudo make iso
+	# Repeat build up to ten times
+	sudo ./fuel_build_loop
 	cp /tmp/fuel-main/build/artifacts/fuel*.iso .
 
 .PHONY: mount-origiso umount-origiso
@@ -182,7 +182,8 @@ debug:
 	cd /tmp/fuel-main && git checkout $(FUEL_MAIN_TAG)
 	cd /tmp/fuel-main && make repos
 	$(REPOINFO) -r /tmp/fuel-main > .cachedata
-	sha1sum fuel-main*.patch >> .cachedata
+	sha1sum *.patch >> .cachedata
+	sha1sum fuel_build_loop >> .cachedata
 	sha1sum config.mk >> .cachedata
 	sha1sum Makefile >> .cachedata
 	$(CACHETOOL) getbiweek >> .cachedata
diff --git a/build/f_isoroot/Makefile b/build/f_isoroot/Makefile
index 0f7f14fa0..bae2fe74d 100644
--- a/build/f_isoroot/Makefile
+++ b/build/f_isoroot/Makefile
@@ -16,12 +16,12 @@ PLUGINS = f_odlpluginbuild f_qemupluginbuild f_ovs-nsh-dpdk-pluginbuild f_onosfw
 # Temporarilu disabling f_repobuild that currently have some issues on
 # Fuel 8.
 ifdef BUILD_FUEL_PLUGINS
-#SUBDIRS = f_kscfg f_bootstrap f_repobuild $(BUILD_FUEL_PLUGINS)
-SUBDIRS = f_kscfg f_bootstrap $(BUILD_FUEL_PLUGINS)
+#SUBDIRS = f_kscfg f_bootstrap f_isolinux f_repobuild $(BUILD_FUEL_PLUGINS)
+SUBDIRS = f_kscfg f_bootstrap f_isolinux $(BUILD_FUEL_PLUGINS)
 $(warning Overriding plugin build selection to $(BUILD_FUEL_PLUGINS))
 else
-#SUBDIRS = f_kscfg f_bootstrap f_repobuild $(PLUGINS)
-SUBDIRS = f_kscfg f_bootstrap $(PLUGINS)
+#SUBDIRS = f_kscfg f_bootstrap f_isolinux f_repobuild $(PLUGINS)
+SUBDIRS = f_kscfg f_bootstrap f_isolinux $(PLUGINS)
 endif
 SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
 
diff --git a/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh b/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
index d057d0aee..184e5d942 100755
--- a/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
+++ b/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
@@ -315,7 +315,10 @@ build_ubuntu_bootstrap () {
         local ret=1
         echo ${bs_progress_message} >&2
         set_ui_bootstrap_error "${bs_progress_message}" >&2
-        if fuel-bootstrap -v --debug build --activate >>"$bs_build_log" 2>&1; then
+# OPNFV modification to turn off biosdevname on the line below (extend-kopts)
+        if fuel-bootstrap -v --debug build --activate \
+        --extend-kopts "biosdevname=0 net.ifnames=0 debug ignore_loglevel log_buf_len=10M print_fatal_signals=1 LOGLEVEL=8" \
+        >>"$bs_build_log" 2>&1; then
           ret=0
           fuel notify --topic "done" --send "${bs_done_message}"
         else
diff --git a/build/f_isoroot/f_isolinux/Makefile b/build/f_isoroot/f_isolinux/Makefile
new file mode 100644
index 000000000..b683ea38c
--- /dev/null
+++ b/build/f_isoroot/f_isolinux/Makefile
@@ -0,0 +1,46 @@
+##############################################################################
+# Copyright (c) 2016 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# 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
+##############################################################################
+
+TOP := $(shell pwd)
+
+.PHONY: all
+all:
+	@mkdir -p release/isolinux
+	grep -q OpenStack_Fuel isolinux.cfg
+	sed "s/OpenStack_Fuel/$(PRODNO)_$(REVSTATE)/g" isolinux.cfg > isolinux.cfg.patched
+	@cp isolinux.cfg.patched release/isolinux/isolinux.cfg
+	@cp isolinux.cfg.orig release/isolinux/
+
+.PHONY: clean
+clean:
+	@rm -rf release isolinux.cfg.patched
+
+.PHONY: release
+release: all
+	@cp -Rvp release/* ../release
+
+#############################################################################
+# Cache operations - only used when building through ci/build.sh
+#############################################################################
+
+# Clean local data related to caching - called prior to ordinary build
+.PHONY: clean-cache
+clean-cache: clean
+	@echo "clean-cache not implemented"
+
+# Try to download cache - called prior to ordinary build
+.PHONY: get-cache
+get-cache:
+	@echo "get-cache not implemented"
+
+# Store cache if not already stored - called after ordinary build
+.PHONY: put-cache
+put-cache:
+	@echo "put-cache not implemented"
diff --git a/build/f_isoroot/f_isolinux/isolinux.cfg b/build/f_isoroot/f_isolinux/isolinux.cfg
new file mode 100644
index 000000000..0948c95ac
--- /dev/null
+++ b/build/f_isoroot/f_isolinux/isolinux.cfg
@@ -0,0 +1,32 @@
+default vesamenu.c32
+#prompt 1
+timeout 300
+
+display boot.msg
+
+menu background splash.jpg
+menu title Welcome to Fuel Installer (version: 8.0)
+menu color border 0 #ffffffff #00000000
+menu color sel 7 #ffffffff #ff000000
+menu color title 0 #ffffffff #00000000
+menu color tabmsg 0 #ffffffff #00000000
+menu color unsel 0 #ffffffff #00000000
+menu color hotsel 0 #ff000000 #ffffffff
+menu color hotkey 7 #ffffffff #ff000000
+menu color scrollbar 0 #ffffffff #00000000
+
+label nailgun
+  menu label ^1. Fuel Install (Static IP)
+  menu default
+  kernel vmlinuz
+  append initrd=initrd.img net.ifnames=0 biosdevname=0 ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:eth0:off::: dns1=10.20.0.1 selinux=0 showmenu=yes
+
+label nailgunifname
+  menu label ^2. Fuel Advanced Install (Static IP)
+  kernel vmlinuz
+  append initrd=initrd.img ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:adminif:off::: dns1=10.20.0.1 selinux=0 ifname=adminif:XX:XX:XX:XX:XX:XX showmenu=yes
+
+label usbboot
+  menu label ^3. USB Fuel Install (Static IP)
+  kernel vmlinuz
+  append initrd=initrd.img biosdevname=0 repo=hd:LABEL=OpenStack_Fuel:/ ks=hd:LABEL=OpenStack_Fuel:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=yes
diff --git a/build/f_isoroot/f_isolinux/isolinux.cfg.orig b/build/f_isoroot/f_isolinux/isolinux.cfg.orig
new file mode 100644
index 000000000..2b3e7e307
--- /dev/null
+++ b/build/f_isoroot/f_isolinux/isolinux.cfg.orig
@@ -0,0 +1,32 @@
+default vesamenu.c32
+#prompt 1
+timeout 300
+
+display boot.msg
+
+menu background splash.jpg
+menu title Welcome to Fuel Installer (version: 8.0)
+menu color border 0 #ffffffff #00000000
+menu color sel 7 #ffffffff #ff000000
+menu color title 0 #ffffffff #00000000
+menu color tabmsg 0 #ffffffff #00000000
+menu color unsel 0 #ffffffff #00000000
+menu color hotsel 0 #ff000000 #ffffffff
+menu color hotkey 7 #ffffffff #ff000000
+menu color scrollbar 0 #ffffffff #00000000
+
+label nailgun
+  menu label ^1. Fuel Install (Static IP)
+  menu default
+  kernel vmlinuz
+  append initrd=initrd.img net.ifnames=0 biosdevname=0 ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:eth0:off::: dns1=10.20.0.1 selinux=0
+
+label nailgunifname
+  menu label ^2. Fuel Advanced Install (Static IP)
+  kernel vmlinuz
+  append initrd=initrd.img ks=hd:sr0:/ks.cfg ip=10.20.0.2::10.20.0.1:255.255.255.0:fuel.domain.tld:adminif:off::: dns1=10.20.0.1 selinux=0 ifname=adminif:XX:XX:XX:XX:XX:XX
+
+label usbboot
+  menu label ^3. USB Fuel Install (Static IP)
+  kernel vmlinuz
+  append initrd=initrd.img biosdevname=0 repo=hd:LABEL=OpenStack_Fuel:/ ks=hd:LABEL=OpenStack_Fuel:/ks.cfg ip=10.20.0.2 gw=10.20.0.1 dns1=10.20.0.1 netmask=255.255.255.0 hostname=fuel.domain.tld showmenu=yes
diff --git a/build/f_isoroot/f_kscfg/Makefile b/build/f_isoroot/f_kscfg/Makefile
index fe740418d..2a82a1803 100644
--- a/build/f_isoroot/f_kscfg/Makefile
+++ b/build/f_isoroot/f_kscfg/Makefile
@@ -13,12 +13,14 @@ TOP := $(shell pwd)
 .PHONY: all
 all:
 	@mkdir -p release
-	@cp ks.cfg release
+	grep -q OpenStack_Fuel ks.cfg
+	sed "s/OpenStack_Fuel/$(PRODNO)_$(REVSTATE)/g" ks.cfg > ks.cfg.patched
+	@cp ks.cfg.patched release/ks.cfg
 	@cp ks.cfg.orig release
 
 .PHONY: clean
 clean:
-	@rm -rf release
+	@rm -rf release ks.cfg.patched
 
 .PHONY: release
 release: all
diff --git a/build/f_isoroot/f_kscfg/ks.cfg b/build/f_isoroot/f_kscfg/ks.cfg
index c09a09be9..1787db8c9 100644
--- a/build/f_isoroot/f_kscfg/ks.cfg
+++ b/build/f_isoroot/f_kscfg/ks.cfg
@@ -97,8 +97,8 @@ for drv in `ls -1 /sys/block | grep "sd\|hd\|vd\|cciss"`; do
 done
 default_drive=`echo ${drives} ${removable_drives} | awk '{print $1}'`
 
-installdrive="undefined"
-forceformat="no"
+installdrive=${installdrive:-undefined}
+forceformat=${forceformat:-no}
 for I in $(cat /proc/cmdline); do
   case "$I" in
     *=*)
@@ -628,4 +628,4 @@ if [[ ! -z $adminif ]]; then
     /etc/sysconfig/network-scripts/ifcfg-${ifname%%:*} > \
     /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${adminif}
 fi
-%end
\ No newline at end of file
+%end
diff --git a/build/f_isoroot/f_kscfg/ks.cfg.orig b/build/f_isoroot/f_kscfg/ks.cfg.orig
index a752dacac..60e124ae3 100644
--- a/build/f_isoroot/f_kscfg/ks.cfg.orig
+++ b/build/f_isoroot/f_kscfg/ks.cfg.orig
@@ -97,8 +97,8 @@ for drv in `ls -1 /sys/block | grep "sd\|hd\|vd\|cciss"`; do
 done
 default_drive=`echo ${drives} ${removable_drives} | awk '{print $1}'`
 
-installdrive="undefined"
-forceformat="no"
+installdrive=${installdrive:-undefined}
+forceformat=${forceformat:-no}
 for I in $(cat /proc/cmdline); do
   case "$I" in
     *=*)
diff --git a/build/fuel_build_loop b/build/fuel_build_loop
new file mode 100755
index 000000000..7c6cb60db
--- /dev/null
+++ b/build/fuel_build_loop
@@ -0,0 +1,40 @@
+#!/bin/bash
+##############################################################################
+# Copyright (c) 2016 Ericsson AB and others.
+# stefan.k.berg@ericsson.com
+# jonas.bjurel@ericsson.com
+# 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
+##############################################################################
+
+LATEST_MIRROR_ID_URL=http://mirror.seed-cz1.fuel-infra.org
+
+LATEST_TARGET_UBUNTU=$(curl -sSf "${LATEST_MIRROR_ID_URL}/mos-repos/ubuntu/8.0.target.txt" | head -1)
+export MIRROR_MOS_UBUNTU_ROOT="/mos-repos/ubuntu/${LATEST_TARGET_UBUNTU}"
+
+LATEST_TARGET_CENTOS=$(curl -sSf "${LATEST_MIRROR_ID_URL}/mos-repos/centos/mos8.0-centos7-fuel/os.target.txt" | head -1)
+export MIRROR_FUEL="${LATEST_MIRROR_ID_URL}/mos-repos/centos/mos8.0-centos7-fuel/${LATEST_TARGET_CENTOS}/x86_64"
+
+echo "MIRROR_MOS_UBUNTU_ROOT=${MIRROR_MOS_UBUNTU_ROOT}"
+echo "MIRROR_FUEL=${MIRROR_FUEL}"
+
+maxcount=10
+cnt=0
+rc=1
+while [ $cnt -lt $maxcount ] && [ $rc -ne 0 ]
+do
+    cnt=$[cnt + 1]
+    echo -e "\n\n\n*** Starting build attempt # $cnt"
+    cd /tmp/fuel-main
+    make clean
+    make iso
+    rc=$?
+    if [ $rc -ne 0 ]; then
+        echo "### Build failed with rc $rc ###"
+    else
+        echo "### Build successful at attempt # $cnt"
+    fi
+done
+exit $rc
diff --git a/build/install/install.sh b/build/install/install.sh
index 6155a4162..4e0389ed8 100755
--- a/build/install/install.sh
+++ b/build/install/install.sh
@@ -464,7 +464,7 @@ if [ $MODE = "iso" ]; then
     TMP_ISOPUPPET=`mktemp -d /tmp/XXXXXXX`
     ORIGISO=$2
     NEWISO=$3
-    VOLUMEID="$4 $5"
+    VOLUMEID="$4_$5"
     REPORTFILE="${NEWISO}.txt"
     echo "Opening reportfile at $REPORTFILE"
     touch $REPORTFILE
-- 
cgit