Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package cloud-init for openSUSE:Factory checked in at 2021-04-18 21:44:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/cloud-init (Old) and /work/SRC/openSUSE:Factory/.cloud-init.new.12324 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "cloud-init" Sun Apr 18 21:44:15 2021 rev:79 rq:885452 version:20.2 Changes: -------- --- /work/SRC/openSUSE:Factory/cloud-init/cloud-init.changes 2021-01-29 14:55:08.749337140 +0100 +++ /work/SRC/openSUSE:Factory/.cloud-init.new.12324/cloud-init.changes 2021-04-18 21:44:21.632645747 +0200 @@ -1,0 +2,8 @@ +Wed Apr 7 17:35:46 UTC 2021 - Robert Schweikert <rjsch...@suse.com> + +- Add cloud-init-bonding-opts.patch (bsc#1184085) + + Write proper bonding option configuration for SLE/openSUSE +- Fix application and inclusion of + use_arroba_to_include_sudoers_directory-bsc_1181283.patchfix (bsc#1181283) + +------------------------------------------------------------------- New: ---- cloud-init-bonding-opts.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ cloud-init.spec ++++++ --- /var/tmp/diff_new_pack.0TTYo7/_old 2021-04-18 21:44:22.136646600 +0200 +++ /var/tmp/diff_new_pack.0TTYo7/_new 2021-04-18 21:44:22.136646600 +0200 @@ -1,7 +1,7 @@ # # spec file for package cloud-init # -# Copyright (c) 2019 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2021 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -42,6 +42,8 @@ Patch60: cloud-init-azure-def-usr-pass.patch Patch61: cloud-init-sle12-compat.patch Patch70: use_arroba_to_include_sudoers_directory-bsc_1181283.patch +# FIXME https://github.com/canonical/cloud-init/pull/831 +Patch71: cloud-init-bonding-opts.patch BuildRequires: fdupes BuildRequires: filesystem # pkg-config is needed to find correct systemd unit dir @@ -142,8 +144,9 @@ %patch60 %if 0%{?suse_version} < 1500 %patch61 -%patch70 %endif +%patch70 -p1 +%patch71 # patch in the full version to version.py version_pys=$(find . -name version.py -type f) [ -n "$version_pys" ] || ++++++ cloud-init-bonding-opts.patch ++++++ --- cloudinit/net/sysconfig.py.orig +++ cloudinit/net/sysconfig.py @@ -300,7 +300,8 @@ class Renderer(renderer.Renderer): } # If these keys exist, then their values will be used to form - # a BONDING_OPTS grouping; otherwise no grouping will be set. + # a BONDING_OPTS / BONDING_MODULE_OPTS grouping; otherwise no + # grouping will be set. bond_tpl_opts = tuple([ ('bond_mode', "mode=%s"), ('bond_xmit_hash_policy', "xmit_hash_policy=%s"), @@ -593,7 +594,7 @@ class Renderer(renderer.Renderer): route_cfg[new_key] = route[old_key] @classmethod - def _render_bonding_opts(cls, iface_cfg, iface): + def _render_bonding_opts(cls, iface_cfg, iface, flavor): bond_opts = [] for (bond_key, value_tpl) in cls.bond_tpl_opts: # Seems like either dash or underscore is possible? @@ -606,7 +607,18 @@ class Renderer(renderer.Renderer): bond_opts.append(value_tpl % (bond_value)) break if bond_opts: - iface_cfg['BONDING_OPTS'] = " ".join(bond_opts) + # suse uses the sysconfig support which requires + # BONDING_MODULE_OPTS see + # https://www.kernel.org/doc/Documentation/networking/bonding.txt + # 3.1 Configuration with Sysconfig Support + if flavor == 'suse': + iface_cfg['BONDING_MODULE_OPTS'] = " ".join(bond_opts) + # rhel uses initscript support and thus requires BONDING_OPTS + # this is also the old default see + # https://www.kernel.org/doc/Documentation/networking/bonding.txt + # 3.2 Configuration with Initscripts Support + else: + iface_cfg['BONDING_OPTS'] = " ".join(bond_opts) @classmethod def _render_physical_interfaces( @@ -634,7 +646,7 @@ class Renderer(renderer.Renderer): for iface in network_state.iter_interfaces(bond_filter): iface_name = iface['name'] iface_cfg = iface_contents[iface_name] - cls._render_bonding_opts(iface_cfg, iface) + cls._render_bonding_opts(iface_cfg, iface, flavor) # Ensure that the master interface (and any of its children) # are actually marked as being bond types... --- tests/unittests/test_net.py.orig +++ tests/unittests/test_net.py @@ -1528,7 +1528,7 @@ pre-down route del -net 10.0.0.0/8 gw 11 'expected_sysconfig_opensuse': { 'ifcfg-bond0': textwrap.dedent("""\ BONDING_MASTER=yes - BONDING_OPTS="mode=active-backup """ + BONDING_MODULE_OPTS="mode=active-backup """ """xmit_hash_policy=layer3+4 """ """miimon=100" BONDING_SLAVE_0=eth1 @@ -2114,7 +2114,7 @@ iface bond0 inet6 static 'expected_sysconfig_opensuse': { 'ifcfg-bond0': textwrap.dedent("""\ BONDING_MASTER=yes - BONDING_OPTS="mode=active-backup xmit_hash_policy=layer3+4 """ + BONDING_MODULE_OPTS="mode=active-backup xmit_hash_policy=layer3+4 """ """miimon=100 num_grat_arp=5 """ """downdelay=10 updelay=20 """ """fail_over_mac=active """