Update to 19.4
This commit is contained in:
parent
848302ec78
commit
e7d90aa880
@ -1,21 +0,0 @@
|
|||||||
Index: cloud-init-17.1/cloudinit/util.py
|
|
||||||
===================================================================
|
|
||||||
--- cloud-init-17.1.orig/cloudinit/util.py
|
|
||||||
+++ cloud-init-17.1/cloudinit/util.py
|
|
||||||
@@ -11,6 +11,7 @@
|
|
||||||
import contextlib
|
|
||||||
import copy as obj_copy
|
|
||||||
import ctypes
|
|
||||||
+import distro
|
|
||||||
import email
|
|
||||||
import glob
|
|
||||||
import grp
|
|
||||||
@@ -586,7 +587,7 @@ def system_info():
|
|
||||||
'release': platform.release(),
|
|
||||||
'python': platform.python_version(),
|
|
||||||
'uname': platform.uname(),
|
|
||||||
- 'dist': platform.dist(), # pylint: disable=W1505
|
|
||||||
+ 'dist': distro.linux_distribution(full_distribution_name=False),
|
|
||||||
}
|
|
||||||
system = info['system'].lower()
|
|
||||||
var = 'unknown'
|
|
@ -1,17 +0,0 @@
|
|||||||
Index: cloud-init-17.1/tests/cloud_tests/platforms/__init__.py
|
|
||||||
===================================================================
|
|
||||||
--- cloud-init-17.1.orig/tests/cloud_tests/platforms/__init__.py
|
|
||||||
+++ cloud-init-17.1/tests/cloud_tests/platforms/__init__.py
|
|
||||||
@@ -2,12 +2,10 @@
|
|
||||||
|
|
||||||
"""Main init."""
|
|
||||||
|
|
||||||
-from tests.cloud_tests.platforms import lxd
|
|
||||||
from tests.cloud_tests.platforms import nocloudkvm
|
|
||||||
|
|
||||||
PLATFORMS = {
|
|
||||||
'nocloud-kvm': nocloudkvm.NoCloudKVMPlatform,
|
|
||||||
- 'lxd': lxd.LXDPlatform,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,31 +0,0 @@
|
|||||||
From d1a2fe7307e9cf2251d1f9a666c12d71d3f522d6 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Chad Smith <chad.smith@canonical.com>
|
|
||||||
Date: Sat, 26 Jan 2019 15:06:42 +0000
|
|
||||||
Subject: opennebula: exclude EPOCHREALTIME as known bash env variable with a
|
|
||||||
delta
|
|
||||||
|
|
||||||
This branch is needed to allow cloud-init to sbuild on Ubuntu Disco.
|
|
||||||
|
|
||||||
OpenNebula:parse_shell_config tries to do a comparison of bash
|
|
||||||
environment values, excluding expected environment variables which
|
|
||||||
are known to change.
|
|
||||||
|
|
||||||
Bash on Ubuntu Disco surfaces a new EPOCHREALTIME environment variable
|
|
||||||
which wasn't in previous bash environments, this var needs to be
|
|
||||||
ignored by parse_shell_config too.
|
|
||||||
|
|
||||||
LP: #1813383
|
|
||||||
|
|
||||||
Index: cloud-init-17.1/cloudinit/sources/DataSourceOpenNebula.py
|
|
||||||
===================================================================
|
|
||||||
--- cloud-init-17.1.orig/cloudinit/sources/DataSourceOpenNebula.py
|
|
||||||
+++ cloud-init-17.1/cloudinit/sources/DataSourceOpenNebula.py
|
|
||||||
@@ -279,7 +279,7 @@ def parse_shell_config(content, keylist=
|
|
||||||
(output, _error) = util.subp(cmd, data=bcmd)
|
|
||||||
|
|
||||||
# exclude vars in bash that change on their own or that we used
|
|
||||||
- excluded = ("RANDOM", "LINENO", "SECONDS", "_", "__v")
|
|
||||||
+ excluded = ("EPOCHREALTIME", "RANDOM", "LINENO", "SECONDS", "_", "__v")
|
|
||||||
preset = {}
|
|
||||||
ret = {}
|
|
||||||
target = None
|
|
@ -1,298 +0,0 @@
|
|||||||
From a16fb4e1e1379db61a1ee40513f2ad10c9b38ef9 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Chad Smith <chad.smith@canonical.com>
|
|
||||||
Date: Tue, 31 Oct 2017 12:42:15 -0600
|
|
||||||
Subject: [PATCH 4/4] EC2: Limit network config to fallback nic, fix local-ipv4
|
|
||||||
only instances.
|
|
||||||
|
|
||||||
VPC instances have the option to specific local only IPv4 addresses. Allow
|
|
||||||
Ec2Datasource to enable dhcp4 on instances even if local-ipv4s is
|
|
||||||
configured on an instance.
|
|
||||||
|
|
||||||
Also limit network_configuration to only the primary (fallback) nic.
|
|
||||||
|
|
||||||
LP: #1728152
|
|
||||||
(cherry picked from commit eb292c18c3d83b9f7e5d1fd81b0e8aefaab0cc2d)
|
|
||||||
---
|
|
||||||
cloudinit/sources/DataSourceEc2.py | 24 ++++-
|
|
||||||
tests/unittests/test_datasource/test_ec2.py | 136 ++++++++++++++++++++++++++--
|
|
||||||
2 files changed, 149 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/cloudinit/sources/DataSourceEc2.py b/cloudinit/sources/DataSourceEc2.py
|
|
||||||
index 41367a8b..0ef22174 100644
|
|
||||||
--- a/cloudinit/sources/DataSourceEc2.py
|
|
||||||
+++ b/cloudinit/sources/DataSourceEc2.py
|
|
||||||
@@ -64,6 +64,9 @@ class DataSourceEc2(sources.DataSource):
|
|
||||||
# Whether we want to get network configuration from the metadata service.
|
|
||||||
get_network_metadata = False
|
|
||||||
|
|
||||||
+ # Track the discovered fallback nic for use in configuration generation.
|
|
||||||
+ fallback_nic = None
|
|
||||||
+
|
|
||||||
def __init__(self, sys_cfg, distro, paths):
|
|
||||||
sources.DataSource.__init__(self, sys_cfg, distro, paths)
|
|
||||||
self.metadata_address = None
|
|
||||||
@@ -89,16 +92,18 @@ class DataSourceEc2(sources.DataSource):
|
|
||||||
elif self.cloud_platform == Platforms.NO_EC2_METADATA:
|
|
||||||
return False
|
|
||||||
|
|
||||||
+ self.fallback_nic = net.find_fallback_nic()
|
|
||||||
if self.get_network_metadata: # Setup networking in init-local stage.
|
|
||||||
if util.is_FreeBSD():
|
|
||||||
LOG.debug("FreeBSD doesn't support running dhclient with -sf")
|
|
||||||
return False
|
|
||||||
- dhcp_leases = dhcp.maybe_perform_dhcp_discovery()
|
|
||||||
+ dhcp_leases = dhcp.maybe_perform_dhcp_discovery(self.fallback_nic)
|
|
||||||
if not dhcp_leases:
|
|
||||||
# DataSourceEc2Local failed in init-local stage. DataSourceEc2
|
|
||||||
# will still run in init-network stage.
|
|
||||||
return False
|
|
||||||
dhcp_opts = dhcp_leases[-1]
|
|
||||||
+ self.fallback_nic = dhcp_opts.get('interface')
|
|
||||||
net_params = {'interface': dhcp_opts.get('interface'),
|
|
||||||
'ip': dhcp_opts.get('fixed-address'),
|
|
||||||
'prefix_or_mask': dhcp_opts.get('subnet-mask'),
|
|
||||||
@@ -297,8 +302,13 @@ class DataSourceEc2(sources.DataSource):
|
|
||||||
|
|
||||||
result = None
|
|
||||||
net_md = self.metadata.get('network')
|
|
||||||
+ # Limit network configuration to only the primary/fallback nic
|
|
||||||
+ macs_to_nics = {
|
|
||||||
+ net.get_interface_mac(self.fallback_nic): self.fallback_nic}
|
|
||||||
if isinstance(net_md, dict):
|
|
||||||
- result = convert_ec2_metadata_network_config(net_md)
|
|
||||||
+ result = convert_ec2_metadata_network_config(
|
|
||||||
+ net_md, macs_to_nics=macs_to_nics,
|
|
||||||
+ fallback_nic=self.fallback_nic)
|
|
||||||
else:
|
|
||||||
LOG.warning("unexpected metadata 'network' key not valid: %s",
|
|
||||||
net_md)
|
|
||||||
@@ -458,15 +468,18 @@ def _collect_platform_data():
|
|
||||||
return data
|
|
||||||
|
|
||||||
|
|
||||||
-def convert_ec2_metadata_network_config(network_md, macs_to_nics=None):
|
|
||||||
+def convert_ec2_metadata_network_config(network_md, macs_to_nics=None,
|
|
||||||
+ fallback_nic=None):
|
|
||||||
"""Convert ec2 metadata to network config version 1 data dict.
|
|
||||||
|
|
||||||
@param: network_md: 'network' portion of EC2 metadata.
|
|
||||||
generally formed as {"interfaces": {"macs": {}} where
|
|
||||||
'macs' is a dictionary with mac address as key and contents like:
|
|
||||||
{"device-number": "0", "interface-id": "...", "local-ipv4s": ...}
|
|
||||||
- @param: macs_to_name: Optional dict mac addresses and the nic name. If
|
|
||||||
+ @param: macs_to_nics: Optional dict of mac addresses and nic names. If
|
|
||||||
not provided, get_interfaces_by_mac is called to get it from the OS.
|
|
||||||
+ @param: fallback_nic: Optionally provide the primary nic interface name.
|
|
||||||
+ This nic will be guaranteed to minimally have a dhcp4 configuration.
|
|
||||||
|
|
||||||
@return A dict of network config version 1 based on the metadata and macs.
|
|
||||||
"""
|
|
||||||
@@ -480,7 +493,8 @@ def convert_ec2_metadata_network_config(network_md, macs_to_nics=None):
|
|
||||||
continue # Not a physical nic represented in metadata
|
|
||||||
nic_cfg = {'type': 'physical', 'name': nic_name, 'subnets': []}
|
|
||||||
nic_cfg['mac_address'] = mac
|
|
||||||
- if nic_metadata.get('public-ipv4s'):
|
|
||||||
+ if (nic_name == fallback_nic or nic_metadata.get('public-ipv4s') or
|
|
||||||
+ nic_metadata.get('local-ipv4s')):
|
|
||||||
nic_cfg['subnets'].append({'type': 'dhcp4'})
|
|
||||||
if nic_metadata.get('ipv6s'):
|
|
||||||
nic_cfg['subnets'].append({'type': 'dhcp6'})
|
|
||||||
diff --git a/tests/unittests/test_datasource/test_ec2.py b/tests/unittests/test_datasource/test_ec2.py
|
|
||||||
index a7301dbf..6af699a6 100644
|
|
||||||
--- a/tests/unittests/test_datasource/test_ec2.py
|
|
||||||
+++ b/tests/unittests/test_datasource/test_ec2.py
|
|
||||||
@@ -51,6 +51,29 @@ DEFAULT_METADATA = {
|
|
||||||
"vpc-ipv4-cidr-block": "172.31.0.0/16",
|
|
||||||
"vpc-ipv4-cidr-blocks": "172.31.0.0/16",
|
|
||||||
"vpc-ipv6-cidr-blocks": "2600:1f16:aeb:b200::/56"
|
|
||||||
+ },
|
|
||||||
+ "06:17:04:d7:26:0A": {
|
|
||||||
+ "device-number": "1", # Only IPv4 local config
|
|
||||||
+ "interface-id": "eni-e44ef49f",
|
|
||||||
+ "ipv4-associations": {"": "172.3.3.16"},
|
|
||||||
+ "ipv6s": "", # No IPv6 config
|
|
||||||
+ "local-hostname": ("ip-172-3-3-16.us-east-2."
|
|
||||||
+ "compute.internal"),
|
|
||||||
+ "local-ipv4s": "172.3.3.16",
|
|
||||||
+ "mac": "06:17:04:d7:26:0A",
|
|
||||||
+ "owner-id": "950047163771",
|
|
||||||
+ "public-hostname": ("ec2-172-3-3-16.us-east-2."
|
|
||||||
+ "compute.amazonaws.com"),
|
|
||||||
+ "public-ipv4s": "", # No public ipv4 config
|
|
||||||
+ "security-group-ids": "sg-5a61d333",
|
|
||||||
+ "security-groups": "wide-open",
|
|
||||||
+ "subnet-id": "subnet-20b8565b",
|
|
||||||
+ "subnet-ipv4-cidr-block": "172.31.16.0/20",
|
|
||||||
+ "subnet-ipv6-cidr-blocks": "",
|
|
||||||
+ "vpc-id": "vpc-87e72bee",
|
|
||||||
+ "vpc-ipv4-cidr-block": "172.31.0.0/16",
|
|
||||||
+ "vpc-ipv4-cidr-blocks": "172.31.0.0/16",
|
|
||||||
+ "vpc-ipv6-cidr-blocks": ""
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -209,12 +232,20 @@ class TestEc2(test_helpers.HttprettyTestCase):
|
|
||||||
|
|
||||||
@httpretty.activate
|
|
||||||
def test_network_config_property_returns_version_1_network_data(self):
|
|
||||||
- """network_config property returns network version 1 for metadata."""
|
|
||||||
+ """network_config property returns network version 1 for metadata.
|
|
||||||
+
|
|
||||||
+ Only one device is configured even when multiple exist in metadata.
|
|
||||||
+ """
|
|
||||||
ds = self._setup_ds(
|
|
||||||
platform_data=self.valid_platform_data,
|
|
||||||
sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
|
|
||||||
md=DEFAULT_METADATA)
|
|
||||||
- ds.get_data()
|
|
||||||
+ find_fallback_path = (
|
|
||||||
+ 'cloudinit.sources.DataSourceEc2.net.find_fallback_nic')
|
|
||||||
+ with mock.patch(find_fallback_path) as m_find_fallback:
|
|
||||||
+ m_find_fallback.return_value = 'eth9'
|
|
||||||
+ ds.get_data()
|
|
||||||
+
|
|
||||||
mac1 = '06:17:04:d7:26:09' # Defined in DEFAULT_METADATA
|
|
||||||
expected = {'version': 1, 'config': [
|
|
||||||
{'mac_address': '06:17:04:d7:26:09', 'name': 'eth9',
|
|
||||||
@@ -222,9 +253,48 @@ class TestEc2(test_helpers.HttprettyTestCase):
|
|
||||||
'type': 'physical'}]}
|
|
||||||
patch_path = (
|
|
||||||
'cloudinit.sources.DataSourceEc2.net.get_interfaces_by_mac')
|
|
||||||
+ get_interface_mac_path = (
|
|
||||||
+ 'cloudinit.sources.DataSourceEc2.net.get_interface_mac')
|
|
||||||
+ with mock.patch(patch_path) as m_get_interfaces_by_mac:
|
|
||||||
+ with mock.patch(find_fallback_path) as m_find_fallback:
|
|
||||||
+ with mock.patch(get_interface_mac_path) as m_get_mac:
|
|
||||||
+ m_get_interfaces_by_mac.return_value = {mac1: 'eth9'}
|
|
||||||
+ m_find_fallback.return_value = 'eth9'
|
|
||||||
+ m_get_mac.return_value = mac1
|
|
||||||
+ self.assertEqual(expected, ds.network_config)
|
|
||||||
+
|
|
||||||
+ @httpretty.activate
|
|
||||||
+ def test_network_config_property_set_dhcp4_on_private_ipv4(self):
|
|
||||||
+ """network_config property configures dhcp4 on private ipv4 nics.
|
|
||||||
+
|
|
||||||
+ Only one device is configured even when multiple exist in metadata.
|
|
||||||
+ """
|
|
||||||
+ ds = self._setup_ds(
|
|
||||||
+ platform_data=self.valid_platform_data,
|
|
||||||
+ sys_cfg={'datasource': {'Ec2': {'strict_id': True}}},
|
|
||||||
+ md=DEFAULT_METADATA)
|
|
||||||
+ find_fallback_path = (
|
|
||||||
+ 'cloudinit.sources.DataSourceEc2.net.find_fallback_nic')
|
|
||||||
+ with mock.patch(find_fallback_path) as m_find_fallback:
|
|
||||||
+ m_find_fallback.return_value = 'eth9'
|
|
||||||
+ ds.get_data()
|
|
||||||
+
|
|
||||||
+ mac1 = '06:17:04:d7:26:0A' # IPv4 only in DEFAULT_METADATA
|
|
||||||
+ expected = {'version': 1, 'config': [
|
|
||||||
+ {'mac_address': '06:17:04:d7:26:0A', 'name': 'eth9',
|
|
||||||
+ 'subnets': [{'type': 'dhcp4'}],
|
|
||||||
+ 'type': 'physical'}]}
|
|
||||||
+ patch_path = (
|
|
||||||
+ 'cloudinit.sources.DataSourceEc2.net.get_interfaces_by_mac')
|
|
||||||
+ get_interface_mac_path = (
|
|
||||||
+ 'cloudinit.sources.DataSourceEc2.net.get_interface_mac')
|
|
||||||
with mock.patch(patch_path) as m_get_interfaces_by_mac:
|
|
||||||
- m_get_interfaces_by_mac.return_value = {mac1: 'eth9'}
|
|
||||||
- self.assertEqual(expected, ds.network_config)
|
|
||||||
+ with mock.patch(find_fallback_path) as m_find_fallback:
|
|
||||||
+ with mock.patch(get_interface_mac_path) as m_get_mac:
|
|
||||||
+ m_get_interfaces_by_mac.return_value = {mac1: 'eth9'}
|
|
||||||
+ m_find_fallback.return_value = 'eth9'
|
|
||||||
+ m_get_mac.return_value = mac1
|
|
||||||
+ self.assertEqual(expected, ds.network_config)
|
|
||||||
|
|
||||||
def test_network_config_property_is_cached_in_datasource(self):
|
|
||||||
"""network_config property is cached in DataSourceEc2."""
|
|
||||||
@@ -321,9 +391,11 @@ class TestEc2(test_helpers.HttprettyTestCase):
|
|
||||||
|
|
||||||
@httpretty.activate
|
|
||||||
@mock.patch('cloudinit.net.EphemeralIPv4Network')
|
|
||||||
+ @mock.patch('cloudinit.net.find_fallback_nic')
|
|
||||||
@mock.patch('cloudinit.net.dhcp.maybe_perform_dhcp_discovery')
|
|
||||||
@mock.patch('cloudinit.sources.DataSourceEc2.util.is_FreeBSD')
|
|
||||||
- def test_ec2_local_performs_dhcp_on_non_bsd(self, m_is_bsd, m_dhcp, m_net):
|
|
||||||
+ def test_ec2_local_performs_dhcp_on_non_bsd(self, m_is_bsd, m_dhcp,
|
|
||||||
+ m_fallback_nic, m_net):
|
|
||||||
"""Ec2Local returns True for valid platform data on non-BSD with dhcp.
|
|
||||||
|
|
||||||
DataSourceEc2Local will setup initial IPv4 network via dhcp discovery.
|
|
||||||
@@ -331,6 +403,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
|
|
||||||
When the platform data is valid, return True.
|
|
||||||
"""
|
|
||||||
|
|
||||||
+ m_fallback_nic.return_value = 'eth9'
|
|
||||||
m_is_bsd.return_value = False
|
|
||||||
m_dhcp.return_value = [{
|
|
||||||
'interface': 'eth9', 'fixed-address': '192.168.2.9',
|
|
||||||
@@ -344,7 +417,7 @@ class TestEc2(test_helpers.HttprettyTestCase):
|
|
||||||
|
|
||||||
ret = ds.get_data()
|
|
||||||
self.assertTrue(ret)
|
|
||||||
- m_dhcp.assert_called_once_with()
|
|
||||||
+ m_dhcp.assert_called_once_with('eth9')
|
|
||||||
m_net.assert_called_once_with(
|
|
||||||
broadcast='192.168.2.255', interface='eth9', ip='192.168.2.9',
|
|
||||||
prefix_or_mask='255.255.255.0', router='192.168.2.1')
|
|
||||||
@@ -389,6 +462,57 @@ class TestConvertEc2MetadataNetworkConfig(test_helpers.CiTestCase):
|
|
||||||
ec2.convert_ec2_metadata_network_config(
|
|
||||||
network_metadata_ipv6, macs_to_nics))
|
|
||||||
|
|
||||||
+ def test_convert_ec2_metadata_network_config_handles_local_dhcp4(self):
|
|
||||||
+ """Config dhcp4 when there are no public addresses in public-ipv4s."""
|
|
||||||
+ macs_to_nics = {self.mac1: 'eth9'}
|
|
||||||
+ network_metadata_ipv6 = copy.deepcopy(self.network_metadata)
|
|
||||||
+ nic1_metadata = (
|
|
||||||
+ network_metadata_ipv6['interfaces']['macs'][self.mac1])
|
|
||||||
+ nic1_metadata['local-ipv4s'] = '172.3.3.15'
|
|
||||||
+ nic1_metadata.pop('public-ipv4s')
|
|
||||||
+ expected = {'version': 1, 'config': [
|
|
||||||
+ {'mac_address': self.mac1, 'type': 'physical',
|
|
||||||
+ 'name': 'eth9', 'subnets': [{'type': 'dhcp4'}]}]}
|
|
||||||
+ self.assertEqual(
|
|
||||||
+ expected,
|
|
||||||
+ ec2.convert_ec2_metadata_network_config(
|
|
||||||
+ network_metadata_ipv6, macs_to_nics))
|
|
||||||
+
|
|
||||||
+ def test_convert_ec2_metadata_network_config_handles_absent_dhcp4(self):
|
|
||||||
+ """Config dhcp4 on fallback_nic when there are no ipv4 addresses."""
|
|
||||||
+ macs_to_nics = {self.mac1: 'eth9'}
|
|
||||||
+ network_metadata_ipv6 = copy.deepcopy(self.network_metadata)
|
|
||||||
+ nic1_metadata = (
|
|
||||||
+ network_metadata_ipv6['interfaces']['macs'][self.mac1])
|
|
||||||
+ nic1_metadata['public-ipv4s'] = ''
|
|
||||||
+
|
|
||||||
+ # When no ipv4 or ipv6 content but fallback_nic set, set dhcp4 config.
|
|
||||||
+ expected = {'version': 1, 'config': [
|
|
||||||
+ {'mac_address': self.mac1, 'type': 'physical',
|
|
||||||
+ 'name': 'eth9', 'subnets': [{'type': 'dhcp4'}]}]}
|
|
||||||
+ self.assertEqual(
|
|
||||||
+ expected,
|
|
||||||
+ ec2.convert_ec2_metadata_network_config(
|
|
||||||
+ network_metadata_ipv6, macs_to_nics, fallback_nic='eth9'))
|
|
||||||
+
|
|
||||||
+ def test_convert_ec2_metadata_network_config_handles_local_v4_and_v6(self):
|
|
||||||
+ """When dhcp6 is public and dhcp4 is set to local enable both."""
|
|
||||||
+ macs_to_nics = {self.mac1: 'eth9'}
|
|
||||||
+ network_metadata_both = copy.deepcopy(self.network_metadata)
|
|
||||||
+ nic1_metadata = (
|
|
||||||
+ network_metadata_both['interfaces']['macs'][self.mac1])
|
|
||||||
+ nic1_metadata['ipv6s'] = '2620:0:1009:fd00:e442:c88d:c04d:dc85/64'
|
|
||||||
+ nic1_metadata.pop('public-ipv4s')
|
|
||||||
+ nic1_metadata['local-ipv4s'] = '10.0.0.42' # Local ipv4 only on vpc
|
|
||||||
+ expected = {'version': 1, 'config': [
|
|
||||||
+ {'mac_address': self.mac1, 'type': 'physical',
|
|
||||||
+ 'name': 'eth9',
|
|
||||||
+ 'subnets': [{'type': 'dhcp4'}, {'type': 'dhcp6'}]}]}
|
|
||||||
+ self.assertEqual(
|
|
||||||
+ expected,
|
|
||||||
+ ec2.convert_ec2_metadata_network_config(
|
|
||||||
+ network_metadata_both, macs_to_nics))
|
|
||||||
+
|
|
||||||
def test_convert_ec2_metadata_network_config_handles_dhcp4_and_dhcp6(self):
|
|
||||||
"""Config both dhcp4 and dhcp6 when both vpc-ipv6 and ipv4 exists."""
|
|
||||||
macs_to_nics = {self.mac1: 'eth9'}
|
|
||||||
--
|
|
||||||
2.14.3
|
|
||||||
|
|
@ -1,291 +0,0 @@
|
|||||||
Index: cloud-init-17.1/cloudinit/net/sysconfig.py
|
|
||||||
===================================================================
|
|
||||||
--- cloud-init-17.1.orig/cloudinit/net/sysconfig.py
|
|
||||||
+++ cloud-init-17.1/cloudinit/net/sysconfig.py
|
|
||||||
@@ -230,7 +230,6 @@ class Renderer(renderer.Renderer):
|
|
||||||
iface_defaults = tuple([
|
|
||||||
('ONBOOT', True),
|
|
||||||
('USERCTL', False),
|
|
||||||
- ('NM_CONTROLLED', False),
|
|
||||||
('BOOTPROTO', 'none'),
|
|
||||||
])
|
|
||||||
|
|
||||||
Index: cloud-init-17.1/tests/unittests/test_net.py
|
|
||||||
===================================================================
|
|
||||||
--- cloud-init-17.1.orig/tests/unittests/test_net.py
|
|
||||||
+++ cloud-init-17.1/tests/unittests/test_net.py
|
|
||||||
@@ -146,7 +146,6 @@ GATEWAY=172.19.3.254
|
|
||||||
HWADDR=fa:16:3e:ed:9a:59
|
|
||||||
IPADDR=172.19.1.34
|
|
||||||
NETMASK=255.255.252.0
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -214,7 +213,6 @@ IPADDR=172.19.1.34
|
|
||||||
IPADDR1=10.0.0.10
|
|
||||||
NETMASK=255.255.252.0
|
|
||||||
NETMASK1=255.255.255.0
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -304,7 +302,6 @@ IPV6ADDR_SECONDARIES="2001:DB9::10/64 20
|
|
||||||
IPV6INIT=yes
|
|
||||||
IPV6_DEFAULTGW=2001:DB8::1
|
|
||||||
NETMASK=255.255.252.0
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -428,7 +425,6 @@ NETWORK_CONFIGS = {
|
|
||||||
BOOTPROTO=none
|
|
||||||
DEVICE=eth1
|
|
||||||
HWADDR=cf:d6:af:48:e8:80
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no"""),
|
|
||||||
@@ -440,7 +436,6 @@ NETWORK_CONFIGS = {
|
|
||||||
HWADDR=c0:d6:9f:2c:e8:80
|
|
||||||
IPADDR=192.168.21.3
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no"""),
|
|
||||||
@@ -552,7 +547,6 @@ NETWORK_CONFIGS = {
|
|
||||||
IPV6ADDR=2001:1::1/64
|
|
||||||
IPV6INIT=yes
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -794,14 +788,12 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
DHCPV6C=yes
|
|
||||||
IPV6INIT=yes
|
|
||||||
MACADDR=aa:bb:cc:dd:ee:ff
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Bond
|
|
||||||
USERCTL=no"""),
|
|
||||||
'ifcfg-bond0.200': textwrap.dedent("""\
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
DEVICE=bond0.200
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
PHYSDEV=bond0
|
|
||||||
TYPE=Ethernet
|
|
||||||
@@ -817,7 +809,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
IPV6INIT=yes
|
|
||||||
IPV6_DEFAULTGW=2001:4800:78ff:1b::1
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
PRIO=22
|
|
||||||
STP=off
|
|
||||||
@@ -827,7 +818,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
BOOTPROTO=none
|
|
||||||
DEVICE=eth0
|
|
||||||
HWADDR=c0:d6:9f:2c:e8:80
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no"""),
|
|
||||||
@@ -841,7 +831,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
MTU=1500
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
NETMASK1=255.255.255.0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
PHYSDEV=eth0
|
|
||||||
TYPE=Ethernet
|
|
||||||
@@ -852,7 +841,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
DEVICE=eth1
|
|
||||||
HWADDR=aa:d6:9f:2c:e8:80
|
|
||||||
MASTER=bond0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
SLAVE=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
@@ -862,7 +850,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
DEVICE=eth2
|
|
||||||
HWADDR=c0:bb:9f:2c:e8:80
|
|
||||||
MASTER=bond0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
SLAVE=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
@@ -872,7 +859,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
BRIDGE=br0
|
|
||||||
DEVICE=eth3
|
|
||||||
HWADDR=66:bb:9f:2c:e8:80
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no"""),
|
|
||||||
@@ -881,7 +867,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
BRIDGE=br0
|
|
||||||
DEVICE=eth4
|
|
||||||
HWADDR=98:bb:9f:2c:e8:80
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no"""),
|
|
||||||
@@ -889,7 +874,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
DEVICE=eth5
|
|
||||||
HWADDR=98:bb:9f:2c:e8:8a
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=no
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no""")
|
|
||||||
@@ -1171,7 +1155,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
IPV6INIT=yes
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
NETMASK1=255.255.255.0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Bond
|
|
||||||
USERCTL=no
|
|
||||||
@@ -1181,7 +1164,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
DEVICE=bond0s0
|
|
||||||
HWADDR=aa:bb:cc:dd:e8:00
|
|
||||||
MASTER=bond0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
SLAVE=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
@@ -1199,7 +1181,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
DEVICE=bond0s1
|
|
||||||
HWADDR=aa:bb:cc:dd:e8:01
|
|
||||||
MASTER=bond0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
SLAVE=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
@@ -1236,7 +1217,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
BOOTPROTO=none
|
|
||||||
DEVICE=en0
|
|
||||||
HWADDR=aa:bb:cc:dd:e8:00
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no"""),
|
|
||||||
@@ -1252,7 +1232,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
IPV6_DEFAULTGW=2001:1::1
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
NETMASK1=255.255.255.0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
PHYSDEV=en0
|
|
||||||
TYPE=Ethernet
|
|
||||||
@@ -1293,7 +1272,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
DEVICE=br0
|
|
||||||
IPADDR=192.168.2.2
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
PRIO=22
|
|
||||||
STP=off
|
|
||||||
@@ -1307,7 +1285,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
HWADDR=52:54:00:12:34:00
|
|
||||||
IPV6ADDR=2001:1::100/96
|
|
||||||
IPV6INIT=yes
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -1319,7 +1296,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
HWADDR=52:54:00:12:34:01
|
|
||||||
IPV6ADDR=2001:1::101/96
|
|
||||||
IPV6INIT=yes
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -1393,7 +1369,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
HWADDR=52:54:00:12:34:00
|
|
||||||
IPADDR=192.168.1.2
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=no
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -1403,7 +1378,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
DEVICE=eth1
|
|
||||||
HWADDR=52:54:00:12:34:aa
|
|
||||||
MTU=1480
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -1412,7 +1386,6 @@ pre-down route del -net 10.0.0.0 netmask
|
|
||||||
BOOTPROTO=none
|
|
||||||
DEVICE=eth2
|
|
||||||
HWADDR=52:54:00:12:34:ff
|
|
||||||
- NM_CONTROLLED=no
|
|
||||||
ONBOOT=no
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -1685,7 +1658,6 @@ class TestSysConfigRendering(CiTestCase)
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
DEVICE=eth1000
|
|
||||||
HWADDR=07-1C-C6-75-A4-BE
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -1805,7 +1777,6 @@ GATEWAY=10.0.2.2
|
|
||||||
HWADDR=52:54:00:12:34:00
|
|
||||||
IPADDR=10.0.2.15
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -1826,7 +1797,6 @@ USERCTL=no
|
|
||||||
#
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
DEVICE=eth0
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
Index: cloud-init-17.1/tests/unittests/test_distros/test_netconfig.py
|
|
||||||
===================================================================
|
|
||||||
--- cloud-init-17.1.orig/tests/unittests/test_distros/test_netconfig.py
|
|
||||||
+++ cloud-init-17.1/tests/unittests/test_distros/test_netconfig.py
|
|
||||||
@@ -481,7 +481,6 @@ DEVICE=eth0
|
|
||||||
GATEWAY=192.168.1.254
|
|
||||||
IPADDR=192.168.1.5
|
|
||||||
NETMASK=255.255.255.0
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -498,7 +497,6 @@ USERCTL=no
|
|
||||||
#
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
DEVICE=eth1
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -632,7 +630,6 @@ DEVICE=eth0
|
|
||||||
IPV6ADDR=2607:f0d0:1002:0011::2/64
|
|
||||||
IPV6INIT=yes
|
|
||||||
IPV6_DEFAULTGW=2607:f0d0:1002:0011::1
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
||||||
@@ -647,7 +644,6 @@ USERCTL=no
|
|
||||||
#
|
|
||||||
BOOTPROTO=dhcp
|
|
||||||
DEVICE=eth1
|
|
||||||
-NM_CONTROLLED=no
|
|
||||||
ONBOOT=yes
|
|
||||||
TYPE=Ethernet
|
|
||||||
USERCTL=no
|
|
@ -1,200 +0,0 @@
|
|||||||
diff -rup cloud-init-17.1.orig/cloudinit/net/sysconfig.py cloud-init-17.1/cloudinit/net/sysconfig.py
|
|
||||||
--- cloud-init-17.1.orig/cloudinit/net/sysconfig.py 2018-03-26 19:22:35.693111559 +0200
|
|
||||||
+++ cloud-init-17.1/cloudinit/net/sysconfig.py 2018-03-26 23:47:41.424803588 +0200
|
|
||||||
@@ -586,7 +586,17 @@ class Renderer(renderer.Renderer):
|
|
||||||
|
|
||||||
# always write /etc/sysconfig/network configuration
|
|
||||||
sysconfig_path = util.target_path(target, "etc/sysconfig/network")
|
|
||||||
- netcfg = [_make_header(), 'NETWORKING=yes']
|
|
||||||
+ # Make sure that existing lines, other than overriding ones, remain
|
|
||||||
+ netcfg = []
|
|
||||||
+ for line in util.load_file(sysconfig_path, quiet=True).split('\n'):
|
|
||||||
+ if 'cloud-init' in line:
|
|
||||||
+ break
|
|
||||||
+ if not line.startswith(('NETWORKING=',
|
|
||||||
+ 'IPV6_AUTOCONF=',
|
|
||||||
+ 'NETWORKING_IPV6=')):
|
|
||||||
+ netcfg.append(line)
|
|
||||||
+ # Now generate the cloud-init portion of sysconfig/network
|
|
||||||
+ netcfg.extend([_make_header(), 'NETWORKING=yes'])
|
|
||||||
if network_state.use_ipv6:
|
|
||||||
netcfg.append('NETWORKING_IPV6=yes')
|
|
||||||
netcfg.append('IPV6_AUTOCONF=no')
|
|
||||||
diff -rup cloud-init-17.1.orig/tests/unittests/test_distros/test_netconfig.py cloud-init-17.1/tests/unittests/test_distros/test_netconfig.py
|
|
||||||
--- cloud-init-17.1.orig/tests/unittests/test_distros/test_netconfig.py 2018-03-26 19:22:35.717111557 +0200
|
|
||||||
+++ cloud-init-17.1/tests/unittests/test_distros/test_netconfig.py 2018-03-26 22:08:25.008717651 +0200
|
|
||||||
@@ -384,6 +384,82 @@ hn0: flags=8843<UP,BROADCAST,RUNNING,SIM
|
|
||||||
buf.write(content)
|
|
||||||
write_bufs[filename] = buf
|
|
||||||
|
|
||||||
+ def replace_load_file(filename, *args, **kwargs):
|
|
||||||
+ if filename == '/etc/sysconfig/network':
|
|
||||||
+ return 'TEST=yes\nTEST2=yes'
|
|
||||||
+ else:
|
|
||||||
+ return ''
|
|
||||||
+
|
|
||||||
+ with ExitStack() as mocks:
|
|
||||||
+ mocks.enter_context(
|
|
||||||
+ mock.patch.object(util, 'write_file', replace_write))
|
|
||||||
+ mocks.enter_context(
|
|
||||||
+ mock.patch.object(util, 'load_file', replace_load_file))
|
|
||||||
+ mocks.enter_context(
|
|
||||||
+ mock.patch.object(os.path, 'isfile', return_value=False))
|
|
||||||
+
|
|
||||||
+ rh_distro.apply_network(BASE_NET_CFG, False)
|
|
||||||
+
|
|
||||||
+ self.assertEqual(len(write_bufs), 4)
|
|
||||||
+ self.assertIn('/etc/sysconfig/network-scripts/ifcfg-lo',
|
|
||||||
+ write_bufs)
|
|
||||||
+ write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-lo']
|
|
||||||
+ expected_buf = '''
|
|
||||||
+DEVICE="lo"
|
|
||||||
+ONBOOT=yes
|
|
||||||
+'''
|
|
||||||
+ self.assertCfgEquals(expected_buf, str(write_buf))
|
|
||||||
+ self.assertEqual(write_buf.mode, 0o644)
|
|
||||||
+
|
|
||||||
+ self.assertIn('/etc/sysconfig/network-scripts/ifcfg-eth0',
|
|
||||||
+ write_bufs)
|
|
||||||
+ write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-eth0']
|
|
||||||
+ expected_buf = '''
|
|
||||||
+DEVICE="eth0"
|
|
||||||
+BOOTPROTO="static"
|
|
||||||
+NETMASK="255.255.255.0"
|
|
||||||
+IPADDR="192.168.1.5"
|
|
||||||
+ONBOOT=yes
|
|
||||||
+GATEWAY="192.168.1.254"
|
|
||||||
+BROADCAST="192.168.1.0"
|
|
||||||
+'''
|
|
||||||
+ self.assertCfgEquals(expected_buf, str(write_buf))
|
|
||||||
+ self.assertEqual(write_buf.mode, 0o644)
|
|
||||||
+
|
|
||||||
+ self.assertIn('/etc/sysconfig/network-scripts/ifcfg-eth1',
|
|
||||||
+ write_bufs)
|
|
||||||
+ write_buf = write_bufs['/etc/sysconfig/network-scripts/ifcfg-eth1']
|
|
||||||
+ expected_buf = '''
|
|
||||||
+DEVICE="eth1"
|
|
||||||
+BOOTPROTO="dhcp"
|
|
||||||
+ONBOOT=yes
|
|
||||||
+'''
|
|
||||||
+ self.assertCfgEquals(expected_buf, str(write_buf))
|
|
||||||
+ self.assertEqual(write_buf.mode, 0o644)
|
|
||||||
+
|
|
||||||
+ self.assertIn('/etc/sysconfig/network', write_bufs)
|
|
||||||
+ write_buf = write_bufs['/etc/sysconfig/network']
|
|
||||||
+ expected_buf = '''
|
|
||||||
+# Created by cloud-init v. 0.7
|
|
||||||
+NETWORKING=yes
|
|
||||||
+TEST=yes
|
|
||||||
+TEST2=yes
|
|
||||||
+'''
|
|
||||||
+ self.assertCfgEquals(expected_buf, str(write_buf))
|
|
||||||
+ self.assertEqual(write_buf.mode, 0o644)
|
|
||||||
+
|
|
||||||
+ def test_simple_write_rh_no_extra(self):
|
|
||||||
+ rh_distro = self._get_distro('rhel')
|
|
||||||
+
|
|
||||||
+ write_bufs = {}
|
|
||||||
+
|
|
||||||
+ def replace_write(filename, content, mode=0o644, omode="wb"):
|
|
||||||
+ buf = WriteBuffer()
|
|
||||||
+ buf.mode = mode
|
|
||||||
+ buf.omode = omode
|
|
||||||
+ buf.write(content)
|
|
||||||
+ write_bufs[filename] = buf
|
|
||||||
+
|
|
||||||
with ExitStack() as mocks:
|
|
||||||
mocks.enter_context(
|
|
||||||
mock.patch.object(util, 'write_file', replace_write))
|
|
||||||
@@ -453,6 +529,12 @@ NETWORKING=yes
|
|
||||||
buf.write(content)
|
|
||||||
write_bufs[filename] = buf
|
|
||||||
|
|
||||||
+ def replace_load_file(filename, *args, **kwargs):
|
|
||||||
+ if filename == '/etc/sysconfig/network':
|
|
||||||
+ return 'TEST=yes\nTEST2=yes'
|
|
||||||
+ else:
|
|
||||||
+ return ''
|
|
||||||
+
|
|
||||||
with ExitStack() as mocks:
|
|
||||||
# sysconfig availability checks
|
|
||||||
mocks.enter_context(
|
|
||||||
@@ -460,7 +542,7 @@ NETWORKING=yes
|
|
||||||
mocks.enter_context(
|
|
||||||
mock.patch.object(util, 'write_file', replace_write))
|
|
||||||
mocks.enter_context(
|
|
||||||
- mock.patch.object(util, 'load_file', return_value=''))
|
|
||||||
+ mock.patch.object(util, 'load_file', replace_load_file))
|
|
||||||
mocks.enter_context(
|
|
||||||
mock.patch.object(os.path, 'isfile', return_value=True))
|
|
||||||
|
|
||||||
@@ -509,6 +591,8 @@ USERCTL=no
|
|
||||||
expected_buf = '''
|
|
||||||
# Created by cloud-init v. 0.7
|
|
||||||
NETWORKING=yes
|
|
||||||
+TEST=yes
|
|
||||||
+TEST2=yes
|
|
||||||
'''
|
|
||||||
self.assertCfgEquals(expected_buf, str(write_buf))
|
|
||||||
self.assertEqual(write_buf.mode, 0o644)
|
|
||||||
@@ -525,13 +609,20 @@ NETWORKING=yes
|
|
||||||
buf.write(content)
|
|
||||||
write_bufs[filename] = buf
|
|
||||||
|
|
||||||
+ def replace_load_file(filename, *args, **kwargs):
|
|
||||||
+ if filename == '/etc/sysconfig/network':
|
|
||||||
+ return 'TEST=yes\nTEST2=yes'
|
|
||||||
+ else:
|
|
||||||
+ return ''
|
|
||||||
+
|
|
||||||
with ExitStack() as mocks:
|
|
||||||
mocks.enter_context(
|
|
||||||
mock.patch.object(util, 'write_file', replace_write))
|
|
||||||
mocks.enter_context(
|
|
||||||
- mock.patch.object(util, 'load_file', return_value=''))
|
|
||||||
+ mock.patch.object(util, 'load_file', replace_load_file))
|
|
||||||
mocks.enter_context(
|
|
||||||
mock.patch.object(os.path, 'isfile', return_value=False))
|
|
||||||
+
|
|
||||||
rh_distro.apply_network(BASE_NET_CFG_IPV6, False)
|
|
||||||
|
|
||||||
self.assertEqual(len(write_bufs), 4)
|
|
||||||
@@ -587,6 +678,8 @@ IPV6_DEFAULTGW="2607:f0d0:1002:0011::1"
|
|
||||||
NETWORKING=yes
|
|
||||||
NETWORKING_IPV6=yes
|
|
||||||
IPV6_AUTOCONF=no
|
|
||||||
+TEST=yes
|
|
||||||
+TEST2=yes
|
|
||||||
'''
|
|
||||||
self.assertCfgEquals(expected_buf, str(write_buf))
|
|
||||||
self.assertEqual(write_buf.mode, 0o644)
|
|
||||||
@@ -604,13 +697,19 @@ IPV6_AUTOCONF=no
|
|
||||||
buf.write(content)
|
|
||||||
write_bufs[filename] = buf
|
|
||||||
|
|
||||||
+ def replace_load_file(filename, *args, **kwargs):
|
|
||||||
+ if filename == '/etc/sysconfig/network':
|
|
||||||
+ return 'TEST=yes\nTEST2=yes'
|
|
||||||
+ else:
|
|
||||||
+ return ''
|
|
||||||
+
|
|
||||||
with ExitStack() as mocks:
|
|
||||||
mocks.enter_context(
|
|
||||||
mock.patch.object(util, 'which', return_value=True))
|
|
||||||
mocks.enter_context(
|
|
||||||
mock.patch.object(util, 'write_file', replace_write))
|
|
||||||
mocks.enter_context(
|
|
||||||
- mock.patch.object(util, 'load_file', return_value=''))
|
|
||||||
+ mock.patch.object(util, 'load_file', replace_load_file))
|
|
||||||
mocks.enter_context(
|
|
||||||
mock.patch.object(os.path, 'isfile', return_value=True))
|
|
||||||
|
|
||||||
@@ -658,6 +757,8 @@ USERCTL=no
|
|
||||||
NETWORKING=yes
|
|
||||||
NETWORKING_IPV6=yes
|
|
||||||
IPV6_AUTOCONF=no
|
|
||||||
+TEST=yes
|
|
||||||
+TEST2=yes
|
|
||||||
'''
|
|
||||||
self.assertCfgEquals(expected_buf, str(write_buf))
|
|
||||||
self.assertEqual(write_buf.mode, 0o644)
|
|
32
cloud-init-19.4-disable-lxd-tests.patch
Normal file
32
cloud-init-19.4-disable-lxd-tests.patch
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
From 1a8143951839afd5b0f80e9d00af582daa429fdc Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
Date: Fri, 21 Feb 2020 10:52:26 +0100
|
||||||
|
Subject: [PATCH] Disable LXD tests
|
||||||
|
|
||||||
|
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
---
|
||||||
|
tests/cloud_tests/platforms/__init__.py | 2 --
|
||||||
|
1 file changed, 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/tests/cloud_tests/platforms/__init__.py b/tests/cloud_tests/platforms/__init__.py
|
||||||
|
index 6a410b84..2076d1c7 100644
|
||||||
|
--- a/tests/cloud_tests/platforms/__init__.py
|
||||||
|
+++ b/tests/cloud_tests/platforms/__init__.py
|
||||||
|
@@ -3,14 +3,12 @@
|
||||||
|
"""Main init."""
|
||||||
|
|
||||||
|
from .ec2 import platform as ec2
|
||||||
|
-from .lxd import platform as lxd
|
||||||
|
from .nocloudkvm import platform as nocloudkvm
|
||||||
|
from .azurecloud import platform as azurecloud
|
||||||
|
|
||||||
|
PLATFORMS = {
|
||||||
|
'ec2': ec2.EC2Platform,
|
||||||
|
'nocloud-kvm': nocloudkvm.NoCloudKVMPlatform,
|
||||||
|
- 'lxd': lxd.LXDPlatform,
|
||||||
|
'azurecloud': azurecloud.AzureCloudPlatform,
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.17.2
|
||||||
|
|
540
cloud-init-19.4-nm-controlled.patch
Normal file
540
cloud-init-19.4-nm-controlled.patch
Normal file
@ -0,0 +1,540 @@
|
|||||||
|
From 98657d64a1d40769b31fcf375ebb1ea0b373350c Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
Date: Fri, 21 Feb 2020 11:10:09 +0100
|
||||||
|
Subject: [PATCH] Do not write NM_CONTROLLED=no in generated interface config
|
||||||
|
files
|
||||||
|
|
||||||
|
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
---
|
||||||
|
cloudinit/net/sysconfig.py | 1 -
|
||||||
|
.../unittests/test_distros/test_netconfig.py | 8 ---
|
||||||
|
tests/unittests/test_net.py | 55 -------------------
|
||||||
|
3 files changed, 64 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||||
|
index 310cdf01..8bd7e887 100644
|
||||||
|
--- a/cloudinit/net/sysconfig.py
|
||||||
|
+++ b/cloudinit/net/sysconfig.py
|
||||||
|
@@ -272,7 +272,6 @@ class Renderer(renderer.Renderer):
|
||||||
|
iface_defaults = tuple([
|
||||||
|
('ONBOOT', True),
|
||||||
|
('USERCTL', False),
|
||||||
|
- ('NM_CONTROLLED', False),
|
||||||
|
('BOOTPROTO', 'none'),
|
||||||
|
('STARTMODE', 'auto'),
|
||||||
|
])
|
||||||
|
diff --git a/tests/unittests/test_distros/test_netconfig.py b/tests/unittests/test_distros/test_netconfig.py
|
||||||
|
index 67209955..1df3bfb5 100644
|
||||||
|
--- a/tests/unittests/test_distros/test_netconfig.py
|
||||||
|
+++ b/tests/unittests/test_distros/test_netconfig.py
|
||||||
|
@@ -466,7 +466,6 @@ class TestNetCfgDistroRedhat(TestNetCfgDistroBase):
|
||||||
|
GATEWAY=192.168.1.254
|
||||||
|
IPADDR=192.168.1.5
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -475,7 +474,6 @@ class TestNetCfgDistroRedhat(TestNetCfgDistroBase):
|
||||||
|
self.ifcfg_path('eth1'): dedent("""\
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=eth1
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -500,7 +498,6 @@ class TestNetCfgDistroRedhat(TestNetCfgDistroBase):
|
||||||
|
IPV6ADDR=2607:f0d0:1002:0011::2/64
|
||||||
|
IPV6INIT=yes
|
||||||
|
IPV6_DEFAULTGW=2607:f0d0:1002:0011::1
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -509,7 +506,6 @@ class TestNetCfgDistroRedhat(TestNetCfgDistroBase):
|
||||||
|
self.ifcfg_path('eth1'): dedent("""\
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=eth1
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -562,7 +558,6 @@ class TestNetCfgDistroOpensuse(TestNetCfgDistroBase):
|
||||||
|
GATEWAY=192.168.1.254
|
||||||
|
IPADDR=192.168.1.5
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -571,7 +566,6 @@ class TestNetCfgDistroOpensuse(TestNetCfgDistroBase):
|
||||||
|
self.ifcfg_path('eth1'): dedent("""\
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=eth1
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -593,7 +587,6 @@ class TestNetCfgDistroOpensuse(TestNetCfgDistroBase):
|
||||||
|
IPV6ADDR=2607:f0d0:1002:0011::2/64
|
||||||
|
IPV6INIT=yes
|
||||||
|
IPV6_DEFAULTGW=2607:f0d0:1002:0011::1
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -602,7 +595,6 @@ class TestNetCfgDistroOpensuse(TestNetCfgDistroBase):
|
||||||
|
self.ifcfg_path('eth1'): dedent("""\
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=eth1
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
|
||||||
|
index 01119e0a..40427461 100644
|
||||||
|
--- a/tests/unittests/test_net.py
|
||||||
|
+++ b/tests/unittests/test_net.py
|
||||||
|
@@ -496,7 +496,6 @@ GATEWAY=172.19.3.254
|
||||||
|
HWADDR=fa:16:3e:ed:9a:59
|
||||||
|
IPADDR=172.19.1.34
|
||||||
|
NETMASK=255.255.252.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -530,7 +529,6 @@ GATEWAY=172.19.3.254
|
||||||
|
HWADDR=fa:16:3e:ed:9a:59
|
||||||
|
IPADDR=172.19.1.34
|
||||||
|
NETMASK=255.255.252.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -600,7 +598,6 @@ IPADDR=172.19.1.34
|
||||||
|
IPADDR1=10.0.0.10
|
||||||
|
NETMASK=255.255.252.0
|
||||||
|
NETMASK1=255.255.255.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -636,7 +633,6 @@ IPADDR=172.19.1.34
|
||||||
|
IPADDR1=10.0.0.10
|
||||||
|
NETMASK=255.255.252.0
|
||||||
|
NETMASK1=255.255.255.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -731,7 +727,6 @@ IPV6ADDR_SECONDARIES="2001:DB9::10/64 2001:DB10::10/64"
|
||||||
|
IPV6INIT=yes
|
||||||
|
IPV6_DEFAULTGW=2001:DB8::1
|
||||||
|
NETMASK=255.255.252.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -772,7 +767,6 @@ IPV6ADDR_SECONDARIES="2001:DB9::10/64 2001:DB10::10/64"
|
||||||
|
IPV6INIT=yes
|
||||||
|
IPV6_DEFAULTGW=2001:DB8::1
|
||||||
|
NETMASK=255.255.252.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -889,7 +883,6 @@ NETWORK_CONFIGS = {
|
||||||
|
BOOTPROTO=none
|
||||||
|
DEVICE=eth1
|
||||||
|
HWADDR=cf:d6:af:48:e8:80
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -907,7 +900,6 @@ NETWORK_CONFIGS = {
|
||||||
|
IPADDR=192.168.21.3
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
METRIC=10000
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1022,7 +1014,6 @@ NETWORK_CONFIGS = {
|
||||||
|
IPV6ADDR=2001:1::1/64
|
||||||
|
IPV6INIT=yes
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1062,7 +1053,6 @@ NETWORK_CONFIGS = {
|
||||||
|
DHCPV6C=yes
|
||||||
|
IPV6INIT=yes
|
||||||
|
DEVICE=iface0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1111,7 +1101,6 @@ NETWORK_CONFIGS = {
|
||||||
|
IPV6INIT=yes
|
||||||
|
IPV6_FORCE_ACCEPT_RA=yes
|
||||||
|
DEVICE=iface0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1160,7 +1149,6 @@ NETWORK_CONFIGS = {
|
||||||
|
IPV6INIT=yes
|
||||||
|
IPV6_FORCE_ACCEPT_RA=no
|
||||||
|
DEVICE=iface0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1199,7 +1187,6 @@ NETWORK_CONFIGS = {
|
||||||
|
IPV6_AUTOCONF=yes
|
||||||
|
IPV6INIT=yes
|
||||||
|
DEVICE=iface0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1240,7 +1227,6 @@ NETWORK_CONFIGS = {
|
||||||
|
IPV6_AUTOCONF=yes
|
||||||
|
IPV6INIT=yes
|
||||||
|
DEVICE=iface0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1281,7 +1267,6 @@ NETWORK_CONFIGS = {
|
||||||
|
IPV6INIT=yes
|
||||||
|
IPV6_FORCE_ACCEPT_RA=yes
|
||||||
|
DEVICE=iface0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1491,7 +1476,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
DHCPV6C=yes
|
||||||
|
IPV6INIT=yes
|
||||||
|
MACADDR=aa:bb:cc:dd:ee:ff
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Bond
|
||||||
|
@@ -1500,7 +1484,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=bond0.200
|
||||||
|
DHCLIENT_SET_DEFAULT_ROUTE=no
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
PHYSDEV=bond0
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -1519,7 +1502,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
IPV6_DEFAULTGW=2001:4800:78ff:1b::1
|
||||||
|
MACADDR=bb:bb:bb:bb:bb:aa
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
PRIO=22
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -1530,7 +1512,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
BOOTPROTO=none
|
||||||
|
DEVICE=eth0
|
||||||
|
HWADDR=c0:d6:9f:2c:e8:80
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1548,7 +1529,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
MTU=1500
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
NETMASK1=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
PHYSDEV=eth0
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -1560,7 +1540,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
DEVICE=eth1
|
||||||
|
HWADDR=aa:d6:9f:2c:e8:80
|
||||||
|
MASTER=bond0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
SLAVE=yes
|
||||||
|
@@ -1571,7 +1550,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
DEVICE=eth2
|
||||||
|
HWADDR=c0:bb:9f:2c:e8:80
|
||||||
|
MASTER=bond0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
SLAVE=yes
|
||||||
|
@@ -1582,7 +1560,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
BRIDGE=br0
|
||||||
|
DEVICE=eth3
|
||||||
|
HWADDR=66:bb:9f:2c:e8:80
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1592,7 +1569,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
BRIDGE=br0
|
||||||
|
DEVICE=eth4
|
||||||
|
HWADDR=98:bb:9f:2c:e8:80
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1602,7 +1578,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
DEVICE=eth5
|
||||||
|
DHCLIENT_SET_DEFAULT_ROUTE=no
|
||||||
|
HWADDR=98:bb:9f:2c:e8:8a
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=no
|
||||||
|
STARTMODE=manual
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -1614,7 +1589,6 @@ pre-down route del -net 10.0.0.0/8 gw 11.0.0.1 metric 3 || true
|
||||||
|
IPADDR=192.168.200.7
|
||||||
|
MTU=9000
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=InfiniBand
|
||||||
|
@@ -2027,7 +2001,6 @@ iface bond0 inet6 static
|
||||||
|
MTU=9000
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
NETMASK1=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Bond
|
||||||
|
@@ -2038,7 +2011,6 @@ iface bond0 inet6 static
|
||||||
|
DEVICE=bond0s0
|
||||||
|
HWADDR=aa:bb:cc:dd:e8:00
|
||||||
|
MASTER=bond0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
SLAVE=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -2055,7 +2027,6 @@ iface bond0 inet6 static
|
||||||
|
DEVICE=bond0s1
|
||||||
|
HWADDR=aa:bb:cc:dd:e8:01
|
||||||
|
MASTER=bond0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
SLAVE=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -2088,7 +2059,6 @@ iface bond0 inet6 static
|
||||||
|
MTU=9000
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
NETMASK1=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Bond
|
||||||
|
@@ -2099,7 +2069,6 @@ iface bond0 inet6 static
|
||||||
|
DEVICE=bond0s0
|
||||||
|
HWADDR=aa:bb:cc:dd:e8:00
|
||||||
|
MASTER=bond0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
SLAVE=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -2122,7 +2091,6 @@ iface bond0 inet6 static
|
||||||
|
DEVICE=bond0s1
|
||||||
|
HWADDR=aa:bb:cc:dd:e8:01
|
||||||
|
MASTER=bond0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
SLAVE=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -2161,7 +2129,6 @@ iface bond0 inet6 static
|
||||||
|
BOOTPROTO=none
|
||||||
|
DEVICE=en0
|
||||||
|
HWADDR=aa:bb:cc:dd:e8:00
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2180,7 +2147,6 @@ iface bond0 inet6 static
|
||||||
|
MTU=2222
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
NETMASK1=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
PHYSDEV=en0
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -2222,7 +2188,6 @@ iface bond0 inet6 static
|
||||||
|
DEVICE=br0
|
||||||
|
IPADDR=192.168.2.2
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
PRIO=22
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -2238,7 +2203,6 @@ iface bond0 inet6 static
|
||||||
|
IPADDR6=2001:1::100/96
|
||||||
|
IPV6ADDR=2001:1::100/96
|
||||||
|
IPV6INIT=yes
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2252,7 +2216,6 @@ iface bond0 inet6 static
|
||||||
|
IPADDR6=2001:1::101/96
|
||||||
|
IPV6ADDR=2001:1::101/96
|
||||||
|
IPV6INIT=yes
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2327,7 +2290,6 @@ iface bond0 inet6 static
|
||||||
|
HWADDR=52:54:00:12:34:00
|
||||||
|
IPADDR=192.168.1.2
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=no
|
||||||
|
STARTMODE=manual
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2338,7 +2300,6 @@ iface bond0 inet6 static
|
||||||
|
DEVICE=eth1
|
||||||
|
HWADDR=52:54:00:12:34:aa
|
||||||
|
MTU=1480
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2348,7 +2309,6 @@ iface bond0 inet6 static
|
||||||
|
BOOTPROTO=none
|
||||||
|
DEVICE=eth2
|
||||||
|
HWADDR=52:54:00:12:34:ff
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=no
|
||||||
|
STARTMODE=manual
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2766,7 +2726,6 @@ class TestRhelSysConfigRendering(CiTestCase):
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=eth1000
|
||||||
|
HWADDR=07-1c-c6-75-a4-be
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2888,7 +2847,6 @@ GATEWAY=10.0.2.2
|
||||||
|
HWADDR=52:54:00:12:34:00
|
||||||
|
IPADDR=10.0.2.15
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2920,7 +2878,6 @@ HWADDR=fa:16:3e:25:b4:59
|
||||||
|
IPADDR=51.68.89.122
|
||||||
|
MTU=1500
|
||||||
|
NETMASK=255.255.240.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2935,7 +2892,6 @@ DEVICE=eth1
|
||||||
|
DHCLIENT_SET_DEFAULT_ROUTE=no
|
||||||
|
HWADDR=fa:16:3e:b1:ca:29
|
||||||
|
MTU=9000
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -2961,7 +2917,6 @@ USERCTL=no
|
||||||
|
#
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=eth0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -3168,7 +3123,6 @@ USERCTL=no
|
||||||
|
IPV6INIT=yes
|
||||||
|
IPV6_DEFAULTGW=2001:db8::1
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -3194,7 +3148,6 @@ USERCTL=no
|
||||||
|
'ifcfg-eno1': textwrap.dedent("""\
|
||||||
|
BOOTPROTO=none
|
||||||
|
DEVICE=eno1
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -3206,7 +3159,6 @@ USERCTL=no
|
||||||
|
IPADDR=192.6.1.9
|
||||||
|
MTU=1495
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
PHYSDEV=eno1
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -3238,7 +3190,6 @@ USERCTL=no
|
||||||
|
IPADDR=10.101.8.65
|
||||||
|
MTU=1334
|
||||||
|
NETMASK=255.255.255.192
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Bond
|
||||||
|
@@ -3249,7 +3200,6 @@ USERCTL=no
|
||||||
|
BOOTPROTO=none
|
||||||
|
DEVICE=enp0s0
|
||||||
|
MASTER=bond0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
SLAVE=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -3261,7 +3211,6 @@ USERCTL=no
|
||||||
|
BOOTPROTO=none
|
||||||
|
DEVICE=enp0s1
|
||||||
|
MASTER=bond0
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
SLAVE=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
@@ -3286,7 +3235,6 @@ USERCTL=no
|
||||||
|
DEVICE=eno1
|
||||||
|
HWADDR=07-1c-c6-75-a4-be
|
||||||
|
METRIC=100
|
||||||
|
- NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -3386,7 +3334,6 @@ class TestOpenSuseSysConfigRendering(CiTestCase):
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=eth1000
|
||||||
|
HWADDR=07-1c-c6-75-a4-be
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -3508,7 +3455,6 @@ GATEWAY=10.0.2.2
|
||||||
|
HWADDR=52:54:00:12:34:00
|
||||||
|
IPADDR=10.0.2.15
|
||||||
|
NETMASK=255.255.255.0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
@@ -3538,7 +3484,6 @@ USERCTL=no
|
||||||
|
#
|
||||||
|
BOOTPROTO=dhcp
|
||||||
|
DEVICE=eth0
|
||||||
|
-NM_CONTROLLED=no
|
||||||
|
ONBOOT=yes
|
||||||
|
STARTMODE=auto
|
||||||
|
TYPE=Ethernet
|
||||||
|
--
|
||||||
|
2.17.2
|
||||||
|
|
36
cloud-init-19.4-no-override-default-network.patch
Normal file
36
cloud-init-19.4-no-override-default-network.patch
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
From 674873573abf2b6e10b09d533a58437c35d508f8 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
Date: Fri, 21 Feb 2020 11:40:34 +0100
|
||||||
|
Subject: [PATCH] Don't override default network configuration
|
||||||
|
|
||||||
|
Signed-off-by: Eduardo Otubo <otubo@redhat.com>
|
||||||
|
---
|
||||||
|
cloudinit/net/sysconfig.py | 12 +++++++++++-
|
||||||
|
1 file changed, 11 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||||
|
index 310cdf01..87b8f743 100644
|
||||||
|
--- a/cloudinit/net/sysconfig.py
|
||||||
|
+++ b/cloudinit/net/sysconfig.py
|
||||||
|
@@ -755,7 +755,17 @@ class Renderer(renderer.Renderer):
|
||||||
|
# Distros configuring /etc/sysconfig/network as a file e.g. Centos
|
||||||
|
if sysconfig_path.endswith('network'):
|
||||||
|
util.ensure_dir(os.path.dirname(sysconfig_path))
|
||||||
|
- netcfg = [_make_header(), 'NETWORKING=yes']
|
||||||
|
+ # Make sure that existing lines, other than overriding ones, remain
|
||||||
|
+ netcfg = []
|
||||||
|
+ for line in util.load_file(sysconfig_path, quiet=True).split('\n'):
|
||||||
|
+ if 'cloud-init' in line:
|
||||||
|
+ break
|
||||||
|
+ if not line.startswith(('NETWORKING=',
|
||||||
|
+ 'IPV6_AUTOCONF=',
|
||||||
|
+ 'NETWORKING_IPV6=')):
|
||||||
|
+ netcfg.append(line)
|
||||||
|
+ # Now generate the cloud-init portion of sysconfig/network
|
||||||
|
+ netcfg.extend([_make_header(), 'NETWORKING=yes'])
|
||||||
|
if network_state.use_ipv6:
|
||||||
|
netcfg.append('NETWORKING_IPV6=yes')
|
||||||
|
netcfg.append('IPV6_AUTOCONF=no')
|
||||||
|
--
|
||||||
|
2.17.2
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: cloud-init
|
Name: cloud-init
|
||||||
Version: 17.1
|
Version: 19.4
|
||||||
Release: 15%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: Cloud instance init scripts
|
Summary: Cloud instance init scripts
|
||||||
License: ASL 2.0 or GPLv3
|
License: ASL 2.0 or GPLv3
|
||||||
URL: http://launchpad.net/cloud-init
|
URL: http://launchpad.net/cloud-init
|
||||||
@ -9,25 +9,15 @@ Source0: https://launchpad.net/cloud-init/trunk/%{version}/+download/%{na
|
|||||||
Source1: cloud-init-tmpfiles.conf
|
Source1: cloud-init-tmpfiles.conf
|
||||||
|
|
||||||
# Disable tests that require pylxd, which we don't have on Fedora
|
# Disable tests that require pylxd, which we don't have on Fedora
|
||||||
Patch1: cloud-init-17.1-disable-lxd-tests.patch
|
Patch1: cloud-init-19.4-disable-lxd-tests.patch
|
||||||
|
|
||||||
# Do not write NM_CONTROLLED=no in generated interface config files
|
# Do not write NM_CONTROLLED=no in generated interface config files
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1385172
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1385172
|
||||||
Patch2: cloud-init-17.1-nm-controlled.patch
|
Patch2: cloud-init-19.4-nm-controlled.patch
|
||||||
|
|
||||||
# Keep old properties in /etc/sysconfig/network
|
# Keep old properties in /etc/sysconfig/network
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1558641
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1558641
|
||||||
Patch3: cloud-init-17.1-no-override-default-network.patch
|
Patch3: cloud-init-19.4-no-override-default-network.patch
|
||||||
|
|
||||||
# Enable dhcp for interfaces on EC2 instances with only local addresses.
|
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1569321
|
|
||||||
Patch4: cloud-init-17.1-fix-local-ipv4-only.patch
|
|
||||||
|
|
||||||
# opennebula: exclude EPOCHREALTIME as known bash env variable with a delta.
|
|
||||||
Patch5: cloud-init-17.1-exclude_EPOCHREALTIME.patch
|
|
||||||
|
|
||||||
# platform.dist has been removed in Pyton 3.8.
|
|
||||||
Patch6: cloud-init-17.1-deprecated_platform_dist.patch
|
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
@ -167,6 +157,10 @@ nosetests-%{python3_version} tests/unittests/
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Feb 14 2020 Eduardo Otubo <otubo@redhat.com> - 19.4-1
|
||||||
|
- Updated to 19.4
|
||||||
|
- Rebasing the Fedora specific patches but removing patches that don't apply anymore
|
||||||
|
|
||||||
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 17.1-15
|
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 17.1-15
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (cloud-init-17.1.tar.gz) = 988cae4291c8d6a5bce012b78d651c602c02ad38c3790e9ed9aa7c815ae84c98767718ab9b0d346ddbc9c83cb886d455590128af750183618c0bf0f0c5a79564
|
SHA512 (cloud-init-19.4.tar.gz) = e69ea47eab41d69d64fa44102fbde59319da5f71a68f28a0f6ac65cd6866542b4fe58a71b84c903cfa9b1d2f26eb648cdf4de633b8df61e4f89c9fa4c2a2b1d3
|
||||||
|
Loading…
Reference in New Issue
Block a user