Turn on fuelmenu by default, turn off biosdevname 01/8501/1
authorStefan K. Berg <stefan.k.berg@ericsson.com>
Wed, 20 Jan 2016 16:53:55 +0000 (17:53 +0100)
committerStefan Berg <sfb@consultron.com>
Fri, 29 Jan 2016 12:59:45 +0000 (13:59 +0100)
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>
(cherry picked from commit 35697966da656585c43e2a2342a135ada65703cb)

build/Makefile
build/f_isoroot/Makefile
build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
build/f_isoroot/f_isolinux/Makefile [new file with mode: 0644]
build/f_isoroot/f_isolinux/isolinux.cfg [new file with mode: 0644]
build/f_isoroot/f_isolinux/isolinux.cfg.orig [new file with mode: 0644]
build/f_isoroot/f_kscfg/Makefile
build/f_isoroot/f_kscfg/ks.cfg
build/f_isoroot/f_kscfg/ks.cfg.orig
build/fuel_build_loop [new file with mode: 0755]
build/install/install.sh

index e3b79c2..6a74ad9 100644 (file)
@@ -20,14 +20,14 @@ SHELL = /bin/bash
 #Input args
 export ISOSRC = file:$(shell pwd)/fuel-7.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!
@@ -99,8 +99,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
@@ -184,7 +184,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
index 8f84b6a..ec0db48 100644 (file)
@@ -14,10 +14,12 @@ PLUGINS = f_odlpluginbuild f_qemupluginbuild f_ovs-nsh-dpdk-pluginbuild f_onosfw
 # If the BUILD_FUEL_PLUGINS environment variable is set, only build the plugins
 # indicated therein.
 ifdef BUILD_FUEL_PLUGINS
-SUBDIRS = f_kscfg f_bootstrap f_repobuild $(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 f_isolinux f_repobuild $(PLUGINS)
+SUBDIRS = f_kscfg f_bootstrap f_isolinux $(PLUGINS)
 endif
 SUBCLEAN = $(addsuffix .clean,$(SUBDIRS))
 
index 065d0cb..6318c5d 100755 (executable)
@@ -111,32 +111,24 @@ get_bootstrap_flavor () {
 
 # Actually build the bootstrap image
 build_ubuntu_bootstrap () {
-       local ret=1
-       local max_attempts=3
-       local config='/etc/fuel-bootstrap-image.conf'
-       local log='/var/log/fuel-bootstrap-image-build.log'
-       if ! grep -qE '^BOOTSTRAP_SSH_KEYS' "$config"; then
-               # FIXME: config file generated by fuelmenu has no trailing newline
-               echo >> "$config"
-               cat >> "$config" <<-EOF
-               BOOTSTRAP_SSH_KEYS=/root/.ssh/id_rsa.pub
-               EOF
-       fi
-       for n in `seq 1 $max_attempts`; do
-               echo "Bulding bootstrap image, attempt $n" >&2
-               if fuel-bootstrap-image >>"$log" 2>&1; then
-                       ret=0
-                       fuel-bootstrap-image-set "ubuntu"
-                       break
-               fi
-       done
-       if [ $ret -ne 0 ]; then
-               warning="WARNING: failed to build the bootstrap image, see $log for details.
-Perhaps your Internet connection is broken. Please fix the problem and run
-\`fuel-bootstrap-image-set ubuntu\`"
-               fuel notify --topic warning --send "$warning"
-       fi
-       return $ret
+        local ret=1
+        echo ${bs_progress_message} >&2
+        set_ui_bootstrap_error "${bs_progress_message}" >&2
+# 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
+          ret=1
+          set_ui_bootstrap_error "${bs_error_message}" >&2
+        fi
+        # perform hard-return from func
+        # this part will update input $1 variable
+        local  __resultvar=$1
+        eval $__resultvar="'${ret}'"
+        return $ret
 }
 
 
diff --git a/build/f_isoroot/f_isolinux/Makefile b/build/f_isoroot/f_isolinux/Makefile
new file mode 100644 (file)
index 0000000..b683ea3
--- /dev/null
@@ -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 (file)
index 0000000..0948c95
--- /dev/null
@@ -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 (file)
index 0000000..2b3e7e3
--- /dev/null
@@ -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
index fe74041..2a82a18 100644 (file)
@@ -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
index 8c20971..e16139a 100644 (file)
@@ -36,9 +36,15 @@ 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"
-for I in `cat /proc/cmdline`; do case "$I" in *=*) eval $I;; esac ; done
+installdrive=${installdrive:-undefined}
+forceformat=${forceformat:-no}
+for I in $(cat /proc/cmdline); do
+  case "$I" in
+    *=*)
+      if ! [[ "${I}" =~ "." ]]; then eval "$I"; fi
+    ;;
+  esac
+done
 
 set ${drives} ${removable_drives}
 numdrives=`echo $#`
@@ -607,3 +613,18 @@ cp -f /etc/skel/.bash* /root/
 [[ $(virt-what) = "virtualbox" ]] && echo "blacklist i2c_piix4" > /etc/modprobe.d/blacklist-i2c-piix4.conf
 
 %end
+
+
+%post --nochroot --log=/mnt/sysimage/root/anaconda-post-interface-settings.log
+#!/bin/bash
+set -x
+
+source "/mnt/sysimage/root/anaconda.cmdline.vars"
+
+if [[ ! -z $adminif ]]; then
+  rm -f /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${ifname%%:*}
+  sed "s/${ifname%%:*}/${adminif}/g" \
+    /etc/sysconfig/network-scripts/ifcfg-${ifname%%:*} > \
+    /mnt/sysimage/etc/sysconfig/network-scripts/ifcfg-${adminif}
+fi
+%end
index 148ef99..41a475b 100644 (file)
@@ -36,9 +36,15 @@ 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"
-for I in `cat /proc/cmdline`; do case "$I" in *=*) eval $I;; esac ; done
+installdrive=${installdrive:-undefined}
+forceformat=${forceformat:-no}
+for I in $(cat /proc/cmdline); do
+  case "$I" in
+    *=*)
+      if ! [[ "${I}" =~ "." ]]; then eval "$I"; fi
+    ;;
+  esac
+done
 
 set ${drives} ${removable_drives}
 numdrives=`echo $#`
diff --git a/build/fuel_build_loop b/build/fuel_build_loop
new file mode 100755 (executable)
index 0000000..7c6cb60
--- /dev/null
@@ -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
index 6155a41..4e0389e 100755 (executable)
@@ -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