summaryrefslogtreecommitdiffstats
path: root/patches/opnfv-fuel
diff options
context:
space:
mode:
Diffstat (limited to 'patches/opnfv-fuel')
-rw-r--r--patches/opnfv-fuel/0002-deploy-Delete-old-Fuel-env-if-present.patch58
-rw-r--r--patches/opnfv-fuel/0003-deploy.sh-accept-a-timeout-flag-T.patch86
-rw-r--r--patches/opnfv-fuel/0005-transplant-Generate-extra-interfaces-config-file.patch108
-rw-r--r--patches/opnfv-fuel/0008-deploy-reap.py-Dump-extra-interfaces-information.patch97
-rw-r--r--patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch136
-rw-r--r--patches/opnfv-fuel/0039-deploy-Fix-add-bootstrap-DEA-override-delay.patch9
-rw-r--r--patches/opnfv-fuel/0041-build-Allow-PLUGINS-override.patch27
-rw-r--r--patches/opnfv-fuel/0042-build-Allow-MIRROR_MOS_UBUNTU-override.patch22
-rw-r--r--patches/opnfv-fuel/0044-build-cache-Allow-LOCAL_CACHE_ARCH_NAME-override.patch22
-rw-r--r--patches/opnfv-fuel/0045-build-cache-Consider-UBUNTU_ARCH-in-.cacheid.patch144
-rw-r--r--patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch63
-rw-r--r--patches/opnfv-fuel/0055-build-docker-Use-host-s-network-stack.patch28
12 files changed, 96 insertions, 704 deletions
diff --git a/patches/opnfv-fuel/0002-deploy-Delete-old-Fuel-env-if-present.patch b/patches/opnfv-fuel/0002-deploy-Delete-old-Fuel-env-if-present.patch
deleted file mode 100644
index e7867d48..00000000
--- a/patches/opnfv-fuel/0002-deploy-Delete-old-Fuel-env-if-present.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Mon, 18 Jul 2016 17:42:48 +0200
-Subject: [PATCH] deploy: Delete old Fuel env if present
-
-In order to clean up old partitioning and boot entries on target
-nodes, before removing the Fuel Master, try ssh-ing into it and
-removing all environments/nodes.
-
-This is especially important for EFI systems, where old boot
-entries are left behind without a proper env delete, leading to
-target nodes failing to PXE boot on Fuel Master re-install.
-
-This change assumes that:
-- all Fuel Master information is unchanged between old and new
- deploy (fuel IP, password etc.);
-- Fuel Master is up and running, in a sane state (target nodes
- are also online), when deploy starts;
-
-Closes: ARMBAND-51
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- deploy/deploy.py | 15 +++++++++++++++
- 1 file changed, 15 insertions(+)
-
-diff --git a/deploy/deploy.py b/deploy/deploy.py
-index 48a53c3..184510f 100755
---- a/deploy/deploy.py
-+++ b/deploy/deploy.py
-@@ -110,6 +110,20 @@ class AutoDeploy(object):
- self.iso_file = new_iso
- self.install_iso()
-
-+ def delete_old_fuel_env(self):
-+ log('Delete old Fuel Master environments if present')
-+ try:
-+ old_dep = CloudDeploy(self.dea, self.dha, self.fuel_conf['ip'],
-+ self.fuel_username, self.fuel_password,
-+ self.dea_file, self.fuel_plugins_conf_dir,
-+ WORK_DIR, self.no_health_check,
-+ self.deploy_timeout,
-+ self.no_deploy_environment, self.deploy_log)
-+ with old_dep.ssh:
-+ old_dep.check_previous_installation()
-+ except Exception as e:
-+ log('Could not delete old env: %s' % str(e))
-+
- def install_iso(self):
- fuel = InstallFuelMaster(self.dea_file, self.dha_file,
- self.fuel_conf['ip'], self.fuel_username,
-@@ -227,6 +241,7 @@ class AutoDeploy(object):
- def deploy(self):
- self.collect_fuel_info()
- if not self.no_fuel:
-+ self.delete_old_fuel_env()
- self.setup_execution_environment()
- self.create_tmp_dir()
- self.install_fuel_master()
diff --git a/patches/opnfv-fuel/0003-deploy.sh-accept-a-timeout-flag-T.patch b/patches/opnfv-fuel/0003-deploy.sh-accept-a-timeout-flag-T.patch
deleted file mode 100644
index 641891bb..00000000
--- a/patches/opnfv-fuel/0003-deploy.sh-accept-a-timeout-flag-T.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 0ca4dada5b3528c84f2edcb7f1a2df8f0a18779d Mon Sep 17 00:00:00 2001
-From: Josep Puigdemont <josep.puigdemont@enea.com>
-Date: Mon, 9 May 2016 11:05:58 +0200
-Subject: [PATCH] deploy.sh: accept a timeout flag (-T)
-
-Change-Id: I58a7b9bc639bb03b994ea34fc317f5679140d9fd
-Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
----
- ci/deploy.sh | 19 +++++++++++++++----
- 1 file changed, 15 insertions(+), 4 deletions(-)
-
-diff --git a/ci/deploy.sh b/ci/deploy.sh
-index 4e4586c..8411714 100755
---- a/ci/deploy.sh
-+++ b/ci/deploy.sh
-@@ -29,7 +29,7 @@ cat << EOF
- xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- `basename $0`: Deploys the Fuel@OPNFV stack
-
--usage: `basename $0` -b base-uri [-B PXE Bridge] [-f] [-F] [-H] -l lab-name -p pod-name -s deploy-scenario [-S image-dir] -i iso
-+usage: `basename $0` -b base-uri [-B PXE Bridge] [-f] [-F] [-H] -l lab-name -p pod-name -s deploy-scenario [-S image-dir] [-T timeout] -i iso
- -s deployment-scenario [-S optional Deploy-scenario path URI]
- [-R optional local relen repo (containing deployment Scenarios]
-
-@@ -47,6 +47,7 @@ OPTIONS:
- -p Pod-name
- -s Deploy-scenario short-name/base-file-name
- -S Storage dir for VM images
-+ -T Timeout, in minutes, for the deploy.
- -i iso url
-
- Description:
-@@ -78,6 +79,8 @@ Input parameters to the build script is:
- or a deployment short-name as defined by scenario.yaml in the deployment
- scenario path.
- -S Storage dir for VM images, default is fuel/deploy/images
-+-T Timeout, in minutes, for the deploy. It defaults to using the DEPLOY_TIMEOUT
-+ environment variable when defined, or to the default in deploy.py otherwise
- -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)://)
-
-@@ -116,6 +119,11 @@ FUEL_CREATION_ONLY=''
- NO_DEPLOY_ENVIRONMENT=''
- STORAGE_DIR=''
- DRY_RUN=0
-+if ! [ -z $DEPLOY_TIMEOUT ]; then
-+ DEPLOY_TIMEOUT="-dt $DEPLOY_TIMEOUT"
-+else
-+ DEPLOY_TIMEOUT=""
-+fi
- #
- # END of variables to customize
- ############################################################################
-@@ -123,7 +131,7 @@ DRY_RUN=0
- ############################################################################
- # BEGIN of main
- #
--while getopts "b:B:dfFHl:L:p:s:S:i:he" OPTION
-+while getopts "b:B:dfFHl:L:p:s:S:T:i:he" OPTION
- do
- case $OPTION in
- b)
-@@ -174,6 +182,9 @@ do
- STORAGE_DIR="-s ${OPTARG}"
- fi
- ;;
-+ T)
-+ DEPLOY_TIMEOUT="-dt ${OPTARG}"
-+ ;;
- i)
- ISO=${OPTARG}
- if [[ ! $ISO == file://* ]] && \
-@@ -243,8 +254,8 @@ if [ $DRY_RUN -eq 0 ]; then
- ISO=${SCRIPT_PATH}/ISO/image.iso
- fi
- # Start deployment
-- echo "python deploy.py $DEPLOY_LOG $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO"
-- python deploy.py $DEPLOY_LOG $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO
-+ echo "python deploy.py $DEPLOY_LOG $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO $DEPLOY_TIMEOUT"
-+ python deploy.py $DEPLOY_LOG $STORAGE_DIR $PXE_BRIDGE $USE_EXISTING_FUEL $FUEL_CREATION_ONLY $NO_HEALTH_CHECK $NO_DEPLOY_ENVIRONMENT -dea ${SCRIPT_PATH}/config/dea.yaml -dha ${SCRIPT_PATH}/config/dha.yaml -iso $ISO $DEPLOY_TIMEOUT
- fi
- popd > /dev/null
-
---
-2.5.5
-
diff --git a/patches/opnfv-fuel/0005-transplant-Generate-extra-interfaces-config-file.patch b/patches/opnfv-fuel/0005-transplant-Generate-extra-interfaces-config-file.patch
deleted file mode 100644
index 76c27163..00000000
--- a/patches/opnfv-fuel/0005-transplant-Generate-extra-interfaces-config-file.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From: Josep Puigdemont <josep.puigdemont@enea.com>
-Date: Wed, 4 May 2016 17:58:56 +0200
-Subject: [PATCH] transplant: Generate extra interfaces config file
-
-The DEA override may contain a IFCGF_<interface> section in its 'fuel:'
-section, containing the necessary keys to produce a ifcfg-<interface>
-file, like in this example:
-
-fuel:
- IFCFG_ETH1:
- device: eth1
- ipaddress: 10.0.1.10
- netmask: 255.255.255.0
- gateway: 10.0.1.254
-
-FIXME: In order for Network Manager to use the newly added interfaces
-for outgoing traffic and honor their GATEWAY setting (e.g. if we just
-added one public interface), the default route on admin iface (most of
-the time called eth0) should be disabled. For now, we assume the admin
-interface is always "eth0".
-
-Change-Id: I0457dc9a0d49e46b8ca85cfe7a4435c2b15f5238
-Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
-Signed-off-by: Alexandu Avadanii <alexandru.avadanii@enea.com>
----
- deploy/transplant_fuel_settings.py | 37 +++++++++++++++++++++++++++++++++++++
- 1 file changed, 37 insertions(+)
-
-diff --git a/deploy/transplant_fuel_settings.py b/deploy/transplant_fuel_settings.py
-index e57a4fb..9a65cf6 100644
---- a/deploy/transplant_fuel_settings.py
-+++ b/deploy/transplant_fuel_settings.py
-@@ -11,10 +11,14 @@
- import sys
- import io
- import yaml
-+import re
-+import os
- from dea import DeploymentEnvironmentAdapter
-
- from common import (
- check_file_exists,
-+ exec_cmd,
-+ log,
- )
-
- ASTUTE_YAML = '/etc/fuel/astute.yaml'
-@@ -35,15 +39,45 @@ def parse_arguments():
- check_file_exists(dea_file)
- return dea_file
-
-+def write_ifcfg_file(key, fuel_conf):
-+ config = ('BOOTPROTO=none\n'
-+ 'ONBOOT=yes\n'
-+ 'TYPE=Ethernet\n'
-+ 'NM_CONTROLLED=yes\n')
-+ for skey in ('ipaddress', 'device', 'netmask', 'gateway'):
-+ if not fuel_conf[key].get(skey):
-+ log('Warning: missing key %s for %s' % (skey, key))
-+ config += '%s=\n' % skey.upper()
-+ elif skey == 'ipaddress':
-+ config += 'IPADDR=%s\n' % fuel_conf[key][skey]
-+ else:
-+ config += '%s=%s\n' % (skey.upper(), fuel_conf[key][skey])
-+
-+ fname = os.path.join('/etc/sysconfig/network-scripts/',
-+ key.lower().replace('_','-'))
-+ with open(fname, 'wc') as f:
-+ f.write(config)
-
- def transplant(dea, astute):
- fuel_conf = dea.get_fuel_config()
-+ require_network_restart = False
- for key in fuel_conf.iterkeys():
- if key == 'ADMIN_NETWORK':
- for skey in fuel_conf[key].iterkeys():
- astute[key][skey] = fuel_conf[key][skey]
-+ elif re.match('^IFCFG', key):
-+ log('Adding interface configuration for: %s' % key.lower())
-+ require_network_restart = True
-+ write_ifcfg_file(key, fuel_conf)
-+ if astute.has_key(key):
-+ astute.pop(key, None)
- else:
- astute[key] = fuel_conf[key]
-+ if require_network_restart:
-+ admin_ifcfg = '/etc/sysconfig/network-scripts/ifcfg-eth0'
-+ exec_cmd('echo "DEFROUTE=no" >> %s' % admin_ifcfg)
-+ log('At least one interface was reconfigured, restart network manager')
-+ exec_cmd('systemctl restart network')
- return astute
-
-
-@@ -51,11 +85,14 @@ def main():
- check_file_exists(ASTUTE_YAML)
- check_file_exists(FUEL_BOOTSTRAP_CLI_YAML)
- dea = DeploymentEnvironmentAdapter(dea_file)
-+ log('Reading astute file %s' % ASTUTE_YAML)
- with io.open(ASTUTE_YAML) as stream:
- astute = yaml.load(stream)
-+ log('Initiating transplant')
- transplant(dea, astute)
- with io.open(ASTUTE_YAML, 'w') as stream:
- yaml.dump(astute, stream, default_flow_style=False)
-+ log('Transplant done')
- # Update bootstrap config yaml with info from DEA/astute.yaml
- with io.open(FUEL_BOOTSTRAP_CLI_YAML) as stream:
- fuel_bootstrap_cli = yaml.load(stream)
diff --git a/patches/opnfv-fuel/0008-deploy-reap.py-Dump-extra-interfaces-information.patch b/patches/opnfv-fuel/0008-deploy-reap.py-Dump-extra-interfaces-information.patch
deleted file mode 100644
index 9ed79cc4..00000000
--- a/patches/opnfv-fuel/0008-deploy-reap.py-Dump-extra-interfaces-information.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From e8232eca62d67c2bac1d34f5b2adfeba1a580634 Mon Sep 17 00:00:00 2001
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Wed, 4 May 2016 18:31:09 +0200
-Subject: [PATCH] deploy/reap.py: Dump extra interfaces information.
-
-Since on AArch64, Ubuntu local mirror lacks arm64 packages (see [1]),
-Fuel master requires internet connectivity during deploy, and hence
-a way to setup such a public (extra) interface automatically.
-
-Previous commit "transplant: Generate extra interfaces config file"
-introduced support for passing this information via DEA (override),
-which may define a IFCGF_<interface> section in its 'fuel:'
-section, containing the necessary keys to produce a ifcfg-<interface>
-file, like in this example:
-
-fuel:
- IFCFG_ETH1:
- device: eth1
- ipaddress: 10.0.1.10
- netmask: 255.255.255.0
- gateway: 10.0.1.254
-
-In order for Network Manager to use the newly added interfaces
-for outgoing traffic and honor their GATEWAY setting (e.g. if we just
-added one public interface), the default route on admin iface (most of
-the time called eth0) is disabled when extra interfaces are present.
-
-FIXME: Only supports lowercase interface names, but so does Fuel,
-see related bug report [2].
-
-[1] https://jira.opnfv.org/browse/ARMBAND-35
-[2] https://jira.opnfv.org/browse/FUEL-136
-
-Change-Id: I6f0a759c65a435ec8bd883a04c8d1adca109cc13
-Signed-off-by: Alexandu Avadanii <alexandru.avadanii@enea.com>
-Signed-off-by: Josep Puigdemont <josep.puigdemont@enea.com>
----
- deploy/reap.py | 34 ++++++++++++++++++++++++++++++++++
- 1 file changed, 34 insertions(+)
-
-diff --git a/deploy/reap.py b/deploy/reap.py
-index ed5bc99..9f14e35 100644
---- a/deploy/reap.py
-+++ b/deploy/reap.py
-@@ -15,6 +15,8 @@ import yaml
- import glob
- import shutil
- import tempfile
-+import re
-+import netaddr
-
- from common import (
- N,
-@@ -248,6 +250,40 @@ class Reap(object):
- if key not in ['ipaddress', 'netmask',
- 'dhcp_pool_start', 'dhcp_pool_end', 'ssh_network']:
- del fuel['ADMIN_NETWORK'][key]
-+
-+ ## FIXME(armband): Factor in support for adding public/other interfaces.
-+ ## TODO: Following block expects interface name(s) to be lowercase only
-+ interfaces_list = exec_cmd('ip -o -4 a | grep -e "e[nt][hopsx].*"')
-+ for interface in re.split('\n', interfaces_list):
-+ # Sample output line from above cmd:
-+ # 3: eth1 inet 10.0.2.10/24 scope global eth1 valid_lft forever ...
-+ ifcfg = re.split(r'\s+', interface)
-+ ifcfg_name = ifcfg[1]
-+ ifcfg_ipaddr = ifcfg[3]
-+
-+ # Filter out admin interface (device name is not known, match IP)
-+ current_network = netaddr.IPNetwork(ifcfg_ipaddr)
-+ if str(current_network.ip) == fuel['ADMIN_NETWORK']['ipaddress']:
-+ continue
-+
-+ # Read ifcfg-* network interface config file, write IFCFG_<IFNAME>
-+ ifcfg_sec = 'IFCFG_%s' % ifcfg_name.upper()
-+ fuel[ifcfg_sec] = {}
-+ ifcfg_data = {}
-+ ifcfg_f = ('/etc/sysconfig/network-scripts/ifcfg-%s' % ifcfg_name)
-+ with open(ifcfg_f) as f:
-+ for line in f:
-+ if line.startswith('#'):
-+ continue
-+ (key, val) = line.split('=')
-+ ifcfg_data[key.lower()] = val.rstrip()
-+
-+ # Keep only needed info (e.g. filter-out type=Ethernet).
-+ fuel[ifcfg_sec]['ipaddress'] = ifcfg_data['ipaddr']
-+ fuel[ifcfg_sec]['device'] = ifcfg_data['device']
-+ fuel[ifcfg_sec]['netmask'] = str(current_network.netmask)
-+ fuel[ifcfg_sec]['gateway'] = ifcfg_data['gateway']
-+
- self.write_yaml(self.dea_file, {'fuel': fuel})
-
- def reap_network_settings(self):
---
-2.5.5
-
diff --git a/patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch b/patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch
deleted file mode 100644
index 45ebb4e9..00000000
--- a/patches/opnfv-fuel/0036-repo-mirror-Allow-multi-arch-local-mirrors.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Sat, 18 Jun 2016 19:42:15 +0200
-Subject: [PATCH] repo mirror: Allow multi-arch local mirrors
-
-This patch allows specifying multiple architectures via UBUNTU_ARCH in
-form of a list of space separated architectures. The first architecture
-in the list is considered primary and will be used for building all the
-deb packages by fuel-main. Additional architectures are added to allow
-targets of other architectures to use the mirror.
-
-NOTE: this imposes a requirement that all packages built are arch
-independent (which is true so far).
-
-[ Alexandru Avadanii ]
-Reworked for applying on top of fuel@OPNFV.
-Pass UBUNTU_ARCH to Docker containers.
-
-Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- build/Makefile | 1 +
- build/docker/Dockerfile | 2 +-
- build/docker/runcontext | 8 ++++-
- build/repo-multi-arch-local-mirrors.patch | 59 +++++++++++++++++++++++++++++++
- 4 files changed, 68 insertions(+), 2 deletions(-)
- create mode 100644 build/repo-multi-arch-local-mirrors.patch
-
-diff --git a/build/Makefile b/build/Makefile
-index 95b1487..829a231 100644
---- a/build/Makefile
-+++ b/build/Makefile
-@@ -135,6 +135,7 @@ $(ISOCACHE):
- cd /tmp/fuel-main && git am $(TOPDIR)/bootstrap_admin_node.sh.patch
- cd /tmp/fuel-main && git am $(TOPDIR)/isolinux.cfg.patch
- cd /tmp/fuel-main/build/repos/fuel-nailgun && git am $(TOPDIR)/Mark-Intel-82599-10-Gigabit-NIC-as-DPDK-capable.patch
-+ cd /tmp/fuel-main && git am $(TOPDIR)/repo-multi-arch-local-mirrors.patch
- # Repeat build up to three times
- sudo -E ./fuel_build_loop
- cp /tmp/fuel-main/build/artifacts/fuel*.iso .
-diff --git a/build/docker/Dockerfile b/build/docker/Dockerfile
-index 1bb56b7..b38ea4c 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\"" > /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\"" > /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 9f07776..daad663 100755
---- a/build/docker/runcontext
-+++ b/build/docker/runcontext
-@@ -111,7 +111,13 @@ if [ -n "$CACHEBASE" ]; then
- fi
- fi
-
--RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL -e LATEST_TARGET_UBUNTU -u $USER_ID:$GROUP_ID -w $PWD -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
-+RUN_CONTEXT_OPT="--cidfile $CID_FILE --privileged=true --rm \
-+ -e HOME=$HOME -e CACHEDEBUG -e CACHETRANSPORT -e CACHEMAXAGE -e CACHEBASE \
-+ -e BUILD_FUEL_PLUGINS -e MIRROR_UBUNTU -e MIRROR_UBUNTU_ROOT \
-+ -e MIRROR_MOS_UBUNTU -e MIRROR_MOS_UBUNTU_ROOT -e MIRROR_FUEL \
-+ -e LATEST_TARGET_UBUNTU -e UBUNTU_ARCH \
-+ -u $USER_ID:$GROUP_ID -w $PWD \
-+ -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
-
- # Passing "debug" puts up an interactive bash shell
- if [ "$1" == "debug" ]; then
-diff --git a/build/repo-multi-arch-local-mirrors.patch b/build/repo-multi-arch-local-mirrors.patch
-new file mode 100644
-index 0000000..d404287
---- /dev/null
-+++ b/build/repo-multi-arch-local-mirrors.patch
-@@ -0,0 +1,59 @@
-+From: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-+Date: Thu, 25 Feb 2016 13:31:19 +0100
-+Subject: repo mirror: Allow multi-arch local mirrors
-+
-+This patch allows specifying multiple architectures via UBUNTU_ARCH in
-+form of a list of space separated architectures. The first architecture
-+in the list is considered primary and will be used for building all the
-+deb packages by fuel-main. Additional architectures are added to allow
-+targets of other architectures to use the mirror.
-+NOTE: this imposes a requirement that all packages built are arch
-+independent (which is true so far).
-+
-+Signed-off-by: Stanislaw Kardach <stanislaw.kardach@cavium.com>
-+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-+---
-+ mirror/ubuntu/module.mk | 2 +-
-+ sandbox.mk | 2 +-
-+ config.mk | 2 +-
-+ 3 files changed, 3 insertions(+), 3 deletions(-)
-+
-+diff --git a/mirror/ubuntu/module.mk b/mirror/ubuntu/module.mk
-+index 7a9466e..fe1ada2 100644
-+--- a/mirror/ubuntu/module.mk
-++++ b/mirror/ubuntu/module.mk
-+@@ -81,7 +81,7 @@ $(BUILD_DIR)/mirror/ubuntu/mirror.done:
-+ --root=$(MIRROR_MOS_UBUNTU_ROOT) \
-+ --dist=$(MIRROR_MOS_UBUNTU_SUITE) \
-+ --section=$(subst $(space),$(comma),$(MIRROR_MOS_UBUNTU_SECTION)) \
-+- --arch=$(UBUNTU_ARCH) \
-++ --arch=$(shell echo $(UBUNTU_ARCH) | tr ' ' ',') \
-+ $(LOCAL_MIRROR_UBUNTU)/
-+ rm -rf $(LOCAL_MIRROR_UBUNTU)/.temp $(LOCAL_MIRROR_UBUNTU)/project
-+ $(ACTION.TOUCH)
-+diff --git a/sandbox.mk b/sandbox.mk
-+index 4bc3962..5ffddbd 100644
-+--- a/sandbox.mk
-++++ b/sandbox.mk
-+@@ -188,7 +188,7 @@ touch $(SANDBOX_UBUNTU)/etc/init.d/.legacy-bootordering
-+ mkdir -p $(SANDBOX_UBUNTU)/usr/sbin
-+ cp -a $(BUILD_DIR)/policy-rc.d $(SANDBOX_UBUNTU)/usr/sbin
-+ echo "Running debootstrap"
-+-sudo debootstrap --no-check-gpg --include=ca-certificates --arch=$(UBUNTU_ARCH) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT)
-++sudo debootstrap --no-check-gpg --include=ca-certificates --arch=$(word 1,$(UBUNTU_ARCH)) $(MIRROR_UBUNTU_SUITE) $(SANDBOX_UBUNTU) $(MIRROR_UBUNTU_METHOD)://$(MIRROR_UBUNTU)$(MIRROR_UBUNTU_ROOT)
-+ if [ -e $(SANDBOX_UBUNTU)/etc/resolv.conf ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf.orig; fi
-+ sudo cp /etc/resolv.conf $(SANDBOX_UBUNTU)/etc/resolv.conf
-+ if [ -e $(SANDBOX_UBUNTU)/etc/hosts ]; then sudo cp -a $(SANDBOX_UBUNTU)/etc/hosts $(SANDBOX_UBUNTU)/etc/hosts.orig; fi
-+diff --git a/config.mk b/config.mk
-+index 74ee039..45a3b30 100644
-+--- a/config.mk
-++++ b/config.mk
-+@@ -49,7 +49,7 @@ UBUNTU_MINOR:=04
-+ UBUNTU_RELEASE_NUMBER:=$(UBUNTU_MAJOR).$(UBUNTU_MINOR)
-+ UBUNTU_KERNEL_FLAVOR?=lts-trusty
-+ UBUNTU_NETBOOT_FLAVOR?=netboot
-+-UBUNTU_ARCH:=amd64
-++UBUNTU_ARCH?=amd64
-+ UBUNTU_IMAGE_RELEASE:=$(UBUNTU_MAJOR)$(UBUNTU_MINOR)
-+ SEPARATE_IMAGES?=/boot,ext2 /,ext4
-+
diff --git a/patches/opnfv-fuel/0039-deploy-Fix-add-bootstrap-DEA-override-delay.patch b/patches/opnfv-fuel/0039-deploy-Fix-add-bootstrap-DEA-override-delay.patch
index f0016892..94b3071e 100644
--- a/patches/opnfv-fuel/0039-deploy-Fix-add-bootstrap-DEA-override-delay.patch
+++ b/patches/opnfv-fuel/0039-deploy-Fix-add-bootstrap-DEA-override-delay.patch
@@ -8,18 +8,19 @@ one minute sleep before checking for completition of fuel install.
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
---
- deploy/install_fuel_master.py | 1 +
- 1 file changed, 1 insertion(+)
+ deploy/install_fuel_master.py | 2 ++
+ 1 file changed, 2 insertions(+)
diff --git a/deploy/install_fuel_master.py b/deploy/install_fuel_master.py
-index 808d0b1..609a335 100644
+index 808d0b1..404474c 100644
--- a/deploy/install_fuel_master.py
+++ b/deploy/install_fuel_master.py
-@@ -201,6 +201,7 @@ class InstallFuelMaster(object):
+@@ -201,6 +201,8 @@ class InstallFuelMaster(object):
CMD = 'ps -ef | grep %s | grep -v grep' % BOOTSTRAP_ADMIN
install_completed = False
+ time.sleep(60)
++ self.wait_for_node_up()
with self.ssh:
for i in range(WAIT_LOOP):
ret = self.ssh.exec_cmd(CMD)
diff --git a/patches/opnfv-fuel/0041-build-Allow-PLUGINS-override.patch b/patches/opnfv-fuel/0041-build-Allow-PLUGINS-override.patch
deleted file mode 100644
index acbbc11c..00000000
--- a/patches/opnfv-fuel/0041-build-Allow-PLUGINS-override.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Wed, 10 Aug 2016 16:43:39 +0200
-Subject: [PATCH] build: Allow PLUGINS override
-
-Instead of using BUILD_FUEL_PLUGINS, which was intended for manual
-overrides of the Fule@OPNFV plugin list, allow PLUGINS to be
-preset to a custom list, which we will provide via Armband
-Makefile spec.
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- build/f_isoroot/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/build/f_isoroot/Makefile b/build/f_isoroot/Makefile
-index 4df7bcb..448f415 100644
---- a/build/f_isoroot/Makefile
-+++ b/build/f_isoroot/Makefile
-@@ -11,7 +11,7 @@
- # Add Fuel plugin build targets here
- # Plugins disabled for the Fuel Mitaka uplift. Please re-enable your plugin as you have
- # verified it!
--PLUGINS = f_odlpluginbuild f_onosfwpluginbuild f_vsperfpluginbuild f_ovs-nsh-dpdk-pluginbuild f_yardstick-pluginbuild f_kvm-pluginbuild f_bgpvpn-pluginbuild f_collectd-ceilometer-pluginbuild
-+PLUGINS ?= f_odlpluginbuild f_onosfwpluginbuild f_vsperfpluginbuild f_ovs-nsh-dpdk-pluginbuild f_yardstick-pluginbuild f_kvm-pluginbuild f_bgpvpn-pluginbuild f_collectd-ceilometer-pluginbuild
- #PLUGINS = f_odlpluginbuild f_onosfwpluginbuild f_ovsnfv-dpdk-pluginbuild f_vsperfpluginbuild f_ovs-nsh-dpdk-pluginbuild f_bgpvpn-pluginbuild
- export PLUGINS
- #NON_8-0_REBASED_PLUGINS = f_bgpvpn-pluginbuild
diff --git a/patches/opnfv-fuel/0042-build-Allow-MIRROR_MOS_UBUNTU-override.patch b/patches/opnfv-fuel/0042-build-Allow-MIRROR_MOS_UBUNTU-override.patch
deleted file mode 100644
index 37e4d078..00000000
--- a/patches/opnfv-fuel/0042-build-Allow-MIRROR_MOS_UBUNTU-override.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Tue, 16 Aug 2016 18:45:10 +0200
-Subject: [PATCH] build: Allow MIRROR_MOS_UBUNTU override
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- build/Makefile | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/build/Makefile b/build/Makefile
-index 4a4bb2e..6e18ddd 100644
---- a/build/Makefile
-+++ b/build/Makefile
-@@ -60,7 +60,7 @@ export MIRROR_UBUNTU_ROOT := $(shell echo -n '/' ; echo "$(MIRROR_UBUNTU_URL)" |
-
- export LATEST_MIRROR_ID_URL := http://$(shell ./select_closest_fuel_mirror.py)
-
--export MIRROR_MOS_UBUNTU := $(shell echo "$(LATEST_MIRROR_ID_URL)" | cut -d'/' -f3)
-+export MIRROR_MOS_UBUNTU ?= $(shell echo "$(LATEST_MIRROR_ID_URL)" | cut -d'/' -f3)
- export LATEST_TARGET_UBUNTU := $(shell curl -sSf "$(MIRROR_MOS_UBUNTU)/mos-repos/ubuntu/$(MOSVERSION).target.txt" | head -1)
- export MIRROR_MOS_UBUNTU_ROOT := /mos-repos/ubuntu/$(LATEST_TARGET_UBUNTU)
-
diff --git a/patches/opnfv-fuel/0044-build-cache-Allow-LOCAL_CACHE_ARCH_NAME-override.patch b/patches/opnfv-fuel/0044-build-cache-Allow-LOCAL_CACHE_ARCH_NAME-override.patch
deleted file mode 100644
index e477421d..00000000
--- a/patches/opnfv-fuel/0044-build-cache-Allow-LOCAL_CACHE_ARCH_NAME-override.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Thu, 18 Aug 2016 14:39:08 +0200
-Subject: [PATCH] build: cache: Allow LOCAL_CACHE_ARCH_NAME override
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- ci/build.sh | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/ci/build.sh b/ci/build.sh
-index 62abba1..82049cd 100755
---- a/ci/build.sh
-+++ b/ci/build.sh
-@@ -111,7 +111,7 @@ SCRIPT_DIR=$(readlink -f $(dirname ${BASH_SOURCE[0]}))
- BUILD_BASE=$(readlink -e ${SCRIPT_DIR}/../build/)
- RESULT_DIR="${BUILD_BASE}/release"
- BUILD_SPEC="${BUILD_BASE}/config.mk"
--LOCAL_CACHE_ARCH_NAME="fuel-cache"
-+LOCAL_CACHE_ARCH_NAME="${LOCAL_CACHE_ARCH_NAME:-fuel-cache}"
-
- #
- # END of variables to customize
diff --git a/patches/opnfv-fuel/0045-build-cache-Consider-UBUNTU_ARCH-in-.cacheid.patch b/patches/opnfv-fuel/0045-build-cache-Consider-UBUNTU_ARCH-in-.cacheid.patch
deleted file mode 100644
index 43d5bcc5..00000000
--- a/patches/opnfv-fuel/0045-build-cache-Consider-UBUNTU_ARCH-in-.cacheid.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
-Date: Wed, 17 Aug 2016 20:36:51 +0200
-Subject: [PATCH] build: cache: Consider UBUNTU_ARCH in .cacheid
-
-Usually UBUNTU_ARCH is not changed inside the same repository,
-but we should consider this case anyway for future merging
-Armband and Fuel@OPNFV repositories/build systems.
-
-This applies to all Fuel plugins and the local repo.
-
-Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
----
- build/f_isoroot/f_bgpvpn-pluginbuild/Makefile | 1 +
- build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile | 1 +
- build/f_isoroot/f_kvm-pluginbuild/Makefile | 1 +
- build/f_isoroot/f_odlpluginbuild/Makefile | 1 +
- build/f_isoroot/f_onosfwpluginbuild/Makefile | 1 +
- build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile | 1 +
- build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile | 1 +
- build/f_isoroot/f_repobuild/Makefile | 1 +
- build/f_isoroot/f_vsperfpluginbuild/Makefile | 1 +
- build/f_isoroot/f_yardstick-pluginbuild/Makefile | 1 +
- 10 files changed, 10 insertions(+)
-
-diff --git a/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile b/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
-index ed3be29..8ce28fc 100644
---- a/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
-+++ b/build/f_isoroot/f_bgpvpn-pluginbuild/Makefile
-@@ -67,6 +67,7 @@ release:.bgpvpnbuild
- fi
- sha1sum Makefile >> .cachedata
- sha1sum config.mk >> .cachedata
-+ echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile
-index 9ab922d..17bc36d 100644
---- a/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile
-+++ b/build/f_isoroot/f_collectd-ceilometer-pluginbuild/Makefile
-@@ -67,6 +67,7 @@ release:.fastpathmetrics
- fi
- @sha1sum Makefile | awk {'print $$1'} >> .cachedata
- @sha1sum config.mk | awk {'print $$1'} >> .cachedata
-+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- @cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_kvm-pluginbuild/Makefile b/build/f_isoroot/f_kvm-pluginbuild/Makefile
-index ba2fd0b..2454b5e 100644
---- a/build/f_isoroot/f_kvm-pluginbuild/Makefile
-+++ b/build/f_isoroot/f_kvm-pluginbuild/Makefile
-@@ -70,6 +70,7 @@ release:.kvmbuild
- fi
- @sha1sum Makefile | awk {'print $$1'} >> .cachedata
- @sha1sum config.mk | awk {'print $$1'} >> .cachedata
-+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- @cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_odlpluginbuild/Makefile b/build/f_isoroot/f_odlpluginbuild/Makefile
-index e2cbf7d..6c717c7 100644
---- a/build/f_isoroot/f_odlpluginbuild/Makefile
-+++ b/build/f_isoroot/f_odlpluginbuild/Makefile
-@@ -58,6 +58,7 @@ release:.odlbuild
- fi
- @sha1sum Makefile | awk {'print $$1'} >> .cachedata
- @sha1sum config.mk | awk {'print $$1'} >> .cachedata
-+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_onosfwpluginbuild/Makefile b/build/f_isoroot/f_onosfwpluginbuild/Makefile
-index a9dcb22..02ba029 100644
---- a/build/f_isoroot/f_onosfwpluginbuild/Makefile
-+++ b/build/f_isoroot/f_onosfwpluginbuild/Makefile
-@@ -66,6 +66,7 @@ release:.onosbuild
- fi
- @sha1sum Makefile | awk {'print $$1'} >> .cachedata
- @sha1sum config.mk | awk {'print $$1'} >> .cachedata
-+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- @cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
-index ecf586a..2d0d202 100644
---- a/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
-+++ b/build/f_isoroot/f_ovs-nsh-dpdk-pluginbuild/Makefile
-@@ -67,6 +67,7 @@ release:.ovsbuild
- fi
- @sha1sum Makefile | awk {'print $$1'} >> .cachedata
- @sha1sum config.mk | awk {'print $$1'} >> .cachedata
-+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- @cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile b/build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile
-index 9e432d1..9455389 100644
---- a/build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile
-+++ b/build/f_isoroot/f_ovsnfv-dpdk-pluginbuild/Makefile
-@@ -67,6 +67,7 @@ release:.ovsnfvbuild
- fi
- @sha1sum Makefile | awk {'print $$1'} >> .cachedata
- @sha1sum config.mk | awk {'print $$1'} >> .cachedata
-+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- @cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_repobuild/Makefile b/build/f_isoroot/f_repobuild/Makefile
-index 6fef8ff..f6ebc2c 100644
---- a/build/f_isoroot/f_repobuild/Makefile
-+++ b/build/f_isoroot/f_repobuild/Makefile
-@@ -73,6 +73,7 @@ release:nailgun
- sha1sum Makefile >> .cachedata
- sha1sum config.mk >> .cachedata
- $(CACHETOOL) packages >> .cachedata
-+ echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_vsperfpluginbuild/Makefile b/build/f_isoroot/f_vsperfpluginbuild/Makefile
-index 9bd236a..73de611 100644
---- a/build/f_isoroot/f_vsperfpluginbuild/Makefile
-+++ b/build/f_isoroot/f_vsperfpluginbuild/Makefile
-@@ -68,6 +68,7 @@ release:.vsperfbuild
- fi
- @sha1sum Makefile | awk {'print $$1'} >> .cachedata
- @sha1sum config.mk | awk {'print $$1'} >> .cachedata
-+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- @cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
-diff --git a/build/f_isoroot/f_yardstick-pluginbuild/Makefile b/build/f_isoroot/f_yardstick-pluginbuild/Makefile
-index 47723d5..32de3b3 100644
---- a/build/f_isoroot/f_yardstick-pluginbuild/Makefile
-+++ b/build/f_isoroot/f_yardstick-pluginbuild/Makefile
-@@ -68,6 +68,7 @@ release:.yardstickbuild
- fi
- @sha1sum Makefile | awk {'print $$1'} >> .cachedata
- @sha1sum config.mk | awk {'print $$1'} >> .cachedata
-+ @echo -n $(UBUNTU_ARCH) | sha1sum | awk {'print $$1'} >> .cachedata
- @cat .cachedata | $(CACHETOOL) getid > .cacheid
-
- # Clean local data related to caching - called prior to ordinary build
diff --git a/patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch b/patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch
new file mode 100644
index 00000000..8a765c92
--- /dev/null
+++ b/patches/opnfv-fuel/0054-net-check-add-support-for-faulty-operstate.patch
@@ -0,0 +1,63 @@
+From: Stefan Sicleru <stefan.sicleru@enea.com>
+Date: Tue, 30 Aug 2016 17:53:41 +0200
+Subject: [PATCH] net-check: add support for faulty operstate
+
+Some eth drivers, such as those for APM X-Gene Mustang Board's NICs, do
+not advertise operstate properly in sysfs, ie. it is advertised as
+"unknown" whereas ethtool shows the NIC as fully functional with link
+detected. This further affects "ip link show" output which is parsed
+within _check_iface_ready() method.
+
+Replace "ip link show" command with "ethtool" in order to obtain proper
+results when operstate is unknown.
+
+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
+
+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
+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
+@@ -0,0 +1,38 @@
++From: Stefan Sicleru <stefan.sicleru@enea.com>
++Date: Tue, 30 Aug 2016 17:30:24 +0200
++Subject: [PATCH] net-check: add support for faulty operstate
++
++Some eth drivers, such as those for APM X-Gene Mustang Board's NICs, do
++not advertise operstate properly in sysfs, ie. it is advertised as
++"unknown" whereas ethtool shows the NIC as fully functional with link
++detected. This further affects "ip link show" output which is parsed
++within _check_iface_ready() method.
++
++Replace "ip link show" command with "ethtool" in order to obtain proper
++results when operstate is unknown.
++
++Signed-off-by: Stefan Sicleru <stefan.sicleru@enea.com>
++---
++ network_checker/net_check/api.py | 9 ++++++++-
++ 1 file changed, 8 insertions(+), 1 deletion(-)
++
++diff --git a/network_checker/net_check/api.py b/network_checker/net_check/api.py
++index e3c3b4e..87aa257 100755
++--- a/network_checker/net_check/api.py
+++++ b/network_checker/net_check/api.py
++@@ -195,7 +195,14 @@ class Actor(object):
++ def _check_iface_ready(self, iface, vid=None):
++ check_iface = self._iface_name(iface, vid)
++ output = self._execute(['ip', '-o', 'link', 'show', check_iface])
++- return 'state UP' in '\n'.join(output)
+++ if 'state UP' in '\n'.join(output):
+++ return True
+++
+++ if 'state UNKNOWN' in '\n'.join(output) and vid == None:
+++ output = self._execute(['ethtool', check_iface])
+++ 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."""
diff --git a/patches/opnfv-fuel/0055-build-docker-Use-host-s-network-stack.patch b/patches/opnfv-fuel/0055-build-docker-Use-host-s-network-stack.patch
new file mode 100644
index 00000000..d9fd36a0
--- /dev/null
+++ b/patches/opnfv-fuel/0055-build-docker-Use-host-s-network-stack.patch
@@ -0,0 +1,28 @@
+From: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+Date: Mon, 29 Aug 2016 22:58:49 +0200
+Subject: [PATCH] build: docker: Use host's /etc/hosts
+
+The original motivation was pointing to local mirrors via host's
+"/etc/hosts", for which an alternative solution tested was
+"--net=host" (see [1] for full description), but lead to wierd
+loss of connectivity after a few builds.
+
+[1] https://docs.docker.com/v1.8/articles/networking/
+
+Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
+---
+ build/docker/runcontext | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/build/docker/runcontext b/build/docker/runcontext
+index 07b0dc1..b0d6d37 100755
+--- a/build/docker/runcontext
++++ 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 \
+ -u $USER_ID:$GROUP_ID -w $PWD \
++ -v /etc/hosts:/etc/hosts \
+ -v $GITROOT:$GITROOT -v /sys/fs/cgroup:/sys/fs/cgroup:ro $CACHEMOUNT"
+
+ # Passing "debug" puts up an interactive bash shell