build: Rework patch mechanism for Fuel submodules 91/22791/8
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sat, 1 Oct 2016 11:18:11 +0000 (13:18 +0200)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Sun, 9 Oct 2016 14:33:43 +0000 (16:33 +0200)
While refactoring the patching mechanism, take care of:
- Sync submodule handling with Fuel@OPFNV;
- build: Investigate/prepare for moving patches to Fuel@OPNFV;
- build: Investigate divergent fuel-mirror;
- ISO build: cacheid for Fuel comps should not depend on
  Armband git commit;

CHANGE:
 Rename/shuffle patches while grouping them in "features",
 preparing for upstreaming them to Fuel@OPNFV and beyond.

CHANGE:
 Allow linking patches for better representing the dependency
 between one patch and different features.
 e.g. 0001-Add-arch-to-nailgun-release-and-target-image.patch:
   - part of `multiarch-fuel`, because it extends Fuel;
   - part of `direct-kernel-boot`, as arch is required for that;
   - part of `cross-bootstrap`, target image is arch-dependent;
 NOTE: Patch links are not staged to Fuel@OPNFV, they only serve
 as markers that a specific patch is part of a feature.

CHANGE:
 Kill all Fuel component submodules, now handled in Fuel@OPNFV:
  - fuel-agent
  - fuel-astute
  - fuel-library
  - fuel-mirror
  - fuel-nailgun-agent
  - fuel-web

CHANGE:
 Move armband-fuel-config.mk to armband git root.

FIXME: m1.micro-Increase-profile-RAM-size-to-128MB.patch is NOT
 part of `cross-bootstrap` feature, but patch context says so ...

FIXME: 0001-Add-arm64-deb-repositories-setup.patch is broken at
 `make patches-export` by removing spaces at EOL.

v2 -> v3:
 * Phony patch support (links to show a patch belongs to a feature);
 * Updated README.md
v3 -> v7:
 * Re-export Fuel submodules & plugins patches (update patch context);
 * Update Cavium mail addresses (s/caviumnetworks.com/cavium.com/);
 * Ignore submodule changes;
 * Add armband git repo info to gitinfo_fuel.txt at build time;

Implements: ARMBAND-136
Closes-bug: ARMBAND-95
Closes-bug: ARMBAND-93
Closes-bug: ARMBAND-92

Change-Id: I1a236d9f43b2e6dca22055911f696b43c22b5973
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
94 files changed:
.gitignore
.gitmodules
Makefile
README.md
armband-fuel-config.mk [new file with mode: 0644]
ci/build.sh
ci/deploy.sh
patches/fuel-agent/cross-bootstrap/0001-Use-qemu-debootstrap-for-image-creation.patch [moved from patches/fuel-agent/0001-Use-qemu-debootstrap-for-image-creation.patch with 85% similarity]
patches/fuel-agent/cross-bootstrap/0002-Add-FLASH_KERNEL_SKIP-true.patch [moved from patches/fuel-agent/0002-Add-FLASH_KERNEL_SKIP-true.patch with 90% similarity]
patches/fuel-agent/cross-bootstrap/0003-Fix-qemu-user-static-replacement.patch [moved from patches/fuel-agent/0003-Fix-qemu-user-static-replacement.patch with 90% similarity]
patches/fuel-agent/cross-bootstrap/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch [moved from patches/fuel-agent/0004-Prevent-common-cross-debootstrap-newaliases-issue.patch with 92% similarity]
patches/fuel-agent/cross-bootstrap/0005-FIXME-Add-force-yes-to-apt-get-dist-upgrade.patch [moved from patches/fuel-agent/0009-FIXME-Add-force-yes-to-apt-get-dist-upgrade.patch with 93% similarity]
patches/fuel-agent/cross-bootstrap/0006-UX-Update-bootstrap-target-build-time-estimate.patch [moved from patches/fuel-agent/0010-UX-Update-bootstrap-target-build-time-estimate.patch with 95% similarity]
patches/fuel-agent/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch [moved from patches/fuel-agent/0011-kernel-flavor-linux-image-generic-lts-xenial.patch with 91% similarity]
patches/fuel-agent/multiarch-efi/0001-Add-esp-partition-flag.patch [moved from patches/fuel-agent/0005-Add-esp-partition-flag.patch with 88% similarity]
patches/fuel-agent/multiarch-efi/0002-Add-fs-for-efi-partition.patch [moved from patches/fuel-agent/0007-Add-fs-for-efi-partition.patch with 88% similarity]
patches/fuel-astute/multiarch-efi/0001-Erase-EFI-boot-entry-on-EFI-systems.patch [moved from patches/fuel-astute/0001-Erase-EFI-boot-entry-on-EFI-systems.patch with 99% similarity]
patches/fuel-library/0001-ceph-Fix-obsolete-XFS-mount-param-delaylog.patch [moved from patches/fuel-library/0011-ceph-Fix-obsolete-XFS-mount-param-delaylog.patch with 85% similarity]
patches/fuel-library/0002-ceilometer-Fix-libvirt-bin-group-name-for-armband.patch [moved from patches/fuel-library/0012-ceilometer-Fix-libvirt-bin-group-name-for-armband.patch with 95% similarity]
patches/fuel-library/0003-compute-Fix-virtlogd-not-started-after-install.patch [moved from patches/fuel-library/0016-compute-Fix-virtlogd-not-started-after-install.patch with 93% similarity]
patches/fuel-library/arm64-bug-fixes/0001-nova-config-Disable-usb-tablet-for-aarch64.patch [moved from patches/fuel-library/0005-Disable-usb-tablet-for-aarch64.patch with 78% similarity]
patches/fuel-library/arm64-bug-fixes/0002-Install-vgabios-and-link-for-aarch64.patch [moved from patches/fuel-library/0007-Install-vgabios-and-link-for-aarch64.patch with 70% similarity]
patches/fuel-library/arm64-bug-fixes/0003-nova-Update-vga-console-defaults-for-armv7-aarch64.patch [moved from patches/fuel-library/0008-nova-Update-vga-console-defaults-for-armv7-aarch64.patch with 83% similarity]
patches/fuel-library/arm64-bug-fixes/0004-nova-AArch64-enable-hugepage-support.patch [moved from patches/fuel-library/0009-nova-AArch64-enable-hugepage-support.patch with 96% similarity]
patches/fuel-library/direct-kernel-boot/0001-upload_cirros-Add-direct-kernel-boot-support.patch [moved from patches/fuel-library/0006-upload_cirros-Add-direct-kernel-boot-support.patch with 90% similarity]
patches/fuel-library/direct-kernel-boot/0002-nova-Fix-inject-for-direct-boot-with-part-table.patch [moved from patches/fuel-library/0010-nova-Fix-inject-for-direct-boot-with-part-table.patch with 87% similarity]
patches/fuel-library/multiarch-efi/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch [moved from patches/fuel-library/0001-Add-arm64-templates-to-cobbler-and-nailgun.patch with 98% similarity]
patches/fuel-library/multiarch-efi/0002-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch [moved from patches/fuel-library/0014-Add-cobbler-grub-aarch64-to-cobbler-dependencies.patch with 100% similarity]
patches/fuel-library/multiarch-fuel/0001-Make-qemu-kvm-architecture-aware.patch [moved from patches/fuel-library/0003-Make-qemu-kvm-architecture-aware.patch with 85% similarity]
patches/fuel-library/multiarch-fuel/0002-Make-TestVM-creation-architecture-aware.patch [moved from patches/fuel-library/0004-Make-TestVM-creation-architecture-aware.patch with 96% similarity]
patches/fuel-library/multiarch-mirrors/0001-Add-arm64-for-auxiliary-repos.patch [moved from patches/fuel-library/0002-Add-arm64-for-auxiliary-repos.patch with 90% similarity]
patches/fuel-library/mysql-sst-provider/0001-Allow-configuring-MySQL-WSREP-SST-provider.patch [moved from patches/fuel-library/0013-Allow-configuring-MySQL-WSREP-SST-provider.patch with 85% similarity]
patches/fuel-library/upstream-backports/0001-Set-net.ipv4.ip_nonlocal_bind-1-for-vrouter-namespac.patch [moved from patches/fuel-library/0015-Set-net.ipv4.ip_nonlocal_bind-1-for-vrouter-namespace.patch with 99% similarity]
patches/fuel-library/upstream-backports/0002-Always-wait-for-MySQL-sync-on-service-refresh.patch [moved from patches/fuel-library/0017-Always-wait-for-MySQL-sync-on-service-refresh.patch with 88% similarity]
patches/fuel-library/upstream-backports/0003-Fix-MySQL-logging-dir-permissions-for-syslog.patch [moved from patches/fuel-library/0018-Fix-MySQL-logging-dir-permissions-for-syslog.patch with 98% similarity]
patches/fuel-mirror/0001-Set-mos-ubuntu-base-URL-to-linux.enea.com.patch
patches/fuel-mirror/kernel-bump/0001-kernel-flavor-Add-linux-image-generic-lts-xenial.patch [moved from patches/fuel-mirror/0003-kernel-flavor-Add-linux-image-generic-lts-xenial.patch with 83% similarity]
patches/fuel-plugin-opendaylight/0001-ODL-leveldb-leveldbjni-Enable-arm64-support.patch
patches/fuel-plugin-opendaylight/0002-opnfv-quagga-Build-for-UBUNTU_ARCH.patch
patches/fuel-plugin-opendaylight/0003-FIXME-ODL-wget-no-check-certificate-for-cache.patch
patches/fuel-plugin-ovs/0001-Cleanup-Use-dget-instead-of-wget-dpkg-source.patch [moved from patches/fuel-plugin-ovs/0002-Cleanup-Use-dget-instead-of-wget-dpkg-source.patch with 99% similarity]
patches/fuel-plugin-ovs/0002-Cleanup-Drop-git-dependency.patch [moved from patches/fuel-plugin-ovs/0003-Cleanup-Drop-git-dependency.patch with 97% similarity]
patches/fuel-plugin-ovs/0003-build-apt-force-yes.patch [moved from patches/fuel-plugin-ovs/0004-build-apt-force-yes.patch with 97% similarity]
patches/fuel-plugin-ovs/0004-pre_build_hook-Introduce-USE_DOCKER-option.patch [moved from patches/fuel-plugin-ovs/0005-pre_build_hook-Introduce-USE_DOCKER-option.patch with 99% similarity]
patches/fuel-plugin-ovs/0005-build-install-pre_build_hook-Prepare-multiarch.patch [moved from patches/fuel-plugin-ovs/0006-build-install-pre_build_hook-Prepare-multiarch.patch with 99% similarity]
patches/fuel-plugin-ovs/0006-AArch64-Add-native-build-support.patch [moved from patches/fuel-plugin-ovs/0007-AArch64-Add-native-build-support.patch with 99% similarity]
patches/fuel-plugin-ovs/0007-AArch64-Add-support-for-downloading-prebuilt-DEBs.patch [moved from patches/fuel-plugin-ovs/0008-AArch64-Add-support-for-downloading-prebuilt-DEBs.patch with 99% similarity]
patches/fuel-plugin-ovs/0008-build-docker-Use-host-s-network-stack.patch [moved from patches/fuel-plugin-ovs/0009-build-docker-Use-host-s-network-stack.patch with 100% similarity]
patches/fuel-plugin-ovs/0009-HACK-build-prebuilt-DEBs-src-bin-ver-mismatch.patch [moved from patches/fuel-plugin-ovs/0010-HACK-build-prebuilt-DEBs-src-bin-ver-mismatch.patch with 99% similarity]
patches/fuel-web/0001-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch
patches/fuel-web/0002-Add-arch-to-nailgun-release-and-target-image.patch
patches/fuel-web/cross-bootstrap/0000-Add-arch-to-nailgun-release-and-target-image.patch [new symlink]
patches/fuel-web/direct-kernel-boot/0000-Add-arch-to-nailgun-release-and-target-image.patch [new symlink]
patches/fuel-web/direct-kernel-boot/0001-direct-kernel-boot-for-cirros.patch [moved from patches/fuel-web/0004-direct-kernel-boot-for-cirros.patch with 94% similarity]
patches/fuel-web/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch [moved from patches/fuel-web/0007-kernel-flavor-linux-image-generic-lts-xenial.patch with 94% similarity]
patches/fuel-web/multiarch-fuel/0000-Add-arch-to-nailgun-release-and-target-image.patch [new symlink]
patches/fuel-web/multiarch-fuel/0000-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch [new symlink]
patches/fuel-web/multiarch-fuel/0001-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch [moved from patches/fuel-web/0005-FIXME-Disable-amd64-Mitaka-on-Ubuntu-for-now.patch with 94% similarity]
patches/fuel-web/mysql-sst-provider/0001-Add-configuration-item-for-WSREP-SST-provider.patch [moved from patches/fuel-web/0006-Add-configuration-item-for-WSREP-SST-provider.patch with 90% similarity]
patches/opnfv-fuel/0000-build-Use-OPNFV_GIT_SHA-for-ISO-preparer-ID.patch [moved from patches/opnfv-fuel/0046-build-Use-OPNFV_GIT_SHA-for-ISO-preparer-ID.patch with 52% similarity]
patches/opnfv-fuel/0001-build-Add-ARMBAND_BASE-support.patch [new file with mode: 0644]
patches/opnfv-fuel/0002-Fuel-VM-for-the-Enea-Armband-lab.patch [moved from patches/opnfv-fuel/0004-Fuel-VM-for-the-Enea-Armband-lab.patch with 97% similarity]
patches/opnfv-fuel/0003-dea_base-replace-grub-pc-by-grub-efi-arm64.patch [moved from patches/opnfv-fuel/0009-dea_base-replace-grub-pc-by-grub-efi-arm64.patch with 98% similarity]
patches/opnfv-fuel/0004-post-scripts-Allow-SSH-on-non-admin-ifaces.patch [moved from patches/opnfv-fuel/0010-post-scripts-Allow-SSH-on-non-admin-ifaces.patch with 100% similarity]
patches/opnfv-fuel/0005-deploy.py-add-a-time-stamp-to-the-new-ISO-image.patch [moved from patches/opnfv-fuel/0030-deploy.py-add-a-time-stamp-to-the-new-ISO-image.patch with 99% similarity]
patches/opnfv-fuel/0006-build-docker-Use-host-s-network-stack.patch [moved from patches/opnfv-fuel/0055-build-docker-Use-host-s-network-stack.patch with 93% similarity]
patches/opnfv-fuel/0006-deploy.sh-no-need-to-set-umask-0000.patch [deleted file]
patches/opnfv-fuel/0007-deploy-Fix-add-bootstrap-DEA-override-delay.patch [moved from patches/opnfv-fuel/0039-deploy-Fix-add-bootstrap-DEA-override-delay.patch with 94% similarity]
patches/opnfv-fuel/0015-build-Makefile-Overrideable-product-commit-hash.patch [deleted file]
patches/opnfv-fuel/0043-build-Add-armband.mk-config.patch [deleted file]
patches/opnfv-fuel/arm64-bug-fixes/0001-bootstrap-Add-lshw-package.patch [moved from patches/opnfv-fuel/0028-bootstrap-Add-lshw-package.patch with 92% similarity]
patches/opnfv-fuel/arm64-bug-fixes/0002-net-check-add-support-for-faulty-operstate.patch [moved from patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch with 84% similarity]
patches/opnfv-fuel/cross-bootstrap/0001-UX-Update-bootstrap-target-build-time-estimate.patch [moved from patches/opnfv-fuel/0027-UX-Update-bootstrap-target-build-time-estimate.patch with 71% similarity]
patches/opnfv-fuel/cross-bootstrap/0002-Build-bootstrap-image-for-arm64.patch [moved from patches/opnfv-fuel/0021-Build-bootstrap-image-for-arm64.patch with 56% similarity]
patches/opnfv-fuel/cross-bootstrap/0003-bootstrap-Use-public-Ubuntu-ports-mirrors.patch [moved from patches/opnfv-fuel/0022-bootstrap-Use-public-Ubuntu-ports-mirrors.patch with 92% similarity]
patches/opnfv-fuel/cross-bootstrap/0004-post-scripts-Enable-systemd-binfmt-for-first-boot.patch [moved from patches/opnfv-fuel/0031-post-scripts-Enable-systemd-binfmt-for-first-boot.patch with 85% similarity]
patches/opnfv-fuel/cross-bootstrap/0005-mcagent-Increase-max-shell-command-timeout-to-2h.patch [moved from patches/opnfv-fuel/0032-mcagent-Increase-max-shell-command-timeout-to-2h.patch with 95% similarity]
patches/opnfv-fuel/cross-bootstrap/0006-bootstrap-Use-gzip-instead-of-xz-compression.patch [moved from patches/opnfv-fuel/0033-bootstrap-Use-gzip-instead-of-xz-compression.patch with 98% similarity]
patches/opnfv-fuel/cross-bootstrap/0007-Nailgun-Increase-target-image-build-timeout.patch [moved from patches/opnfv-fuel/0034-Nailgun-Increase-target-image-build-timeout.patch with 93% similarity]
patches/opnfv-fuel/cross-bootstrap/0008-m1.micro-Increase-profile-RAM-size-to-128MB.patch [moved from patches/opnfv-fuel/0035-m1.micro-Increase-profile-RAM-size-to-128MB.patch with 98% similarity]
patches/opnfv-fuel/kernel-bump/0001-kernel-flavor-linux-image-generic-lts-xenial.patch [moved from patches/opnfv-fuel/0001-kernel-flavor-linux-image-generic-lts-xenial.patch with 93% similarity]
patches/opnfv-fuel/multiarch-efi/0001-FIXME-deploy-EFI-Skip-re-ordering-boot-via-IPMI.patch [moved from patches/opnfv-fuel/0002-FIXME-deploy-EFI-Skip-re-ordering-boot-via-IPMI.patch with 99% similarity]
patches/opnfv-fuel/multiarch-mirrors/0001-Add-arm64-deb-repositories-setup.patch [moved from patches/opnfv-fuel/0020-Add-arm64-deb-repositories-setup.patch with 97% similarity]
patches/opnfv-fuel/multiarch-plugins/0001-fpb-Support-multiple-versions-of-packages.patch [moved from patches/opnfv-fuel/0048-fpb-Support-multiple-versions-of-packages.patch with 96% similarity]
patches/opnfv-fuel/upstream-backports/0001-deploy.sh-Remove-check-for-root-rm-umask-0000.patch [moved from patches/opnfv-fuel/0007-Remove-check-for-root.patch with 51% similarity]
patches/opnfv-fuel/upstream-backports/0002-Backport-dpkg-checkbuilddeps-to-mk-build-deps.patch [moved from patches/opnfv-fuel/0040-Backport-dpkg-checkbuilddeps-to-mk-build-deps.patch with 87% similarity]
patches/vswitchperf/0001-ci-build-vsperf-make-qemu-system-name-arch-indep.patch
patches/vswitchperf/0002-s-u-build_base_machine-Arch-indep-libdir-s.patch
upstream/fuel-agent [deleted submodule]
upstream/fuel-astute [deleted submodule]
upstream/fuel-library [deleted submodule]
upstream/fuel-mirror [deleted submodule]
upstream/fuel-nailgun-agent [deleted submodule]
upstream/fuel-web [deleted submodule]

index b33bf70..c01c608 100644 (file)
@@ -1,3 +1,4 @@
+.submodules*
 build.log
 config.mk
 ci/clean_cache.sh
index 1fffefb..f37e0c9 100644 (file)
@@ -2,39 +2,19 @@
        path = upstream/fuel
        url = https://gerrit.opnfv.org/gerrit/fuel
        branch = master
-[submodule "fuel-library"]
-       path = upstream/fuel-library
-       url = https://github.com/openstack/fuel-library.git
-       branch = stable/mitaka
-[submodule "fuel-web"]
-       path = upstream/fuel-web
-       url = https://github.com/openstack/fuel-web.git
-       branch = stable/mitaka
-[submodule "fuel-agent"]
-       path = upstream/fuel-agent
-       url = https://github.com/openstack/fuel-agent.git
-       branch = stable/mitaka
-[submodule "fuel-mirror"]
-       path = upstream/fuel-mirror
-       url = https://github.com/openstack/fuel-mirror.git
-       branch = stable/mitaka
+       ignore = all
 [submodule "fuel-plugin-opendaylight"]
        path = upstream/fuel-plugin-opendaylight
        url = https://github.com/openstack/fuel-plugin-opendaylight.git
        branch = master
-[submodule "fuel-nailgun-agent"]
-       path = upstream/fuel-nailgun-agent
-       url = https://github.com/openstack/fuel-nailgun-agent
-       branch = stable/mitaka
+       ignore = all
 [submodule "fuel-plugin-ovs"]
        path = upstream/fuel-plugin-ovs
        url = https://github.com/openstack/fuel-plugin-ovs
        branch = master
+       ignore = all
 [submodule "vswitchperf"]
        path = upstream/vswitchperf
        url = https://gerrit.opnfv.org/gerrit/vswitchperf.git
        branch = master
-[submodule "fuel-astute"]
-       path = upstream/fuel-astute
-       url = https://github.com/openstack/fuel-astute.git
-       branch = stable/mitaka
+       ignore = all
index d3bc979..8300711 100644 (file)
--- a/Makefile
+++ b/Makefile
 ##############################################################################
 
 # NOTE: Armband patching consists of:
-# - clone upstream repositories to git submodules;
-# - checkout submodule commits where set in Fuel@OPNFV's config.mk
-#   (e.g. FUEL_ASTUTE_COMMIT=...);
-# - tag each submodule (before patching) with "armband-workbench-root";
+# - clone upstream repositories to git submodules, tracking remotes;
+# - tag each submodule (before patching) with "${A_OPNFV_TAG}-root";
 # - apply Armband patches for each submodule;
-# - tag each submodule (after patching) with "armband-workbench";
+# - tag each submodule (after patching) with "${OPNFV_TAG}";
+# - stage Fuel submodule patches by copying them to Fuel f_repos/patch dir;
 # - pass updated repository info to Fuel@OPNFV build system
-#   (e.g. FUEL_ASTUTE_COMMIT=HEAD) via armband.mk;
+#   (e.g. FUEL_PLUGIN_ODL_CHANGE="${OPNFV_TAG}") via armband-fuel-config.mk;
 
 # NOTE: Long-term goals (Armband repo should merge with Fuel@OPNFV):
 # - all build related changes should affect Fuel@OPNFV, NOT Armband;
-# - Armband make/build system should only handle patching,
-#   including eventual build related patching of Fuel@OPNFV,
-#   and then invoke Fuel@OPNFV's build system;
+# - Armband make/build system should only handle patching non-Fuel submodules,
+#   and then invoke Fuel@OPNFV's patch & build system;
 # - Fuel@OPNFV is made aware of an Armband type build by passing
 #   the "ARMBAND_BASE" env var;
 
-# Fist, inherit Fuel submodule commit references from Fuel@OPNFV
-# using "config.mk" as a make target that links to Fuel's config.mk.
-# Some values will be overriden at Fuel ISO build time by armband.mk.
-include config.mk
-
 export ARMBAND_BASE  := $(shell pwd)
 export OPNFV_GIT_SHA := $(shell git rev-parse HEAD)
 export REVSTATE
 
-# Prepare for future directory re-layout when merging with Fuel@OPNFV
-PATCH_DIR  := ${ARMBAND_BASE}/patches
-SUBMOD_DIR := ${ARMBAND_BASE}/upstream
-FUEL_BASE  := ${SUBMOD_DIR}/fuel
+include armband-fuel-config.mk
 
 all: release
 
-# Use config.mk & clean_cache.sh from Fuel@OPNFV
-config.mk: submodules-init
-       @ln -sf ${FUEL_BASE}/build/config.mk ${ARMBAND_BASE}/config.mk
-       @ln -sf ${FUEL_BASE}/ci/clean_cache.sh ${ARMBAND_BASE}/ci/clean_cache.sh
-
 # Fetch & update git submodules, checkout remote HEAD
 .PHONY: submodules-init
-submodules-init:
-       @if [ ! -d ${FUEL_BASE}/build ]; then \
-               git submodule -q init; \
-               git submodule -q sync; \
-               git submodule update --remote; \
+submodules-init: .submodules-init
+
+.submodules-init:
+       @if [ -n "${ARMBAND_TRACK_REMOTES}" ]; then \
+               git submodule update --init --remote 2>/dev/null; \
+       else \
+               git submodule update --init 2>/dev/null; \
        fi
