diff options
author | Alexandru Avadanii <Alexandru.Avadanii@enea.com> | 2016-08-31 15:12:19 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@172.30.200.206> | 2016-08-31 15:12:19 +0000 |
commit | 122ecbc265d7dc2f6f5dfe6ef6a8f22f66db2e03 (patch) | |
tree | a25aa45c3a7a1e8b298492aa743f304e6200217f /patches/opnfv-fuel/0008-deploy-reap.py-Dump-extra-interfaces-information.patch | |
parent | 7d7ac35a9994b61f54a894a78861fee2c089a7eb (diff) | |
parent | 6be72ecc09f8465469a0a304ffbd6abc47a12915 (diff) |
Merge "Upstream: extra interfaces cfg"
Diffstat (limited to 'patches/opnfv-fuel/0008-deploy-reap.py-Dump-extra-interfaces-information.patch')
-rw-r--r-- | patches/opnfv-fuel/0008-deploy-reap.py-Dump-extra-interfaces-information.patch | 97 |
1 files changed, 0 insertions, 97 deletions
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 - |