forked from pool/cloud-init
Accepting request 765394 from Cloud:Tools
- Add cloud-init-no-tempnet-oci.patch (bsc#1161132, bsc#1161133) + Do not attempt to configure an ephemeral network on OCI. We boot off iSCSI and the network is up. Just read the data. - Add patch to build properly with python 3.8: * 0001-Make-tests-work-with-Python-3.8-139.patch - Update to version 19.4 + Remove patches included upstream: - cloud-init-after-wicked.patch - cloud-init-noresolv-merge-no-dns-data.diff - cloud-init-renderer-detect.patch - cloud-init-trigger-udev.patch + Removed patches merged with cloud-init-mix-static-dhcp.patch - cloud-init-proper-ipv6-setting.patch - cloud-init-static-net.patch + Added cloud-init-mix-static-dhcp.patch (bsc#1157894) + Forward port cloud-init-sysconf-path.patch + doc: specify _ over - in cloud config modules + [Joshua Powers] (LP: #1293254) + tools: Detect python to use via env in migrate-lp-user-to-github + [Adam Dobrawy] + Partially revert "fix unlocking method on FreeBSD" (#116) + tests: mock uid when running as root (#113) + [Joshua Powers] (LP: #1856096) + cloudinit/netinfo: remove unused getgateway (#111) + docs: clear up apt config sections (#107) [Joshua Powers] (LP: #1832823) + doc: add kernel command line option to user data (#105) + [Joshua Powers] (LP: #1846524) + config/cloud.cfg.d: update README [Joshua Powers] (LP: #1855006) OBS-URL: https://build.opensuse.org/request/show/765394 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/cloud-init?expand=0&rev=66
This commit is contained in:
commit
e8539a971b
104
0001-Make-tests-work-with-Python-3.8-139.patch
Normal file
104
0001-Make-tests-work-with-Python-3.8-139.patch
Normal file
@ -0,0 +1,104 @@
|
||||
From c5a7d7979c036f6dc6823f429c6b6820f7f74241 Mon Sep 17 00:00:00 2001
|
||||
From: Conrad Hoffmann <1226676+bitfehler@users.noreply.github.com>
|
||||
Date: Wed, 8 Jan 2020 15:18:48 +0100
|
||||
Subject: [PATCH] Make tests work with Python 3.8 (#139)
|
||||
|
||||
* Make DistroChecker test work with Python 3.8
|
||||
|
||||
In Python 3.8, `platform.linux_distribution` has been removed. This was
|
||||
anticipated, and the cloud-init code uses its own
|
||||
`util.get_linux_distro` instead, which works fine w/o
|
||||
`platform.linux_distribution`. However, these tests still try to mock
|
||||
the platform function, which fails if it doesn't exist (Python 3.8).
|
||||
Instead, mock the new function here, as this is a test for code that
|
||||
depends on it rather than the function itself.
|
||||
|
||||
* Make GetLinuxDistro tests work with Python 3.8
|
||||
|
||||
In Python 3.8, `platform.dist` was removed, so allow mock to create the
|
||||
function by setting `create=True`.
|
||||
|
||||
* Make linter happy in Python 3.8
|
||||
|
||||
Suppress E1101(no-member) as this function was removed.
|
||||
---
|
||||
cloudinit/analyze/tests/test_boot.py | 8 ++++----
|
||||
cloudinit/tests/test_util.py | 6 +++---
|
||||
cloudinit/util.py | 4 ++--
|
||||
3 files changed, 9 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/cloudinit/analyze/tests/test_boot.py b/cloudinit/analyze/tests/test_boot.py
|
||||
index 706e2cc0..f4001c14 100644
|
||||
--- a/cloudinit/analyze/tests/test_boot.py
|
||||
+++ b/cloudinit/analyze/tests/test_boot.py
|
||||
@@ -12,17 +12,17 @@ class TestDistroChecker(CiTestCase):
|
||||
@mock.patch('cloudinit.util.system_info', return_value={'dist': ('', '',
|
||||
''),
|
||||
'system': ''})
|
||||
- @mock.patch('platform.linux_distribution', return_value=('', '', ''))
|
||||
+ @mock.patch('cloudinit.util.get_linux_distro', return_value=('', '', ''))
|
||||
@mock.patch('cloudinit.util.is_FreeBSD', return_value=False)
|
||||
- def test_blank_distro(self, m_sys_info, m_linux_distribution, m_free_bsd):
|
||||
+ def test_blank_distro(self, m_sys_info, m_get_linux_distro, m_free_bsd):
|
||||
self.assertEqual(err_code, dist_check_timestamp())
|
||||
|
||||
@mock.patch('cloudinit.util.system_info', return_value={'dist': ('', '',
|
||||
'')})
|
||||
- @mock.patch('platform.linux_distribution', return_value=('', '', ''))
|
||||
+ @mock.patch('cloudinit.util.get_linux_distro', return_value=('', '', ''))
|
||||
@mock.patch('cloudinit.util.is_FreeBSD', return_value=True)
|
||||
def test_freebsd_gentoo_cant_find(self, m_sys_info,
|
||||
- m_linux_distribution, m_is_FreeBSD):
|
||||
+ m_get_linux_distro, m_is_FreeBSD):
|
||||
self.assertEqual(err_code, dist_check_timestamp())
|
||||
|
||||
@mock.patch('cloudinit.util.subp', return_value=(0, 1))
|
||||
diff --git a/cloudinit/tests/test_util.py b/cloudinit/tests/test_util.py
|
||||
index 64ed82ea..be100646 100644
|
||||
--- a/cloudinit/tests/test_util.py
|
||||
+++ b/cloudinit/tests/test_util.py
|
||||
@@ -523,7 +523,7 @@ class TestGetLinuxDistro(CiTestCase):
|
||||
self.assertEqual(
|
||||
('opensuse-tumbleweed', '20180920', platform.machine()), dist)
|
||||
|
||||
- @mock.patch('platform.dist')
|
||||
+ @mock.patch('platform.dist', create=True)
|
||||
def test_get_linux_distro_no_data(self, m_platform_dist, m_path_exists):
|
||||
"""Verify we get no information if os-release does not exist"""
|
||||
m_platform_dist.return_value = ('', '', '')
|
||||
@@ -531,7 +531,7 @@ class TestGetLinuxDistro(CiTestCase):
|
||||
dist = util.get_linux_distro()
|
||||
self.assertEqual(('', '', ''), dist)
|
||||
|
||||
- @mock.patch('platform.dist')
|
||||
+ @mock.patch('platform.dist', create=True)
|
||||
def test_get_linux_distro_no_impl(self, m_platform_dist, m_path_exists):
|
||||
"""Verify we get an empty tuple when no information exists and
|
||||
Exceptions are not propagated"""
|
||||
@@ -540,7 +540,7 @@ class TestGetLinuxDistro(CiTestCase):
|
||||
dist = util.get_linux_distro()
|
||||
self.assertEqual(('', '', ''), dist)
|
||||
|
||||
- @mock.patch('platform.dist')
|
||||
+ @mock.patch('platform.dist', create=True)
|
||||
def test_get_linux_distro_plat_data(self, m_platform_dist, m_path_exists):
|
||||
"""Verify we get the correct platform information"""
|
||||
m_platform_dist.return_value = ('foo', '1.1', 'aarch64')
|
||||
diff --git a/cloudinit/util.py b/cloudinit/util.py
|
||||
index 9d9d5c72..830c8e54 100644
|
||||
--- a/cloudinit/util.py
|
||||
+++ b/cloudinit/util.py
|
||||
@@ -635,8 +635,8 @@ def get_linux_distro():
|
||||
else:
|
||||
dist = ('', '', '')
|
||||
try:
|
||||
- # Will be removed in 3.7
|
||||
- dist = platform.dist() # pylint: disable=W1505
|
||||
+ # Was removed in 3.8
|
||||
+ dist = platform.dist() # pylint: disable=W1505,E1101
|
||||
except Exception:
|
||||
pass
|
||||
finally:
|
||||
--
|
||||
2.24.1
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f5ead1b3c782c159669f8f8779c45d16a986c7405425d75f915ec55301d83a07
|
||||
size 1028832
|
3
cloud-init-19.4.tar.gz
Normal file
3
cloud-init-19.4.tar.gz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a2c1f318cbfb28c13b41bbb0de5ab9b21d7cf4b7118551366cd508380124f262
|
||||
size 1091893
|
@ -1,13 +0,0 @@
|
||||
Index: cloud-init-19.1/systemd/cloud-init.service.tmpl
|
||||
===================================================================
|
||||
--- cloud-init-19.1.orig/systemd/cloud-init.service.tmpl
|
||||
+++ cloud-init-19.1/systemd/cloud-init.service.tmpl
|
||||
@@ -14,7 +14,7 @@ After=networking.service
|
||||
After=network.service
|
||||
{% endif %}
|
||||
{% if variant in ["suse"] %}
|
||||
-Before=wicked.service
|
||||
+After=wicked.service
|
||||
# setting hostname via hostnamectl depends on dbus, which otherwise
|
||||
# would not be guaranteed at this point.
|
||||
After=dbus.service
|
1660
cloud-init-mix-static-dhcp.patch
Normal file
1660
cloud-init-mix-static-dhcp.patch
Normal file
File diff suppressed because it is too large
Load Diff
25
cloud-init-no-tempnet-oci.patch
Normal file
25
cloud-init-no-tempnet-oci.patch
Normal file
@ -0,0 +1,25 @@
|
||||
--- cloudinit/sources/DataSourceOracle.py.orig
|
||||
+++ cloudinit/sources/DataSourceOracle.py
|
||||
@@ -189,11 +189,17 @@ class DataSourceOracle(sources.DataSourc
|
||||
|
||||
# network may be configured if iscsi root. If that is the case
|
||||
# then read_initramfs_config will return non-None.
|
||||
- if _is_iscsi_root():
|
||||
- data = self.crawl_metadata()
|
||||
- else:
|
||||
- with dhcp.EphemeralDHCPv4(net.find_fallback_nic()):
|
||||
- data = self.crawl_metadata()
|
||||
+ #if _is_iscsi_root():
|
||||
+ # data = self.crawl_metadata()
|
||||
+ #else:
|
||||
+ # with dhcp.EphemeralDHCPv4(net.find_fallback_nic()):
|
||||
+ # data = self.crawl_metadata()
|
||||
+ #
|
||||
+ # The detection of the configured network for iscsi boot is
|
||||
+ # distribution dependent and of course only implemented for
|
||||
+ # Debian/Ubuntu. We know the network is up as we are booting from
|
||||
+ # iscsi. Skip the BS and just read the damn data
|
||||
+ data = self.crawl_metadata()
|
||||
|
||||
self._crawled_metadata = data
|
||||
vdata = data['2013-10-17']
|
@ -1,68 +0,0 @@
|
||||
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
|
||||
index be5dede..1708990 100644
|
||||
--- a/cloudinit/net/sysconfig.py
|
||||
+++ b/cloudinit/net/sysconfig.py
|
||||
@@ -578,6 +578,10 @@ class Renderer(renderer.Renderer):
|
||||
|
||||
@staticmethod
|
||||
def _render_dns(network_state, existing_dns_path=None):
|
||||
+ # skip writing resolv.conf if network_state doesn't include any input.
|
||||
+ if not any([len(network_state.dns_nameservers),
|
||||
+ len(network_state.dns_searchdomains)]):
|
||||
+ return None
|
||||
content = resolv_conf.ResolvConf("")
|
||||
if existing_dns_path and os.path.isfile(existing_dns_path):
|
||||
content = resolv_conf.ResolvConf(util.load_file(existing_dns_path))
|
||||
@@ -585,8 +589,6 @@ class Renderer(renderer.Renderer):
|
||||
content.add_nameserver(nameserver)
|
||||
for searchdomain in network_state.dns_searchdomains:
|
||||
content.add_search_domain(searchdomain)
|
||||
- if not str(content):
|
||||
- return None
|
||||
header = _make_header(';')
|
||||
content_str = str(content)
|
||||
if not content_str.startswith(header):
|
||||
diff --git a/tests/unittests/test_net.py b/tests/unittests/test_net.py
|
||||
index e578992..82eb18f 100644
|
||||
--- a/tests/unittests/test_net.py
|
||||
+++ b/tests/unittests/test_net.py
|
||||
@@ -2701,6 +2701,10 @@ USERCTL=no
|
||||
ns = network_state.parse_net_config_data(CONFIG_V1_EXPLICIT_LOOPBACK)
|
||||
render_dir = self.tmp_path("render")
|
||||
os.makedirs(render_dir)
|
||||
+ # write an etc/resolv.conf and expect it to not be modified
|
||||
+ resolvconf = os.path.join(render_dir, 'etc/resolv.conf')
|
||||
+ content = "# Original Content"
|
||||
+ util.write_file(resolvconf, content)
|
||||
renderer = self._get_renderer()
|
||||
renderer.render_network_state(ns, target=render_dir)
|
||||
found = dir2dict(render_dir)
|
||||
@@ -2718,6 +2722,8 @@ TYPE=Ethernet
|
||||
USERCTL=no
|
||||
"""
|
||||
self.assertEqual(expected, found[nspath + 'ifcfg-eth0'])
|
||||
+ # a dhcp only config should not modify resolv.conf
|
||||
+ self.assertEqual(content, found['/etc/resolv.conf'])
|
||||
|
||||
def test_bond_config(self):
|
||||
expected_name = 'expected_sysconfig_rhel'
|
||||
@@ -3202,6 +3208,10 @@ USERCTL=no
|
||||
ns = network_state.parse_net_config_data(CONFIG_V1_EXPLICIT_LOOPBACK)
|
||||
render_dir = self.tmp_path("render")
|
||||
os.makedirs(render_dir)
|
||||
+ # write an etc/resolv.conf and expect it to not be modified
|
||||
+ resolvconf = os.path.join(render_dir, 'etc/resolv.conf')
|
||||
+ content = "# Original Content"
|
||||
+ util.write_file(resolvconf, content)
|
||||
renderer = self._get_renderer()
|
||||
renderer.render_network_state(ns, target=render_dir)
|
||||
found = dir2dict(render_dir)
|
||||
@@ -3219,6 +3229,8 @@ TYPE=Ethernet
|
||||
USERCTL=no
|
||||
"""
|
||||
self.assertEqual(expected, found[nspath + 'ifcfg-eth0'])
|
||||
+ # a dhcp only config should not modify resolv.conf
|
||||
+ self.assertEqual(content, found['/etc/resolv.conf'])
|
||||
|
||||
def test_bond_config(self):
|
||||
expected_name = 'expected_sysconfig_opensuse'
|
@ -1,10 +0,0 @@
|
||||
--- cloudinit/net/sysconfig.py.orig
|
||||
+++ cloudinit/net/sysconfig.py
|
||||
@@ -349,6 +349,7 @@ class Renderer(renderer.Renderer):
|
||||
# TODO need to set BOOTPROTO to dhcp6 on SUSE
|
||||
iface_cfg['IPV6INIT'] = True
|
||||
iface_cfg['DHCPV6C'] = True
|
||||
+ iface_cfg['DHCLIENT6_MODE'] = 'managed'
|
||||
elif subnet_type in ['dhcp4', 'dhcp']:
|
||||
iface_cfg['BOOTPROTO'] = 'dhcp'
|
||||
elif subnet_type == 'static':
|
@ -1,20 +0,0 @@
|
||||
--- cloudinit/net/sysconfig.py.orig
|
||||
+++ cloudinit/net/sysconfig.py
|
||||
@@ -748,7 +748,7 @@ class Renderer(renderer.Renderer):
|
||||
def available(target=None):
|
||||
sysconfig = available_sysconfig(target=target)
|
||||
nm = available_nm(target=target)
|
||||
- return (util.get_linux_distro()[0] in KNOWN_DISTROS
|
||||
+ return (util.system_info()['variant'] in KNOWN_DISTROS
|
||||
and any([nm, sysconfig]))
|
||||
|
||||
|
||||
@@ -758,6 +758,8 @@ def available_sysconfig(target=None):
|
||||
for p in expected:
|
||||
if not util.which(p, search=search, target=target):
|
||||
return False
|
||||
+ else:
|
||||
+ return True
|
||||
|
||||
expected_paths = ['etc/sysconfig/network/scripts/functions.netconfig']
|
||||
for p in expected_paths:
|
@ -1,12 +0,0 @@
|
||||
--- cloudinit/net/sysconfig.py.orig
|
||||
+++ cloudinit/net/sysconfig.py
|
||||
@@ -314,7 +314,8 @@ class Renderer(renderer.Renderer):
|
||||
# ==> the following should not be set to 'static'
|
||||
# but should remain 'none'
|
||||
# if iface_cfg['BOOTPROTO'] == 'none':
|
||||
- # iface_cfg['BOOTPROTO'] = 'static'
|
||||
+ # For SUSE this is different set to "static"
|
||||
+ iface_cfg['BOOTPROTO'] = 'static'
|
||||
if subnet_is_ipv6(subnet):
|
||||
mtu_key = 'IPV6_MTU'
|
||||
iface_cfg['IPV6INIT'] = True
|
@ -1,13 +1,13 @@
|
||||
--- cloudinit/net/sysconfig.py.orig
|
||||
+++ cloudinit/net/sysconfig.py
|
||||
@@ -660,9 +660,7 @@ def available(target=None):
|
||||
@@ -891,9 +891,7 @@ def available_sysconfig(target=None):
|
||||
if not util.which(p, search=search, target=target):
|
||||
return False
|
||||
|
||||
- expected_paths = [
|
||||
- 'etc/sysconfig/network-scripts/network-functions',
|
||||
- 'etc/sysconfig/network-scripts/ifdown-eth']
|
||||
- 'etc/sysconfig/config']
|
||||
+ expected_paths = ['etc/sysconfig/network/scripts/functions.netconfig']
|
||||
for p in expected_paths:
|
||||
if not os.path.isfile(util.target_path(target, p)):
|
||||
return False
|
||||
if os.path.isfile(util.target_path(target, p)):
|
||||
return True
|
||||
|
@ -1,36 +0,0 @@
|
||||
--- cloudinit/distros/opensuse.py.orig
|
||||
+++ cloudinit/distros/opensuse.py
|
||||
@@ -38,6 +38,8 @@ class Distro(distros.Distro):
|
||||
'sysconfig': {
|
||||
'control': 'etc/sysconfig/network/config',
|
||||
'iface_templates': '%(base)s/network/ifcfg-%(name)s',
|
||||
+ 'netrules_path': (
|
||||
+ 'etc/udev/rules.d/85-persistent-net-cloud-init.rules'),
|
||||
'route_templates': {
|
||||
'ipv4': '%(base)s/network/ifroute-%(name)s',
|
||||
'ipv6': '%(base)s/network/ifroute-%(name)s',
|
||||
--- cloudinit/net/sysconfig.py.orig
|
||||
+++ cloudinit/net/sysconfig.py
|
||||
@@ -8,6 +8,7 @@ import six
|
||||
from cloudinit.distros.parsers import networkmanager_conf
|
||||
from cloudinit.distros.parsers import resolv_conf
|
||||
from cloudinit import log as logging
|
||||
+from cloudinit import net
|
||||
from cloudinit import util
|
||||
|
||||
from configobj import ConfigObj
|
||||
@@ -699,6 +700,14 @@ class Renderer(renderer.Renderer):
|
||||
if nm_conf_content:
|
||||
util.write_file(nm_conf_path, nm_conf_content, file_mode)
|
||||
if self.netrules_path:
|
||||
+ # When many interfaces are present it can happen that we get here
|
||||
+ # before they are all setup. Settle if that is the case.
|
||||
+ for iface in network_state.iter_interfaces(
|
||||
+ renderer.filter_by_physical):
|
||||
+ path = net.sys_dev_path(iface.get('name'))
|
||||
+ if not os.path.exists(path):
|
||||
+ util.udevadm_settle(path, 5)
|
||||
+ break
|
||||
netrules_content = self._render_persistent_net(network_state)
|
||||
netrules_path = util.target_path(target, self.netrules_path)
|
||||
util.write_file(netrules_path, netrules_content, file_mode)
|
@ -1,3 +1,205 @@
|
||||
-------------------------------------------------------------------
|
||||
Fri Jan 17 18:55:41 UTC 2020 - Robert Schweikert <rjschwei@suse.com>
|
||||
|
||||
- Add cloud-init-no-tempnet-oci.patch (bsc#1161132, bsc#1161133)
|
||||
+ Do not attempt to configure an ephemeral network on OCI. We
|
||||
boot off iSCSI and the network is up. Just read the data.
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Jan 14 15:14:52 UTC 2020 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
- Add patch to build properly with python 3.8:
|
||||
* 0001-Make-tests-work-with-Python-3.8-139.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Jan 9 18:56:26 UTC 2020 - Robert Schweikert <rjschwei@suse.com>
|
||||
|
||||
- Update to version 19.4
|
||||
+ Remove patches included upstream:
|
||||
- cloud-init-after-wicked.patch
|
||||
- cloud-init-noresolv-merge-no-dns-data.diff
|
||||
- cloud-init-renderer-detect.patch
|
||||
- cloud-init-trigger-udev.patch
|
||||
+ Removed patches merged with cloud-init-mix-static-dhcp.patch
|
||||
- cloud-init-proper-ipv6-setting.patch
|
||||
- cloud-init-static-net.patch
|
||||
+ Added cloud-init-mix-static-dhcp.patch (bsc#1157894)
|
||||
+ Forward port cloud-init-sysconf-path.patch
|
||||
+ doc: specify _ over - in cloud config modules
|
||||
+ [Joshua Powers] (LP: #1293254)
|
||||
+ tools: Detect python to use via env in migrate-lp-user-to-github
|
||||
+ [Adam Dobrawy]
|
||||
+ Partially revert "fix unlocking method on FreeBSD" (#116)
|
||||
+ tests: mock uid when running as root (#113)
|
||||
+ [Joshua Powers] (LP: #1856096)
|
||||
+ cloudinit/netinfo: remove unused getgateway (#111)
|
||||
+ docs: clear up apt config sections (#107) [Joshua Powers] (LP: #1832823)
|
||||
+ doc: add kernel command line option to user data (#105)
|
||||
+ [Joshua Powers] (LP: #1846524)
|
||||
+ config/cloud.cfg.d: update README [Joshua Powers] (LP: #1855006)
|
||||
+ azure: avoid re-running cloud-init when instance-id is byte-swapped
|
||||
+ (#84) [AOhassan]
|
||||
+ fix unlocking method on FreeBSD [Igor Galić] (LP: #1854594)
|
||||
+ debian: add reference to the manpages [Joshua Powers]
|
||||
+ ds_identify: if /sys is not available use dmidecode (#42)
|
||||
+ [Igor Galić] (LP: #1852442)
|
||||
+ docs: add cloud-id manpage [Joshua Powers]
|
||||
+ docs: add cloud-init-per manpage [Joshua Powers]
|
||||
+ docs: add cloud-init manpage [Joshua Powers]
|
||||
+ docs: add additional details to per-instance/once [Joshua Powers]
|
||||
+ Update doc-requirements.txt [Joshua Powers]
|
||||
+ doc-requirements: add missing dep [Joshua Powers]
|
||||
+ dhcp: Support RedHat dhcp rfc3442 lease format for option 121 (#76)
|
||||
+ [Eric Lafontaine] (LP: #1850642)
|
||||
+ network_state: handle empty v1 config (#45) (LP: #1852496)
|
||||
+ docs: Add document on how to report bugs [Joshua Powers]
|
||||
+ Add an Amazon distro in the redhat OS family [Frederick Lefebvre]
|
||||
+ removed a couple of "the"s [gaughen]
|
||||
+ docs: fix line length and remove highlighting [Joshua Powers]
|
||||
+ docs: Add security.md to readthedocs [Joshua Powers]
|
||||
+ Multiple file fix for AuthorizedKeysFile config (#60) [Eduardo Otubo]
|
||||
+ Revert "travis: only run CI on pull requests"
|
||||
+ doc: update links on README.md [Joshua Powers]
|
||||
+ doc: Updates to wording of README.md [Joshua Powers]
|
||||
+ Add security.md [Joshua Powers]
|
||||
+ setup.py: Amazon Linux sets libexec to /usr/libexec (#52)
|
||||
+ [Frederick Lefebvre]
|
||||
+ Fix linting failure in test_url_helper (#83) [Eric Lafontaine]
|
||||
+ url_helper: read_file_or_url should pass headers param into readurl
|
||||
+ (#66) (LP: #1854084)
|
||||
+ dmidecode: log result *after* stripping n [Igor Galić]
|
||||
+ cloud_tests: add azure platform support to integration tests
|
||||
+ [ahosmanmsft]
|
||||
+ set_passwords: support for FreeBSD (#46) [Igor Galić]
|
||||
+ tools: migrate-lp-user-to-github removes repo_dir if created (#35)
|
||||
+ Correct jumbled documentation for cc_set_hostname module (#64)
|
||||
+ [do3meli] (LP: #1853543)
|
||||
+ FreeBSD: fix for get_linux_distro() and lru_cache (#59)
|
||||
+ [Igor Galić] (LP: #1815030)
|
||||
+ ec2: Add support for AWS IMDS v2 (session-oriented) (#55)
|
||||
+ tests: Fix cloudsigma tests when no dmidecode data is present. (#57)
|
||||
+ [Scott Moser]
|
||||
+ net: IPv6, accept_ra, slaac, stateless (#51)
|
||||
+ [Harald] (LP: #1806014, #1808647)
|
||||
+ docs: Update the configdrive datasource links (#44)
|
||||
+ [Joshua Powers] (LP: #1852461)
|
||||
+ distro: correctly set usr_lib_exec path for FreeBSD distro (#40)
|
||||
+ [Igor Galić] (LP: #1852491)
|
||||
+ azure: support secondary ipv6 addresses (#33)
|
||||
+ Fix metadata check when local-hostname is null (#32)
|
||||
+ [Mark Goddard] (LP: #1852100)
|
||||
+ switch default FreeBSD salt minion pkg from py27 to py36
|
||||
+ [Dominic Schlegel]
|
||||
+ travis: only run CI on pull requests
|
||||
+ add data-server dns entry as new metadata server detection [Joshua Hügli]
|
||||
+ pycodestyle: remove unused local variable
|
||||
+ reporting: Using a uuid to enforce uniqueness on the KVP keys. [momousta]
|
||||
+ docs: touchups in rtd intro and README.md
|
||||
+ doc: update launchpad git refs to github
|
||||
+ github: drop pull-request template to prepare for migration
|
||||
+ tools: add migrate-lp-user-to-github script to link LP to github
|
||||
+ github: new basic project readme
|
||||
|
||||
- From 19.3
|
||||
+ azure: support matching dhcp route-metrics for dual-stack ipv4 ipv6
|
||||
+ (LP: #1850308)
|
||||
+ configdrive: fix subplatform config-drive for /config-drive source
|
||||
+ [David Kindred] (LP: #1849731)
|
||||
+ DataSourceSmartOS: reconfigure network on each boot
|
||||
+ [Mike Gerdts] (LP: #1765801)
|
||||
+ Add config for ssh-key import and consuming user-data [Pavel Zakharov]
|
||||
+ net: fix subnet_is_ipv6() for stateless|stateful
|
||||
+ [Harald Jensås] (LP: #1848690)
|
||||
+ OVF: disable custom script execution by default [Xiaofeng Wang]
|
||||
+ cc_puppet: Implement csr_attributes.yaml support [Matthias Baur]
|
||||
+ cloud-init.service: on centos/fedora/redhat wait on NetworkManager.service
|
||||
+ (LP: #1843334)
|
||||
+ azure: Do not lock user on instance id change [Sam Eiderman] (LP: #1849677)
|
||||
+ net/netplan: use ipv6-mtu key for specifying ipv6 mtu values
|
||||
+ Fix usages of yaml, and move yaml_dump to safeyaml.dumps. (LP: #1849640)
|
||||
+ exoscale: Increase url_max_wait to 120s. [Chris Glass]
|
||||
+ net/sysconfig: fix available check on SUSE distros
|
||||
+ [Robert Schweikert] (LP: #1849378)
|
||||
+ docs: Fix incorrect Azure IMDS IP address [Joshua Powers] (LP: #1849508)
|
||||
+ introduce .travis.yml
|
||||
+ net: enable infiniband support in eni and sysconfig renderers
|
||||
+ [Darren Birkett] (LP: #1847114)
|
||||
+ guestcust_util: handle special characters in config file [Xiaofeng Wang]
|
||||
+ fix some more typos in comments [Dominic Schlegel]
|
||||
+ replace any deprecated log.warn with log.warning
|
||||
+ [Dominic Schlegel] (LP: #1508442)
|
||||
+ net: handle openstack dhcpv6-stateless configuration
|
||||
+ [Harald Jensås] (LP: #1847517)
|
||||
+ Add .venv/ to .gitignore [Dominic Schlegel]
|
||||
+ Small typo fixes in code comments. [Dominic Schlegel]
|
||||
+ cloud_test/lxd: Retry container delete a few times
|
||||
+ Add Support for e24cloud to Ec2 datasource. (LP: #1696476)
|
||||
+ Add RbxCloud datasource [Adam Dobrawy]
|
||||
+ get_interfaces: don't exclude bridge and bond members (LP: #1846535)
|
||||
+ Add support for Arch Linux in render-cloudcfg [Conrad Hoffmann]
|
||||
+ util: json.dumps on python 2.7 will handle UnicodeDecodeError on binary
|
||||
+ (LP: #1801364)
|
||||
+ debian/ubuntu: add missing word to netplan/ENI header (LP: #1845669)
|
||||
+ ovf: do not generate random instance-id for IMC customization path
|
||||
+ sysconfig: only write resolv.conf if network_state has DNS values
|
||||
+ (LP: #1843634)
|
||||
+ sysconfig: use distro variant to check if available (LP: #1843584)
|
||||
+ systemd/cloud-init.service.tmpl: start after wicked.service
|
||||
+ [Robert Schweikert]
|
||||
+ docs: fix zstack documentation lints
|
||||
+ analyze/show: remove trailing space in output
|
||||
+ Add missing space in warning: "not avalid seed" [Brian Candler]
|
||||
+ pylintrc: add 'enter_context' to generated-members list
|
||||
+ Add datasource for ZStack platform. [Shixin Ruan] (LP: #1841181)
|
||||
+ docs: organize TOC and update summary of project [Joshua Powers]
|
||||
+ tools: make clean now cleans the dev directory, not the system
|
||||
+ docs: create cli specific page [Joshua Powers]
|
||||
+ docs: added output examples to analyze.rst [Joshua Powers]
|
||||
+ docs: doc8 fixes for instancedata page [Joshua Powers]
|
||||
+ docs: clean up formatting, organize boot page [Joshua Powers]
|
||||
+ net: add is_master check for filtering device list (LP: #1844191)
|
||||
+ docs: more complete list of availability [Joshua Powers]
|
||||
+ docs: start FAQ page [Joshua Powers]
|
||||
+ docs: cleanup output & order of datasource page [Joshua Powers]
|
||||
+ Brightbox: restrict detection to require full domain match .brightbox.com
|
||||
+ VMWware: add option into VMTools config to enable/disable custom script.
|
||||
+ [Xiaofeng Wang]
|
||||
+ net,Oracle: Add support for netfailover detection
|
||||
+ atomic_helper: add DEBUG logging to write_file (LP: #1843276)
|
||||
+ doc: document doc, create makefile and tox target [Joshua Powers]
|
||||
+ .gitignore: ignore files produced by package builds
|
||||
+ docs: fix whitespace, spelling, and line length [Joshua Powers]
|
||||
+ docs: remove unnecessary file in doc directory [Joshua Powers]
|
||||
+ Oracle: Render secondary vnic IP and MTU values only
|
||||
+ exoscale: fix sysconfig cloud_config_modules overrides (LP: #1841454)
|
||||
+ net/cmdline: refactor to allow multiple initramfs network config sources
|
||||
+ ubuntu-drivers: call db_x_loadtemplatefile to accept NVIDIA EULA
|
||||
+ (LP: #1840080)
|
||||
+ Add missing #cloud-config comment on first example in documentation.
|
||||
+ [Florian Müller]
|
||||
+ ubuntu-drivers: emit latelink=true debconf to accept nvidia eula
|
||||
+ (LP: #1840080)
|
||||
+ DataSourceOracle: prefer DS network config over initramfs
|
||||
+ format.rst: add text/jinja2 to list of content types (+ cleanups)
|
||||
+ Add GitHub pull request template to point people at hacking doc
|
||||
+ cloudinit/distros/parsers/sys_conf: add docstring to SysConf
|
||||
+ pyflakes: remove unused variable [Joshua Powers]
|
||||
+ Azure: Record boot timestamps, system information, and diagnostic events
|
||||
+ [Anh Vo]
|
||||
+ DataSourceOracle: configure secondary NICs on Virtual Machines
|
||||
+ distros: fix confusing variable names
|
||||
+ azure/net: generate_fallback_nic emits network v2 config instead of v1
|
||||
+ Add support for publishing host keys to GCE guest attributes [Rick Wright]
|
||||
+ New data source for the Exoscale.com cloud platform [Chris Glass]
|
||||
+ doc: remove intersphinx extension
|
||||
+ cc_set_passwords: rewrite documentation (LP: #1838794)
|
||||
+ net/cmdline: split interfaces_by_mac and init network config determination
|
||||
+ stages: allow data sources to override network config source order
|
||||
+ cloud_tests: updates and fixes
|
||||
+ Fix bug rendering MTU on bond or vlan when input was netplan. (LP: #1836949)
|
||||
+ net: update net sequence, include wait on netdevs, opensuse netrules path
|
||||
(LP: #1817368)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 25 19:34:52 UTC 2019 - Robert Schweikert <rjschwei@suse.com>
|
||||
|
||||
|
@ -18,40 +18,33 @@
|
||||
%global configver 0.7
|
||||
|
||||
Name: cloud-init
|
||||
Version: 19.2
|
||||
Version: 19.4
|
||||
Release: 0
|
||||
License: GPL-3.0 and AGPL-3.0
|
||||
License: GPL-3.0
|
||||
Summary: Cloud node initialization tool
|
||||
Url: http://launchpad.net/cloud-init/
|
||||
Group: System/Management
|
||||
Source0: %{name}-%{version}.tar.gz
|
||||
Source1: rsyslog-cloud-init.cfg
|
||||
|
||||
Patch0: 0001-Make-tests-work-with-Python-3.8-139.patch
|
||||
# FIXME
|
||||
# python2 disables SIGPIPE, causing broken pipe errors in shell scripts (bsc#903449)
|
||||
Patch20: cloud-init-python2-sigpipe.patch
|
||||
Patch21: cloud-init-template-py2.patch
|
||||
Patch29: datasourceLocalDisk.patch
|
||||
Patch34: cloud-init-tests-set-exec.patch
|
||||
# FIXME no proposed solution
|
||||
Patch38: cloud-init-sysconf-path.patch
|
||||
# FIXME (lp# 1800854)
|
||||
Patch41: cloud-init-static-net.patch
|
||||
# FIXME (lp#1801364)
|
||||
Patch42: cloud-init-ostack-metadat-dencode.patch
|
||||
# FIXME (lp#1812117)
|
||||
Patch43: cloud-init-write-routes.patch
|
||||
# FIXME (lp#1817368) expected in 19.3
|
||||
Patch47: cloud-init-trigger-udev.patch
|
||||
# FIXME (lp#1843634) expected in 19.3
|
||||
Patch50: cloud-init-noresolv-merge-no-dns-data.diff
|
||||
# FIXME expected in 19.3
|
||||
Patch51: cloud-init-after-wicked.patch
|
||||
# FIXME (lp#1849296)
|
||||
Patch52: cloud-init-break-resolv-symlink.patch
|
||||
# FIXME (lp#1849378) expected in 19.3
|
||||
Patch53: cloud-init-renderer-detect.patch
|
||||
Patch54: cloud-init-proper-ipv6-setting.patch
|
||||
# FIXME (lp#1858808)
|
||||
Patch55: cloud-init-mix-static-dhcp.patch
|
||||
# FIXME no proposed solution
|
||||
Patch56: cloud-init-sysconf-path.patch
|
||||
# FIXME (lp#1860164)
|
||||
Patch57: cloud-init-no-tempnet-oci.patch
|
||||
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: filesystem
|
||||
@ -184,22 +177,19 @@ Documentation and examples for cloud-init tools
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch0 -p1
|
||||
%if 0%{?suse_version} < 1315
|
||||
%patch20
|
||||
%patch21
|
||||
%endif
|
||||
%patch29 -p0
|
||||
%patch34
|
||||
%patch38
|
||||
%patch41
|
||||
%patch42
|
||||
%patch43
|
||||
%patch47
|
||||
%patch50 -p1
|
||||
%patch51 -p1
|
||||
%patch52
|
||||
%patch53
|
||||
%patch54
|
||||
%patch55 -p0
|
||||
%patch56
|
||||
%patch57
|
||||
|
||||
%build
|
||||
%if 0%{?suse_version} && 0%{?suse_version} <= 1315
|
||||
@ -236,9 +226,14 @@ done
|
||||
mkdir -p %{buildroot}%{_localstatedir}/lib/cloud
|
||||
# move documentation
|
||||
mkdir -p %{buildroot}%{_defaultdocdir}
|
||||
mv %{buildroot}%{_datadir}/doc/%{name} %{buildroot}%{docdir}
|
||||
mv %{buildroot}%{_datadir}/doc/%{name} %{buildroot}%{_defaultdocdir}
|
||||
# man pages
|
||||
mkdir -p %{buildroot}%{_mandir}/man1
|
||||
mv doc/man/* %{buildroot}%{_mandir}/man1
|
||||
# copy the LICENSE
|
||||
cp LICENSE %{buildroot}%{docdir}
|
||||
mkdir -p %{buildroot}%{_defaultlicensedir}/%{name}
|
||||
cp LICENSE %{buildroot}%{_defaultlicensedir}/%{name}
|
||||
cp LICENSE-GPLv3 %{buildroot}%{_defaultlicensedir}/%{name}
|
||||
# Set the distribution indicator
|
||||
%if 0%{?suse_version}
|
||||
%if 0%{?is_opensuse}
|
||||
@ -287,8 +282,7 @@ popd
|
||||
|
||||
%files
|
||||
%defattr(-,root,root)
|
||||
# do not mark as doc or we get conflicts with the doc package
|
||||
%{docdir}/LICENSE
|
||||
%license LICENSE LICENSE-GPLv3
|
||||
%{_bindir}/cloud-id
|
||||
%{_bindir}/cloud-init
|
||||
%{_bindir}/cloud-init-per
|
||||
@ -297,6 +291,7 @@ popd
|
||||
%config(noreplace) %{_sysconfdir}/cloud/templates
|
||||
%{_sysconfdir}/dhcp/dhclient-exit-hooks.d/hook-dhclient
|
||||
%{_sysconfdir}/NetworkManager/dispatcher.d/hook-network-manager
|
||||
%{_mandir}/man*/*
|
||||
%if 0%{?suse_version} && 0%{?suse_version} < 1500
|
||||
%dir %{_datadir}/bash-completion
|
||||
%dir %{_datadir}/bash-completion/completions
|
||||
@ -352,9 +347,7 @@ popd
|
||||
%files doc
|
||||
%defattr(-,root,root)
|
||||
%{docdir}/examples/*
|
||||
%{docdir}/README
|
||||
%{docdir}/*.txt
|
||||
#%{docdir}/*.rst
|
||||
%dir %{docdir}/examples
|
||||
|
||||
#%files test
|
||||
|
Loading…
Reference in New Issue
Block a user