+       @ln -sf ${A_FUEL_BASE}/ci/clean_cache.sh ${ARMBAND_BASE}/ci/clean_cache.sh
+       @touch $@
 
 # Clean any changes made to submodules, checkout Armband root commit
 .PHONY: submodules-clean
-submodules-clean: submodules-init
+submodules-clean: .submodules-init
+       @test ! -d ${F_REPOS_DIR} || $(MAKE) fuel-patches-clean
        @git submodule -q foreach ' \
                git am -q --abort 2>/dev/null; \
-               git checkout -q armband-workbench-root 2>/dev/null; \
-               git branch -q -D armband-workbench 2>/dev/null; \
-               git tag -d armband-workbench-root 2>/dev/null; \
+               git checkout -q -f ${A_OPNFV_TAG}-root 2>/dev/null; \
+               git branch -q -D opnfv-armband 2>/dev/null; \
+               git tag | grep ${A_OPNFV_TAG} | xargs git tag -d > /dev/null 2>&1; \
                git reset -q --hard HEAD; \
                git clean -xdff'
+       @rm -f .submodules-patched
 
 # Generate patches from submodules
 .PHONY: patches-export
-patches-export: submodules-init
+patches-export: .submodules-init
        @git submodule -q foreach ' \
-               mkdir -p ${PATCH_DIR}/$$name; \
-               git format-patch --no-signature \
-                       -o ${PATCH_DIR}/$$name -N armband-workbench-root'
-       @find ${PATCH_DIR} -name '*.patch' -exec sed -i -e '1d' {} \;
+               SUB_DIR=${A_PATCH_DIR}/$$name; \
+               git tag | awk "!/root/ && /${A_OPNFV_TAG}-fuel/" | while read A_TAG; do \
+                       SUB_FEATURE=`dirname $${A_TAG#${A_OPNFV_TAG}-fuel/}`; \
+                       echo "`tput setaf 2`== exporting $$name ($$A_TAG)`tput sgr0`"; \
+                       mkdir -p $$SUB_DIR/$${SUB_FEATURE} && \
+                       git format-patch --no-signature --ignore-space-at-eol \
+                               -o $$SUB_DIR/$$SUB_FEATURE -N $$A_TAG-root..$$A_TAG; \
+                       sed -i -e "1{/From: /!d}" -e "s/[[:space:]]*$$//" \
+                               $$SUB_DIR/$$SUB_FEATURE/*.patch; \
+               done'
 
 # Apply patches from patches/* to respective submodules
-# For repos pinned in Fuel@OPNFV's config.mk, checkout pinned commit first
 .PHONY: patches-import
-patches-import: submodules-init
-       @cd ${SUBMOD_DIR}/fuel-agent && git checkout -q ${FUEL_AGENT_COMMIT}
-       @cd ${SUBMOD_DIR}/fuel-astute && git checkout -q ${ASTUTE_COMMIT}
-       @cd ${SUBMOD_DIR}/fuel-library && git checkout -q ${FUELLIB_COMMIT}
-       @cd ${SUBMOD_DIR}/fuel-mirror && git checkout -q ${FUEL_MIRROR_COMMIT}
-       @cd ${SUBMOD_DIR}/fuel-nailgun-agent && \
-               git checkout -q ${FUEL_NAILGUN_AGENT_COMMIT}
-       @cd ${SUBMOD_DIR}/fuel-web && git checkout -q ${NAILGUN_COMMIT}
+patches-import: .submodules-init .submodules-patched
+
+.submodules-patched: ${A_PATCHES}
+       @$(MAKE) submodules-clean
        @git submodule -q foreach ' \
-               mkdir -p ${PATCH_DIR}/$$name; \
-               git tag armband-workbench-root; \
-               git checkout -q -b armband-workbench; \
-               if [ ! -z "$$(ls ${PATCH_DIR}/$$name/)" ]; then \
-                       echo "-- patching $$name"; \
-                       git am --whitespace=nowarn \
-                               --committer-date-is-author-date \
-                               ${PATCH_DIR}/$$name/*.patch; \
-               fi'
+               SUB_DIR=${A_PATCH_DIR}/$$name; mkdir -p $$SUB_DIR && \
+               git tag ${A_OPNFV_TAG}-root && \
+               git checkout -q -b opnfv-armband && \
+               find $$SUB_DIR -type d | sort | while read p_dir; do \
+                       SUB_PATCHES=$$(ls $$p_dir/*.patch 2>/dev/null); \
+                       if [ -n "$$SUB_PATCHES" ]; then \
+                               SUB_FEATURE=$${p_dir#$$SUB_DIR} \
+                               SUB_TAG=${A_OPNFV_TAG}-fuel$$SUB_FEATURE/patch; \
+                               echo "`tput setaf 2`== patching $$name ($$SUB_TAG)`tput sgr0`";\
+                               git tag $$SUB_TAG-root && git am -3 --whitespace=nowarn \
+                                       --committer-date-is-author-date $$SUB_PATCHES && \
+                               git tag $$SUB_TAG || exit 1; \
+                       fi \
+               done && \
+               git tag ${A_OPNFV_TAG}'
+       # Staging Fuel@OPNFV patches
+       @ls -d ${F_SUB_DIR}/* 2>/dev/null | while read p_sub_path; do \
+               SUB_NAME=`basename $$p_sub_path`; \
+               find ${A_PATCH_DIR}/$$SUB_NAME -name '*.patch' 2>/dev/null -exec sh -c '\
+                       A_PATCH={}; R_PATCH=$${A_PATCH#${A_PATCH_DIR}/}; \
+                       F_PATCH=${F_PATCH_DIR}/$${0}/armband/$${R_PATCH#$${0}/}; \
+                       if [ -f $$F_PATCH ]; then \
+                               echo "`tput setaf 3`* WARN: $$R_PATCH upstream.`tput sgr0`"; \
+                       else \
+                               if [ -h $$A_PATCH ]; then \
+                                       echo "`tput setaf 3`* PHONY: $$R_PATCH`tput sgr0`"; \
+                               else \
+                                       echo "`tput setaf 6`* Staging $$R_PATCH`tput sgr0`"; \
+                                       mkdir -p `dirname $$F_PATCH` && cp $$A_PATCH $$F_PATCH; \
+                               fi; \
+                       fi' "$$SUB_NAME" \; || true ; \
+       done
+       @touch $@
 
 # Pass down clean/deepclean/build to Fuel@OPNFV
 .PHONY: clean
-clean: submodules-init
-       $(MAKE) -e --no-print-directory -C ${FUEL_BASE}/build clean
+clean: .submodules-init
+       $(MAKE) -e --no-print-directory -C ${F_BUILD_DIR} clean
 
 .PHONY: deepclean
-deepclean: submodules-init
-       $(MAKE) -e --no-print-directory -C ${FUEL_BASE}/build deepclean
+deepclean: clean
+       $(MAKE) -e --no-print-directory -C ${F_BUILD_DIR} deepclean
+       @git submodule deinit -f .
+       @rm -f .submodules*
 
 .PHONY: build
-build:
-       $(MAKE) -e --no-print-directory -C ${FUEL_BASE}/build all
+build: patches-import
+       $(MAKE) -e --no-print-directory -C ${F_BUILD_DIR} all
 
 .PHONY: release
 release: export LC_ALL=en_US.UTF-8
-release: submodules-clean patches-import build
+release: build
+
+##############################################################################
+# Fuel@OPNFV patch operations - to be used only during development
+##############################################################################
+
+# Apply all Fuel@OPNFV patches, including Armband patches
+.PHONY: fuel-patches-import
+fuel-patches-import: .submodules-patched fuel-patches-clean
+       $(MAKE) -e -C ${F_REPOS_DIR} patches-import
+
+# Export Fuel@OPNFV patches, including Armband patches
+.PHONY: fuel-patches-export
+fuel-patches-export: .submodules-patched
+       $(MAKE) -e -C ${F_REPOS_DIR} patches-export
+       @ls -d ${F_PATCH_DIR}/* 2>/dev/null | while read p_sub_path; do \
+               SUB_NAME=`basename $$p_sub_path`; \
+               if [ -d $$p_sub_path/armband ]; then \
+                       echo "`tput setaf 6`* Pulling $$SUB_NAME patches.`tput sgr0`"; \
+                       cp -R $$p_sub_path/armband/* ${A_PATCH_DIR}/$$SUB_NAME && \
+                               rm -rf $$p_sub_path/armband; \
+               fi \
+       done
+
+.PHONY: fuel-patches-clean
+fuel-patches-clean:
+       $(MAKE) -e -C ${F_REPOS_DIR} clean
index 05563ee..fd360ea 100644 (file)
--- a/README.md
+++ b/README.md
@@ -17,30 +17,26 @@ The standard workflow should look as follows:
    $ make patches-import
 
    This will result in creation of:
-   - a tag called `armband-workbench-root` at the same commit as Fuel@OPNFV
-   hard sets in `build/config.mk` (inside fuel submodule);
-   - a new branch `armband-workbench` which will hold all the armband work.
+   - a tag called `${A_OPNFV_TAG}-root` at submodule remote branch HEAD;
+   - a new branch `opnfv-armband` which will hold all the armband work.
    Then each patch is applied on this new branch with `git-am`.
+   The new HEAD is tagged with `${A_OPNFV_TAG}`.
 
 4. Modify sub-projects for whatever you need.
    Commit your changes when you want them taken into account in the build.
 
+   NOTE: If you want to re-export patches, make sure to move the tag
+   `${A_OPNFV_TAG}` to the latest commit that should be included.
+
 5. Build with:
    $ make build
 
 6. Re-create patches via:
    $ make patches-export
 
-   Each commit on `armband-workbench` branch of each subproject will be
+   Each commit on `opnfv-armband` branch of each subproject will be
    exported to `patches/subproject/` via `git format-patch`.
 
-   NOTE: DO NOT commit changed submodules. Remember to commit only patches!
-
-   Commiting changed submodules (`git diff` will list something like:
-   `Subproject commit: {hash}`) will break the repo, as the new commit hash
-   is non-existant in the upstream repo, hence anybody cloning the repository
-   later will fail on `make submodules-init`.
-
 7. Clean workbench branches and tags with:
    $ make submodules-clean
 
@@ -52,3 +48,24 @@ and point it to `upstream/*` directory, i.e.:
 
    $ git submodule -b stable/mitaka add --name fuel-web \
      https://github.com/openstack/fuel-web.git upstream/fuel-web
+
+Fuel@OPNFV submodule patch development
+--------------------------------------
+Fuel-submodules (fuel-astute, ... , fuel-ui) patches also reside in Armband,
+like previously described patches that are applied to Armband submodules,
+but they are not directly applied to any submodule in Armband.
+Instead, they are copied (staged) to Fuel@OPNFV submodule, which will
+automatically pick them up and apply them to its own submodules
+(fuel-astute, ... , fuel-ui) during ISO build.
+
+The following helpers are available for working with patches for
+Fuel-submodules (fuel-astute, ... , fuel-ui):
+
+1. Clean Fuel-submodules (fuel-astute, ... , fuel-ui) patches
+   $ make fuel-patches-clean
+
+2. Import Fuel-submodules staged patches
+   $ make fuel-patches-import
+
+3. Export Fuel-submodules patches
+   $ make fuel-patches-export
diff --git a/armband-fuel-config.mk b/armband-fuel-config.mk
new file mode 100644 (file)
index 0000000..63699b4
--- /dev/null
@@ -0,0 +1,47 @@
+##############################################################################
+# Copyright (c) 2016 Enea AB and others.
+# Alexandru.Avadanii@enea.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
+##############################################################################
+
+# Prepare for merging with Fuel@OPNFV by keeping the same patch dir structure
+A_FUEL_BASE := ${ARMBAND_BASE}/upstream/fuel
+A_PATCH_DIR := ${ARMBAND_BASE}/patches
+A_OPNFV_TAG  = armband-opnfv
+A_PATCHES    = $(shell find ${A_PATCH_DIR} -name '*.patch')
+F_BUILD_DIR := ${A_FUEL_BASE}/build
+F_REPOS_DIR := ${F_BUILD_DIR}/f_repos
+F_PATCH_DIR := ${F_REPOS_DIR}/patch
+F_SUB_DIR   := ${F_REPOS_DIR}/sub
+
+# To enable remote tracking, set the following var to any non-empty string.
+# Leaving this var empty will bind each git submodule to its saved commit.
+ARMBAND_TRACK_REMOTES ?= yes
+
+# Armband plugins, supported archs & specific info
+export PLUGINS           := f_odlpluginbuild f_bgpvpn-pluginbuild f_ovs-nsh-dpdk-pluginbuild
+export UBUNTU_ARCH       := amd64 arm64
+export PRODNO            := OPNFV_A_FUEL
+export MIRROR_MOS_UBUNTU := linux.enea.com
+export EXTRA_RPM_REPOS   := armband,http://linux.enea.com/mos-repos/centos/mos9.0-centos7/armband/x86_64,10
+
+# Temporary fuel-plugin-builder repo info for runtime patching
+export FPB_REPO      := https://github.com/openstack/fuel-plugins
+export FPB_BRANCH    := master
+export FPB_CHANGE    := refs/changes/31/311031/2
+
+# Armband git submodules for Fuel/OPNFV components
+export FUEL_PLUGIN_ODL_REPO        := ${ARMBAND_BASE}/upstream/fuel-plugin-opendaylight
+export FUEL_PLUGIN_ODL_BRANCH      := opnfv-armband
+export FUEL_PLUGIN_ODL_CHANGE      := ${A_OPNFV_TAG}
+export OPNFV_QUAGGE_PACKAGING_REPO := https://github.com/alexandruavadanii/opnfv-quagga-packaging
+
+export OVS_NSH_DPDK_REPO   := ${ARMBAND_BASE}/upstream/fuel-plugin-ovs
+export OVS_NSH_DPDK_BRANCH := ${A_OPNFV_TAG}
+
+export VSPERF_REPO   := ${ARMBAND_BASE}/upstream/vswitchperf
+export VSPERF_BRANCH := opnfv-armband
+export VSPERF_CHANGE := ${A_OPNFV_TAG}
index 9ae43f3..0b46a7d 100755 (executable)
@@ -15,5 +15,5 @@ export OPNFV_GIT_SHA=$(git rev-parse HEAD)
 export LOCAL_CACHE_ARCH_NAME="armband-cache"
 
 # Initialize Armband git submodules & apply patches first
-make -C ${ARMBAND_BASE} submodules-clean patches-import
+make -C ${ARMBAND_BASE} patches-import
 cd ${ARMBAND_BASE}/upstream/fuel/ci && ./build.sh $*
index 40abe67..179b168 100755 (executable)
@@ -10,7 +10,7 @@
 set -e
 
 cd $WORKSPACE
-make submodules-clean submodules-init patches-import
+make patches-import
 
 # source local environment variables
 if ! [ -z $LAB_CONFIG_URL ]; then
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Thu, 25 Feb 2016 13:38:14 +0100
 Subject: [PATCH] Use qemu-debootstrap for image creation
 
@@ -17,10 +17,12 @@ not yet implemented.
  7 files changed, 29 insertions(+), 5 deletions(-)
 
 diff --git a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/commands/build.py b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/commands/build.py
-index ca2d3e1..b0d410d 100644
+index b4e9a05..a22d319 100644
 --- a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/commands/build.py
 +++ b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/commands/build.py
-@@ -166,4 +166,12 @@ class BuildCommand(command.Command):
+@@ -171,6 +171,14 @@ class BuildCommand(command.Command):
+                   " by ssh still rejected by default! This password actual"
+                   " only for tty login!"),
          )
 +        parser.add_argument(
 +            '--target_arch',
@@ -31,27 +33,27 @@ index ca2d3e1..b0d410d 100644
 +        )
 +
          return parser
+
      def take_action(self, parsed_args):
 diff --git a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py
-index 0219961..6e60fb8 100644
+index c09d421..a535075 100644
 --- a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py
 +++ b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py
-@@ -172,7 +172,8 @@ def make_bootstrap(data):
+@@ -161,7 +161,8 @@ def make_bootstrap(data):
+
      LOG.info("Try to build image with data:\n%s", yaml.safe_dump(bootdata))
+
 -    opts = ['--data_driver', 'bootstrap_build_image']
 +    opts = ['--data_driver', 'bootstrap_build_image',
 +            '--target_arch', data['target_arch']]
      if data.get('image_build_dir'):
          opts.extend(['--image_build_dir', data['image_build_dir']])
+
 diff --git a/debian/control b/debian/control
-index 0a6f947..189dc00 100644
+index d24450c..e843980 100644
 --- a/debian/control
 +++ b/debian/control
-@@ -36,6 +36,8 @@ Pre-Depends: dpkg (>= 1.15.6~)
+@@ -37,6 +37,8 @@ Pre-Depends: dpkg (>= 1.15.6~)
  Depends: bzip2,
           cloud-utils,
         debootstrap,
@@ -61,26 +63,27 @@ index 0a6f947..189dc00 100644
         ethtool,
         gdisk,
 diff --git a/fuel_agent/manager.py b/fuel_agent/manager.py
-index 15cc5d8..f613aef 100644
+index df54f65..ba1ab78 100644
 --- a/fuel_agent/manager.py
 +++ b/fuel_agent/manager.py
-@@ -18,5 +18,6 @@ import shutil
+@@ -19,6 +19,7 @@ import signal
+ import tempfile
+
  from oslo_config import cfg
 +from oslo_config import types
  import six
  import yaml
-@@ -33,6 +34,8 @@ from fuel_agent.utils import md as mu
+
+@@ -34,6 +35,8 @@ from fuel_agent.utils import md as mu
  from fuel_agent.utils import partition as pu
  from fuel_agent.utils import utils
+
 +ArchType = types.String(choices=['amd64', 'arm64'])
 +
  opts = [
      cfg.StrOpt(
          'nc_template_path',
-@@ -153,6 +156,13 @@ cli_opts = [
+@@ -192,6 +195,13 @@ cli_opts = [
          default='/tmp',
          help='Directory where the image is supposed to be built',
      ),
@@ -92,9 +95,9 @@ index 15cc5d8..f613aef 100644
 +             'debootstrap',
 +    ),
  ]
+
  CONF = cfg.CONF
-@@ -551,7 +561,8 @@ class Manager(object):
+@@ -724,7 +734,8 @@ class Manager(object):
          LOG.debug('Preventing services from being get started')
          bu.suppress_services_start(chroot)
          LOG.debug('Installing base operating system using debootstrap')
@@ -105,10 +108,10 @@ index 15cc5d8..f613aef 100644
                             proxies=proxies.proxies,
                             direct_repo_addr=proxies.direct_repo_addr_list)
 diff --git a/fuel_agent/tests/test_build_utils.py b/fuel_agent/tests/test_build_utils.py
-index 82c3462..ac5ae82 100644
+index 54f79f9..0ec466f 100644
 --- a/fuel_agent/tests/test_build_utils.py
 +++ b/fuel_agent/tests/test_build_utils.py
-@@ -42,7 +42,7 @@ class BuildUtilsTestCase(unittest2.TestCase):
+@@ -43,7 +43,7 @@ class BuildUtilsTestCase(unittest2.TestCase):
      def test_run_debootstrap(self, mock_exec, mock_environ):
          bu.run_debootstrap('uri', 'suite', 'chroot', 'arch', attempts=2)
          mock_exec.assert_called_once_with(
@@ -117,7 +120,7 @@ index 82c3462..ac5ae82 100644
              .format(','.join(bu.ADDITIONAL_DEBOOTSTRAP_PACKAGES)),
              '--verbose', '--no-check-gpg', '--arch=arch',
              'suite', 'chroot', 'uri', attempts=2, env_variables={})
-@@ -53,7 +53,7 @@ class BuildUtilsTestCase(unittest2.TestCase):
+@@ -54,7 +54,7 @@ class BuildUtilsTestCase(unittest2.TestCase):
          bu.run_debootstrap('uri', 'suite', 'chroot', 'arch', eatmydata=True,
                             attempts=2)
          mock_exec.assert_called_once_with(
@@ -127,20 +130,20 @@ index 82c3462..ac5ae82 100644
              '--verbose', '--no-check-gpg', '--arch=arch',
              '--include=eatmydata', 'suite',
 diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py
-index 7247965..af41b2b 100644
+index b1ecc0f..2950ad8 100644
 --- a/fuel_agent/utils/build.py
 +++ b/fuel_agent/utils/build.py
-@@ -80,7 +80,7 @@ def run_debootstrap(uri, suite, chroot, arch='amd64', eatmydata=False,
+@@ -76,7 +76,7 @@ def run_debootstrap(uri, suite, chroot, arch='amd64', eatmydata=False,
          env_vars['no_proxy'] = ','.join(direct_repo_addr)
          LOG.debug('Setting no_proxy for: {0}'.format(env_vars['no_proxy']))
+
 -    cmds = ['debootstrap',
 +    cmds = ['qemu-debootstrap',
              '--include={0}'.format(",".join(ADDITIONAL_DEBOOTSTRAP_PACKAGES)),
              '--verbose', '--no-check-gpg',
              '--arch={0}'.format(arch)]
 diff --git a/specs/fuel-agent.spec b/specs/fuel-agent.spec
-index 5c37600..a43f693 100644
+index 72cd6a1..18af4b9 100644
 --- a/specs/fuel-agent.spec
 +++ b/specs/fuel-agent.spec
 @@ -50,6 +50,8 @@ Requires:    xfsprogs
@@ -8,14 +8,14 @@ FIXME: Add nice description of the issue at hand.
  1 file changed, 1 insertion(+)
 
 diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py
-index af41b2b..6f31732 100644
+index 2950ad8..74cbfd8 100644
 --- a/fuel_agent/utils/build.py
 +++ b/fuel_agent/utils/build.py
-@@ -97,6 +97,7 @@ def set_apt_get_env():
+@@ -93,6 +93,7 @@ def set_apt_get_env():
      # NOTE(agordeev): disable any confirmations/questions from apt-get side
      os.environ['DEBIAN_FRONTEND'] = 'noninteractive'
      os.environ['DEBCONF_NONINTERACTIVE_SEEN'] = 'true'
 +    os.environ['FLASH_KERNEL_SKIP'] = 'true'
      os.environ['LC_ALL'] = os.environ['LANG'] = os.environ['LANGUAGE'] = 'C'
+
+
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Sun, 6 Mar 2016 16:09:39 +0100
 Subject: [PATCH] Fix qemu-user-static replacement
 
@@ -8,13 +8,13 @@ Subject: [PATCH] Fix qemu-user-static replacement
  2 files changed, 24 insertions(+)
 
 diff --git a/fuel_agent/manager.py b/fuel_agent/manager.py
-index f613aef..6322a10 100644
+index ba1ab78..637c99a 100644
 --- a/fuel_agent/manager.py
 +++ b/fuel_agent/manager.py
-@@ -587,6 +587,12 @@ class Manager(object):
+@@ -760,6 +760,12 @@ class Manager(object):
          fu.mount_bind(chroot, '/proc')
          bu.populate_basic_dev(chroot)
+
 +        # we need to make sure that qemu-{target_arch}-static binary is
 +        # not replaced inside chroot because we're possibly using it
 +        # through qemu-debootstrap
@@ -25,13 +25,13 @@ index f613aef..6322a10 100644
          # Umount chroot tree and remove images tmp files
          if not bu.stop_chrooted_processes(chroot, signal=signal.SIGTERM):
 diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py
-index 6f31732..abd762e 100644
+index 74cbfd8..1bc0a5f 100644
 --- a/fuel_agent/utils/build.py
 +++ b/fuel_agent/utils/build.py
-@@ -312,6 +312,24 @@ def populate_basic_dev(chroot):
+@@ -320,6 +320,24 @@ def populate_basic_dev(chroot):
      utils.execute('chroot', chroot,
                    'ln', '-s', '/proc/self/fd', '/dev/fd')
+
 +def prevent_qemu_replacement(chroot, arch):
 +    """Prevents qemu-user-static replacement inside chroot.
 +
@@ -50,6 +50,6 @@ index 6f31732..abd762e 100644
 +                  '--rename', '/usr/sbin/update-binfmts')
 +    utils.execute('chroot', chroot, 'ln', '-sf', '/bin/true',
 +                  '/usr/sbin/update-binfmts')
+
  def create_sparse_tmp_file(dir, suffix, size=8192):
      """Creates sparse file.
@@ -16,10 +16,10 @@ For more information, see [1].
  2 files changed, 38 insertions(+)
 
 diff --git a/fuel_agent/manager.py b/fuel_agent/manager.py
-index 6322a10..843c40b 100644
+index 637c99a..86f76b9 100644
 --- a/fuel_agent/manager.py
 +++ b/fuel_agent/manager.py
-@@ -836,10 +836,15 @@ class Manager(object):
+@@ -1037,10 +1037,15 @@ class Manager(object):
                  direct_repo_addrs=driver_os.proxies.direct_repo_addr_list)
              self._update_metadata_with_repos(
                  metadata, driver_os.repos)
@@ -35,17 +35,18 @@ index 6322a10..843c40b 100644
              if hasattr(bs_scheme, 'certs') and bs_scheme.certs:
                  bu.copy_update_certs(bs_scheme.certs, chroot)
              bu.run_apt_get(chroot, packages=packages,
-@@ -873,5 +878,6 @@ class Manager(object):
+@@ -1084,6 +1089,7 @@ class Manager(object):
+                             add_multipath_conf=False)
              # restore disabled hosts/resolv files
              bu.restore_resolv_conf(chroot)
 +            bu.restore_newaliases(chroot)
              metadata['all_packages'] = bu.get_installed_packages(chroot)
              # We need to recompress initramfs with new compression:
              bu.recompress_initramfs(
-@@ -964,6 +970,11 @@ class Manager(object):
+@@ -1175,6 +1181,11 @@ class Manager(object):
              self._update_metadata_with_repos(
                  metadata, driver_os.repos)
+
 +            # Prevent common cross-debootstraping problem w/ newaliases & qemu
 +            # inet_addr_local[getifaddrs]: getifaddrs: Address family not supp
 +            LOG.debug('Preventing newaliases from running inside chroot')
@@ -54,10 +55,10 @@ index 6322a10..843c40b 100644
              LOG.debug('Installing packages using apt-get: %s',
                        ' '.join(packages))
              bu.run_apt_get(chroot, packages=packages,
-@@ -974,6 +985,9 @@ class Manager(object):
+@@ -1187,6 +1198,9 @@ class Manager(object):
                              allow_unsigned_file=CONF.allow_unsigned_file,
                              force_ipv4_file=CONF.force_ipv4_file)
+
 +            LOG.debug('Restoring newaliases command inside chroot')
 +            bu.restore_newaliases(chroot)
 +
@@ -65,13 +66,13 @@ index 6322a10..843c40b 100644
                        'inside chroot before trying to umount chroot')
              if not bu.stop_chrooted_processes(chroot, signal=signal.SIGTERM):
 diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py
-index abd762e..e11ceba 100644
+index 1bc0a5f..5761cc5 100644
 --- a/fuel_agent/utils/build.py
 +++ b/fuel_agent/utils/build.py
-@@ -331,6 +331,30 @@ def prevent_qemu_replacement(chroot, arch):
+@@ -339,6 +339,30 @@ def prevent_qemu_replacement(chroot, arch):
      utils.execute('chroot', chroot, 'ln', '-sf', '/bin/true',
                    '/usr/sbin/update-binfmts')
+
 +def prevent_qemu_newaliases(chroot):
 +    """Prevents running newaliases under qemu-user-static inside chroot.
 +
@@ -98,4 +99,4 @@ index abd762e..e11ceba 100644
 +
  def create_sparse_tmp_file(dir, suffix, size=8192):
      """Creates sparse file.
+
@@ -17,10 +17,10 @@ the same behavior.
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/fuel_agent/utils/build.py b/fuel_agent/utils/build.py
-index e11ceba..8cca26d 100644
+index 5761cc5..5557810 100644
 --- a/fuel_agent/utils/build.py
 +++ b/fuel_agent/utils/build.py
-@@ -111,7 +111,7 @@ def run_apt_get(chroot, packages, eatmydata=False, attempts=10):
+@@ -107,7 +107,7 @@ def run_apt_get(chroot, packages, eatmydata=False, attempts=10):
      time in X times.
      """
      for action in ('update', 'dist-upgrade'):
@@ -12,10 +12,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 6 insertions(+), 3 deletions(-)
 
 diff --git a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py
-index 6e60fb8..95bc08a 100644
+index a535075..c7d67e9 100644
 --- a/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py
 +++ b/contrib/fuel_bootstrap/fuel_bootstrap_cli/fuel_bootstrap/utils/bootstrap_image.py
-@@ -180,9 +180,12 @@ def make_bootstrap(data):
+@@ -169,9 +169,12 @@ def make_bootstrap(data):
      OSLO_CONF = cfg.CONF
      OSLO_CONF(opts, project='fuel-agent')
      mngr = manager.Manager(bootdata)
@@ -29,5 +29,5 @@ index 6e60fb8..95bc08a 100644
 +             " and selected bootstrap architecture(s)."
 +             " This ISO supports AArch64 only.")
      mngr.do_mkbootstrap()
+
      return bootdata['bootstrap']['uuid'], bootdata['output']
@@ -12,10 +12,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 2 insertions(+), 2 deletions(-)
 
 diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py
-index 5ff1cf6..1463f22 100644
+index f70d165..ef0e79a 100644
 --- a/fuel_agent/drivers/nailgun.py
 +++ b/fuel_agent/drivers/nailgun.py
-@@ -734,8 +734,8 @@ class NailgunBuildImage(BaseDataDriver):
+@@ -727,8 +727,8 @@ class NailgunBuildImage(BaseDataDriver):
          "i40e-dkms",
          "linux-firmware",
          "linux-firmware-nonfree",
@@ -12,32 +12,32 @@ to properly format and mount it during do_partitioning deployment phase.
  2 files changed, 3 insertions(+), 3 deletions(-)
 
 diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py
-index c2fef69..0ae81f9 100644
+index ef0e79a..94280e8 100644
 --- a/fuel_agent/drivers/nailgun.py
 +++ b/fuel_agent/drivers/nailgun.py
-@@ -324,7 +324,7 @@ class Nailgun(BaseDataDriver):
+@@ -354,7 +354,7 @@ class Nailgun(BaseDataDriver):
              # uefi partition (for future use)
              LOG.debug('Adding UEFI partition on disk %s: size=200' %
                        disk['name'])
 -            parted.add_partition(size=200)
 +            parted.add_partition(size=200, flags=['esp'])
+
              LOG.debug('Looping over all volumes on disk %s' % disk['name'])
              for volume in disk['volumes']:
 diff --git a/fuel_agent/utils/partition.py b/fuel_agent/utils/partition.py
-index acdd0b3..86349d2 100644
+index f7126b1..b811511 100644
 --- a/fuel_agent/utils/partition.py
 +++ b/fuel_agent/utils/partition.py
-@@ -93,7 +93,7 @@ def set_partition_flag(dev, num, flag, state='on'):
+@@ -94,7 +94,7 @@ def set_partition_flag(dev, num, flag, state='on'):
      :param dev: A device file, e.g. /dev/sda.
      :param num: Partition number
      :param flag: Flag name. Must be one of 'bios_grub', 'legacy_boot',
 -    'boot', 'raid', 'lvm'
 +    'boot', 'raid', 'lvm', 'esp'
      :param state: Desiable flag state. 'on' or 'off'. Default is 'on'.
+
      :returns: None
-@@ -103,7 +103,7 @@ def set_partition_flag(dev, num, flag, state='on'):
+@@ -104,7 +104,7 @@ def set_partition_flag(dev, num, flag, state='on'):
      # parted supports more flags but we are interested in
      # setting only this subset of them.
      # not all of these flags are compatible with one another.
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Tue, 8 Mar 2016 21:08:55 +0100
 Subject: [PATCH] Add fs for efi partition
 
@@ -9,10 +9,10 @@ Subject: [PATCH] Add fs for efi partition
  3 files changed, 12 insertions(+), 3 deletions(-)
 
 diff --git a/debian/control b/debian/control
-index 189dc00..acfda35 100644
+index e843980..c763ab9 100644
 --- a/debian/control
 +++ b/debian/control
-@@ -39,6 +39,7 @@ Depends: bzip2,
+@@ -40,6 +40,7 @@ Depends: bzip2,
         qemu-user-static,
         binfmt-support,
         dmidecode,
@@ -21,10 +21,10 @@ index 189dc00..acfda35 100644
         gdisk,
         genisoimage,
 diff --git a/fuel_agent/drivers/nailgun.py b/fuel_agent/drivers/nailgun.py
-index bc532b4..f092865 100644
+index 94280e8..1463f22 100644
 --- a/fuel_agent/drivers/nailgun.py
 +++ b/fuel_agent/drivers/nailgun.py
-@@ -81,6 +81,9 @@ class Nailgun(BaseDataDriver):
+@@ -82,6 +82,9 @@ class Nailgun(BaseDataDriver):
          # was already allocated on first matching volume
          # or not
          self._boot_partition_done = False
@@ -34,7 +34,7 @@ index bc532b4..f092865 100644
          # this var is used as a flag that /boot fs
          # has already been added. we need this to
          # get rid of md over all disks for /boot partition.
-@@ -321,10 +324,14 @@ class Nailgun(BaseDataDriver):
+@@ -351,10 +354,14 @@ class Nailgun(BaseDataDriver):
              LOG.debug('Adding bios_grub partition on disk %s: size=24' %
                        disk['name'])
              parted.add_partition(size=24, flags=['bios_grub'])
@@ -49,11 +49,11 @@ index bc532b4..f092865 100644
 +                partition_scheme.add_fs(device=prt.name, mount='/boot/efi',
 +                                        fs_type='vfat')
 +                self._esp_partition_done = True
+
              LOG.debug('Looping over all volumes on disk %s' % disk['name'])
              for volume in disk['volumes']:
 diff --git a/specs/fuel-agent.spec b/specs/fuel-agent.spec
-index a43f693..c2b9b51 100644
+index 18af4b9..8604e57 100644
 --- a/specs/fuel-agent.spec
 +++ b/specs/fuel-agent.spec
 @@ -50,6 +50,7 @@ Requires:    xfsprogs
@@ -32,7 +32,7 @@ index 3eb98e8..3bac36f 100644
 +++ b/mcagents/erase_node.rb
 @@ -112,6 +112,10 @@ module MCollective
          File.open('/proc/sys/kernel/panic','w') {|file| file.write("10\n")}
+
          begin
 +          # clear out EFI boot entry on EFI-enabled systems
 +          system("(which efibootmgr > /dev/null 2>&1 && efibootmgr | "\
@@ -16,12 +16,12 @@ older than 4.0.
  2 files changed, 8 insertions(+), 1 deletion(-)
 
 diff --git a/deployment/puppet/osnailyfacter/manifests/ceph/ceph_osd.pp b/deployment/puppet/osnailyfacter/manifests/ceph/ceph_osd.pp
-index f7da80e..22aab33 100644
+index 2480f18..0957010 100644
 --- a/deployment/puppet/osnailyfacter/manifests/ceph/ceph_osd.pp
 +++ b/deployment/puppet/osnailyfacter/manifests/ceph/ceph_osd.pp
-@@ -50,4 +50,11 @@ class {'ceph':
+@@ -35,6 +35,13 @@ class osnailyfacter::ceph::ceph_osd {
    }
+
    if $ceph_tuning_settings_hash != {} {
 +    if versioncmp($::kernelmajversion, '4.0') < 0 {
 +      # FIXME(armband): XFS mount opt delaylog is deprecated in kernels >=4.0.
@@ -31,11 +31,13 @@ index f7da80e..22aab33 100644
 +      ], ',')
 +    }
      ceph_conf {
-diff --git a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp b/deployment/puppet/osnailyfacter/modular/globals/globals.pp
-index 268a5b1..69aed7b 100644
+       'global/debug_default'                    : value => $debug;
+       'global/max_open_files'                   : value => $ceph_tuning_settings_hash['max_open_files'];
+diff --git a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp b/deployment/puppet/osnailyfacter/manifests/globals/globals.pp
+index 854d297..7345d66 100644
 --- a/deployment/puppet/osnailyfacter/manifests/globals/globals.pp
 +++ b/deployment/puppet/osnailyfacter/manifests/globals/globals.pp
-@@ -123,7 +123,7 @@ if ($storage_hash['volumes_ceph'] or $storage_hash['images_ceph'] or $storage_ha
+@@ -148,7 +148,7 @@ class osnailyfacter::globals::globals {
      $ceph_tuning_settings = {
        'max_open_files'                       => pick($storage_tuning_settings['max_open_files'], '131072'),
        'osd_mkfs_type'                        => pick($storage_tuning_settings['osd_mkfs_type'], 'xfs'),
@@ -25,11 +25,12 @@ This patch extends the version checking introduced in [1]:
  1 file changed, 7 insertions(+), 1 deletion(-)
 
 diff --git a/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp b/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp
-index 8311731..1d7af2b 100644
+index af4f0e5..e8dbfcf 100644
 --- a/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp
 +++ b/deployment/puppet/openstack_tasks/manifests/ceilometer/compute.pp
-@@ -195,7 +195,13 @@ class openstack::ceilometer (
+@@ -93,8 +93,14 @@ class openstack_tasks::ceilometer::compute {
+     }
+
      if $::operatingsystem == 'Ubuntu' and $::ceilometer::params::libvirt_group {
 +      # Armband libvirt-bin deb package (1.3.2 version) creates 'libvirtd' group on Ubuntu
 +      if (versioncmp($::libvirt_package_version, '1.3.2') >= 0) {
@@ -18,11 +18,11 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 2 insertions(+), 1 deletion(-)
 
 diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index 33e851f..3647f9b 100644
+index 164bd70..211fefa 100644
 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
 +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -373,7 +373,8 @@ class openstack_tasks::roles::compute {
+@@ -337,7 +337,8 @@ class openstack_tasks::roles::compute {
+
      # TODO(aschultz): work around until https://review.openstack.org/#/c/306677/
      # lands.
 -    if $::os_package_type == 'ubuntu' {
@@ -1,16 +1,18 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Tue, 15 Mar 2016 11:33:52 +0100
 Subject: [PATCH] nova config: Disable usb tablet for aarch64
 
 ---
- deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
+ deployment/puppet/openstack_tasks/manifests/roles/compute.pp | ++++
+ 1 file changed, 4 insertions(+)
 
 diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index ca1b2c4..c0349dc 100644
+index 211fefa..4240126 100644
 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
 +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -316,3 +316,7 @@ class openstack::compute (
+@@ -379,6 +379,10 @@ class openstack_tasks::roles::compute {
+   }
+
    nova_config {
 +    'libvirt/use_usb_tablet':       value => $::architecture ? {
 +        /(arm64|aarch64)/ => false,
@@ -18,3 +20,4 @@ index ca1b2c4..c0349dc 100644
 +    };
      'libvirt/live_migration_flag':  value => 'VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_PERSIST_DEST';
      'libvirt/block_migration_flag': value => 'VIR_MIGRATE_UNDEFINE_SOURCE,VIR_MIGRATE_PEER2PEER,VIR_MIGRATE_LIVE,VIR_MIGRATE_NON_SHARED_INC';
+     'DEFAULT/connection_type':      value => 'libvirt';
@@ -7,16 +7,18 @@ install it by default on AArch64 and create missing link
 in </usr/share/qemu> to </usr/share/vgabios/vgabios.bin>.
 
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 ---
- deployment/puppet/openstack_tasks/manifests/roles/compute.pp | 12 ++++++++++++
- 1 file changed, 12 insertions(+)
+ deployment/puppet/openstack_tasks/manifests/roles/compute.pp | ++++++++
+ 1 file changed, 8 insertions(+)
 
 diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index ca1b2c4..c0349dc 100644
+index 4240126..b18fa7b 100644
 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
 +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -364,3 +368,11 @@ class openstack::compute (
+@@ -409,6 +409,14 @@ class openstack_tasks::roles::compute {
+     vncserver_listen                           => '0.0.0.0',
+     remove_unused_original_minimum_age_seconds => pick($nova_hash_real['remove_unused_original_minimum_age_seconds'], '86400'),
      libvirt_service_name                       => $::nova::params::libvirt_service_name,
 +  } ->
 +  package { 'vgabios':
@@ -27,4 +29,5 @@ index ca1b2c4..c0349dc 100644
 +    target  => '/usr/share/vgabios/vgabios.bin',
 +    replace => false,
    }
+
+   class { '::nova::migration::libvirt':
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Tue, 22 Mar 2016 12:05:09 +0100
 Subject: [PATCH] nova: Update vga, console defaults for armv7, aarch64
 
@@ -7,18 +7,18 @@ armv7 and aarch64 VMs require video=vga, and since most applications
 use PL011 serial driver for guests, adding console=ttyAMA0 is also
 a nice UX addition.
 ---
- .../openstack/files/nova-libvirt-vga-console.patch | 39 ++++++++++++++++++++++
deployment/puppet/openstack_tasks/manifests/roles/compute.pp   | 19 +++++++++++
- 2 files changed, 58 insertions(+)
+ .../openstack/files/nova-libvirt-vga-console.patch | 40 ++++++++++++++++++++++
.../openstack_tasks/manifests/roles/compute.pp     | 19 ++++++++++
+ 2 files changed, 59 insertions(+)
  create mode 100644 deployment/puppet/openstack/files/nova-libvirt-vga-console.patch
 
 diff --git a/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch b/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch
 new file mode 100644
-index 0000000..c5f8e5a
+index 0000000..3594276
 --- /dev/null
 +++ b/deployment/puppet/openstack/files/nova-libvirt-vga-console.patch
 @@ -0,0 +1,40 @@
-+From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
++From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 +Date: Tue, 22 Mar 2016 12:05:09 +0100
 +Subject: [PATCH] Update vga, console defaults for armv7 and aarch64
 +
@@ -27,7 +27,7 @@ index 0000000..c5f8e5a
 +use PL011 serial driver for guests, adding console=ttyAMA0 is also
 +a nice UX addition.
 +
-+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
++Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 +---
 +
@@ -59,26 +59,31 @@ index 0000000..c5f8e5a
 +             # so use 'vga' instead when running on Power hardware.
 +             video.type = 'vga'
 diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index c0349dc..46b1801 100644
+index b18fa7b..2f0f2a8 100644
 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
 +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -157,4 +157,10 @@ class openstack::compute (
+@@ -158,6 +158,12 @@ class openstack_tasks::roles::compute {
 
    include ::nova::params
-+
+
 +  if ! defined(Package['patch']) {
 +    package { 'patch':
 +      ensure => 'present',
 +    }
 +  }
++
    case $::osfamily {
-@@ -250,3 +256,4 @@ class openstack::compute (
+     'RedHat': {
+       # From legacy libvirt.pp
+@@ -290,6 +296,7 @@ class openstack_tasks::roles::compute {
+   }
+
    $notify_on_state_change = 'vm_and_task_state'
 +  $nova_path = '/usr/lib/python2.7/dist-packages/nova'
-@@ -273,5 +280,17 @@ class openstack::compute (
+
+   class { '::nova':
+     rpc_backend                        => $rpc_backend_real,
+@@ -311,6 +318,18 @@ class openstack_tasks::roles::compute {
      memcached_servers                  => $memcached_addresses,
      cinder_catalog_info                => pick($nova_hash_real['cinder_catalog_info'], 'volumev2:cinderv2:internalURL'),
      rabbit_heartbeat_timeout_threshold => $::os_service_default,
@@ -95,4 +100,5 @@ index c0349dc..46b1801 100644
 +    cwd     => $nova_path,
 +    require => [Package['patch']],
    }
+
+   class { '::nova::availability_zone':
@@ -17,7 +17,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 
 diff --git a/deployment/puppet/openstack/files/nova-AArch64-enable-hugepage-support.patch b/deployment/puppet/openstack/files/nova-AArch64-enable-hugepage-support.patch
 new file mode 100644
-index 0000000..847cab6
+index 0000000..72d6bfc
 --- /dev/null
 +++ b/deployment/puppet/openstack/files/nova-AArch64-enable-hugepage-support.patch
 @@ -0,0 +1,47 @@
@@ -39,13 +39,13 @@ index 0000000..847cab6
 +@@ -156,6 +156,9 @@ def canonicalize(name):
 +     if newname == "amd64":
 +         newname = X86_64
-+ 
++
 ++    if newname == "aarch64":
 ++        newname = AARCH64
 ++
 +     if not is_valid(newname):
 +         raise exception.InvalidArchitectureName(arch=name)
-+ 
++
 +diff --git a/virt/libvirt/driver.py a/virt/libvirt/driver.py
 +index bac17cf..0e0bcae 100644
 +--- a/virt/libvirt/driver.py
@@ -53,7 +53,7 @@ index 0000000..847cab6
 +@@ -5206,7 +5206,7 @@ class LibvirtDriver(driver.ComputeDriver):
 +                     self._bad_libvirt_numa_version_warn = True
 +                 return False
-+ 
++
 +-        support_matrix = {(arch.I686, arch.X86_64): MIN_LIBVIRT_NUMA_VERSION,
 ++        support_matrix = {(arch.I686, arch.X86_64, arch.AARCH64): MIN_LIBVIRT_NUMA_VERSION,
 +                           (arch.PPC64,
@@ -69,10 +69,10 @@ index 0000000..847cab6
 +         return ((caps.host.cpu.arch in supported_archs) and
 +                 self._host.has_min_version(MIN_LIBVIRT_HUGEPAGE_VERSION,
 diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index 3647f9b..c53409c 100644
+index 2f0f2a8..dc61033 100644
 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
 +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -347,6 +347,18 @@ class openstack_tasks::roles::compute {
+@@ -330,6 +330,18 @@ class openstack_tasks::roles::compute {
      unless  => "patch -p1 -R -N --dry-run < ${nova_path}/libvirt-vga-console.patch",
      cwd     => $nova_path,
      require => [Package['patch']],
@@ -89,5 +89,5 @@ index 3647f9b..c53409c 100644
 +    cwd     => $nova_path,
 +    require => [Package['patch']],
    }
+
    class { '::nova::availability_zone':
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Tue, 15 Mar 2016 15:01:34 +0100
 Subject: [PATCH] upload_cirros: Add direct kernel boot support.
 
@@ -8,14 +8,15 @@ images (disk formats `AKI` and `ARI`).
 
 Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 ---
- .../osnailyfacter/modular/astute/upload_cirros.rb  | 52 +++++++++++++++++++++-
- 1 file changed, 50 insertions(+), 2 deletions(-)
+ .../osnailyfacter/modular/astute/upload_cirros.rb  | 55 ++++++++++++++++++++--
+ 1 file changed, 51 insertions(+), 4 deletions(-)
 
 diff --git a/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb b/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb
-index f0441b0..a619f3f 100755
+index f0441b0..371d051 100755
 --- a/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb
 +++ b/deployment/puppet/osnailyfacter/modular/astute/upload_cirros.rb
-@@ -52,11 +52,11 @@ def image_list
+@@ -51,12 +51,12 @@ end
+ def image_list
    stdout = `glance --verbose image-list`
    return_code = $?.exitstatus
 -  images = []
@@ -32,7 +33,7 @@ index f0441b0..a619f3f 100755
 @@ -78,6 +78,16 @@ EOF
    [ stdout, return_code ]
  end
+
 +# Calls glance update-image with a given property and value
 +# Supported properties: 'kernel-id', 'ramdisk-id'
 +def update_image(image_id, property, value)
@@ -46,7 +47,7 @@ index f0441b0..a619f3f 100755
  # check if Glance is online
  # waited until the glance is started because when vCenter used as a glance
  # backend launch may takes up to 1 minute.
-@@ -133,7 +142,7 @@ end
+@@ -133,7 +143,7 @@ end
  # return true if image has been uploaded and active
  def check_image(image)
    list_of_images = image_list
@@ -55,7 +56,7 @@ index f0441b0..a619f3f 100755
      return true
    end
    return false
-@@ -142,7 +151,7 @@ end
+@@ -144,7 +154,7 @@ end
  # the first one
  def cleanup_image(image)
    list_of_images = image_list
@@ -64,10 +65,10 @@ index f0441b0..a619f3f 100755
      delete_image(image['img_name'])
    end
  end
-@@ -157,6 +166,41 @@ def delete_image(image_name)
+@@ -157,6 +167,41 @@ def delete_image(image_name)
    [ stdout, return_code ]
  end
+
 +# For each disk image try to find a kernel and initramfs images and
 +# attach then to it via kernel_id and ramdisk_id glance properties.
 +def connect_dependant_images(images)
@@ -104,9 +105,9 @@ index f0441b0..a619f3f 100755
 +end
 +
  ########################
+
  wait_for_glance
-@@ -180,6 +226,8 @@ if errors > 0
+@@ -180,6 +225,8 @@ if errors > 0
      cleanup_image(image)
    end
    exit 1
@@ -10,16 +10,16 @@ to a partition (instead of the whole disk).
 [1] https://bugs.launchpad.net/nova/+bug/1290455
 
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 ---
  .../openstack/files/nova-libvirt-inject.patch      | 44 ++++++++++++++++++++++
deployment/puppet/openstack_tasks/manifests/roles/compute.pp   | 12 ++++++
.../openstack_tasks/manifests/roles/compute.pp     | 12 ++++++
  2 files changed, 56 insertions(+)
  create mode 100644 deployment/puppet/openstack/files/nova-libvirt-inject.patch
 
 diff --git a/deployment/puppet/openstack/files/nova-libvirt-inject.patch b/deployment/puppet/openstack/files/nova-libvirt-inject.patch
 new file mode 100644
-index 0000000..9cbfe5f
+index 0000000..b86927e
 --- /dev/null
 +++ b/deployment/puppet/openstack/files/nova-libvirt-inject.patch
 @@ -0,0 +1,44 @@
@@ -35,7 +35,7 @@ index 0000000..9cbfe5f
 +[1] https://bugs.launchpad.net/nova/+bug/1290455
 +
 +Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
++Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 +---
 +
 +diff --git a/virt/libvirt/driver.py b/virt/libvirt/driver.py
@@ -68,10 +68,12 @@ index 0000000..9cbfe5f
 +             if target_partition == 0:
 +                 target_partition = None
 diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index 46b1801..d42d6a1 100644
+index dc61033..3fcfb51 100644
 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
 +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -281,4 +281,16 @@ class openstack::compute (
+@@ -319,6 +319,18 @@ class openstack_tasks::roles::compute {
+     cinder_catalog_info                => pick($nova_hash_real['cinder_catalog_info'], 'volumev2:cinderv2:internalURL'),
+     rabbit_heartbeat_timeout_threshold => $::os_service_default,
    } ->
 +  # FIXME(armband): Fix inject for part image direct boot (bug LP #1469308)
 +  file { "${nova_path}/libvirt-inject.patch":
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Sun, 21 Feb 2016 16:29:52 +0100
 Subject: [PATCH] Add arm64 templates to cobbler and nailgun
 
@@ -11,7 +11,7 @@ Limitation: grub2 needs to be installed directly on the
 root (/) of a device or partition, as the MAC-files will
 search for /grub/grub.cfg on the available partitions
 
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Signed-off-by: Matei Valeanu <Matei.Valeanu@enea.com>
 ---
  deployment/puppet/cobbler/manifests/server.pp      | 36 ++++++++++++++++++++++
@@ -38,7 +38,7 @@ index 891dff7..52936d5 100644
 @@ -297,6 +297,42 @@ class cobbler::server (
      notify  => [Service[$cobbler_service], Exec['cobbler_sync']],
    }
+
 +  file { '/etc/cobbler/pxe/efidefault.template':
 +    content => template('cobbler/efidefault.template.erb'),
 +    owner   => 'root',
@@ -85,7 +85,7 @@ index d70f8de..98278e9 100644
 @@ -41,5 +41,7 @@ dhcp-no-override
  # by assigning IPs one by one instead of using hash algorithm.
  dhcp-sequential-ip
+
 +dhcp-match=set:arm64,93,11
 +dhcp-boot=net:arm64,grub/grub-aarch64.efi,boothost,<%= @next_server %>
  dhcp-option=6,<%= @name_server %>
@@ -156,13 +156,13 @@ index 6762153..25f8067 100644
 @@ -66,9 +66,11 @@ d-i apt-setup/mirror/error select Retry
  # Use network mirror
  d-i apt-setup/use_mirror boolean true
+
 +<% if @arch == 'amd64' %>
  # Select architecture to amd64. That's very important to dpkg, since
  # by default we have both amd64 and i386.
  d-i apt-setup/multiarch string amd64
 +<% end %>
+
  # You can choose to install restricted and universe software, or to install
  # software from the backports repository.
 diff --git a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
@@ -170,7 +170,7 @@ index 493ffc6..909fc92 100644
 --- a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
 +++ b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
 @@ -53,17 +53,21 @@ class fuel::auxiliaryrepos(
+
    exec { 'create_ubuntu_repo_dirs':
      path    => '/bin:/sbin:/usr/bin:/usr/sbin',
 -    command => "bash -c \"mkdir -p ${ubuntu_dir}/pool/{main,restricted} ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-amd64/\"",
@@ -182,7 +182,7 @@ index 493ffc6..909fc92 100644
 +      test -d ${ubuntu_dir}/dists/auxiliary/main/binary-arm64 && \
 +      test -d ${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64",
    }
+
    exec { 'create_ubuntu_repo_Packages':
      path    => '/bin:/sbin:/usr/bin:/usr/sbin',
 -    command => "bash -c \"touch ${ubuntu_dir}/dists/auxiliary/{main,restricted}/binary-amd64/Packages\"",
@@ -193,7 +193,7 @@ index 493ffc6..909fc92 100644
 +      test -f ${ubuntu_dir}/dists/auxiliary/main/binary-arm64/Packages && \
 +      test -f ${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64/Packages",
    }
+
    file { $release_files:
 diff --git a/deployment/puppet/fuel/manifests/cobbler.pp b/deployment/puppet/fuel/manifests/cobbler.pp
 index b403733..c89027d 100644
@@ -202,7 +202,7 @@ index b403733..c89027d 100644
 @@ -114,12 +114,9 @@ class fuel::cobbler(
      require   => Class['::cobbler::server'],
    }
+
 -  file { '/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed':
 -    content => template('cobbler/preseed/ubuntu-1404.preseed.erb'),
 -    owner   => 'root',
@@ -213,12 +213,12 @@ index b403733..c89027d 100644
 +    path =>'/var/lib/cobbler/kickstarts/ubuntu-amd64.preseed',
 +    arch => "amd64",
    } ->
+
    cobbler_distro { 'ubuntu_1404_x86_64':
 @@ -132,6 +129,21 @@ class fuel::cobbler(
      require   => Class['::cobbler::server'],
    }
+
 +  fuel::cobbler::preseed { 'ubuntu_1404_arm64.preseed':
 +    path => '/var/lib/cobbler/kickstarts/ubuntu-arm64.preseed',
 +    arch => "arm64",
@@ -240,7 +240,7 @@ index b403733..c89027d 100644
 @@ -152,6 +164,16 @@ class fuel::cobbler(
      require   => Cobbler_distro['ubuntu_1404_x86_64'],
    }
+
 +  cobbler_profile { 'ubuntu_1404_arm64':
 +    kickstart => '/var/lib/cobbler/kickstarts/ubuntu-arm64.preseed',
 +    kopts     => 'console=ttyAMA0,115200 console=ttyS0,115200 net.ifnames=0 biosdevname=0 netcfg/choose_interface=eth0 netcfg/dhcp_timeout=120 netcfg/link_detection_timeout=20',
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Wed, 24 Feb 2016 20:07:06 +0100
 Subject: [PATCH] Make qemu-kvm architecture aware
 
@@ -7,10 +7,12 @@ Subject: [PATCH] Make qemu-kvm architecture aware
  1 file changed, 7 insertions(+), 2 deletions(-)
 
 diff --git a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-index b2339bc..ca1b2c4 100644
+index 3fcfb51..c53409c 100644
 --- a/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
 +++ b/deployment/puppet/openstack_tasks/manifests/roles/compute.pp
-@@ -169,7 +169,12 @@ class openstack_tasks::compute (
+@@ -167,9 +167,14 @@ class openstack_tasks::roles::compute {
+   case $::osfamily {
+     'RedHat': {
        # From legacy libvirt.pp
 +      # Guard against some exotic distros with their `uname -m`
 +      $arch = $::architecture ? {
@@ -23,5 +25,5 @@ index b2339bc..ca1b2c4 100644
 +        command => "/bin/ln -sf /usr/libexec/qemu-kvm /usr/bin/qemu-system-${arch}",
 +        creates => "/usr/bin/qemu-system-${arch}",
        }
+
        package { 'avahi':
@@ -1,7 +1,6 @@
-From ec3299c72eae195106092a646409564b5b3eb560 Mon Sep 17 00:00:00 2001
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Wed, 24 Feb 2016 20:08:24 +0100
-Subject: [PATCH 10/20] Make TestVM creation architecture aware
+Subject: [PATCH] Make TestVM creation architecture aware
 
 This depends on cirros-testvm package to contain both amd64 and arm64
 images.
@@ -24,7 +23,7 @@ index 84e202e..cff06e0 100644
 +      /(arm64|aarch64)/ => 'aarch64',
 +      default           => 'x86_64',
 +  }
+
    package { 'cirros-testvm':
      ensure => "present"
 @@ -17,14 +21,14 @@ class openstack::img::cirros (
@@ -34,7 +33,7 @@ index 84e202e..cff06e0 100644
 -    command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /opt/vm/cirros-x86_64-disk.img",
 +    command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /opt/vm/cirros-${arch}-disk.img",
      unless => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index && (/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index | grep ${img_name})",
+
      }
    }
    'Debian': {
@@ -42,7 +41,7 @@ index 84e202e..cff06e0 100644
 -    command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /usr/share/cirros-testvm/cirros-x86_64-disk.img",
 +    command => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} add name=${img_name} is_public=${public} container_format=${container_format} disk_format=${disk_format} distro=${os_name} < /usr/share/cirros-testvm/cirros-${arch}-disk.img",
      unless => "/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index && (/usr/bin/glance -N ${os_auth_url} -T ${os_tenant_name} -I ${os_username} -K ${os_password} index | grep ${img_name})",
+
      }
 diff --git a/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp b/deployment/puppet/osnailyfacter/manifests/generate_vms/vm_config.pp
 index 70fef32..dfefcbe 100644
@@ -51,7 +50,7 @@ index 70fef32..dfefcbe 100644
 @@ -4,6 +4,17 @@ define osnailyfacter::generate_vms::vm_config(
    $details = $name
    $id = $details['id']
+
 +  case $::architecture {
 +    'arm64', 'aarch64': {
 +      $machine_arch = 'aarch64'
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Wed, 24 Feb 2016 20:05:25 +0100
 Subject: [PATCH] Add arm64 for auxiliary repos
 
@@ -20,10 +20,10 @@ index 2d5ce58..03f84b8 100644
  Components: main restricted
  Description: Auxiliary
 diff --git a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
-index 720943d..91adb3e 100644
+index 909fc92..4ec5d05 100644
 --- a/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
 +++ b/deployment/puppet/fuel/manifests/auxiliaryrepos.pp
-@@ -40,7 +40,9 @@ class nailgun::auxiliaryrepos(
+@@ -45,7 +45,9 @@ class fuel::auxiliaryrepos(
    $release_files = [
      "${ubuntu_dir}/dists/auxiliary/Release",
      "${ubuntu_dir}/dists/auxiliary/main/binary-amd64/Release",
@@ -31,6 +31,6 @@ index 720943d..91adb3e 100644
 +    "${ubuntu_dir}/dists/auxiliary/restricted/binary-amd64/Release",
 +    "${ubuntu_dir}/dists/auxiliary/main/binary-arm64/Release",
 +    "${ubuntu_dir}/dists/auxiliary/restricted/binary-arm64/Release"]
+
    Exec['create_ubuntu_repo_dirs'] ->
      Exec['create_ubuntu_repo_Packages'] ->
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Wed, 20 Apr 2016 14:54:42 -0700
 Subject: [PATCH] Allow configuring MySQL WSREP SST provider
 
@@ -15,30 +15,32 @@ This patch is tied to a patch in fuel-web that introduces configuration
 options for WSREP SST provider and in case nothing is specified, it
 will choose `xtrabackup-v2`.
 
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 ---
  deployment/puppet/osnailyfacter/manifests/database/database.pp | 6 ++++--
  1 file changed, 4 insertions(+), 2 deletions(-)
 
 diff --git a/deployment/puppet/osnailyfacter/manifests/database/database.pp b/deployment/puppet/osnailyfacter/manifests/database/database.pp
-index 1755c34..0cfbc8c 100644
+index e741ff8..be19eb5 100644
 --- a/deployment/puppet/osnailyfacter/manifests/database/database.pp
 +++ b/deployment/puppet/osnailyfacter/manifests/database/database.pp
-@@ -8,4 +8,5 @@ class osnailyfacter::database::database {
+@@ -8,6 +8,7 @@ class osnailyfacter::database::database {
    $use_syslog               = hiera('use_syslog', true)
    $primary_controller       = hiera('primary_controller')
    $mysql_hash               = hiera_hash('mysql', {})
 +  $wsrep_hash               = hiera_hash('mysql_wsrep', {})
    $debug                    = pick($mysql_hash['debug'], hiera('debug', false))
-@@ -22,6 +23,7 @@ class osnailyfacter::database::database {
+
+   $mgmt_iface = get_network_role_property('mgmt/database', 'interface')
+@@ -17,6 +18,7 @@ class osnailyfacter::database::database {
+
    $mysql_root_password       = $mysql_hash['root_password']
    $enabled                   = pick($mysql_hash['enabled'], true)
 +  $wsrep_sst_method          = pick($wsrep_hash['wsrep_method'], 'xtrabackup-v2')
+
    $galera_node_address       = get_network_role_property('mgmt/database', 'ipaddr')
    $galera_nodes              = values(get_node_to_ipaddr_map_by_network_role(hiera_hash('database_nodes'), 'mgmt/database'))
-@@ -216,7 +218,7 @@ class osnailyfacter::database::database {
+@@ -211,7 +213,7 @@ class osnailyfacter::database::database {
          'wsrep_cluster_name'             => $galera_cluster_name,
          'wsrep_provider_options'         => $wsrep_provider_options,
          'wsrep_slave_threads'            => $wsrep_slave_threads,
@@ -47,7 +49,7 @@ index 1755c34..0cfbc8c 100644
          #TODO (sgolovatiuk): fix this, should be a specific user not root
          'wsrep_sst_auth'                 => "\"root:${mysql_root_password}\"",
          'wsrep_node_address'             => $galera_node_address,
-@@ -269,7 +271,7 @@ class osnailyfacter::database::database {
+@@ -264,7 +266,7 @@ class osnailyfacter::database::database {
        wsrep_group_comm_port => $wsrep_group_comm_port,
        bind_address          => $galera_node_address,
        local_ip              => $galera_node_address,
@@ -55,4 +57,4 @@ index 1755c34..0cfbc8c 100644
 +      wsrep_sst_method      => $wsrep_sst_method,
        override_options      => $override_options,
      }
+
@@ -15,21 +15,21 @@ index cdd814c..49cbd17 100644
 --- a/files/fuel-ha-utils/ocf/ns_dns
 +++ b/files/fuel-ha-utils/ocf/ns_dns
 @@ -140,7 +140,7 @@ exit $OCF_SUCCESS
+
  check_ns() {
    local ns=`ip netns list | grep "$OCF_RESKEY_ns"`
 -  [ $ns != $OCF_RESKEY_ns ] && return $OCF_ERR_GENERIC
 +  [ "$ns" != $OCF_RESKEY_ns ] && return $OCF_ERR_GENERIC
    return $OCF_SUCCESS
  }
+
 @@ -150,6 +150,7 @@ get_ns() {
+
    ocf_run ip netns add $OCF_RESKEY_ns
    rc=$?
 +  ocf_run $RUN_IN_NS /sbin/sysctl -w net.ipv4.ip_nonlocal_bind=1
    ocf_run $RUN_IN_NS ip link set up dev lo
+
    return $rc
 diff --git a/files/fuel-ha-utils/ocf/ns_vrouter b/files/fuel-ha-utils/ocf/ns_vrouter
 index a65e9cf..5cc6c98 100644
@@ -43,12 +43,12 @@ index a65e9cf..5cc6c98 100644
 +  [[ "$ns" != $OCF_RESKEY_ns ]] && return $OCF_ERR_GENERIC
    return $OCF_SUCCESS
  }
+
 @@ -197,6 +197,7 @@ get_ns() {
+
    ocf_run ip netns add $OCF_RESKEY_ns
    rc=$?
 +  ocf_run $RUN_IN_NS /sbin/sysctl -w net.ipv4.ip_nonlocal_bind=1
    ocf_run $RUN_IN_NS ip link set up dev lo
    ocf_log debug "${LH} added netns ${OCF_RESKEY_ns} and set up lo"
+
@@ -1,6 +1,6 @@
 From: dmburmistrov <dmburmistrov@mirantis.com>
 Date: Thu, 18 Aug 2016 21:30:26 +0300
-Subject: Always wait for MySQL sync on service refresh
+Subject: [PATCH] Always wait for MySQL sync on service refresh
 
 Always trigger Exec['wait-for-sync'] on
 MySQL service refresh.
@@ -14,21 +14,21 @@ Change-Id: I82ec0d46eff217daedc1bd07c67069498c515c44
  2 files changed, 8 insertions(+), 4 deletions(-)
 
 diff --git a/deployment/puppet/cluster/manifests/mysql.pp b/deployment/puppet/cluster/manifests/mysql.pp
-index 0b766c5..055b931 100644
+index c36b65d..f483cf6 100644
 --- a/deployment/puppet/cluster/manifests/mysql.pp
 +++ b/deployment/puppet/cluster/manifests/mysql.pp
-@@ -111,7 +111,7 @@ class cluster::mysql (
+@@ -104,7 +104,7 @@ class cluster::mysql (
      require => Package['mysql-server'],
    } ~>
+
 -  exec { 'wait-initial-sync':
 +  exec { 'wait-for-sync':
      path        => '/bin:/sbin:/usr/bin:/usr/sbin',
      command     => "mysql ${user_password_string} -Nbe \"show status like 'wsrep_local_state_comment'\" | grep -q -e Synced && sleep 10",
      try_sleep   => 10,
-@@ -126,7 +126,7 @@ class cluster::mysql (
+@@ -119,7 +119,7 @@ class cluster::mysql (
    }
+
    Exec['create-init-file'] ->
 -    Service<| title == $service_name |> ->
 -      Exec['wait-initial-sync'] ->
@@ -37,17 +37,17 @@ index 0b766c5..055b931 100644
          Exec['rm-init-file']
  }
 diff --git a/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb b/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb
-index be00056..e4d62c4 100644
+index cf2c719..72c8c2f 100644
 --- a/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb
 +++ b/deployment/puppet/cluster/spec/classes/cluster_mysql_spec.rb
-@@ -39,12 +39,16 @@ describe 'cluster::mysql' do
+@@ -34,12 +34,16 @@ describe 'cluster::mysql' do
            /'username'@'localhost' IDENTIFIED BY 'password'/
          )
          should contain_exec('create-init-file').that_comes_before('Service[mysqld]')
 -        should contain_exec('create-init-file').that_notifies('Exec[wait-initial-sync]')
 +        should contain_exec('create-init-file').that_notifies('Exec[wait-for-sync]')
        end
+
        it 'creates exec to remove init-file' do
          should contain_exec('rm-init-file')
        end
@@ -56,5 +56,5 @@ index be00056..e4d62c4 100644
 +        should contain_exec('wait-for-sync').that_subscribes_to('Service[mysqld]')
 +      end
      end
+
    end
@@ -1,6 +1,6 @@
 From: Maksim Malchuk <mmalchuk@mirantis.com>
 Date: Wed, 24 Aug 2016 00:15:02 +0300
-Subject: Fix MySQL logging dir permissions for syslog
+Subject: [PATCH] Fix MySQL logging dir permissions for syslog
 
 This change fixes permissions for MySQL logging directory to enable
 syslogd create and write logs files into it.
@@ -22,7 +22,7 @@ index f483cf6..7bc8874 100644
 @@ -118,8 +118,16 @@ class cluster::mysql (
      onlyif  => 'test -f /tmp/wsrep-init-file',
    }
+
 +  file { 'fix-log-dir':
 +    ensure  => directory,
 +    path    => '/var/log/mysql',
@@ -51,11 +51,11 @@ index 72c8c2f..ad3fc1b 100644
 +        should contain_exec('create-init-file').that_comes_before('File[fix-log-dir]')
          should contain_exec('create-init-file').that_notifies('Exec[wait-for-sync]')
        end
+
 @@ -41,6 +41,15 @@ describe 'cluster::mysql' do
          should contain_exec('rm-init-file')
        end
+
 +      it 'should have correct permissions for logging directory' do
 +        should contain_file('fix-log-dir').with(
 +          :ensure => 'directory',
@@ -75,7 +75,7 @@ index d4ad8d0..2c4c5c5 100644
 @@ -261,6 +261,15 @@ describe manifest do
        )
      end
+
 +    it 'should have correct permissions for logging directory' do
 +      should contain_file('fix-log-dir').with(
 +        :ensure => 'directory',
index a12c414..9d45cda 100644 (file)
@@ -8,7 +8,7 @@ Contents of amd64 mos-ubuntu repos should be in sync with arm64.
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/contrib/fuel_mirror/data/ubuntu.yaml b/contrib/fuel_mirror/data/ubuntu.yaml
-index 5ce288e..7bc0c4b 100644
+index ac62455..cd86ec9 100644
 --- a/contrib/fuel_mirror/data/ubuntu.yaml
 +++ b/contrib/fuel_mirror/data/ubuntu.yaml
 @@ -1,6 +1,6 @@
@@ -16,6 +16,6 @@ index 5ce288e..7bc0c4b 100644
  ubuntu_baseurl: &ubuntu_baseurl http://archive.ubuntu.com/ubuntu
 -mos_baseurl: &mos_baseurl http://mirror.fuel-infra.org/mos-repos/ubuntu/$mos_version
 +mos_baseurl: &mos_baseurl http://linux.enea.com/mos-repos/ubuntu/$mos_version
+
  fuel_release_match:
     version: $openstack_version
@@ -8,14 +8,14 @@ Ubuntu arm64: While keeping kernel 4.2 for Trusty
 
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
- contrib/fuel_mirror/data/ubuntu.yaml | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
+ contrib/fuel_mirror/data/ubuntu.yaml | 2 ++
+ 1 file changed, 2 insertions(+)
 
 diff --git a/contrib/fuel_mirror/data/ubuntu.yaml b/contrib/fuel_mirror/data/ubuntu.yaml
-index 2ec4f1d..b8c0ae4 100644
+index 2ec4f1d..6805847 100644
 --- a/contrib/fuel_mirror/data/ubuntu.yaml
 +++ b/contrib/fuel_mirror/data/ubuntu.yaml
-@@ -98,6 +98,8 @@ packages: &packages
+@@ -100,6 +100,8 @@ packages: &packages
       - "linux-firmware-nonfree"
       - "linux-headers-generic-lts-trusty"
       - "linux-image-generic-lts-trusty"
index d8fe07d..f1a1d41 100644 (file)
@@ -104,10 +104,10 @@ index 0000000..08a528b
 +          </instructions>
 +         </configuration>
 diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp
-index a322f70..f71bfc8 100644
+index 69cc23a..791ceba 100644
 --- a/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp
 +++ b/deployment_scripts/puppet/modules/opendaylight/manifests/init.pp
-@@ -10,4 +10,12 @@ class opendaylight {
+@@ -9,4 +9,12 @@ class opendaylight {
    $odl_mgmt_ips = values($odl_mgmt_ips_hash)
    $odl_nodes_names = keys($odl_mgmt_ips_hash)
    $node_internal_address = $odl_mgmt_ips_hash["node-${node_uid}"]
@@ -121,13 +121,13 @@ index a322f70..f71bfc8 100644
 +  }
  }
 diff --git a/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp b/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp
-index 924a840..d55a311 100644
+index 1962609..ca98532 100644
 --- a/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp
 +++ b/deployment_scripts/puppet/modules/opendaylight/manifests/install.pp
 @@ -17,6 +17,12 @@ class opendaylight::install (
      ensure  => installed,
    }
+
 +  if ($::osfamily == 'Debian' and $::opendaylight::arch == 'arm64') {
 +    class { 'opendaylight::leveldbjni':
 +      require => Package[$odl_package],
@@ -138,9 +138,9 @@ index 924a840..d55a311 100644
    class { 'opendaylight::quagga':
      before => Service['opendaylight']
 @@ -35,7 +41,8 @@ class opendaylight::install (
+
    debug("Set odl rest api port to ${rest_port}")
+
 -  file { "${conf_dir}/jetty.xml":
 +  file { 'jetty.xml':
 +    path    => "${conf_dir}/jetty.xml",
@@ -313,10 +313,10 @@ index 0000000..5125fc7
 +  }
 +}
 diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml
-index 3706678..841bfee 100644
+index 20bd24f..e324ff5 100644
 --- a/deployment_tasks.yaml
 +++ b/deployment_tasks.yaml
-@@ -17,7 +17,7 @@
+@@ -20,7 +20,7 @@
    parameters:
      puppet_manifest: puppet/manifests/odl-install.pp
      puppet_modules: puppet/modules:/etc/puppet/modules
index a44222a..e6e7716 100644 (file)
@@ -30,21 +30,21 @@ branch "stable/colorado", including prebuilt binaries (DEBs) for:
 
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
- pre_build_hook | 16 ++++++++++++++--
- 1 file changed, 14 insertions(+), 2 deletions(-)
+ pre_build_hook | 1+++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
 
 diff --git a/pre_build_hook b/pre_build_hook
-index f973826..953e66c 100755
+index 0296821..a6d55e9 100755
 --- a/pre_build_hook
 +++ b/pre_build_hook
-@@ -41,9 +41,17 @@ NETWORKING_ODL_BRANCH=${NETWORKING_ODL_BRANCH:-stable/mitaka}
+@@ -53,9 +53,17 @@ NETWORKING_ODL_BRANCH=${NETWORKING_ODL_BRANCH:-stable/mitaka}
  OPNFV_QUAGGE_PACKAGING_REPO=${OPNFV_QUAGGE_PACKAGING_REPO:-https://github.com/nikolas-hermanns/opnfv-quagga-packaging}
  OPNFV_QUAGGE_PACKAGING_BRANCH=stable/colorado
+
 -# For which systems odl package should be build
 +# For which systems odl package should be built
  BUILD_FOR=${BUILD_FOR:-ubuntu}
+
 +# For which architecture(s) package should be built
 +# Only applicable when "BUILD_FOR=ubuntu"
 +# ODL itself is mostly arch-indep, but its deps are not
@@ -56,7 +56,7 @@ index f973826..953e66c 100755
  DIR="$(dirname `readlink -f $0`)"
  TMP_DIR="${DIR}/tmp"
  MODULES="${DIR}/deployment_scripts/puppet/modules"
-@@ -74,7 +82,10 @@ function add_opnfv_quagga {
+@@ -86,7 +94,10 @@ function add_opnfv_quagga {
                  sudo apt-get -y install `cat requirements.txt`
                  make -j6
              fi
@@ -67,4 +67,4 @@ index f973826..953e66c 100755
 +            done
          popd
      popd
+
index b57de50..8b2d1a3 100644 (file)
@@ -28,15 +28,15 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 1 insertion(+), 1 deletion(-)
 
 diff --git a/pre_build_hook b/pre_build_hook
-index 4785917..c3dd664 100755
+index a6d55e9..21e7a99 100755
 --- a/pre_build_hook
 +++ b/pre_build_hook
-@@ -64,7 +64,7 @@ function cleanup {
+@@ -76,7 +76,7 @@ function cleanup {
  }
+
  function download {
 -  wget "$1" -qO $2
 +  wget --no-check-certificate "$1" -qO $2
  }
+
  function unpack {
@@ -24,25 +24,25 @@ index 1b42df1..3d7edea 100755
 +++ b/ovs_build/build-ovs-nsh-dpdk.sh
 @@ -17,10 +17,7 @@ sudo apt-get -y install devscripts dpkg-dev git wget
  rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}
+
  cd ${BUILD_HOME}
 -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc
 -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0.orig.tar.gz
 -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.debian.tar.xz
 -dpkg-source -x dpdk_2.2.0-0ubuntu8.dsc
 +dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc
+
  # copy from debian/control
  sudo apt-get install -y debhelper \
 @@ -49,10 +46,7 @@ cd ${BUILD_HOME}; sudo dpkg -i *.deb
  apt-get download libxenstore3.0
+
  cd ${BUILD_HOME}
 -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0.orig.tar.gz
 -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
 -wget -c https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.debian.tar.xz
 -dpkg-source -x openvswitch-dpdk_2.4.0-0ubuntu1.dsc
 +dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
+
  # copy from debian/control
  sudo apt-get install -y autoconf \
@@ -13,46 +13,46 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  2 files changed, 11 insertions(+), 11 deletions(-)
 
 diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh
-index aeb5eb7..9e92014 100755
+index aeb5eb7..01ba032 100755
 --- a/ovs_build/build-ovs-dpdk.sh
 +++ b/ovs_build/build-ovs-dpdk.sh
 @@ -3,14 +3,14 @@
  set -eux
+
  OVS_COMMIT=9f4ecd654dbcb88b15a424445184591fc887537e
 -URL_OVS=https://github.com/openvswitch/ovs.git
 +URL_OVS_ARCHIVE=https://github.com/openvswitch/ovs/archive
  BUILD_DEB=${BUILD_DEB:-/deb}
  BUILD_SRC="$(dirname `readlink -f $0`)"
  BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk}
+
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
 -sudo apt-get -y install devscripts dpkg-dev git wget
 +sudo apt-get -y install devscripts dpkg-dev wget
+
  rm -rf ${BUILD_DEST}; mkdir -p ${BUILD_DEST}
+
 @@ -62,9 +62,9 @@ sudo apt-get install -y autoconf \
                 python-zopeinterface \
                 python-six
+
 -git clone https://github.com/openvswitch/ovs.git
 -cd ovs; git checkout ${OVS_COMMIT}; rm -rf .git
 -cd ${BUILD_DEST}; cp -r ovs ovs-dpdk
 +wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz
 +tar xzf ${OVS_COMMIT}.tar.gz; mv ovs-${OVS_COMMIT} ovs
 +cp -r ovs ovs-dpdk
+
  cd ovs-dpdk
  cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian .
 diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh
-index 3d7edea..ec5eef4 100755
+index 3d7edea..25e4b6c 100755
 --- a/ovs_build/build-ovs-nsh-dpdk.sh
 +++ b/ovs_build/build-ovs-nsh-dpdk.sh
 @@ -3,7 +3,7 @@
  set -eux
+
  OVS_COMMIT=7d433ae57ebb90cd68e8fa948a096f619ac4e2d8
 -URL_OVS=https://github.com/openvswitch/ovs.git
 +URL_OVS_ARCHIVE=https://github.com/openvswitch/ovs/archive
@@ -61,17 +61,17 @@ index 3d7edea..ec5eef4 100755
  BUILD_DEST=${BUILD_DEST:-/deb}
 @@ -12,7 +12,7 @@ DIR="$(dirname `readlink -f $0`)"
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
  sudo apt-get build-dep openvswitch -y
 -sudo apt-get -y install devscripts dpkg-dev git wget
 +sudo apt-get -y install devscripts dpkg-dev wget
+
  rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}
+
 @@ -35,7 +35,7 @@ sudo apt-get install -y debhelper \
                 texlive-fonts-recommended  \
                 texlive-latex-extra
+
 -cd dpdk-2.2.0; rm -rf debian/patches/;
 +cd dpdk-2.2.0; rm -rf debian/patches/
  cat << EOF > debian/changelog
@@ -80,7 +80,7 @@ index 3d7edea..ec5eef4 100755
 @@ -68,8 +68,8 @@ sudo apt-get install -y autoconf \
                 python-zopeinterface \
                 python-six
+
 -git clone https://github.com/openvswitch/ovs.git
 -cd ovs; git checkout ${OVS_COMMIT}
 +wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz
@@ -19,21 +19,21 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  2 files changed, 8 insertions(+), 8 deletions(-)
 
 diff --git a/ovs_build/build-ovs-dpdk.sh b/ovs_build/build-ovs-dpdk.sh
-index 9e92014..75904f2 100755
+index 01ba032..dd9c6ff 100755
 --- a/ovs_build/build-ovs-dpdk.sh
 +++ b/ovs_build/build-ovs-dpdk.sh
 @@ -10,7 +10,7 @@ BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk}
+
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
 -sudo apt-get -y install devscripts dpkg-dev wget
 +sudo apt-get -y --force-yes install devscripts dpkg-dev wget
+
  rm -rf ${BUILD_DEST}; mkdir -p ${BUILD_DEST}
+
 @@ -21,7 +21,7 @@ cd dpdk-16.07
  cp -r ${BUILD_SRC}/dpdk_16.07/debian .
+
  # copy from debian/control
 -sudo apt-get install -y debhelper \
 +sudo apt-get install -y --force-yes debhelper \
@@ -43,7 +43,7 @@ index 9e92014..75904f2 100755
 @@ -41,9 +41,9 @@ cd ${BUILD_DEST}
  sudo dpkg -i *.deb
  apt-get download libxenstore3.0
+
 -sudo apt-get build-dep openvswitch -y
 +sudo apt-get build-dep openvswitch -y --force-yes
  # copy from debian/control
@@ -53,23 +53,23 @@ index 9e92014..75904f2 100755
                 bzip2 \
                 debhelper \
 diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh
-index ec5eef4..3b84f4c 100755
+index 25e4b6c..3751c02 100755
 --- a/ovs_build/build-ovs-nsh-dpdk.sh
 +++ b/ovs_build/build-ovs-nsh-dpdk.sh
 @@ -11,8 +11,8 @@ DIR="$(dirname `readlink -f $0`)"
+
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
 -sudo apt-get build-dep openvswitch -y
 -sudo apt-get -y install devscripts dpkg-dev wget
 +sudo apt-get build-dep openvswitch -y --force-yes
 +sudo apt-get -y --force-yes install devscripts dpkg-dev wget
+
  rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}
+
 @@ -20,7 +20,7 @@ cd ${BUILD_HOME}
  dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc
+
  # copy from debian/control
 -sudo apt-get install -y debhelper \
 +sudo apt-get install -y --force-yes debhelper \
@@ -78,7 +78,7 @@ index ec5eef4..3b84f4c 100755
                 doxygen  \
 @@ -49,7 +49,7 @@ cd ${BUILD_HOME}
  dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
+
  # copy from debian/control
 -sudo apt-get install -y autoconf \
 +sudo apt-get install -y --force-yes autoconf \
@@ -26,11 +26,11 @@ index 63cf7b4..b9ae6bb 100755
 +++ b/pre_build_hook
 @@ -3,27 +3,40 @@
  set -eux
+
  BUILD_FOR=${BUILD_FOR:-ubuntu}
 +USE_DOCKER=${USE_DOCKER:-true}
  DIR="$(dirname `readlink -f $0`)"
+
 +if [ `uname -m` = 'aarch64' ]; then
 +  USE_DOCKER=false
 +fi
@@ -45,7 +45,7 @@ index 63cf7b4..b9ae6bb 100755
 +      rm -rf ${DIR}/repositories/ubuntu ${DEB_DIR} ${DEB_DIR_NSH}
 +      mkdir -p ${DIR}/repositories/ubuntu ${DEB_DIR} ${DEB_DIR_NSH}
 +      sudo chmod -R 777 ${DEB_DIR} ${DEB_DIR_NSH}
+
        cd ${DIR}/ovs_build
 -      sudo docker build -t ovs_build .
 +      if [ "${USE_DOCKER}" = true ]; then
@@ -58,13 +58,13 @@ index 63cf7b4..b9ae6bb 100755
 +        BUILD_HOME=/tmp/ovs-build-nsh-dpdk BUILD_DEST=${DEB_DIR_NSH} ./build-ovs-nsh-dpdk.sh
 +        rm -rf /tmp/ovs-build-{,nsh-}dpdk
 +      fi
+
 -      DEB_DIR=${DIR}/deb-ovs-dpdk
 -      rm -rf ${DEB_DIR};  mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR};
 -      sudo docker run -v ${DEB_DIR}:/deb -t  ovs_build /ovs_build/build-ovs-dpdk.sh
        cd ${DEB_DIR}; tar czvf ../repositories/ubuntu/ovs-dpdk.tar.gz .;
        cd ..; rm -rf ${DEB_DIR}
+
 -      DEB_DIR=${DIR}/deb-ovs-nsh-dpdk
 -      rm -rf ${DEB_DIR};  mkdir -p ${DEB_DIR}; chmod 777 ${DEB_DIR};
 -      sudo docker run -v ${DEB_DIR}:/deb -t  ovs_build /ovs_build/build-ovs-nsh-dpdk.sh
@@ -72,6 +72,6 @@ index 63cf7b4..b9ae6bb 100755
 -      cd ..; rm -rf ${DEB_DIR}
 +      cd ${DEB_DIR_NSH}; tar czvf ../repositories/ubuntu/ovs-nsh-dpdk.tar.gz .;
 +      cd ..; rm -rf ${DEB_DIR_NSH}
+
        ;;
      *) echo "Not supported system"; exit 1;;
@@ -45,7 +45,7 @@ index efbed72..46d74bb 100644
  dpdk_socket_mem=${4:-''}
 +arch=$(dpkg --print-architecture)
 +ovs="ovs-dpdk_${arch}.tar.gz"
+
 -if [ $nsh = 'true' ]
 -then
 -    curl  http://$host:8080/plugins/fuel-plugin-ovs-0.9/repositories/ubuntu/ovs-nsh-dpdk.tar.gz | tar -xzv
@@ -58,7 +58,7 @@ index efbed72..46d74bb 100644
 +if [ $nsh = 'true' ]; then
 +    ovs="ovs-nsh-dpdk_${arch}.tar.gz"
 +fi
-+ 
++
 +curl  http://$host:8080/plugins/fuel-plugin-ovs-0.9/repositories/ubuntu/${ovs} | tar -xzv
 +dpkg -i openvswitch-datapath-dkms_*.deb
 +dpkg -i openvswitch-common_*.deb
@@ -109,9 +109,9 @@ index dd9c6ff..a14f5fd 100755
 --- a/ovs_build/build-ovs-dpdk.sh
 +++ b/ovs_build/build-ovs-dpdk.sh
 @@ -10,18 +10,27 @@ BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk}
+
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
 -sudo apt-get -y --force-yes install devscripts dpkg-dev wget
 +# Keep track of native arch (BUILD_ARCH) and target arch(s) (UBUNTU_ARCH)
 +# All archs should be represented in `dpkg --print-architecture` format
@@ -119,7 +119,7 @@ index dd9c6ff..a14f5fd 100755
 +# FIXME(armband): For now, only native building is supported!
 +BUILD_ARCH=$(dpkg --print-architecture)
 +UBUNTU_ARCH=${UBUNTU_ARCH:-${BUILD_ARCH}}
+
 -rm -rf ${BUILD_DEST}; mkdir -p ${BUILD_DEST}
 +# Build and/or fetch precompiled packages for all arch(s) in UBUNTU_ARCH
 +for ARCH in ${UBUNTU_ARCH}; do
@@ -127,7 +127,7 @@ index dd9c6ff..a14f5fd 100755
 +  if [ ${ARCH} = ${BUILD_ARCH} ]; then
 +    # Native building for: DPDK, OVS-DPDK, OVS
 +    sudo apt-get -y --force-yes install devscripts dpkg-dev wget
+
 -cd ${BUILD_DEST}
 -wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz
 -xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar
@@ -137,7 +137,7 @@ index dd9c6ff..a14f5fd 100755
 +    xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar
 +    cd dpdk-16.07
 +    cp -r ${BUILD_SRC}/dpdk_16.07/debian .
+
 -# copy from debian/control
 -sudo apt-get install -y --force-yes debhelper \
 +    # DPDK build-dep install: copy from debian/control
@@ -151,14 +151,14 @@ index dd9c6ff..a14f5fd 100755
                 texlive-latex-extra
 -debian/rules build; fakeroot debian/rules binary
 +    debian/rules build; fakeroot debian/rules binary
+
 -cd ${BUILD_DEST}
 -sudo dpkg -i *.deb
 -apt-get download libxenstore3.0
 +    cd ${BUILD_DEST}
 +    sudo dpkg -i *.deb
 +    apt-get download libxenstore3.0
+
 -sudo apt-get build-dep openvswitch -y --force-yes
 -# copy from debian/control
 -sudo apt-get install -y --force-yes autoconf \
@@ -171,27 +171,27 @@ index dd9c6ff..a14f5fd 100755
 @@ -62,16 +71,19 @@ sudo apt-get install -y --force-yes autoconf \
                 python-zopeinterface \
                 python-six
+
 -wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz
 -tar xzf ${OVS_COMMIT}.tar.gz; mv ovs-${OVS_COMMIT} ovs
 -cp -r ovs ovs-dpdk
 +    wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz
 +    tar xzf ${OVS_COMMIT}.tar.gz; mv ovs-${OVS_COMMIT} ovs
 +    cp -r ovs ovs-dpdk
+
 -cd ovs-dpdk
 -cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian .
 -debian/rules build; fakeroot debian/rules binary
 +    cd ovs-dpdk
 +    cp -r ${BUILD_SRC}/openvswitch-dpdk_2.5.90/debian .
 +    debian/rules build; fakeroot debian/rules binary
+
 -cd ${BUILD_DEST}/ovs
 -debian/rules build; fakeroot debian/rules binary
 +    cd ${BUILD_DEST}/ovs
 +    debian/rules build; fakeroot debian/rules binary
 +  fi
+
 -cp -r ${BUILD_DEST}/*.deb ${BUILD_DEB}
 -rm -rf ${BUILD_DEST}
 +  # Store DEBs in <${BUILD_DEB}/${ARCH}/> dir and cleanup
@@ -203,9 +203,9 @@ index 3751c02..a65a2bb 100755
 --- a/ovs_build/build-ovs-nsh-dpdk.sh
 +++ b/ovs_build/build-ovs-nsh-dpdk.sh
 @@ -11,16 +11,24 @@ DIR="$(dirname `readlink -f $0`)"
+
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
 -sudo apt-get build-dep openvswitch -y --force-yes
 -sudo apt-get -y --force-yes install devscripts dpkg-dev wget
 +# Keep track of native arch (BUILD_ARCH) and target arch(s) (UBUNTU_ARCH)
@@ -214,7 +214,7 @@ index 3751c02..a65a2bb 100755
 +# FIXME(armband): For now, only native building is supported!
 +BUILD_ARCH=$(dpkg --print-architecture)
 +UBUNTU_ARCH=${UBUNTU_ARCH:-${BUILD_ARCH}}
+
 -rm -rf ${BUILD_HOME}; mkdir -p ${BUILD_HOME}
 +# Build and/or fetch precompiled packages for all arch(s) in UBUNTU_ARCH
 +for ARCH in ${UBUNTU_ARCH}; do
@@ -224,7 +224,7 @@ index 3751c02..a65a2bb 100755
 +    sudo apt-get build-dep openvswitch -y --force-yes
 +    sudo apt-get -y --force-yes install devscripts dpkg-dev wget
 +    dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc
+
 -cd ${BUILD_HOME}
 -dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc
 -
@@ -238,7 +238,7 @@ index 3751c02..a65a2bb 100755
 @@ -35,21 +43,22 @@ sudo apt-get install -y --force-yes debhelper \
                 texlive-fonts-recommended  \
                 texlive-latex-extra
+
 -cd dpdk-2.2.0; rm -rf debian/patches/
 -cat << EOF > debian/changelog
 +    cd dpdk-2.2.0; rm -rf debian/patches/
@@ -254,12 +254,12 @@ index 3751c02..a65a2bb 100755
 +    debian/rules build; fakeroot debian/rules binary
 +    cd ${BUILD_HOME}; sudo dpkg -i *.deb
 +    apt-get download libxenstore3.0
+
 -cd ${BUILD_HOME}
 -dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
 +    cd ${BUILD_HOME}
 +    dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
+
 -# copy from debian/control
 -sudo apt-get install -y --force-yes autoconf \
 +    # OVS-NSH build-dep install: copy from debian/control
@@ -270,7 +270,7 @@ index 3751c02..a65a2bb 100755
 @@ -68,33 +77,41 @@ sudo apt-get install -y --force-yes autoconf \
                 python-zopeinterface \
                 python-six
+
 -wget -c ${URL_OVS_ARCHIVE}/${OVS_COMMIT}.tar.gz
 -tar xzf ${OVS_COMMIT}.tar.gz; mv ovs-${OVS_COMMIT} ovs
 -PATCHES=$(cd ${DIR}/patches; echo *patch)
@@ -312,7 +312,7 @@ index 3751c02..a65a2bb 100755
  EOF
 -debian/rules build; fakeroot debian/rules binary
 +    debian/rules build; fakeroot debian/rules binary
+
 -cd ${BUILD_HOME}/ovs
 -cat << EOF > debian/changelog
 +    cd ${BUILD_HOME}/ovs
@@ -337,7 +337,7 @@ index b9ae6bb..3e46a37 100755
 @@ -10,6 +10,11 @@ if [ `uname -m` = 'aarch64' ]; then
    USE_DOCKER=false
  fi
+
 +# Pass target arch(s) (UBUNTU_ARCH) to build scripts.
 +# All archs should be represented in `dpkg --print-architecture` format
 +# UBUNTU_ARCH holds a space-separated list of target arch(s)
@@ -362,7 +362,7 @@ index b9ae6bb..3e46a37 100755
 @@ -32,11 +39,14 @@ function build_pkg {
          rm -rf /tmp/ovs-build-{,nsh-}dpdk
        fi
+
 -      cd ${DEB_DIR}; tar czvf ../repositories/ubuntu/ovs-dpdk.tar.gz .;
 -      cd ..; rm -rf ${DEB_DIR}
 -
@@ -376,6 +376,6 @@ index b9ae6bb..3e46a37 100755
 +        tar czvf ../../repositories/ubuntu/ovs-nsh-dpdk_${ARCH}.tar.gz .
 +      done
 +      cd ${DIR}; sudo rm -rf ${DEB_DIR} ${DEB_DIR_NSH}
+
        ;;
      *) echo "Not supported system"; exit 1;;
@@ -18,9 +18,9 @@ index a14f5fd..a0c50e3 100755
 --- a/ovs_build/build-ovs-dpdk.sh
 +++ b/ovs_build/build-ovs-dpdk.sh
 @@ -10,6 +10,10 @@ BUILD_DEST=${BUILD_DEST:-/tmp/ovs-dpdk}
+
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
 +# AArch64 specifics, repository base URL, debian build versions
 +AARCH64_REPO=${AARCH64_REPO:-'https://linux.enea.com/mos-repos/ubuntu/9.0'}
 +AARCH64_DPDK_DEBV=${AARCH64_DPDK_DEBV:-'0~u14.04+mos1+mos9.0+amos1'}
@@ -31,7 +31,7 @@ index a14f5fd..a0c50e3 100755
 @@ -24,10 +28,17 @@ for ARCH in ${UBUNTU_ARCH}; do
      # Native building for: DPDK, OVS-DPDK, OVS
      sudo apt-get -y --force-yes install devscripts dpkg-dev wget
+
 -    wget -c http://fast.dpdk.org/rel/dpdk-16.07.tar.xz
 -    xz -d dpdk-16.07.tar.xz; tar xvf dpdk-16.07.tar
 -    cd dpdk-16.07
@@ -47,7 +47,7 @@ index a14f5fd..a0c50e3 100755
 +      cd dpdk-16.07
 +      cp -r ${BUILD_SRC}/dpdk_16.07/debian .
 +    fi
+
      # DPDK build-dep install: copy from debian/control
      sudo apt-get install -y --force-yes debhelper \
 diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh
@@ -59,7 +59,7 @@ index a65a2bb..59d8a79 100755
      sudo apt-get build-dep openvswitch -y --force-yes
      sudo apt-get -y --force-yes install devscripts dpkg-dev wget
 -    dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/dpdk_2.2.0-0ubuntu8.dsc
+
 +    # FIXME(armband): OVS-NSH-DPDK is not yet supported on arm64
      # DPDK build-dep install: copy from debian/control
 -    sudo apt-get install -y --force-yes debhelper \
@@ -72,7 +72,7 @@ index a65a2bb..59d8a79 100755
 @@ -43,19 +45,20 @@ for ARCH in ${UBUNTU_ARCH}; do
                 texlive-fonts-recommended  \
                 texlive-latex-extra
+
 -    cd dpdk-2.2.0; rm -rf debian/patches/
 -    cat << EOF > debian/changelog
 +      cd dpdk-2.2.0; rm -rf debian/patches/
@@ -89,13 +89,13 @@ index a65a2bb..59d8a79 100755
 +      debian/rules build; fakeroot debian/rules binary
 +      cd ${BUILD_HOME}; sudo dpkg -i *.deb
 +      apt-get download libxenstore3.0
+
 -    cd ${BUILD_HOME}
 -    dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
 +      # OVS-NSH-DPDK build preparations: download sources, patch if needed
 +      dget -x -u https://launchpad.net/ubuntu/+archive/primary/+files/openvswitch-dpdk_2.4.0-0ubuntu1.dsc
 +    fi
+
      # OVS-NSH build-dep install: copy from debian/control
      sudo apt-get install -y --force-yes autoconf \
 @@ -88,20 +91,27 @@ EOF
@@ -130,7 +130,7 @@ index a65a2bb..59d8a79 100755
 -    debian/rules build; fakeroot debian/rules binary
 +      debian/rules build; fakeroot debian/rules binary
 +    fi
+
 +    # OVS-NSH build
      cd ${BUILD_HOME}/ovs
      cat << EOF > debian/changelog
@@ -141,7 +141,7 @@ index e7171b9..e0c27c5 100644
 +++ b/ovs_build/openvswitch-dpdk_2.5.90/debian/control
 @@ -27,7 +27,7 @@ Homepage: http://openvswitch.org/
  XS-Testsuite: autopkgtest
+
  Package: openvswitch-switch-dpdk
 -Architecture: i386 amd64
 +Architecture: i386 amd64 arm64
@@ -70,7 +70,7 @@ index a0c50e3..8d70265 100755
  AARCH64_REPO=${AARCH64_REPO:-'https://linux.enea.com/mos-repos/ubuntu/9.0'}
  AARCH64_DPDK_DEBV=${AARCH64_DPDK_DEBV:-'0~u14.04+mos1+mos9.0+amos1'}
 +AARCH64_OVS_DEBV=${AARCH64_OVS_DEBV:-'2.5.90-1'}
+
  # Keep track of native arch (BUILD_ARCH) and target arch(s) (UBUNTU_ARCH)
  # All archs should be represented in `dpkg --print-architecture` format
  # UBUNTU_ARCH holds a space-separated list of target arch(s)
@@ -79,9 +79,9 @@ index a0c50e3..8d70265 100755
 +# debian binaries is supported!
  BUILD_ARCH=$(dpkg --print-architecture)
  UBUNTU_ARCH=${UBUNTU_ARCH:-${BUILD_ARCH}}
+
 @@ -92,6 +94,20 @@ for ARCH in ${UBUNTU_ARCH}; do
+
      cd ${BUILD_DEST}/ovs
      debian/rules build; fakeroot debian/rules binary
 +  else
@@ -99,16 +99,16 @@ index a0c50e3..8d70265 100755
 +      echo "WARNING: Architecture [${ARCH}] does not provide precompiled DEBs, skipping!"
 +    fi
    fi
+
    # Store DEBs in <${BUILD_DEB}/${ARCH}/> dir and cleanup
 diff --git a/ovs_build/build-ovs-nsh-dpdk.sh b/ovs_build/build-ovs-nsh-dpdk.sh
 index 59d8a79..9d8a837 100755
 --- a/ovs_build/build-ovs-nsh-dpdk.sh
 +++ b/ovs_build/build-ovs-nsh-dpdk.sh
 @@ -11,10 +11,14 @@ DIR="$(dirname `readlink -f $0`)"
+
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
 +# AArch64 specifics, repository base URL, debian build versions
 +AARCH64_OVS_NSH_DEBV=${AARCH64_OVS_NSH_DEBV:-'2.5.90-1.nsh'}
 +
@@ -120,7 +120,7 @@ index 59d8a79..9d8a837 100755
 +# debian binaries is supported!
  BUILD_ARCH=$(dpkg --print-architecture)
  UBUNTU_ARCH=${UBUNTU_ARCH:-${BUILD_ARCH}}
+
 @@ -119,6 +123,15 @@ openvswitch (${OVS_VER}-1.nsh) unstable; urgency=low
   -- Open vSwitch team <dev@openvswitch.org>  $(date --rfc-2822)
  EOF
@@ -135,5 +135,5 @@ index 59d8a79..9d8a837 100755
 +      echo "WARNING: Architecture [${ARCH}] does not provide precompiled DEBs, skipping!"
 +    fi
    fi
+
    # Store DEBs in <${BUILD_DEST}/${ARCH}/> dir and cleanup
@@ -32,7 +32,7 @@ index a810b93..8ab22cc 100755
 @@ -30,16 +30,24 @@ function armband_fetch() {
      wget -c "${repo_base_url}/${repo_Packages_url}"
    fi
+
 -  L=$(grep -Pzo "(?s)(?<=^Package: ${name}\n^Binary: )(\N*?)(?=\n^Version: ${ver})" \
 +  L=$(grep -Pzo "(?s)(?<=^Package: ${name}\n^Binary: )(\N*?)(?=\n^Version: ${src_ver})" \
      Sources | tr -d ',')
@@ -63,10 +63,10 @@ index 9d8a837..aebcb94 100755
 +++ b/ovs_build/build-ovs-nsh-dpdk.sh
 @@ -12,7 +12,7 @@ DIR="$(dirname `readlink -f $0`)"
  export DEB_BUILD_OPTIONS='parallel=8 nocheck'
+
  # AArch64 specifics, repository base URL, debian build versions
 -AARCH64_OVS_NSH_DEBV=${AARCH64_OVS_NSH_DEBV:-'2.5.90-1.nsh'}
 +AARCH64_OVS_NSH_DEBV=${AARCH64_OVS_NSH_DEBV:-'2.5.90~04.05-1.nsh+amos2'}
+
  # Keep track of native arch (BUILD_ARCH) and target arch(s) (UBUNTU_ARCH)
  # All archs should be represented in `dpkg --print-architecture` format
index f3b9ea7..6dee64d 100644 (file)
@@ -7,14 +7,14 @@ Add the following Openstack releases:
 - Mitaka on Ubuntu 14.04 (aarch64)
 - Mitaka on Ubuntu+UCA 14.04 (aarch64)
 
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
  nailgun/nailgun/fixtures/openstack.yaml | 287 ++++++++++++++++++++++++++++++++
  1 file changed, 287 insertions(+)
 
 diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml
-index 62e6b73..9674d66 100644
+index d08a4fc..65646d4 100644
 --- a/nailgun/nailgun/fixtures/openstack.yaml
 +++ b/nailgun/nailgun/fixtures/openstack.yaml
 @@ -2314,3 +2314,290 @@
index d621dbd..0435891 100644 (file)
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Wed, 24 Feb 2016 20:11:54 +0100
 Subject: [PATCH] Add arch to nailgun release and target image
 
@@ -10,23 +10,23 @@ As a bonus, it is also used when building the target image.
  .../alembic_migrations/versions/armband.py         | 53 ++++++++++++++++++++++
  nailgun/nailgun/db/sqlalchemy/models/release.py    |  8 ++++
  nailgun/nailgun/fixtures/openstack.yaml            |  5 ++
- .../nailgun/orchestrator/deployment_serializers.py |  9 +++-
+ .../nailgun/orchestrator/deployment_serializers.py |  8 +++-
  .../orchestrator/provisioning_serializers.py       |  3 +-
  nailgun/nailgun/orchestrator/tasks_templates.py    |  5 +-
  .../integration/test_cluster_changes_handler.py    | 12 ++---
  .../integration/test_orchestrator_serializer.py    |  4 +-
  nailgun/nailgun/test/unit/test_tasks_templates.py  |  6 ++-
- 10 files changed, 96 insertions(+), 14 deletions(-)
+ 10 files changed, 95 insertions(+), 14 deletions(-)
  create mode 100644 nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py
 
 diff --git a/nailgun/nailgun/consts.py b/nailgun/nailgun/consts.py
-index 1ded0ba..5a1af0a 100644
+index 4900ec0..59b0c91 100644
 --- a/nailgun/nailgun/consts.py
 +++ b/nailgun/nailgun/consts.py
 @@ -38,6 +38,11 @@ RELEASE_OS = Enum(
      )
  )
+
 +RELEASE_ARCHS = Enum(
 +    'amd64',
 +    'arm64'
@@ -37,7 +37,7 @@ index 1ded0ba..5a1af0a 100644
      'ha_full',
 diff --git a/nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py b/nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py
 new file mode 100644
-index 0000000..8cca69c
+index 0000000..6e42b3f
 --- /dev/null
 +++ b/nailgun/nailgun/db/migration/alembic_migrations/versions/armband.py
 @@ -0,0 +1,53 @@
@@ -114,10 +114,10 @@ index 1b47de4..e209e72 100644
      operating_system = Column(String(50), nullable=False)
      state = Column(
 diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml
-index 9674d66..d3226da 100644
+index 65646d4..874d4f0 100644
 --- a/nailgun/nailgun/fixtures/openstack.yaml
 +++ b/nailgun/nailgun/fixtures/openstack.yaml
-@@ -1904,6 +1904,7 @@
+@@ -1907,6 +1907,7 @@
      name: "Mitaka on CentOS 6.5"
      state: "unavailable"
      version: "mitaka-9.0"
@@ -125,7 +125,7 @@ index 9674d66..d3226da 100644
      operating_system: "CentOS"
      description: "This option will install the OpenStack Mitaka packages using a CentOS based operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment."
      attributes_metadata:
-@@ -1978,6 +1979,7 @@
+@@ -1980,6 +1981,7 @@
    fields:
      name: "Mitaka on Ubuntu 14.04"
      version: "mitaka-9.0"
@@ -133,7 +133,7 @@ index 9674d66..d3226da 100644
      operating_system: "Ubuntu"
      description: "This option will install the OpenStack Mitaka packages using Ubuntu as a base operating system. With high availability features built in, you are getting a robust, enterprise-grade OpenStack deployment."
      attributes_metadata:
-@@ -2219,6 +2221,7 @@
+@@ -2220,6 +2222,7 @@
    fields:
      name: "Mitaka on Ubuntu+UCA 14.04"
      version: "mitaka-9.0"
@@ -158,7 +158,7 @@ index 9674d66..d3226da 100644
      attributes_metadata:
        editable:
 diff --git a/nailgun/nailgun/orchestrator/deployment_serializers.py b/nailgun/nailgun/orchestrator/deployment_serializers.py
-index 699a599..6bb7990 100644
+index 08eb9c3..e561324 100644
 --- a/nailgun/nailgun/orchestrator/deployment_serializers.py
 +++ b/nailgun/nailgun/orchestrator/deployment_serializers.py
 @@ -300,7 +300,13 @@ class DeploymentMultinodeSerializer(object):
@@ -173,11 +173,11 @@ index 699a599..6bb7990 100644
 +            arch = "aarch64"
 +        image_data['img_path'] = '{0}cirros-{1}-disk.img'.format(img_dir,
 +            arch)
+
          glance_properties = []
+
 diff --git a/nailgun/nailgun/orchestrator/provisioning_serializers.py b/nailgun/nailgun/orchestrator/provisioning_serializers.py
-index 48a4753..b1f3ca6 100644
+index 48a4753..aaac22a 100644
 --- a/nailgun/nailgun/orchestrator/provisioning_serializers.py
 +++ b/nailgun/nailgun/orchestrator/provisioning_serializers.py
 @@ -307,7 +307,8 @@ class ProvisioningSerializer61(ProvisioningSerializer):
@@ -187,7 +187,7 @@ index 48a4753..b1f3ca6 100644
 -                    packages))
 +                    packages,
 +                    cluster.release.arch))
+
          # NOTE(kozhukalov): This pre-provision task is going to be
          # removed by 7.0 because we need this only for classic way of
 diff --git a/nailgun/nailgun/orchestrator/tasks_templates.py b/nailgun/nailgun/orchestrator/tasks_templates.py
@@ -195,8 +195,8 @@ index 51dfdf7..bc2bff9 100644
 --- a/nailgun/nailgun/orchestrator/tasks_templates.py
 +++ b/nailgun/nailgun/orchestrator/tasks_templates.py
 @@ -210,7 +210,7 @@ def make_reboot_task(uids, task):
+
+
  def make_provisioning_images_task(
 -        uids, repos, provision_data, cid, packages):
 +        uids, repos, provision_data, cid, packages, arch):
@@ -212,63 +212,63 @@ index 51dfdf7..bc2bff9 100644
 +                    "--input_data '{2}'").format(cid, arch, conf),
              'timeout': settings.PROVISIONING_IMAGES_BUILD_TIMEOUT,
              'retries': 1}})
+
 diff --git a/nailgun/nailgun/test/integration/test_cluster_changes_handler.py b/nailgun/nailgun/test/integration/test_cluster_changes_handler.py
-index 0f212e5..da50eac 100644
+index fb82be0..450155d 100644
 --- a/nailgun/nailgun/test/integration/test_cluster_changes_handler.py
 +++ b/nailgun/nailgun/test/integration/test_cluster_changes_handler.py
-@@ -153,7 +153,7 @@ class TestHandlers(BaseIntegrationTest):
+@@ -154,7 +154,7 @@ class TestHandlers(BaseIntegrationTest):
          common_attrs['last_controller'] = controller_nodes[-1]['name']
          common_attrs['storage']['pg_num'] = 128
+
 -        common_attrs['test_vm_image'] = {
 +        common_attrs['test_vm_image'] = [{
              'container_format': 'bare',
              'public': 'true',
              'disk_format': 'qcow2',
-@@ -165,7 +165,7 @@ class TestHandlers(BaseIntegrationTest):
+@@ -166,7 +166,7 @@ class TestHandlers(BaseIntegrationTest):
                  """--property murano_image_info="""
                  """'{"title": "Murano Demo", "type": "cirros.demo"}'"""
              ),
 -        }
 +        }]
+
          critical_mapping = {
              'primary-controller': True,
-@@ -565,7 +565,7 @@ class TestHandlers(BaseIntegrationTest):
+@@ -566,7 +566,7 @@ class TestHandlers(BaseIntegrationTest):
          common_attrs['last_controller'] = controller_nodes[-1]['name']
          common_attrs['storage']['pg_num'] = 128
+
 -        common_attrs['test_vm_image'] = {
 +        common_attrs['test_vm_image'] = [{
              'container_format': 'bare',
              'public': 'true',
              'disk_format': 'qcow2',
-@@ -577,7 +577,7 @@ class TestHandlers(BaseIntegrationTest):
+@@ -578,7 +578,7 @@ class TestHandlers(BaseIntegrationTest):
                  """--property murano_image_info="""
                  """'{"title": "Murano Demo", "type": "cirros.demo"}'"""
              ),
 -        }
 +        }]
+
          critical_mapping = {
              'primary-controller': True,
-@@ -1049,7 +1049,7 @@ class TestHandlers(BaseIntegrationTest):
+@@ -1050,7 +1050,7 @@ class TestHandlers(BaseIntegrationTest):
          common_attrs['last_controller'] = controller_nodes[-1]['name']
          common_attrs['storage']['pg_num'] = 128
+
 -        common_attrs['test_vm_image'] = {
 +        common_attrs['test_vm_image'] = [{
              'container_format': 'bare',
              'public': 'true',
              'disk_format': 'qcow2',
-@@ -1061,7 +1061,7 @@ class TestHandlers(BaseIntegrationTest):
+@@ -1062,7 +1062,7 @@ class TestHandlers(BaseIntegrationTest):
                  """--property murano_image_info="""
                  """'{"title": "Murano Demo", "type": "cirros.demo"}'"""
              ),
 -        }
 +        }]
+
          critical_mapping = {
              'primary-controller': True,
 diff --git a/nailgun/nailgun/test/integration/test_orchestrator_serializer.py b/nailgun/nailgun/test/integration/test_orchestrator_serializer.py
@@ -276,22 +276,22 @@ index 5db8f4e..ef208cb 100644
 --- a/nailgun/nailgun/test/integration/test_orchestrator_serializer.py
 +++ b/nailgun/nailgun/test/integration/test_orchestrator_serializer.py
 @@ -2584,12 +2584,12 @@ class BaseDeploymentSerializer(BaseSerializerTest):
+
      def check_no_murano_data(self):
          glance_properties = self.serializer.generate_test_vm_image_data(
 -            self.env.nodes[0])['test_vm_image']['glance_properties']
 +            self.env.nodes[0])['test_vm_image'][0]['glance_properties']
          self.assertNotIn('murano_image_info', glance_properties)
+
      def check_murano_data(self):
          glance_properties = self.serializer.generate_test_vm_image_data(
 -            self.env.nodes[0])['test_vm_image']['glance_properties']
 +            self.env.nodes[0])['test_vm_image'][0]['glance_properties']
          self.assertIn('murano_image_info', glance_properties)
+
+
 diff --git a/nailgun/nailgun/test/unit/test_tasks_templates.py b/nailgun/nailgun/test/unit/test_tasks_templates.py
-index 4e81a19..d657518 100644
+index 4e81a19..695e53d 100644
 --- a/nailgun/nailgun/test/unit/test_tasks_templates.py
 +++ b/nailgun/nailgun/test/unit/test_tasks_templates.py
 @@ -140,7 +140,8 @@ class TestMakeTask(base.BaseTestCase):
@@ -302,7 +302,7 @@ index 4e81a19..d657518 100644
 +            packages=packages,
 +            arch='amd64'
          )
+
          fuel_image_conf = {
 @@ -177,7 +178,8 @@ class TestMakeTask(base.BaseTestCase):
          cmd = result["parameters"]["cmd"].lstrip(
@@ -312,5 +312,5 @@ index 4e81a19..d657518 100644
 +            "--data_driver nailgun_build_image --target_arch amd64"
 +            " --input_data '").rstrip("'")
          self.assertEqual(jsonutils.loads(cmd), fuel_image_conf)
+
      def test_generate_ironic_bootstrap_keys_task(self):
diff --git a/patches/fuel-web/cross-bootstrap/0000-Add-arch-to-nailgun-release-and-target-image.patch b/patches/fuel-web/cross-bootstrap/0000-Add-arch-to-nailgun-release-and-target-image.patch
new file mode 120000 (symlink)
index 0000000..64ff45c
--- /dev/null
@@ -0,0 +1 @@
+../0002-Add-arch-to-nailgun-release-and-target-image.patch
\ No newline at end of file
diff --git a/patches/fuel-web/direct-kernel-boot/0000-Add-arch-to-nailgun-release-and-target-image.patch b/patches/fuel-web/direct-kernel-boot/0000-Add-arch-to-nailgun-release-and-target-image.patch
new file mode 120000 (symlink)
index 0000000..64ff45c
--- /dev/null
@@ -0,0 +1 @@
+../0002-Add-arch-to-nailgun-release-and-target-image.patch
\ No newline at end of file
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Tue, 15 Mar 2016 15:01:51 +0100
 Subject: [PATCH] direct kernel boot for cirros
 
@@ -8,11 +8,11 @@ Subject: [PATCH] direct kernel boot for cirros
  2 files changed, 61 insertions(+), 23 deletions(-)
 
 diff --git a/nailgun/nailgun/orchestrator/base_serializers.py b/nailgun/nailgun/orchestrator/base_serializers.py
-index 0643635..a2f43b0 100644
+index 2fb0da5..ac787ed 100644
 --- a/nailgun/nailgun/orchestrator/base_serializers.py
 +++ b/nailgun/nailgun/orchestrator/base_serializers.py
 @@ -145,12 +145,16 @@ class MuranoMetadataSerializerMixin(object):
+
      def inject_murano_settings(self, image_data):
          """Adds murano metadata to the test image"""
 -        test_vm_image = image_data['test_vm_image']
@@ -31,16 +31,16 @@ index 0643635..a2f43b0 100644
 +                murano_data
 +            test_vm_images += [test_vm_image]
 +        return {'test_vm_image': test_vm_images}
+
+
  class VmwareDeploymentSerializerMixin(object):
 diff --git a/nailgun/nailgun/orchestrator/deployment_serializers.py b/nailgun/nailgun/orchestrator/deployment_serializers.py
-index 6bb7990..62fb08b 100644
+index e561324..601301b 100644
 --- a/nailgun/nailgun/orchestrator/deployment_serializers.py
 +++ b/nailgun/nailgun/orchestrator/deployment_serializers.py
 @@ -283,6 +283,9 @@ class DeploymentMultinodeSerializer(object):
          return {'glance': {'image_cache_max_size': image_cache_max_size}}
+
      def generate_test_vm_image_data(self, node):
 +        images = []
 +        # By default always prepare the disk image
@@ -48,7 +48,7 @@ index 6bb7990..62fb08b 100644
          # Instantiate all default values in dict.
          image_data = {
              'container_format': 'bare',
-@@ -306,8 +309,8 @@ class DeploymentMultinodeSerializer(object):
+@@ -305,8 +308,8 @@ class DeploymentMultinodeSerializer(object):
              arch = "x86_64"
          elif arch == "arm64":
              arch = "aarch64"
@@ -56,12 +56,12 @@ index 6bb7990..62fb08b 100644
 -            arch)
 +        image_data['img_path'] = \
 +            '{0}cirros-{1}-disk.img'.format(img_dir, arch)
+
          glance_properties = []
-@@ -322,8 +325,38 @@ class DeploymentMultinodeSerializer(object):
+
+@@ -321,8 +324,38 @@ class DeploymentMultinodeSerializer(object):
              glance_properties.append('--property hypervisor_type=vmware')
+
          image_data['glance_properties'] = ' '.join(glance_properties)
 +        images += [image_data]
 +
@@ -93,13 +93,13 @@ index 6bb7990..62fb08b 100644
 +                'glance_properties': '',
 +            }
 +            images += [kernel_data, initrd_data]
+
 -        return {'test_vm_image': image_data}
 +        return {'test_vm_image': images}
+
      @classmethod
      def get_net_provider_serializer(cls, cluster):
-@@ -522,20 +555,21 @@ class DeploymentHASerializer61(DeploymentHASerializer,
+@@ -521,20 +554,21 @@ class DeploymentHASerializer61(DeploymentHASerializer,
          images_data['test_vm_image'] = []
          if attrs.get('editable', {}).get('common', {}). \
             get('use_vcenter', {}).get('value') is True:
@@ -134,4 +134,4 @@ index 6bb7990..62fb08b 100644
 +            images_data['test_vm_image'] += image_data['test_vm_image']
          else:
              images_data = image_data
+
@@ -12,10 +12,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml
-index 9c34a05..6848424 100644
+index 874d4f0..c5087b6 100644
 --- a/nailgun/nailgun/fixtures/openstack.yaml
 +++ b/nailgun/nailgun/fixtures/openstack.yaml
-@@ -2103,8 +2103,8 @@
+@@ -2081,8 +2081,8 @@
                i40e-dkms
                linux-firmware
                linux-firmware-nonfree
@@ -26,7 +26,7 @@ index 9c34a05..6848424 100644
                lvm2
                mcollective
                mdadm
-@@ -2447,8 +2447,8 @@
+@@ -2424,8 +2424,8 @@
                i40e-dkms
                linux-firmware
                linux-firmware-nonfree
diff --git a/patches/fuel-web/multiarch-fuel/0000-Add-arch-to-nailgun-release-and-target-image.patch b/patches/fuel-web/multiarch-fuel/0000-Add-arch-to-nailgun-release-and-target-image.patch
new file mode 120000 (symlink)
index 0000000..64ff45c
--- /dev/null
@@ -0,0 +1 @@
+../0002-Add-arch-to-nailgun-release-and-target-image.patch
\ No newline at end of file
diff --git a/patches/fuel-web/multiarch-fuel/0000-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch b/patches/fuel-web/multiarch-fuel/0000-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch
new file mode 120000 (symlink)
index 0000000..e0d56a8
--- /dev/null
@@ -0,0 +1 @@
+../0001-nailgun-Add-AArch64-Openstack-Mitaka-release-s.patch
\ No newline at end of file
@@ -13,10 +13,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 2 insertions(+)
 
 diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml
-index d3226da..7e6e96e 100644
+index c5087b6..ba25093 100644
 --- a/nailgun/nailgun/fixtures/openstack.yaml
 +++ b/nailgun/nailgun/fixtures/openstack.yaml
-@@ -1978,6 +1978,7 @@
+@@ -1980,6 +1980,7 @@
    extend: *base_release
    fields:
      name: "Mitaka on Ubuntu 14.04"
@@ -24,7 +24,7 @@ index d3226da..7e6e96e 100644
      version: "mitaka-9.0"
      arch: "amd64"
      operating_system: "Ubuntu"
-@@ -2220,6 +2221,7 @@
+@@ -2221,6 +2222,7 @@
    extend: *ubuntu_release
    fields:
      name: "Mitaka on Ubuntu+UCA 14.04"
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Wed, 20 Apr 2016 15:05:15 -0700
 Subject: [PATCH] Add configuration item for WSREP SST provider
 
@@ -6,16 +6,16 @@ This patch adds a radio button in "OpenStack Services" tab of the
 environment settings to configure which WSREP SST provider to use for
 MySQL.
 
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 ---
  nailgun/nailgun/fixtures/openstack.yaml | 21 +++++++++++++++++++++
  1 file changed, 21 insertions(+)
 
 diff --git a/nailgun/nailgun/fixtures/openstack.yaml b/nailgun/nailgun/fixtures/openstack.yaml
-index 62e6b73..4b123b9 100644
+index ba25093..e855cf0 100644
 --- a/nailgun/nailgun/fixtures/openstack.yaml
 +++ b/nailgun/nailgun/fixtures/openstack.yaml
-@@ -918,6 +918,27 @@
+@@ -932,6 +932,27 @@
              description: "Name for Mongo replication set"
              weight: 30
              type: "text"
@@ -6,36 +6,64 @@ isoinfo -i lists the following information for Fuel@OPNFV ISO:
 "Data preparer id: 86aafaf5454a846c417848bb94f264c4420160f3"
 where the SHA hash is Fuel git repo HEAD SHA.
 
+For Armband's build system, using only the Fuel commit ID is not
+enough to fully describe the state of the source code, as patches
+are also applied to other fuel modules (as git submodules).
+Instead, a pointer to a valid Armband commit ID should be used.
+
 However, Armband overrides OPNFV_GIT_SHA to the Armband git repo
 commit hash, so the ISO metadata should also reflect this.
 
+While at it, allow product name to be overriden, to signal the
+commit ID should be looked up inside the Armband repository.
+
+Change-Id: I33ad490f1afe28c1d439dda40e39cee1955e0ac2
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
+ build/Makefile           | 4 ++--
  build/docker/runcontext  | 2 +-
  build/install/install.sh | 6 +++++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
+ 3 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/build/Makefile b/build/Makefile
+index 56acb40..ac85498 100644
+--- a/build/Makefile
++++ b/build/Makefile
+@@ -21,11 +21,11 @@ SHELL = /bin/bash
+ export MOSVERSION = 9.0
+ export ISOSRC = file:$(shell pwd)/fuel-$(MOSVERSION).iso
+ export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
+-export PRODNO = "OPNFV_FUEL"
++export PRODNO ?= "OPNFV_FUEL"
+ export REVSTATE = "P0000"
+ export USER ?= $(shell whoami)
+ export BUILD_DATE = $(shell date --utc +%Y-%m-%d:%H:%M)
+-export OPNFV_GIT_SHA = $(shell git rev-parse HEAD)
++export OPNFV_GIT_SHA ?= $(shell git rev-parse HEAD)
+ # Store in /etc/fuel_build_id on fuel master
+ export BUILD_ID := $(PRODNO)_$(BUILD_DATE)_$(OPNFV_GIT_SHA)
 
 diff --git a/build/docker/runcontext b/build/docker/runcontext
-index e4874df..07b0dc1 100755
+index daad663..2d13562 100755
 --- a/build/docker/runcontext
 +++ b/build/docker/runcontext
-@@ -119,7 +119,7 @@ RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm \
+@@ -115,7 +115,7 @@ 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 \
--    -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e ARMBAND_BASE \
-+    -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e ARMBAND_BASE -e OPNFV_GIT_SHA \
+-    -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH \
++    -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA \
      -u $USER_ID:$GROUP_ID -w $PWD \
      -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
+
 diff --git a/build/install/install.sh b/build/install/install.sh
-index f6308fb..9e003bb 100755
+index c632419..866d304 100755
 --- a/build/install/install.sh
 +++ b/build/install/install.sh
-@@ -210,8 +210,12 @@ make_iso_image() {
+@@ -196,8 +196,12 @@ make_iso_image() {
      find . -name TRANS.TBL -exec rm {} \;
      rm -rf rr_moved
+
 +    if [[ -z "$OPNFV_GIT_SHA" ]]; then
 +        OPNFV_GIT_SHA=$(git rev-parse --verify HEAD)
 +    fi
diff --git a/patches/opnfv-fuel/0001-build-Add-ARMBAND_BASE-support.patch b/patches/opnfv-fuel/0001-build-Add-ARMBAND_BASE-support.patch
new file mode 100644 (file)
index 0000000..17cfd68
--- /dev/null
@@ -0,0 +1,70 @@
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Thu, 11 Aug 2016 15:34:32 +0200
+Subject: [PATCH] build: Add ARMBAND_BASE support
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ build/Makefile          | 10 ++++++++++
+ build/docker/Dockerfile |  2 +-
+ build/docker/runcontext |  6 +++++-
+ 3 files changed, 18 insertions(+), 2 deletions(-)
+
+diff --git a/build/Makefile b/build/Makefile
+index 4454c35..377ecc6 100644
+--- a/build/Makefile
++++ b/build/Makefile
+@@ -14,4 +14,9 @@ SHELL = /bin/bash
+
++# Only configure Armband specific stuff when ARMBAND_BASE is set
++ifdef ARMBAND_BASE
++    include ${ARMBAND_BASE}/armband-fuel-config.mk
++endif
++
+ ############################################################################
+ # BEGIN of variables to customize
+ #
+@@ -140,6 +140,7 @@ $(ISOCACHE):
+       # fuel-main Makefiles do not like `make -C`
+       cd $(FUEL_MAIN_DIR) && make repos
+       cp f_repos/.cachefuelinfo gitinfo_fuel.txt
++      test -z $(ARMBAND_BASE) || $(REPOINFO) $(ARMBAND_BASE) >> gitinfo_fuel.txt
+
+       # Repeat build up to three times
+       sudo -E ./fuel_build_loop
+diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile
+index b38ea4c..624f233 100644
+--- a/build/docker/Dockerfile
++++ b/build/docker/Dockerfile
+@@ -30,7 +30,7 @@ RUN echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy RSYNC
+ # 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 LATEST_TARGET_UBUNTU UBUNTU_ARCH\"" > /etc/sudoers.d/keep-mos
++RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU UBUNTU_ARCH ARMBAND_BASE\"" > /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
+diff --git a/build/docker/runcontext b/build/docker/runcontext
+index daad663..e4874df 100755
+--- a/build/docker/runcontext
++++ b/build/docker/runcontext
+@@ -42,6 +42,10 @@ GITROOT=`git rev-parse --show-toplevel`
+ CID_FILE=`mktemp -u -t runcontext.XXXXXXXXXX`
+ CONTEXT_DIR=`mktemp -d ${GITROOT}/.docker_contextXXXXXX`
+
++if [[ $ARMBAND_BASE ]]; then
++    GITROOT=$ARMBAND_BASE
++fi
++
+ # If RSYNC_CONNECT_PROG is used, we need to copy all of
+ # the SSH structure, should one of the keys need to be
+ # used.
+@@ -115,7 +119,7 @@ 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 \
+-    -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA \
++    -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA -e ARMBAND_BASE \
+     -u $USER_ID:$GROUP_ID -w $PWD \
+     -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
+
@@ -1,4 +1,3 @@
-From 800aae6db0d0d79d01cec4df85075026073063dd Mon Sep 17 00:00:00 2001
 From: Josep Puigdemont <josep.puigdemont@enea.com>
 Date: Wed, 4 May 2016 14:27:23 +0200
 Subject: [PATCH] Fuel VM for the Enea Armband lab
@@ -106,6 +105,3 @@ index 0000000..8773ed4
 +    </memballoon>
 +  </devices>
 +</domain>
--- 
-2.5.5
-
@@ -12,11 +12,11 @@ index 0b8485b..658b328 100644
 --- a/deploy/config/dea_base.yaml
 +++ b/deploy/config/dea_base.yaml
 @@ -462,7 +462,7 @@ settings:
+
            gdisk
+
 -          grub-pc
 +          grub-efi-arm64
+
            hpsa-dkms
+
@@ -26,7 +26,7 @@ index 041ba2f..cebef97 100755
  import errno
  import signal
 @@ -100,8 +101,9 @@ class AutoDeploy(object):
+
      def install_fuel_master(self):
          log('Install Fuel Master')
 -        new_iso = ('%s/deploy-%s'
@@ -20,7 +20,7 @@ index 07b0dc1..b0d6d37 100755
 +++ b/build/docker/runcontext
 @@ -121,6 +121,7 @@ RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm --net=host \
      -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL \
-     -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e ARMBAND_BASE -e OPNFV_GIT_SHA \
+     -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e OPNFV_GIT_SHA -e ARMBAND_BASE \
      -u $USER_ID:$GROUP_ID -w $PWD \
 +    -v /etc/hosts:/etc/hosts \
      -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
diff --git a/patches/opnfv-fuel/0006-deploy.sh-no-need-to-set-umask-0000.patch b/patches/opnfv-fuel/0006-deploy.sh-no-need-to-set-umask-0000.patch
deleted file mode 100644 (file)
index 9c00590..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-From f67625ce6c607b47bc99c5118f5e52fe8a8e763b Mon Sep 17 00:00:00 2001
-From: Josep Puigdemont <josep.puigdemont@enea.com>
-Date: Fri, 6 May 2016 03:07:40 +0200
-Subject: [PATCH] deploy.sh: no need to set umask 0000
-
-Change-Id: If3283a16139097db57b06c0535d33a88dc1b2ed2
-Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
----
- ci/deploy.sh | 6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/ci/deploy.sh b/ci/deploy.sh
-index 8411714..c08a94b 100755
---- a/ci/deploy.sh
-+++ b/ci/deploy.sh
-@@ -84,9 +84,6 @@ Input parameters to the build script is:
- -i .iso image to be deployed (needs to be provided in a URI
-    style, it can be a local resource: file:// or a remote resource http(s)://)
--NOTE: Root priviledges are needed for this script to run
--
--
- Examples:
- sudo `basename $0` -b file:///home/jenkins/lab-config -l lf -p pod1 -s ha_odl-l3_heat_ceilometer -i file:///home/jenkins/myiso.iso
- EOF
-@@ -231,9 +228,6 @@ fi
- # Enable the automatic exit trap
- trap do_exit SIGINT SIGTERM EXIT
--# Set no restrictive umask so that Jenkins can removeeee any residuals
--umask 0000
--
- clean
- pushd ${DEPLOY_DIR} > /dev/null
--- 
-2.5.5
-
@@ -17,13 +17,13 @@ index 808d0b1..1a7685a 100644
 +++ b/deploy/install_fuel_master.py
 @@ -196,11 +196,13 @@ class InstallFuelMaster(object):
                       self.work_dir, os.path.basename(self.dea_file)))
+
      def wait_until_installation_completed(self):
 -        WAIT_LOOP = 360
 +        WAIT_LOOP = 720
          SLEEP_TIME = 10
-         CMD = 'ps -ef | grep %s | grep -v grep' % BOOTSTRAP_ADMIN
+         CMD = 'pgrep -f %s' % BOOTSTRAP_ADMIN
+
          install_completed = False
 +        time.sleep(60)
 +        self.wait_for_node_up()
diff --git a/patches/opnfv-fuel/0015-build-Makefile-Overrideable-product-commit-hash.patch b/patches/opnfv-fuel/0015-build-Makefile-Overrideable-product-commit-hash.patch
deleted file mode 100644 (file)
index 1c9bd82..0000000
+++ /dev/null
@@ -1,35 +0,0 @@
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Mon, 18 Jul 2016 23:50:30 +0200
-Subject: [PATCH] build/Makefile: Overrideable product, commit hash.
-
-For Armband's build system, using only the Fuel commit ID is not
-enough to fully describe the state of the source code, as patches
-are also applied to other fuel modules (as git submodules).
-Instead, a pointer to a valid Armband commit ID should be used.
-
-While at it, allow product name to be overriden, to signal the
-commit ID should be looked up inside the Armband repository.
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- build/Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/build/Makefile b/build/Makefile
-index ec5d27a..ba117da 100644
---- a/build/Makefile
-+++ b/build/Makefile
-@@ -21,11 +21,11 @@ SHELL = /bin/bash
- export MOSVERSION = 9.0
- export ISOSRC = file:$(shell pwd)/fuel-$(MOSVERSION).iso
- export ISOCACHE = $(shell pwd)/$(shell basename $(ISOSRC))
--export PRODNO = "OPNFV_FUEL"
-+export PRODNO ?= "OPNFV_FUEL"
- export REVSTATE = "P0000"
- export USER ?= $(shell whoami)
- export BUILD_DATE = $(shell date --utc +%Y-%m-%d:%H:%M)
--export OPNFV_GIT_SHA = $(shell git rev-parse HEAD)
-+export OPNFV_GIT_SHA ?= $(shell git rev-parse HEAD)
- # Store in /etc/fuel_build_id on fuel master
- export BUILD_ID := $(PRODNO)_$(BUILD_DATE)_$(OPNFV_GIT_SHA)
diff --git a/patches/opnfv-fuel/0043-build-Add-armband.mk-config.patch b/patches/opnfv-fuel/0043-build-Add-armband.mk-config.patch
deleted file mode 100644 (file)
index cb07c9f..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Thu, 11 Aug 2016 15:34:32 +0200
-Subject: [PATCH] build: Add armband.mk config, env var ARMBAND_BASE
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- build/Makefile          | 10 ++++++++++
- build/armband.mk        | 53 +++++++++++++++++++++++++++++++++++++++++++++++++
- build/docker/Dockerfile |  2 +-
- build/docker/runcontext |  6 +++++-
- 4 files changed, 69 insertions(+), 2 deletions(-)
- create mode 100644 build/armband.mk
-
-diff --git a/build/Makefile b/build/Makefile
-index 4454c35..377ecc6 100644
---- a/build/Makefile
-+++ b/build/Makefile
-@@ -14,6 +14,9 @@ SHELL = /bin/bash
- # settings.
- -include environment.mk
-+# Override Armband specific information & git commit references
-+-include armband.mk
-+
- ############################################################################
- # BEGIN of variables to customize
- #
-@@ -129,5 +132,8 @@ $(ISOCACHE):
-       cd $(FUEL_MAIN_DIR) && make repos
-       $(REPOINFO) -r $(FUEL_MAIN_DIR) > gitinfo_fuel.txt
-+      @if test -n $(ARMBAND_BASE); then \
-+              $(REPOINFO) -r $(ARMBAND_BASE) >> gitinfo_fuel.txt; \
-+      fi
-       # OPNFV patches at Fuel build time
-       # Need to be commited in order for them to be considered by the Fuel
-       # build system
-@@ -228,5 +234,9 @@ debug:
-       sha1sum fuel_build_loop >> .cachedata
-       sha1sum config.mk >> .cachedata
-+      @if test -n $(ARMBAND_BASE); then \
-+              sha1sum armband.mk >> .cachedata; \
-+              $(REPOINFO) $(ARMBAND_BASE) >> .cachedata; \
-+      fi
-       sha1sum Makefile >> .cachedata
-       $(CACHETOOL) getbiweek >> .cachedata
-       cat .cachedata | $(CACHETOOL) getid > .cacheid
-diff --git a/build/armband.mk b/build/armband.mk
-new file mode 100644
-index 0000000..1e772f0
---- /dev/null
-+++ b/build/armband.mk
-@@ -0,0 +1,54 @@
-+##############################################################################
-+# Copyright (c) 2016 Enea AB and others.
-+# Alexandru.Avadanii@enea.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
-+##############################################################################
-+
-+# Only configure Armband stuff when ARMBAND_BASE is set
-+ifdef ARMBAND_BASE
-+    # Armband plugins, supported archs & specific info
-+    export PLUGINS           := f_odlpluginbuild f_bgpvpn-pluginbuild f_ovs-nsh-dpdk-pluginbuild
-+    export UBUNTU_ARCH       := amd64 arm64
-+    export PRODNO            := OPNFV_A_FUEL
-+    export MIRROR_MOS_UBUNTU := linux.enea.com
-+    export EXTRA_RPM_REPOS   := armband,http://linux.enea.com/mos-repos/centos/mos9.0-centos7/armband/x86_64,10
-+
-+    # Temporary fuel-plugin-builder repo info for runtime patching
-+    export FPB_REPO      := https://github.com/openstack/fuel-plugins
-+    export FPB_BRANCH    := master
-+    export FPB_CHANGE    := refs/changes/31/311031/2
-+
-+    # Armband git submodules for Fuel/OPNFV components
-+    export ASTUTE_REPO   := ${ARMBAND_BASE}/upstream/fuel-astute
-+    export ASTUTE_COMMIT := HEAD
-+
-+    export NAILGUN_REPO   := ${ARMBAND_BASE}/upstream/fuel-web
-+    export NAILGUN_COMMIT := HEAD
-+
-+    export FUEL_AGENT_REPO   := ${ARMBAND_BASE}/upstream/fuel-agent
-+    export FUEL_AGENT_COMMIT := HEAD
-+
-+    export FUEL_NAILGUN_AGENT_REPO   := ${ARMBAND_BASE}/upstream/fuel-nailgun-agent
-+    export FUEL_NAILGUN_AGENT_COMMIT := HEAD
-+
-+    export FUEL_MIRROR_REPO   := ${ARMBAND_BASE}/upstream/fuel-mirror
-+    export FUEL_MIRROR_COMMIT := HEAD
-+
-+    export FUELLIB_REPO   := ${ARMBAND_BASE}/upstream/fuel-library
-+    export FUELLIB_COMMIT := HEAD
-+
-+    export FUEL_PLUGIN_ODL_REPO        := ${ARMBAND_BASE}/upstream/fuel-plugin-opendaylight
-+    export FUEL_PLUGIN_ODL_BRANCH      := armband-workbench
-+    export FUEL_PLUGIN_ODL_CHANGE      := HEAD
-+    export OPNFV_QUAGGE_PACKAGING_REPO := https://github.com/alexandruavadanii/opnfv-quagga-packaging
-+
-+    export OVS_NSH_DPDK_REPO   := ${ARMBAND_BASE}/upstream/fuel-plugin-ovs
-+    export OVS_NSH_DPDK_BRANCH := HEAD
-+
-+    export VSPERF_REPO   := ${ARMBAND_BASE}/upstream/vswitchperf
-+    export VSPERF_BRANCH := armband-workbench
-+    export VSPERF_CHANGE := HEAD
-+endif
-diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile
-index b38ea4c..624f233 100644
---- a/build/docker/Dockerfile
-+++ b/build/docker/Dockerfile
-@@ -30,7 +30,7 @@ RUN echo "Defaults env_keep += \"ftp_proxy http_proxy https_proxy no_proxy RSYNC
- # 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 LATEST_TARGET_UBUNTU UBUNTU_ARCH\"" > /etc/sudoers.d/keep-mos
-+RUN echo "Defaults env_keep += \"MIRROR_UBUNTU MIRROR_UBUNTU_ROOT MIRROR_MOS_UBUNTU MIRROR_MOS_UBUNTU_ROOT MIRROR_FUEL LATEST_TARGET_UBUNTU UBUNTU_ARCH ARMBAND_BASE\"" > /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
-diff --git a/build/docker/runcontext b/build/docker/runcontext
-index daad663..e4874df 100755
---- a/build/docker/runcontext
-+++ b/build/docker/runcontext
-@@ -42,6 +42,10 @@ GITROOT=`git rev-parse --show-toplevel`
- CID_FILE=`mktemp -u -t runcontext.XXXXXXXXXX`
- CONTEXT_DIR=`mktemp -d ${GITROOT}/.docker_contextXXXXXX`
-+if [[ $ARMBAND_BASE ]]; then
-+    GITROOT=$ARMBAND_BASE
-+fi
-+
- # If RSYNC_CONNECT_PROG is used, we need to copy all of
- # the SSH structure, should one of the keys need to be
- # used.
-@@ -115,7 +119,7 @@ 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 \
--    -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH \
-+    -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH -e ARMBAND_BASE \
-     -u $USER_ID:$GROUP_ID -w $PWD \
-     -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
@@ -17,10 +17,11 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 1 insertion(+)
 
 diff --git a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
-index 15d9e9d..b45a14a 100644
+index fcf4257..264ae0e 100644
 --- a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
 +++ b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
-@@ -17,5 +17,6 @@
+@@ -24,6 +24,7 @@
+     - linux-headers-generic
      - live-boot
      - live-boot-initramfs-tools
 +    - lshw
@@ -15,13 +15,13 @@ Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com>
 ---
  ...et-check-add-support-for-faulty-operstate.patch | 38 ++++++++++++++++++++++
  1 file changed, 38 insertions(+)
- create mode 100644 build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
+ create mode 100644 build/f_repos/patch/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
 
-diff --git a/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch b/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
+diff --git a/build/f_repos/patch/network-checker/0010-net-check-add-support-for-faulty-operstate.patch b/build/f_repos/patch/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
 new file mode 100644
 index 0000000..71e7b73
 --- /dev/null
-+++ b/build/patch-repos/build/repos/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
++++ b/build/f_repos/patch/network-checker/0010-net-check-add-support-for-faulty-operstate.patch
 @@ -0,0 +1,38 @@
 +From: Stefan Sicleru <stefan.sicleru@enea.com>
 +Date: Tue, 30 Aug 2016 17:30:24 +0200
@@ -58,6 +58,6 @@ index 0000000..71e7b73
 ++            return 'Link detected: yes' in '\n'.join(output).replace('\n', ' ')
 ++
 ++        return False
-+ 
++
 +     def _ensure_iface_up(self, iface, vid=None):
 +         """Ensures interface is with vid up."""
@@ -8,14 +8,15 @@ introduced by using qemu-user-static.
 
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
build/bootstrap_admin_node.sh.patch | 23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
.../0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch | 15 +++++++++++++++
+ 1 file changed, 15 insertions(+)
 
-diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch-repos/0010-bootstrap_admin_node.sh.patch
-index c66b497..46b53e6 100644
---- a/build/patch-repos/0010-bootstrap_admin_node.sh.patch
-+++ b/build/patch-repos/0010-bootstrap_admin_node.sh.patch
-@@ -8,5 +8,20 @@
+diff --git a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
+index 446d0b6..c2e664c 100644
+--- a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
++++ b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
+@@ -10,6 +10,21 @@ diff --git a/iso/bootstrap_admin_node.sh b/iso/bootstrap_admin_node.sh
+ index 3197c91..db3123d 100755
  --- a/iso/bootstrap_admin_node.sh
  +++ b/iso/bootstrap_admin_node.sh
 +@@ -86,9 +86,11 @@
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Thu, 3 Mar 2016 19:04:07 +0100
 Subject: [PATCH] Build bootstrap image for arm64
 
@@ -6,13 +6,15 @@ For now the arch is hardcoded for simplicity. We should detect this
 but how? If we're multi-arch then one bootstrap image should be built
 per supported arch. This requires Fuel refactoring.
 ---
- build/bootstrap_admin_node.sh.patch | 17 +++++++++++++++++
- 1 file changed, 17 insertions(+)
+ .../0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch        | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
+index c2e664c..12d0dfb 100644
+--- a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
++++ b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
+@@ -73,6 +73,15 @@ index 3197c91..db3123d 100755
 
-diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch-repos/0010-bootstrap_admin_node.sh.patch
---- a/build/patch-repos/0010-bootstrap_admin_node.sh.patch
-+++ b/build/patch-repos/0010-bootstrap_admin_node.sh.patch
-@@ -53,3 +53,12 @@
   # Enable iptables
   systemctl enable iptables.service
 +@@ -484,7 +490,7 @@
@@ -25,3 +27,5 @@ diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch-
 +           fuel notify --topic "done" --send "${bs_done_message}"
 +         else
  @@ -532,6 +545,16 @@ systemctl start ntpd
+
+  bash /etc/rc.local
@@ -14,10 +14,10 @@ current config.
  1 file changed, 4 insertions(+), 3 deletions(-)
 
 diff --git a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
-index aa12c45..2e4843d 100644
+index 264ae0e..17e161f 100644
 --- a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
 +++ b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
-@@ -36,19 +36,19 @@
+@@ -49,19 +49,19 @@
    repos:
      - name: ubuntu
        section: "main universe multiverse"
@@ -40,7 +40,9 @@ index aa12c45..2e4843d 100644
        priority:
        suite: trusty-security
        type: deb
-@@ -60,2 +60,3 @@
+@@ -73,4 +73,5 @@
+       type: deb
+   skip_default_img_build: false
    direct_repo_addresses:
 +    - "ports.ubuntu.com"
      - "127.0.0.1"
@@ -25,37 +25,14 @@ automatically started. Of course, this only affects the first boot.
 Finally, this commit adds an OPNFV post-install script in
 /opt/opnfv/bootstrap/post.d, which starts systemd-binfmt service.
 ---
- build/bootstrap_admin_node.sh.patch                | 15 ++++++++++
  .../post-scripts/80_prepare_cross_builds.sh        | 32 ++++++++++++++++++++++
- 2 files changed, 47 insertions(+)
+ ...PNFV-Additions-to-bootstrap_admin_node.sh.patch | 13 +++++++++
+ 2 files changed, 45 insertions(+)
  create mode 100755 build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 
-diff --git a/build/patch-repos/0010-bootstrap_admin_node.sh.patch b/build/patch-repos/0010-bootstrap_admin_node.sh.patch
-index b1ea90b..7f16d0b 100644
---- a/build/patch-repos/0010-bootstrap_admin_node.sh.patch
-+++ b/build/patch-repos/0010-bootstrap_admin_node.sh.patch
-@@ -24,5 +24,18 @@
-  nodes over PXE, they will be discovered and become available for installing \
-  OpenStack on them"
-+@@ -239,6 +239,12 @@
-+ # /etc/fuel_openstack_version is provided by 'fuel-openstack-metadata' package
-+ OPENSTACK_VERSION=$(cat /etc/fuel_openstack_version)
-+
-++# FIXME(armband): This part might be moved to an earlier stage later
-++# /etc/fuel_openstack_arch is constructed based on local mirror metadata
-++grep -oP "^Architectures: \K.*$" \
-++    ${wwwdir}/${OPENSTACK_VERSION}/ubuntu/x86_64/dists/mos${FUEL_RELEASE}/Release > \
-++    /etc/fuel_openstack_arch
-++
-+ # We do not ship debian-installer kernel and initrd on ISO.
-+ # But we still need to be able to create ubuntu cobbler distro
-+ # which requires kernel and initrd to be available. So, we
- @@ -339,8 +339,22 @@ fuelmenu --save-only --iface=$ADMIN_INTERFACE || fail
-  set +x
-  echo "Done!"
 diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 new file mode 100755
-index 0000000..d33d1d1
+index 0000000..01eb2e2
 --- /dev/null
 +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 @@ -0,0 +1,32 @@
@@ -91,3 +68,27 @@ index 0000000..d33d1d1
 +fi
 +
 +echo "Done preparing cross-building"
+diff --git a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
+index 12d0dfb..81d196b 100644
+--- a/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
++++ b/build/f_repos/patch/fuel-main/0001-OPNFV-Additions-to-bootstrap_admin_node.sh.patch
+@@ -25,6 +25,19 @@ index 3197c91..db3123d 100755
+  bs_done_message="Default bootstrap image building done. Now you can boot new \
+  nodes over PXE, they will be discovered and become available for installing \
+  OpenStack on them"
++@@ -239,6 +239,12 @@
++ # /etc/fuel_openstack_version is provided by 'fuel-openstack-metadata' package
++ OPENSTACK_VERSION=$(cat /etc/fuel_openstack_version)
++
+++# FIXME(armband): This part might be moved to an earlier stage later
+++# /etc/fuel_openstack_arch is constructed based on local mirror metadata
+++grep -oP "^Architectures: \K.*$" \
+++    ${wwwdir}/${OPENSTACK_VERSION}/ubuntu/x86_64/dists/mos${FUEL_RELEASE}/Release > \
+++    /etc/fuel_openstack_arch
+++
++ # We do not ship debian-installer kernel and initrd on ISO.
++ # But we still need to be able to create ubuntu cobbler distro
++ # which requires kernel and initrd to be available. So, we
+ @@ -339,8 +339,22 @@ fuelmenu --save-only --iface=$ADMIN_INTERFACE || fail
+  set +x
+  echo "Done!"
@@ -16,14 +16,14 @@ for mcagent has to be increased.
 [ Alexandru Avadanii ]
 Repackaged, based on Stan's `fuel-astute` patch.
 
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
  .../f_bootstrap/post-scripts/80_prepare_cross_builds.sh    | 14 ++++++++++++++
  1 file changed, 14 insertions(+)
 
 diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
-index d33d1d1..d78b850 100755
+index 01eb2e2..12f66e6 100755
 --- a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 @@ -26,6 +26,20 @@ if which dpkg > /dev/null 2>&1; then
@@ -46,4 +46,4 @@ index d33d1d1..d78b850 100755
 +      /usr/libexec/mcollective/mcollective/agent/execute_shell_command.ddl
    fi
  fi
+
@@ -14,13 +14,13 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 19 insertions(+)
 
 diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
-index 3839d62..7ceaacc 100755
+index 12f66e6..3cb22f3 100755
 --- a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 @@ -27,6 +27,11 @@ if which dpkg > /dev/null 2>&1; then
        exit 1
      fi
+
 +    # Determine python site-packages directory location
 +    PYTHON_SITEPKGS_DIR=$(python -c \
 +      "from distutils.sysconfig import get_python_lib; print(get_python_lib())")
@@ -49,4 +49,4 @@ index 3839d62..7ceaacc 100755
 +    fi
    fi
  fi
+
@@ -10,14 +10,14 @@ to be safer.
 [ Alexandru Avadanii ]
 Moved original patch wrote by Stan to post-install.
 
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
  .../f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh  | 7 +++++++
  1 file changed, 7 insertions(+)
 
 diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
-index 7ceaacc..0435a28 100755
+index 3cb22f3..c106bc3 100755
 --- a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 @@ -45,6 +45,13 @@ if which dpkg > /dev/null 2>&1; then
@@ -31,6 +31,6 @@ index 7ceaacc..0435a28 100755
 +        ${PYTHON_SITEPKGS_DIR}/nailgun/settings.yaml
 +      echo "INFO: [1h] => [2h] updated nailgun image build timeout."
 +    fi
+
      # Bootstrap: Use gzip instead of xz compression.
      #
@@ -11,7 +11,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 15 insertions(+)
 
 diff --git a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
-index 0435a28..078f117 100755
+index c106bc3..0b48ca2 100755
 --- a/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 +++ b/build/f_isoroot/f_bootstrap/post-scripts/80_prepare_cross_builds.sh
 @@ -66,6 +66,21 @@ if which dpkg > /dev/null 2>&1; then
@@ -35,4 +35,4 @@ index 0435a28..078f117 100755
 +    fi
    fi
  fi
+
@@ -13,10 +13,10 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  2 files changed, 4 insertions(+), 4 deletions(-)
 
 diff --git a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
-index daef3d5..2985619 100644
+index 17e161f..fb0ad1a 100644
 --- a/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
 +++ b/build/f_isoroot/f_repobuild/fuel_bootstrap_cli.yaml
-@@ -5,7 +5,7 @@
+@@ -13,7 +13,7 @@
    extra_dirs:
      - /usr/share/fuel_bootstrap_cli/files/trusty
    output_dir: /tmp/
@@ -25,7 +25,7 @@ index daef3d5..2985619 100644
    packages:
      - fuel-agent
      - hwloc
-@@ -13,6 +13,6 @@
+@@ -21,7 +21,7 @@
      - i40e-dkms
      - linux-firmware
      - linux-firmware-nonfree
@@ -33,19 +33,20 @@ index daef3d5..2985619 100644
 +    - linux-headers-generic-lts-xenial
      - live-boot
      - live-boot-initramfs-tools
+     - lshw
 diff --git a/deploy/config/dea_base.yaml b/deploy/config/dea_base.yaml
-index 658b328..5f3c156 100644
+index 5a25040..f5a03e2 100644
 --- a/deploy/config/dea_base.yaml
 +++ b/deploy/config/dea_base.yaml
 @@ -474,9 +474,9 @@ settings:
+
            linux-firmware-nonfree
+
 -          linux-headers-generic-lts-trusty
 +          linux-headers-generic-lts-xenial
+
 -          linux-image-generic-lts-trusty
 +          linux-image-generic-lts-xenial
+
            lvm2
+
@@ -19,7 +19,7 @@ index 93dc395..1d2dfeb 100644
 --- a/deploy/deploy_env.py
 +++ b/deploy/deploy_env.py
 @@ -255,7 +255,9 @@ class CloudDeploy(object):
+
      def set_boot_order_nodes(self):
          self.power_off_nodes()
 -        self.set_boot_order(['pxe', 'disk'])
@@ -27,5 +27,5 @@ index 93dc395..1d2dfeb 100644
 +        # Until we choose an uniform design on EFI systems, just disable it
 +        # self.set_boot_order(['pxe', 'disk'])
          self.power_on_nodes()
+
      def get_put_deploy_log(self):
@@ -1,4 +1,4 @@
-From: Stanislaw Kardach <stanislaw.kardach@caviumnetworks.com>
+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
 Date: Wed, 24 Feb 2016 20:04:03 +0100
 Subject: [PATCH] Add arm64 deb repositories setup
 
@@ -12,7 +12,7 @@ Subject: [PATCH] Add arm64 deb repositories setup
  6 files changed, 52 insertions(+), 15 deletions(-)
 
 diff --git a/build/f_isoroot/f_kscfg/ks.cfg.patch b/build/f_isoroot/f_kscfg/ks.cfg.patch
-index a6840e4..e1ae8fc 100644
+index a6840e4..84a241f 100644
 --- a/build/f_isoroot/f_kscfg/ks.cfg.patch
 +++ b/build/f_isoroot/f_kscfg/ks.cfg.patch
 @@ -1,6 +1,16 @@
@@ -22,7 +22,7 @@ index a6840e4..e1ae8fc 100644
 +*** 448,453 ****
 +--- 448,454 ----
 +  cp ${SOURCE}/.treeinfo ${repodir}/centos/x86_64
-+  
++
 +  # Copying Ubuntu files
 ++ # FIXME: This is missleading as dist/pool may contain multiple arch!
 +  mkdir -p ${repodir}/ubuntu/x86_64/images
@@ -39,14 +39,14 @@ index 0d15aec..e6392f8 100644
 @@ -16,12 +16,18 @@ TreeDefault {
    Directory "pool";
  };
+
 -BinDirectory "pool/main" {
 +BinDirectory "pool/main/binary-amd64" {
    Packages "dists/trusty/main/binary-amd64/Packages";
    BinOverride "./indices/override.trusty.main";
    ExtraOverride "./indices/override.trusty.extra.main";
  };
+
 +BinDirectory "pool/main/binary-arm64" {
 +  Packages "dists/trusty/main/binary-arm64/Packages";
 +  BinOverride "./indices/override.trusty.main";
@@ -75,13 +75,13 @@ index 3b5b239..c6ab4fb 100644
 @@ -16,11 +16,16 @@ TreeDefault {
    Directory "pool";
  };
+
 -BinDirectory "pool/debian-installer" {
 +BinDirectory "pool/debian-installer/binary-amd64" {
    Packages "dists/trusty/main/debian-installer/binary-amd64/Packages";
    BinOverride "./indices/override.trusty.main.debian-installer";
  };
+
 +BinDirectory "pool/debian-installer/binary-arm64" {
 +  Packages "dists/trusty/main/debian-installer/binary-arm64/Packages";
 +  BinOverride "./indices/override.trusty.main.debian-installer";
@@ -91,13 +91,13 @@ index 3b5b239..c6ab4fb 100644
    Packages {
      Extensions ".udeb";
 diff --git a/build/install/install.sh b/build/install/install.sh
-index 4e0389e..8c29e08 100755
+index 866d304..9e003bb 100755
 --- a/build/install/install.sh
 +++ b/build/install/install.sh
 @@ -122,12 +122,24 @@ prep_make_live() {
      ssh-copy-id root@$FUELHOST
      sshfs root@1${FUELHOST}:/ $TMP_HOSTMOUNT
+
 -    if [ -f  $REPO/dists/trusty/main/binary-amd64/Packages.backup ]; then
 +    for arch in arm64 amd64; do
 +    if [ -f  $REPO/dists/trusty/main/binary-${arch}/Packages.backup ]; then
@@ -115,7 +115,7 @@ index 4e0389e..8c29e08 100755
          echo "Error - found backup file for Packages!"
          exit 1
      fi
+
 -    if [ -f  $REPO/dists/trusty/main/binary-amd64/Packages.gz.backup ]; then
 +    if [ -f  $REPO/dists/trusty/main/binary-arm64/Packages.gz.backup ]; then
          echo "Error - found backup file for Packages.gz!"
@@ -124,7 +124,7 @@ index 4e0389e..8c29e08 100755
 @@ -142,8 +154,10 @@ prep_make_live() {
          exit 1
      fi
+
 -    cp $REPO/dists/trusty/main/binary-amd64/Packages $REPO/dists/trusty/main/binary-amd64/Packages.backup
 -    cp $REPO/dists/trusty/main/binary-amd64/Packages.gz $REPO/dists/trusty/main/binary-amd64/Packages.gz.backup
 +    for arch in arm64 amd64; do
@@ -140,7 +140,7 @@ index a9e74bc..e90c632 100755
 +++ b/build/install/uninstall.sh
 @@ -31,15 +31,17 @@ DEST=$MOUNT
  REPO=$DEST/var/www/nailgun/ubuntu/fuelweb/x86_64
+
  cd $REPO
 -if [ ! -f  $REPO/dists/trusty/main/binary-amd64/Packages.backup ]; then
 -    echo "Error - didn't find backup file for Packages!"
@@ -151,7 +151,7 @@ index a9e74bc..e90c632 100755
 +        echo "Error - didn't find backup file for Packages for ${arch}!"
 +        exit 1
 +    fi
+
 -if [ ! -f  $REPO/dists/trusty/main/binary-amd64/Packages.gz.backup ]; then
 -    echo "Error - didn't find backup file for Packages.gz!"
 -    exit 1
@@ -161,6 +161,6 @@ index a9e74bc..e90c632 100755
 +        exit 1
 +    fi
 +done
+
  if [ ! -f  $REPO/dists/trusty/Release.backup ]; then
      echo "Error - didn't find backup file for Release!"
@@ -19,7 +19,7 @@ index 624f233..ab0d0d3 100644
 +++ b/build/docker/Dockerfile
 @@ -23,7 +23,14 @@ RUN apt-get install -y software-properties-common python-software-properties \
      build-essential ruby-dev rubygems-integration python-pip git rpm createrepo dpkg-dev
+
  RUN gem install fpm
 -RUN pip install fuel-plugin-builder
 +
@@ -30,14 +30,16 @@ index 624f233..ab0d0d3 100644
 +        (git fetch origin INSERT_FPB_CHANGE && git checkout FETCH_HEAD)) && \
 +    python setup.py sdist && pip install ./dist/fuel-plugin-builder-*.tar.gz && \
 +    cd .. && rm -rf fuel-plugins
+
  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
 diff --git a/build/docker/Makefile b/build/docker/Makefile
-index d4423b0..226bbd0 100644
+index 783881e..74f6346 100644
 --- a/build/docker/Makefile
 +++ b/build/docker/Makefile
-@@ -25,4 +25,8 @@ all: .docker
+@@ -34,6 +34,10 @@ all:        .docker
+
+ .dockercfg: $(FILES)
        cp Dockerfile ubuntu-builder/Dockerfile
 +      # Only add FPB ENVs when set - needed to fetch, patch and install FPB
 +      test -n "${FPB_REPO}" && sed -i "s;INSERT_FPB_REPO;${FPB_REPO};" ubuntu-builder/Dockerfile || exit 0
@@ -1,25 +1,39 @@
-From b7d5f0ca9a76de6d99fc5d6f5cbb8df864c62b7b Mon Sep 17 00:00:00 2001
-From: Josep Puigdemont <josep.puigdemont@enea.com>
-Date: Wed, 4 May 2016 14:27:23 +0200
-Subject: [PATCH] Remove check for root
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Fri, 6 May 2016 03:07:40 +0200
+Subject: [PATCH] deploy.sh: Remove check for root (rm umask 0000)
+
+Patch(es) by Josep, signed by Alex only for upstreaming.
+
+[Alexandru Avadanii]
+Squashed two atomic commits into one change.
 
-Change-Id: Ic6bfaf07c0d9d347aec2df8724184d0314665503
 Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
- ci/deploy.sh                        | -----
- deploy/deploy-config.py             | 1 -
- deploy/deploy.py                    | 2 --
- deploy/environments/virtual_fuel.py | 2 --
- 4 files changed, 10 deletions(-)
+ ci/deploy.sh                        | 11 -----------
+ deploy/deploy-config.py             |  1 -
+ deploy/deploy.py                    |  2 --
+ deploy/environments/virtual_fuel.py |  2 --
+ 4 files changed, 16 deletions(-)
 
 diff --git a/ci/deploy.sh b/ci/deploy.sh
-index c08a94b..081806c 100755
+index 8411714..081806c 100755
 --- a/ci/deploy.sh
 +++ b/ci/deploy.sh
-@@ -209,11 +209,6 @@ do
+@@ -84,9 +84,6 @@ Input parameters to the build script is:
+ -i .iso image to be deployed (needs to be provided in a URI
+    style, it can be a local resource: file:// or a remote resource http(s)://)
+
+-NOTE: Root priviledges are needed for this script to run
+-
+-
+ Examples:
+ sudo `basename $0` -b file:///home/jenkins/lab-config -l lf -p pod1 -s ha_odl-l3_heat_ceilometer -i file:///home/jenkins/myiso.iso
+ EOF
+@@ -212,11 +209,6 @@ do
      esac
  done
+
 -if [[ $EUID -ne 0 ]]; then
 -    echo "This script must be run as root" 1>&2
 -    exit 1
@@ -28,33 +42,43 @@ index c08a94b..081806c 100755
  if [ -z $BASE_CONFIG_URI ] || [ -z $TARGET_LAB ] || \
     [ -z $TARGET_POD ] || [ -z $DEPLOY_SCENARIO ] || \
     [ -z $ISO ]; then
+@@ -231,9 +223,6 @@ fi
+ # Enable the automatic exit trap
+ trap do_exit SIGINT SIGTERM EXIT
+
+-# Set no restrictive umask so that Jenkins can removeeee any residuals
+-umask 0000
+-
+ clean
+
+ pushd ${DEPLOY_DIR} > /dev/null
 diff --git a/deploy/deploy-config.py b/deploy/deploy-config.py
-index 65d51b2..88a1111 100644
+index 2a09aa3..02debe2 100644
 --- a/deploy/deploy-config.py
 +++ b/deploy/deploy-config.py
-@@ -40,7 +40,6 @@ from common import (
+@@ -41,7 +41,6 @@ from common import (
      check_file_exists,
      create_dir_if_not_exists,
      delete,
 -    check_if_root,
      ArgParser,
  )
+
 diff --git a/deploy/deploy.py b/deploy/deploy.py
-index 56e5bd5..a021e28 100755
+index fe213e5..08702d2 100755
 --- a/deploy/deploy.py
 +++ b/deploy/deploy.py
-@@ -33,7 +33,6 @@ from common import (
+@@ -34,7 +34,6 @@ from common import (
      check_dir_exists,
      create_dir_if_not_exists,
      delete,
 -    check_if_root,
      ArgParser,
  )
-@@ -234,7 +233,6 @@ class AutoDeploy(object):
+
+@@ -252,7 +251,6 @@ class AutoDeploy(object):
          return 0
+
      def run(self):
 -        check_if_root()
          if self.cleanup_only:
@@ -74,12 +98,9 @@ index b1a76e4..4ff68f6 100644
  )
 @@ -135,7 +134,6 @@ class VirtualFuel(ExecutionEnvironment):
                         vm_definition_overwrite)
+
      def setup_environment(self):
 -        check_if_root()
          self.cleanup_environment()
          self.create_vm()
--- 
-2.5.5
 
@@ -9,14 +9,14 @@ Backported from [1].
 Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
 ---
  ...ce-dpkg-checkbuilddeps-with-mk-build-deps.patch | 38 ++++++++++++++++++++++
- 1 files changed, 38 insertions(+)
- create mode 100644 build/replace-dpkg-checkbuilddeps-with-mk-build-deps.patch
+ 1 file changed, 38 insertions(+)
+ create mode 100644 build/f_repos/patch/fuel-main/0005-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch
 
-diff --git a/build/patch-repos/0040-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch b/build/patch-repos/0040-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch
+diff --git a/build/f_repos/patch/fuel-main/0005-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch b/build/f_repos/patch/fuel-main/0005-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch
 new file mode 100644
 index 0000000..896f3cf
 --- /dev/null
-+++ b/build/patch-repos/0040-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch
++++ b/build/f_repos/patch/fuel-main/0005-replace-dpkg-checkbuilddeps-with-mk-build-deps.patch
 @@ -0,0 +1,38 @@
 +From: Sergii Golovatiuk <sgolovatiuk@mirantis.com>
 +Date: Fri, 3 Jun 2016 12:26:19 +0200
@@ -40,7 +40,7 @@ index 0000000..896f3cf
 +@@ -10,7 +10,7 @@ clean-deb:
 +      done
 +      sudo rm -rf $(BUILD_DIR)/packages/deb
-+ 
++
 +-$(BUILD_DIR)/packages/deb/buildd.tar.gz: SANDBOX_DEB_PKGS:=wget bzip2 apt-utils build-essential python-setuptools python-pbr devscripts debhelper fakeroot
 ++$(BUILD_DIR)/packages/deb/buildd.tar.gz: SANDBOX_DEB_PKGS:=wget bzip2 apt-utils build-essential fakeroot devscripts equivs debhelper python-setuptools python-pbr
 + $(BUILD_DIR)/packages/deb/buildd.tar.gz: SANDBOX_UBUNTU:=$(BUILD_DIR)/packages/deb/chroot
index 29e8a1d..0fd972c 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 4 insertions(+), 3 deletions(-)
 
 diff --git a/ci/build-vsperf.sh b/ci/build-vsperf.sh
-index 5370898..fc38747 100755
+index a02de00..fa0d46a 100755
 --- a/ci/build-vsperf.sh
 +++ b/ci/build-vsperf.sh
 @@ -87,14 +87,15 @@ TEST_REPORT_LOG_DIR="${HOME}/opnfv/$PROJECT/results/$BRANCH"
@@ -22,7 +22,7 @@ index 5370898..fc38747 100755
      sudo pkill python3 &> /dev/null
 -    sudo killall -9 qemu-system-x86_64 &> /dev/null
 +    sudo killall -9 "${qemu_system_name}" &> /dev/null
+
      # sometimes qemu resists to terminate, so wait a bit and kill it again
 -    if pgrep qemu-system-x86_64 &> /dev/null ; then
 +    if pgrep "${qemu_system_name}" &> /dev/null ; then
@@ -31,4 +31,4 @@ index 5370898..fc38747 100755
 +        sudo killall -9 "${qemu_system_name}" &> /dev/null
          sleep 5
      fi
+
index 0a92144..f82aaae 100644 (file)
@@ -10,21 +10,21 @@ Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
  1 file changed, 3 insertions(+), 2 deletions(-)
 
 diff --git a/systems/ubuntu/build_base_machine.sh b/systems/ubuntu/build_base_machine.sh
-index a2b48a2..7cbe78e 100755
+index 1b42a79..b0f3740 100755
 --- a/systems/ubuntu/build_base_machine.sh
 +++ b/systems/ubuntu/build_base_machine.sh
-@@ -52,11 +52,12 @@ apt-get -y install libfuse-dev
+@@ -54,11 +54,12 @@ apt-get -y install libnuma-dev
  # packages related to VM
+
  # a few manual fix up on a ubuntu
 -cd /lib/x86_64-linux-gnu
 +local arch=$(uname -m)
 +cd /lib/${arch}-linux-gnu
  ln -sf libssl.so.1.0.0 libssl.so
  ln -sf libcrypto.so.1.0.0 libcrypto.so
+
 -cd /usr/lib/x86_64-linux-gnu
 +cd /usr/lib/${arch}-linux-gnu
  ln -sf libxml2.so.2 libxml2.so
+
+
diff --git a/upstream/fuel-agent b/upstream/fuel-agent
deleted file mode 160000 (submodule)
index 2cd6925..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2cd6925ce2986b58a3ff1dcade12f55a41bff71e
diff --git a/upstream/fuel-astute b/upstream/fuel-astute
deleted file mode 160000 (submodule)
index 6530902..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 65309028c2b65cee68bb865f3895ed185922f3b2
diff --git a/upstream/fuel-library b/upstream/fuel-library
deleted file mode 160000 (submodule)
index 0744f4b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0744f4b3fb170d98c7ba70160cd9b91064865bd6
diff --git a/upstream/fuel-mirror b/upstream/fuel-mirror
deleted file mode 160000 (submodule)
index 81246a7..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 81246a7ecd95c27b388df8f8954e4fb81a3f06e4
diff --git a/upstream/fuel-nailgun-agent b/upstream/fuel-nailgun-agent
deleted file mode 160000 (submodule)
index 46fa0db..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 46fa0db0f8944f9e67699d281d462678aaf4db26
diff --git a/upstream/fuel-web b/upstream/fuel-web
deleted file mode 160000 (submodule)
index d3463ad..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d3463ad92df45541fc0107801aef71e73a194ec4