summaryrefslogtreecommitdiffstats
path: root/build
diff options
context:
space:
mode:
Diffstat (limited to 'build')
-rw-r--r--build/Makefile32
-rwxr-xr-xbuild/cache.sh7
-rw-r--r--build/docker/Dockerfile3
-rwxr-xr-xbuild/docker/runcontext2
-rw-r--r--build/f_isoroot/Makefile11
-rw-r--r--build/f_isoroot/f_bgpvpn-pluginbuild/Makefile3
-rwxr-xr-xbuild/f_isoroot/f_bootstrap/bootstrap_admin_node.sh30
-rwxr-xr-xbuild/f_isoroot/f_bootstrap/bootstrap_admin_node.sh.orig22
-rw-r--r--build/f_isoroot/f_isolinux/Makefile46
-rw-r--r--build/f_isoroot/f_isolinux/isolinux.cfg32
-rw-r--r--build/f_isoroot/f_isolinux/isolinux.cfg.orig32
-rw-r--r--build/f_isoroot/f_kscfg/Makefile6
-rw-r--r--build/f_isoroot/f_kscfg/ks.cfg6
-rw-r--r--build/f_isoroot/f_kscfg/ks.cfg.orig4
-rw-r--r--build/f_isoroot/f_odlpluginbuild/Makefile8
-rw-r--r--build/f_isoroot/f_onosfwpluginbuild/Makefile3
-rw-r--r--build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile3
-rw-r--r--build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile3
-rw-r--r--build/f_isoroot/f_qemupluginbuild/Makefile3
-rw-r--r--build/f_isoroot/f_repobuild/Makefile3
-rwxr-xr-xbuild/f_isoroot/f_repobuild/select_ubuntu_repo.sh28
-rw-r--r--build/f_isoroot/f_vsperfpluginbuild/Makefile3
-rwxr-xr-xbuild/fuel_build_loop32
-rwxr-xr-xbuild/install/install.sh2
-rwxr-xr-xbuild/select_closest_fuel_mirror.py35
25 files changed, 318 insertions, 41 deletions
diff --git a/build/Makefile b/build/Makefile
index 84fddc3ae..3d7dd634d 100644
--- a/build/Makefile
+++ b/build/Makefile
@@ -20,7 +20,7 @@ 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
@@ -43,6 +43,24 @@ export DOCKERIMG = opnfv.org/ubuntu-builder:14.04
export TOPDIR := $(shell pwd)
export REPOINFO := $(BUILD_BASE)/repo_info.sh
+# Use snapshots
+# Use nearby repositories
+export MIRROR_UBUNTU_URL := $(shell ./f_isoroot/f_repobuild/select_ubuntu_repo.sh --url)
+export MIRROR_UBUNTU := $(shell echo "$(MIRROR_UBUNTU_URL)" | cut -d'/' -f3 )
+export MIRROR_UBUNTU_ROOT := $(shell echo -n '/' ; echo "$(MIRROR_UBUNTU_URL)" | cut -d'/' -f4-)
+
+export LATEST_MIRROR_ID_URL := http://$(shell ./select_closest_fuel_mirror.py)
+
+export MIRROR_MOS_UBUNTU := $(shell echo "$(LATEST_MIRROR_ID_URL)" | cut -d'/' -f3)
+export LATEST_TARGET_UBUNTU := $(shell curl -sSf "$(MIRROR_MOS_UBUNTU)/mos-repos/ubuntu/8.0.target.txt" | head -1)
+export MIRROR_MOS_UBUNTU_ROOT := "/mos-repos/ubuntu/$(LATEST_TARGET_UBUNTU)"
+
+export LATEST_TARGET_CENTOS := $(shell 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"
+
+# uncomment and use: make print-VARIABLE
+#print-% : ; @echo $* = $($*)
+
#Build subclasses
SUBDIRS := f_isoroot
@@ -94,11 +112,16 @@ $(ISOCACHE):
cd /tmp/fuel-main && patch -f -p0 < $(TOPDIR)/fuel-main_docker_version.patch
#
cd /tmp/fuel-main && ./prepare-build-env.sh
+ # Verify that Docker is alive
+ sudo docker info
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 .
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
.PHONY: mount-origiso umount-origiso
mount-origiso: $(ISOCACHE)
@@ -181,7 +204,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/cache.sh b/build/cache.sh
index 52d28fa33..b5f090210 100755
--- a/build/cache.sh
+++ b/build/cache.sh
@@ -19,7 +19,6 @@ exit_trap() {
trap exit_trap EXIT
CACHETRANSPORT=${CACHETRANSPORT:-"curl --silent"}
-CACHEBASE=${CACHEBASE:-"file://${HOME}/cache"}
CACHEMAXAGE=${CACHEMAXAGE:-$[14*24*3600]}
CACHEDEBUG=${CACHEDEBUG:-1}
@@ -139,6 +138,12 @@ getcommitid() {
fi
}
+
+
+if [ -z "$CACHEBASE" ]; then
+ errorexit "CACHEBASE not set - exiting..."
+fi
+
case $1 in
getbiweek)
if [ $# -ne 1 ]; then
diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile
index 9d1881c05..4ac51476e 100644
--- a/build/docker/Dockerfile
+++ b/build/docker/Dockerfile
@@ -24,9 +24,12 @@ RUN echo "ALL ALL=NOPASSWD: ALL" > /etc/sudoers.d/open-sudo
RUN echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy RSYNC_PROXY RSYNC_CONNECT_PROG npm_config_registry\"" > /etc/sudoers.d/keep-proxies
# Keeping PWD is needed to build as root
RUN echo "Defaults env_keep += \"PWD\"" > /etc/sudoers.d/keep-pwd
+# Keeping variables for ISO build
+RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL\"" > /etc/sudoers.d/keep-mos
RUN chmod 0440 /etc/sudoers.d/open-sudo
RUN chmod 0440 /etc/sudoers.d/keep-proxies
RUN chmod 0440 /etc/sudoers.d/keep-pwd
+RUN chmod 0440 /etc/sudoers.d/keep-mos
RUN chmod 4755 /bin/fusermount
ADD ./setcontext /root/setcontext
diff --git a/build/docker/runcontext b/build/docker/runcontext
index 4ddd754f9..2df765868 100755
--- a/build/docker/runcontext
+++ b/build/docker/runcontext
@@ -111,7 +111,7 @@ if [ -n "$CACHEBASE" ]; then
fi
fi
-RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE -e BUILD_FUEL_PLUGINS -u $USER_ID:$GROUP_ID -w $PWD -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
+RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL -u $USER_ID:$GROUP_ID -w $PWD -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
# Passing "debug" puts up an interactive bash shell
if [ "$1" == "debug" ]; then
diff --git a/build/f_isoroot/Makefile b/build/f_isoroot/Makefile
index 0f7f14fa0..fc4bf79ba 100644
--- a/build/f_isoroot/Makefile
+++ b/build/f_isoroot/Makefile
@@ -9,19 +9,20 @@
##############################################################################
# Add Fuel plugin build targets here
-PLUGINS = f_odlpluginbuild f_qemupluginbuild f_ovs-nsh-dpdk-pluginbuild f_onosfwpluginbuild f_bgpvpn-pluginbuild f_ovsnfv-dpdk-pluginbuild f_vsperfpluginbuild
+PLUGINS = f_odlpluginbuild
+#NON_8-0_REBASED_PLUGINS = f_qemupluginbuild f_ovs-nsh-dpdk-pluginbuild f_onosfwpluginbuild f_bgpvpn-pluginbuild f_ovsnfv-dpdk-pluginbuild f_vsperfpluginbuild
# If the BUILD_FUEL_PLUGINS environment variable is set, only build the plugins
# indicated therein.
# 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_bgpvpn-pluginbuild/Makefile b/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
index a99a426b6..71f2771a5 100644
--- a/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
+++ b/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
@@ -51,6 +51,9 @@ release:.bgpvpnbuild
$(REPOINFO) -r . > gitinfo_bgpvpnplugin.txt
rm -rf fuel-plugin-bgpvpn
touch .bgpvpnbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
#############################################################################
# Cache operations - only used when building through ci/build.sh
diff --git a/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh b/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
index d057d0aee..a5ca56c64 100755
--- a/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
+++ b/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh
@@ -3,7 +3,8 @@ mkdir -p /var/log/puppet
exec > >(tee -i /var/log/puppet/bootstrap_admin_node.log)
exec 2>&1
-FUEL_RELEASE=$(grep release: /etc/fuel/version.yaml | cut -d: -f2 | tr -d '" ')
+FUEL_RELEASE=$(cat /etc/fuel_release)
+ASTUTE_YAML='/etc/fuel/astute.yaml'
BOOTSTRAP_NODE_CONFIG="/etc/fuel/bootstrap_admin_node.conf"
bs_build_log='/var/log/fuel-bootstrap-image-build.log'
bs_status=0
@@ -48,6 +49,8 @@ update_done_message="We recommend reviewing and applying Maintenance Updates \
for this release of Mirantis OpenStack: \
https://docs.mirantis.com/openstack/fuel/fuel-${FUEL_RELEASE}/\
release-notes.html#maintenance-updates"
+fuelmenu_fail_message="Fuelmenu was not able to generate '/etc/fuel/astute.yaml' file! \
+Please, restart it manualy using 'fuelmenu' command."
function countdown() {
local i
@@ -211,6 +214,10 @@ done
shopt -u nullglob
### OPNFV addition END
+# Enable sshd
+systemctl enable sshd
+systemctl start sshd
+
if [[ "$showmenu" == "yes" || "$showmenu" == "YES" ]]; then
fuelmenu
else
@@ -232,9 +239,12 @@ if [[ "$showmenu" == "yes" || "$showmenu" == "YES" ]]; then
fi
fi
-# Enable sshd
-systemctl enable sshd
-systemctl start sshd
+if [ ! -f "${ASTUTE_YAML}" ]; then
+ echo ${fuelmenu_fail_message}
+ fail
+fi
+
+systemctl reload sshd
# Enable iptables
systemctl enable iptables.service
@@ -283,19 +293,19 @@ make_ubuntu_bootstrap_stub () {
}
get_bootstrap_flavor () {
- local ASTUTE_YAML='/etc/fuel/astute.yaml'
python <<-EOF
- from fuelmenu.fuelmenu import Settings
- conf = Settings().read("$ASTUTE_YAML").get('BOOTSTRAP', {})
+ from yaml import safe_load
+ with open("$ASTUTE_YAML", 'r') as f:
+ conf = safe_load(f).get('BOOTSTRAP', {})
print(conf.get('flavor', 'centos').lower())
EOF
}
get_bootstrap_skip () {
- local ASTUTE_YAML='/etc/fuel/astute.yaml'
python <<-EOF
- from fuelmenu.fuelmenu import Settings
- conf = Settings().read("$ASTUTE_YAML").get('BOOTSTRAP', {})
+ from yaml import safe_load
+ with open("$ASTUTE_YAML", 'r') as f:
+ conf = safe_load(f).get('BOOTSTRAP', {})
print(conf.get('skip_default_img_build', False))
EOF
}
diff --git a/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh.orig b/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh.orig
index e1c3c7365..69e38e42a 100755
--- a/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh.orig
+++ b/build/f_isoroot/f_bootstrap/bootstrap_admin_node.sh.orig
@@ -3,7 +3,8 @@ mkdir -p /var/log/puppet
exec > >(tee -i /var/log/puppet/bootstrap_admin_node.log)
exec 2>&1
-FUEL_RELEASE=$(grep release: /etc/fuel/version.yaml | cut -d: -f2 | tr -d '" ')
+FUEL_RELEASE=$(cat /etc/fuel_release)
+ASTUTE_YAML='/etc/fuel/astute.yaml'
BOOTSTRAP_NODE_CONFIG="/etc/fuel/bootstrap_admin_node.conf"
bs_build_log='/var/log/fuel-bootstrap-image-build.log'
bs_status=0
@@ -48,6 +49,8 @@ update_done_message="We recommend reviewing and applying Maintenance Updates \
for this release of Mirantis OpenStack: \
https://docs.mirantis.com/openstack/fuel/fuel-${FUEL_RELEASE}/\
release-notes.html#maintenance-updates"
+fuelmenu_fail_message="Fuelmenu was not able to generate '/etc/fuel/astute.yaml' file! \
+Please, restart it manualy using 'fuelmenu' command."
function countdown() {
local i
@@ -222,6 +225,11 @@ if [[ "$showmenu" == "yes" || "$showmenu" == "YES" ]]; then
fi
fi
+if [ ! -f "${ASTUTE_YAML}" ]; then
+ echo ${fuelmenu_fail_message}
+ fail
+fi
+
# Enable sshd
systemctl enable sshd
systemctl start sshd
@@ -273,19 +281,19 @@ make_ubuntu_bootstrap_stub () {
}
get_bootstrap_flavor () {
- local ASTUTE_YAML='/etc/fuel/astute.yaml'
python <<-EOF
- from fuelmenu.fuelmenu import Settings
- conf = Settings().read("$ASTUTE_YAML").get('BOOTSTRAP', {})
+ from yaml import safe_load
+ with open("$ASTUTE_YAML", 'r') as f:
+ conf = safe_load(f).get('BOOTSTRAP', {})
print(conf.get('flavor', 'centos').lower())
EOF
}
get_bootstrap_skip () {
- local ASTUTE_YAML='/etc/fuel/astute.yaml'
python <<-EOF
- from fuelmenu.fuelmenu import Settings
- conf = Settings().read("$ASTUTE_YAML").get('BOOTSTRAP', {})
+ from yaml import safe_load
+ with open("$ASTUTE_YAML", 'r') as f:
+ conf = safe_load(f).get('BOOTSTRAP', {})
print(conf.get('skip_default_img_build', False))
EOF
}
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/f_isoroot/f_odlpluginbuild/Makefile b/build/f_isoroot/f_odlpluginbuild/Makefile
index ba5a06b0e..024cd4a50 100644
--- a/build/f_isoroot/f_odlpluginbuild/Makefile
+++ b/build/f_isoroot/f_odlpluginbuild/Makefile
@@ -8,7 +8,7 @@
##############################################################################
TOP := $(shell pwd)
-ODL_BRANCH=7.0
+ODL_BRANCH=brahmaputra-release
ODL_REPO="https://github.com/openstack/fuel-plugin-opendaylight.git"
.PHONY: all
@@ -32,11 +32,15 @@ release:.odlbuild
sudo gem install fpm
sudo pip install fuel-plugin-builder
git clone -b $(ODL_BRANCH) $(ODL_REPO)
- fpb --debug --build fuel-plugin-opendaylight/
+ # Temporary location of working Be snapshot
+ ODL_TARBALL_LOCATION=http://devel.opt.im/distribution-karaf-0.4.0-20160118.091622-3555.tar.gz fpb --debug --build fuel-plugin-opendaylight/
mv fuel-plugin-opendaylight/opendaylight*.rpm .
$(REPOINFO) -r . > gitinfo_odlplugin.txt
rm -rf fuel-plugin-opendaylight
touch .odlbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
#############################################################################
# Cache operations - only used when building through ci/build.sh
diff --git a/build/f_isoroot/f_onosfwpluginbuild/Makefile b/build/f_isoroot/f_onosfwpluginbuild/Makefile
index 0cf290c1c..9516e3d46 100644
--- a/build/f_isoroot/f_onosfwpluginbuild/Makefile
+++ b/build/f_isoroot/f_onosfwpluginbuild/Makefile
@@ -49,6 +49,9 @@ release:.onosbuild
$(REPOINFO) -r . > gitinfo_onos-plugin.txt
@rm -rf fuel-plugin-onos
@touch .onosbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
#############################################################################
# Cache operations - only used when building through ci/build.sh
diff --git a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
index 700a93c0d..f89f8d980 100644
--- a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
+++ b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
@@ -50,6 +50,9 @@ release:.ovsbuild
$(REPOINFO) -r . > gitinfo_ovs-nsh-dpdk-plugin.txt
@rm -rf fuel-plugin-ovs
@touch .ovsbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
#############################################################################
# Cache operations - only used when building through ci/build.sh
diff --git a/build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile b/build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile
index 70fd22409..a74687307 100644
--- a/build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile
+++ b/build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile
@@ -50,6 +50,9 @@ release:.ovsnfvbuild
$(REPOINFO) -r . > gitinfo_ovsnfv-dpdk-plugin.txt
@rm -rf fuel-plugin-ovsnfv
@touch .ovsnfvbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
#############################################################################
# Cache operations - only used when building through ci/build.sh
diff --git a/build/f_isoroot/f_qemupluginbuild/Makefile b/build/f_isoroot/f_qemupluginbuild/Makefile
index 126e20549..0f245aec3 100644
--- a/build/f_isoroot/f_qemupluginbuild/Makefile
+++ b/build/f_isoroot/f_qemupluginbuild/Makefile
@@ -50,6 +50,9 @@ release:.qemubuild
$(REPOINFO) -r . > gitinfo_qemu-plugin.txt
@rm -rf fuel-plugin-qemu
@touch .qemubuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
#############################################################################
# Cache operations - only used when building through ci/build.sh
diff --git a/build/f_isoroot/f_repobuild/Makefile b/build/f_isoroot/f_repobuild/Makefile
index 522722e66..1fc703031 100644
--- a/build/f_isoroot/f_repobuild/Makefile
+++ b/build/f_isoroot/f_repobuild/Makefile
@@ -45,6 +45,9 @@ nailgun:
sudo su - -c /opt/fuel-createmirror-*/fuel-createmirror
sudo chmod -R 755 /var/www/nailgun
cp -Rp /var/www/nailgun .
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
.PHONY: clean
clean:
diff --git a/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh b/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh
index cb05fe136..992359afd 100755
--- a/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh
+++ b/build/f_isoroot/f_repobuild/select_ubuntu_repo.sh
@@ -11,6 +11,19 @@ RSYNC="rsync -4 --contimeout 5 --no-motd --list-only"
# local mirror can be found after four attempts, the default archive
# is returned instead.
+return_url=0
+
+while [ "$1" != "" ]; do
+ case $1 in
+ -u | --url ) shift
+ return_url=1
+ ;;
+ # Shift all the parameters down by one
+ esac
+ shift
+done
+
+
cnt=0
while [ $cnt -lt 4 ]
do
@@ -21,13 +34,22 @@ do
then
if ! $RSYNC "${host}::ubuntu/Archive-Update-in-Progress*" &> /dev/null
then
- echo "$host"
- exit 0
+ if [ "$return_url" = "1" ]; then
+ echo "$url"
+ exit 0
+ else
+ echo "$host"
+ exit 0
+ fi
fi
fi
done
cnt=$[cnt + 1]
sleep 15
done
-echo "archive.ubuntu.com"
+if [ "$return_url" = "1" ]; then
+ echo "http://archive.ubuntu.com/ubuntu/"
+else
+ echo "archive.ubuntu.com"
+fi
diff --git a/build/f_isoroot/f_vsperfpluginbuild/Makefile b/build/f_isoroot/f_vsperfpluginbuild/Makefile
index ccf596a14..c9653d785 100644
--- a/build/f_isoroot/f_vsperfpluginbuild/Makefile
+++ b/build/f_isoroot/f_vsperfpluginbuild/Makefile
@@ -50,6 +50,9 @@ release:.vsperfbuild
$(REPOINFO) -r . > gitinfo_vsperf-plugin.txt
@rm -rf fuel-plugin-vsperf
@touch .vsperfbuild
+ # Store artifact in cache straight away if caching is enabled
+ # (no .cacheid will be present unless this is a cached build)
+ test -f .cacheid && $(MAKE) -f Makefile put-cache || exit 0
#############################################################################
# Cache operations - only used when building through ci/build.sh
diff --git a/build/fuel_build_loop b/build/fuel_build_loop
new file mode 100755
index 000000000..7e26b98b8
--- /dev/null
+++ b/build/fuel_build_loop
@@ -0,0 +1,32 @@
+#!/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
+##############################################################################
+
+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
diff --git a/build/select_closest_fuel_mirror.py b/build/select_closest_fuel_mirror.py
new file mode 100755
index 000000000..0fdc69eac
--- /dev/null
+++ b/build/select_closest_fuel_mirror.py
@@ -0,0 +1,35 @@
+#!/usr/bin/python
+##############################################################################
+# 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
+##############################################################################
+
+# Select closest fuel mirror based on latency measured with ping.
+# Failsafe: The us1 mirror
+
+from subprocess import Popen,PIPE
+import re
+from operator import itemgetter
+
+mirrors = [ "us1", "cz1" ]
+FNULL = open('/dev/null', 'w')
+try:
+ re_avg = re.compile(r'.* = [^/]*/([^/]*).*')
+
+ pingtime = {}
+ for mirror in mirrors:
+ fqdn = "mirror.seed-"+mirror+".fuel-infra.org"
+ pingtime[fqdn] = 0
+ pipe = Popen("ping -c 3 " + fqdn + " | tail -1",shell = True, stdout=PIPE, stderr=FNULL)
+ avg = pipe.communicate()[0]
+ pipe.stdout.close()
+ pingtime[fqdn] = float(re_avg.split(avg)[1])
+
+ print sorted(pingtime.items(), key=itemgetter(1))[0][0]
+except:
+ print "mirror.seed-"+mirrors[0]+".fuel-infra.org"