aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>2016-08-31 15:12:19 +0000
committerGerrit Code Review <gerrit@172.30.200.206>2016-08-31 15:12:19 +0000
commit122ecbc265d7dc2f6f5dfe6ef6a8f22f66db2e03 (patch)
treea25aa45c3a7a1e8b298492aa743f304e6200217f
parent7d7ac35a9994b61f54a894a78861fee2c089a7eb (diff)
parent6be72ecc09f8465469a0a304ffbd6abc47a12915 (diff)
Merge "Upstream: extra interfaces cfg"
-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
2 files changed, 0 insertions, 205 deletions
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
-