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 2023-03-02 23:01:51
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/cloud-init (Old)
 and      /work/SRC/openSUSE:Factory/.cloud-init.new.31432 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "cloud-init"

Thu Mar  2 23:01:51 2023 rev:87 rq:1068502 version:23.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/cloud-init/cloud-init.changes    2022-05-12 
22:58:02.944610611 +0200
+++ /work/SRC/openSUSE:Factory/.cloud-init.new.31432/cloud-init.changes 
2023-03-02 23:01:54.826732649 +0100
@@ -2 +2 @@
-Tue Apr 26 09:44:55 UTC 2022 - pgaj...@suse.com
+Thu Feb 23 13:38:43 UTC 2023 - Robert Schweikert <rjsch...@suse.com>
@@ -4,2 +4,883 @@
-- python-mock is not required for build
-  https://trello.com/c/S6eADbii/64-remove-python-mock
+- Update to version 23.1
+  + Remove patches included upstream:
+    - cloud-init-btrfs-queue-resize.patch
+    - cloud-init-micro-is-suse.patch
+    - cloud-init-suse-afternm.patch
+    - cloud-init-prefer-nm.patch
+    - cloud-init-transact-up.patch
+  + Forward port
+    - cloud-init-write-routes.patch
+  + Added
+    - cloud-init-fix-ca-test.patch
+  + Support transactional-updates for SUSE based distros (#1997)
+    [Robert Schweikert]
+  + Set ownership for new folders in Write Files Module (#1980)
+    [Jack] (LP: #1990513)
+  + add OpenCloudOS and TencentOS support (#1964) [wynnfeng]
+  + lxd: Retry if the server isn't ready (#2025)
+  + test: switch pycloudlib source to pypi (#2024)
+  + test: Fix integration test deprecation message (#2023)
+  + Recognize opensuse-microos, dev tooling fixes [Robert Schweikert]
+  + sources/azure: refactor imds handler into own module (#1977)
+    [Chris Patterson]
+  + docs: deprecation generation support [1/2] (#2013)
+  + add function is_virtual to distro/FreeBSD (#1957) [Mina Galić]
+  + cc_ssh: support multiple hostcertificates (#2018) (LP: #1999164)
+  + Fix minor schema validation regression and fixup typing (#2017)
+  + doc: Reword user data debug section (#2019)
+  + Overhaul/rewrite of certificate handling as follows: (#1962)
+    [dermotbradley] (LP: #1931174)
+  + disk_setup: use byte string when purging the partition table (#2012)
+    [Stefan Prietl]
+  + cli: schema also validate vendordata*.
+  + ci: sort and add checks for cla signers file [Stefan Prietl]
+  + Add "ederst" as contributor (#2010) [Stefan Prietl]
+  + readme: add reference to packages dir (#2001)
+  + docs: update downstream package list (#2002)
+  + docs: add google search verification (#2000) [s-makin]
+  + docs: fix 404 render use default notfound_urls_prefix in RTD conf (#2004)
+  + Fix OpenStack datasource detection on bare metal (#1923)
+    [Alexander Birkner] (LP: #1815990)
+  + docs: add themed RTD 404 page and pointer to readthedocs-hosted (#1993)
+  + schema: fix gpt labels, use type string for GUID (#1995)
+  + cc_disk_setup: code cleanup (#1996)
+  + netplan: keep custom strict perms when 50-cloud-init.yaml exists
+  + cloud-id: better handling of change in datasource files
+    [d1r3ct0r] (LP: #1998998)
+  + tests: Remove restart check from test
+  + Ignore duplicate macs from mscc_felix and fsl_enetc (LP: #1997922)
+  + Warn on empty network key (#1990)
+  + Fix Vultr cloud_interfaces usage (#1986) [eb3095]
+  + cc_puppet: Update puppet service name (#1970) [d1r3ct0r] (LP: #2002969)
+  + docs: Clarify networking docs (#1987)
+  + lint: remove httpretty (#1985) [sxt1001]
+  + cc_set_passwords: Prevent traceback when restarting ssh (#1981)
+  + tests: fix lp1912844 (#1978)
+  + tests: Skip ansible test on bionic (#1984)
+  + Wait for NetworkManager (#1983) [Robert Schweikert]
+  + docs: minor polishing (#1979) [s-makin]
+  + CI: migrate integration-test to GH actions (#1969)
+  + Fix permission of SSH host keys (#1971) [Ron Gebauer]
+  + Fix default route rendering on v2 ipv6 (#1973) (LP: #2003562)
+  + doc: fix path in net_convert command (#1975)
+  + docs: update net_convert docs (#1974)
+  + doc: fix dead link
+  + cc_set_hostname: ignore /var/lib/cloud/data/set-hostname if it's empty
+    (#1967) [Emanuele Giuseppe Esposito]
+  + distros/rhel.py: _read_hostname() missing strip on "hostname" (#1941)
+    [Mark Mielke]
+  + integration tests: add  IBM VPC support (SC-1352) (#1915)
+  + machine-id: set to uninitialized to trigger regeneration on clones
+    (LP: #1999680)
+  + sources/azure: retry on connection error when fetching metdata (#1968)
+    [Chris Patterson]
+  + Ensure ssh state accurately obtained (#1966)
+  + bddeb: drop dh-systemd dependency on newer deb-based releases [d1r3ct0r]
+  + doc: fix `config formats` link in cloudsigma.rst (#1960)
+  + Fix wrong subp syntax in cc_set_passwords.py (#1961)
+  + docs: update the PR template link to readthedocs (#1958) [d1r3ct0r]
+  + ci: switch unittests to gh actions (#1956)
+  + Add mount_default_fields for PhotonOS. (#1952) [Shreenidhi Shedi]
+  + sources/azure: minor refactor for metadata source detection logic
+    (#1936) [Chris Patterson]
+  + add "CalvoM" as contributor (#1955) [d1r3ct0r]
+  + ci: doc to gh actions (#1951)
+  + lxd: handle 404 from missing devices route for LXD 4.0 (LP: #2001737)
+  + docs: Diataxis overhaul (#1933) [s-makin]
+  + vultr: Fix issue regarding cache and region codes (#1938) [eb3095]
+  + cc_set_passwords: Move ssh status checking later (SC-1368) (#1909)
+    (LP: #1998526)
+  + Improve Wireguard module idempotency (#1940) [Fabian Lichtenegger-Lukas]
+  + network/netplan: add gateways as on-link when necessary (#1931)
+    [Louis Sautier] (LP: #2000596)
+  + tests: test_lxd assert features.networks.zones when present (#1939)
+  + Use btrfs enquque when available (#1926) [Robert Schweikert]
+  + sources/azure: drop description for report_failure_to_fabric() (#1934)
+    [Chris Patterson]
+  + cc_disk_setup.py: fix MBR single partition creation (#1932)
+    [dermotbradley] (LP: #1851438)
+  + Fix typo with package_update/package_upgrade (#1927) [eb3095]
+  + sources/azure: fix device driver matching for net config (#1914)
+    [Chris Patterson]
+  + BSD: fix duplicate macs in Ifconfig parser (#1917) [Mina Galić]
+  + test: mock dns calls (#1922)
+  + pycloudlib: add lunar support for integration tests (#1928)
+  + nocloud: add support for dmi variable expansion for seedfrom URL
+    (LP: #1994980)
+  + tools: read-version drop extra call to git describe --long
+  + doc: improve cc_write_files doc (#1916)
+  + read-version: When insufficient tags, use cloudinit.version.get_version
+  + mounts: document weird prefix in schema (#1913)
+  + add utility function test cases (#1910) [sxt1001]
+  + test: mock file deletion in dhcp tests (#1911)
+  + Ensure network ready before cloud-init service runs on RHEL (#1893)
+    (LP: #1998655)
+  + docs: add copy button to code blocks (#1890) [s-makin]
+  + netplan: define features.NETPLAN_CONFIG_ROOT_READ_ONLY flag
+  + azure: fix support for systems without az command installed (#1908)
+  + Networking Clarification (#1892)
+  + Fix the distro.osfamily output problem in the openEuler system. (#1895)
+    [sxt1001] (LP: #1999042)
+  + pycloudlib: bump commit dropping azure api smoke test
+  + net: netplan config root read-only as wifi config can contain creds
+  + autoinstall: clarify docs for users
+  + sources/azure: encode health report as utf-8 (#1897) [Chris Patterson]
+  + Add back gateway4/6 deprecation to docs (#1898)
+  + networkd: Add support for multiple [Route] sections (#1868)
+    [Nigel Kukard]
+  + doc: add qemu tutorial (#1863)
+  + lint: fix tip-flake8 and tip-mypy (#1896)
+  + Add support for setting uid when creating users on FreeBSD (#1888)
+    [einsibjarni]
+  + Fix exception in BSD networking code-path (#1894) [Mina Galić]
+  + Append derivatives to is_rhel list in cloud.cfg.tmpl (#1887) [Louis Abel]
+  + FreeBSD init: use cloudinit_enable as only rcvar (#1875) [Mina Galić]
+  + feat: add support aliyun metadata security harden mode (#1865)
+    [Manasseh Zhou]
+  + docs: uprate analyze to performance page [s-makin]
+  + test: fix lxd preseed managed network config (#1881)
+  + Add support for static IPv6 addresses for FreeBSD (#1839) [einsibjarni]
+  + Make 3.12 failures not fail the build (#1873)
+  + Docs: adding relative links [s-makin]
+  + Update read-version
+  + Fix setup.py to align with PEP 440 versioning replacing trailing
+  + travis: promote 3.11-dev to 3.11 (#1866)
+  + test_cloud_sigma: delete useless test (#1828) [sxt1001]
+  + Add "nkukard" as contributor (#1864) [Nigel Kukard]
+  + tests: ds-id mocks for vmware-rpctool as utility may not exist in env
+  + doc: add how to render new module doc (#1855)
+  + doc: improve module creation explanation (#1851)
+  + Add Support for IPv6 metadata to OpenStack (#1805)
+    [Marvin Vogt] (LP: #1906849)
+  + add xiaoge1001 to .github-cla-signers (#1854) [sxt1001]
+  + network: Deprecate gateway{4,6} keys in network config v2 (#1794)
+    (LP: #1992512)
+  + VMware: Move Guest Customization transport from OVF to VMware (#1573)
+    [PengpengSun]
+  + doc: home page links added (#1852) [s-makin]
+
+From 22.4.2
+  + status: handle ds not defined in status.json (#1876) (LP: #1997559)
+
+From 22.4.1
+  + net: skip duplicate mac check for netvsc nic and its VF (#1853)
+    [Anh Vo] (LP: #1844191)
+  + ChangeLog: whitespace cleanup (#1850)
+  + changelog: capture 22.3.1-4 releases
+
+-------------------------------------------------------------------
+Fri Feb  3 22:02:32 UTC 2023 - Robert Schweikert <rjsch...@suse.com>
+
+- Add cloud-init-transact-up.patch to support transactional-updates
+
+-------------------------------------------------------------------
+Tue Jan 31 19:47:23 UTC 2023 - Robert Schweikert <rjsch...@suse.com>
+
+- Add cloud-init-prefer-nm.patch
+  + Prefer NetworkManager of sysconfig when available
+
+-------------------------------------------------------------------
+Thu Dec 22 18:10:45 UTC 2022 - Robert Schweikert <rjsch...@suse.com>
+
+- Update to version 22.4
+  + Remove patches included upstream:
+    - cloud-init-vmware-test.patch
+    - cloud-init-sysctl-not-in-bin.patch
+  + Forward port:
+    - cloud-init-write-routes.patch
+    - cloud-init-break-resolv-symlink.patch
+    - cloud-init-sysconf-path.patch
+    - cloud-init-no-tempnet-oci.patch
+  + Add cloud-init-btrfs-queue-resize.patch (bsc#1171511)
+  + Add cloud-init-micro-is-suse.patch (bsc#1203393) [Martin Petersen]
++++ 691 more lines (skipped)
++++ between /work/SRC/openSUSE:Factory/cloud-init/cloud-init.changes
++++ and /work/SRC/openSUSE:Factory/.cloud-init.new.31432/cloud-init.changes

Old:
----
  cloud-init-21.4.tar.gz
  cloud-init-sysctl-not-in-bin.patch
  cloud-init-vmware-test.patch

New:
----
  cloud-init-23.1.tar.gz
  cloud-init-fix-ca-test.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ cloud-init.spec ++++++
--- /var/tmp/diff_new_pack.J74Sn2/_old  2023-03-02 23:01:55.662736436 +0100
+++ /var/tmp/diff_new_pack.J74Sn2/_new  2023-03-02 23:01:55.670736472 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package cloud-init
 #
-# Copyright (c) 2021 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2023 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
@@ -18,7 +18,7 @@
 %global configver 0.7
 
 Name:           cloud-init
-Version:        21.4
+Version:        23.1
 Release:        0
 License:        GPL-3.0
 Summary:        Cloud node initialization tool
@@ -27,17 +27,16 @@
 Source0:        %{name}-%{version}.tar.gz
 Source1:        rsyslog-cloud-init.cfg
 Patch1:        datasourceLocalDisk.patch
-# FIXME (lp#1812117)
-Patch2:        cloud-init-write-routes.patch
 # FIXME (lp#1849296)
-Patch3:        cloud-init-break-resolv-symlink.patch
+Patch2:        cloud-init-break-resolv-symlink.patch
 # FIXME no proposed solution
-Patch4:        cloud-init-sysconf-path.patch
+Patch3:        cloud-init-sysconf-path.patch
 # FIXME (lp#1860164)
-Patch5:        cloud-init-no-tempnet-oci.patch
-# FIXME https://github.com/canonical/cloud-init/pull/1278
-Patch6:        cloud-init-sysctl-not-in-bin.patch
-Patch7:        cloud-init-vmware-test.patch
+Patch4:        cloud-init-no-tempnet-oci.patch
+# FIXME https://github.com/canonical/cloud-init/pull/2036
+Patch5:        cloud-init-fix-ca-test.patch
+# FIXME (lp#1812117)
+Patch6:        cloud-init-write-routes.patch
 BuildRequires:  fdupes
 BuildRequires:  filesystem
 # pkg-config is needed to find correct systemd unit dir
@@ -53,10 +52,16 @@
 BuildRequires:  python3-configobj >= 5.0.2
 BuildRequires:  python3-httpretty
 BuildRequires:  python3-jsonpatch
+BuildRequires:  python3-jsonschema
 BuildRequires:  python3-netifaces
 BuildRequires:  python3-oauthlib
 BuildRequires:  python3-pytest
+BuildRequires:  python3-pytest-cov
+BuildRequires:  python3-pytest-mock
 BuildRequires:  python3-requests
+BuildRequires:  python3-responses
+BuildRequires:  python3-serial
+BuildRequires:  system-user-nobody
 %if 0%{?is_opensuse}
 BuildRequires:  openSUSE-release
 %else
@@ -79,13 +84,16 @@
 Requires:       python3-pyserial
 Requires:       python3-PyYAML
 Requires:       python3-requests
+Requires:       python3-responses
+Requires:       python3-serial
 Requires:       python3-setuptools
-Requires:       python3-six
 Requires:       python3-xml
 Requires:       sudo
 Requires:       util-linux
 Requires:       wget
+%if 0%{?suse_version} && 0%{?suse_version} <= 1500
 Requires:       wicked-service
+%endif
 Requires:       cloud-init-config = %configver
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 %define         docdir %{_defaultdocdir}/%{name}
@@ -134,7 +142,6 @@
 %patch4
 %patch5
 %patch6
-%patch7 -p1
 
 # patch in the full version to version.py
 version_pys=$(find . -name version.py -type f)
@@ -146,8 +153,6 @@
 python3 setup.py build
 
 %check
-## Ignore test failure currently not doing anything with opennebula
-rm -v tests/unittests/test_datasource/test_opennebula.py
 make unittest
 
 %install
@@ -201,6 +206,8 @@
 %{_bindir}/cloud-init
 %{_bindir}/cloud-init-per
 %dir %{_sysconfdir}/cloud
+%dir %{_sysconfdir}/cloud/clean.d
+%{_sysconfdir}/cloud/clean.d/README
 %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg.d
 %config(noreplace) %{_sysconfdir}/cloud/templates
 %{_sysconfdir}/dhcp/dhclient-exit-hooks.d/hook-dhclient
@@ -213,7 +220,7 @@
 %endif
 %{_datadir}/bash-completion/completions/cloud-init
 %{python3_sitelib}/cloudinit
-%{python3_sitelib}/cloud_init-%{version}-py%{py3_ver}.egg-info
+%{python3_sitelib}/cloud_init-%{version}*.egg-info
 %{_prefix}/lib/cloud-init
 %{systemd_prefix}/systemd/system-generators/cloud-init-generator
 %{systemd_prefix}/systemd/system/cloud-config.service
@@ -236,6 +243,7 @@
 %dir /etc/dhcp/dhclient-exit-hooks.d
 %dir /etc/systemd/system/sshd-keygen@.service.d
 
+
 %files config-suse
 %defattr(-,root,root)
 %config(noreplace) %{_sysconfdir}/cloud/cloud.cfg
@@ -246,8 +254,4 @@
 %{docdir}/*.txt
 %dir %{docdir}/examples
 
-#%files test
-#%defattr(-,root,root)
-#%{python_sitelib}/tests
-
 %changelog

++++++ cloud-init-21.4.tar.gz -> cloud-init-23.1.tar.gz ++++++
++++ 236467 lines of diff (skipped)

++++++ cloud-init-break-resolv-symlink.patch ++++++
--- /var/tmp/diff_new_pack.J74Sn2/_old  2023-03-02 23:01:56.422739878 +0100
+++ /var/tmp/diff_new_pack.J74Sn2/_new  2023-03-02 23:01:56.426739896 +0100
@@ -1,8 +1,8 @@
 --- cloudinit/net/sysconfig.py.orig
 +++ cloudinit/net/sysconfig.py
-@@ -918,6 +918,11 @@ class Renderer(renderer.Renderer):
-             resolv_content = self._render_dns(network_state,
-                                               existing_dns_path=dns_path)
+@@ -998,6 +998,11 @@ class Renderer(renderer.Renderer):
+                 network_state, existing_dns_path=dns_path
+             )
              if resolv_content:
 +                # netconfig checks if /etc/resolv.conf is a symlink and if
 +                # that is true will write it's version of the file clobbering
@@ -11,5 +11,5 @@
 +                    os.unlink(dns_path)
                  util.write_file(dns_path, resolv_content, file_mode)
          if self.networkmanager_conf_path:
-             nm_conf_path = subp.target_path(target,
+             nm_conf_path = subp.target_path(
 

++++++ cloud-init-fix-ca-test.patch ++++++
--- tests/unittests/config/test_cc_ca_certs.py.orig
+++ tests/unittests/config/test_cc_ca_certs.py
@@ -311,6 +311,7 @@ class TestRemoveDefaultCaCerts(TestCase)
                 "cloud_dir": tmpdir,
             }
         )
+        self.add_patch("cloudinit.config.cc_ca_certs.os.stat", "m_stat")
 
     def test_commands(self):
         ca_certs_content = "# line1\nline2\nline3\n"
@@ -318,6 +319,7 @@ class TestRemoveDefaultCaCerts(TestCase)
             "# line1\n# Modified by cloud-init to deselect certs due to"
             " user-data\n!line2\n!line3\n"
         )
+        self.m_stat.return_value.st_size = 1
 
         for distro_name in cc_ca_certs.distros:
             conf = cc_ca_certs._distro_ca_certs_configs(distro_name)

++++++ cloud-init-no-tempnet-oci.patch ++++++
--- /var/tmp/diff_new_pack.J74Sn2/_old  2023-03-02 23:01:56.458740041 +0100
+++ /var/tmp/diff_new_pack.J74Sn2/_new  2023-03-02 23:01:56.466740077 +0100
@@ -1,34 +1,17 @@
 --- cloudinit/sources/DataSourceOracle.py.orig
 +++ cloudinit/sources/DataSourceOracle.py
-@@ -134,14 +134,17 @@ class DataSourceOracle(sources.DataSourc
-             BUILTIN_DS_CONFIG["configure_secondary_nics"]
-         )
-         network_context = noop()
--        if not _is_iscsi_root():
--            network_context = dhcp.EphemeralDHCPv4(
--                iface=net.find_fallback_nic(),
--                connectivity_url_data={
--                    "url": METADATA_PATTERN.format(version=2, 
path="instance"),
--                    "headers": V2_HEADERS,
--                }
--            )
-+        # SUSE images are built with iSCSI setup. The detection of the
-+        # configured network for iscsi boot is distribution dependent.
-+        # There's no implementation for openSUSE/SLE yet.
-+        #if not _is_iscsi_root():
-+        #    network_context = dhcp.EphemeralDHCPv4(
-+        #        iface=net.find_fallback_nic(),
-+        #        connectivity_url_data={
-+        #            "url": METADATA_PATTERN.format(version=2, 
path="instance"),
-+        #            "headers": V2_HEADERS,
-+        #        }
-+        #    )
-         with network_context:
-             fetched_metadata = read_opc_metadata(
-                 fetch_vnics_data=fetch_vnics_data
---- cloudinit/sources/tests/test_oracle.py.orig
-+++ cloudinit/sources/tests/test_oracle.py
-@@ -666,6 +666,7 @@ class TestNonIscsiRoot_GetDataBehaviour:
+@@ -204,6 +204,8 @@ class DataSourceOracle(sources.DataSourc
+ 
+     def _is_iscsi_root(self) -> bool:
+         """Return whether we are on a iscsi machine."""
++        # SUSE images are built with iSCSI setup.
++        return True
+         return self._network_config_source.is_applicable()
+ 
+     def _get_iscsi_config(self) -> dict:
+--- tests/unittests/sources/test_oracle.py.orig
++++ tests/unittests/sources/test_oracle.py
+@@ -996,6 +996,7 @@ class TestNonIscsiRoot_GetDataBehaviour:
      def test_read_opc_metadata_called_with_ephemeral_dhcp(
          self, m_find_fallback_nic, m_EphemeralDHCPv4, oracle_ds
      ):

++++++ cloud-init-sysconf-path.patch ++++++
--- /var/tmp/diff_new_pack.J74Sn2/_old  2023-03-02 23:01:56.478740132 +0100
+++ /var/tmp/diff_new_pack.J74Sn2/_new  2023-03-02 23:01:56.482740150 +0100
@@ -1,14 +1,13 @@
 --- cloudinit/net/sysconfig.py.orig
 +++ cloudinit/net/sysconfig.py
-@@ -973,9 +973,7 @@ def available_sysconfig(target=None):
-         if not subp.which(p, search=search, target=target):
+@@ -1056,8 +1056,7 @@ def available(target=None):
              return False
  
--    expected_paths = [
--        'etc/sysconfig/network-scripts/network-functions',
--        'etc/sysconfig/config']
-+    expected_paths = ['etc/sysconfig/network/scripts/functions.netconfig']
+     expected_paths = [
+-        "etc/sysconfig/network-scripts/network-functions",
+-        "etc/sysconfig/config",
++        'etc/sysconfig/network/scripts/functions.netconfig'
+     ]
      for p in expected_paths:
          if os.path.isfile(subp.target_path(target, p)):
-             return True
 

++++++ cloud-init-write-routes.patch ++++++
--- /var/tmp/diff_new_pack.J74Sn2/_old  2023-03-02 23:01:56.498740222 +0100
+++ /var/tmp/diff_new_pack.J74Sn2/_new  2023-03-02 23:01:56.502740240 +0100
@@ -1,45 +1,24 @@
 --- cloudinit/distros/__init__.py.orig
 +++ cloudinit/distros/__init__.py
-@@ -220,6 +220,15 @@ class Distro(persistence.CloudInitPickle
-         network_state = parse_net_config_data(netconfig)
-         try:
-             self._write_network_state(network_state)
-+            # The sysconfig renderer has no route writing implementation
-+            # for SUSE yet use the old code for now that depends on the
-+            # raw config.
-+            try:
-+                # Only exists for SUSE distro via this patch all other
-+                # implementations throw which breaks testing
-+                self._write_routes(netconfig)
-+            except AttributeError:
-+                pass
-         except NotImplementedError:
-             # backwards compat until all distros have apply_network_config
-             return self._apply_network_from_network_config(
---- cloudinit/distros/opensuse.py.orig
-+++ cloudinit/distros/opensuse.py
-@@ -8,9 +8,12 @@
- #
- # This file is part of cloud-init. See LICENSE file for license information.
- 
-+import logging
-+
- from cloudinit import distros
- 
- from cloudinit.distros.parsers.hostname import HostnameConf
-+from cloudinit.net.network_state import mask_to_net_prefix
+@@ -276,6 +276,15 @@ class Distro(persistence.CloudInitPickle
  
- from cloudinit import helpers
- from cloudinit import subp
-@@ -19,6 +22,7 @@ from cloudinit import util
- from cloudinit.distros import rhel_util as rhutil
- from cloudinit.settings import PER_INSTANCE
+         network_state = parse_net_config_data(netconfig, renderer=renderer)
+         self._write_network_state(network_state, renderer)
++        # The sysconfig renderer has no route writing implementation
++        # for SUSE yet use the old code for now that depends on the
++        # raw config.
++        try:
++            # Only exists for SUSE distro via this patch all other
++            # implementations throw which breaks testing
++            self._write_routes(netconfig)
++        except AttributeError:
++            pass
  
-+LOG = logging.getLogger(__name__)
- 
- class Distro(distros.Distro):
-     clock_conf_fn = '/etc/sysconfig/clock'
-@@ -168,6 +172,143 @@ class Distro(distros.Distro):
+         # Now try to bring them up
+         if bring_up:
+--- cloudinit/distros/opensuse.py.orig
++++ cloudinit/distros/opensuse.py
+@@ -238,6 +238,143 @@ class Distro(distros.Distro):
              conf.set_hostname(hostname)
              util.write_file(filename, str(conf), 0o644)
  
@@ -79,7 +58,7 @@
 +                    if dest != 'default':
 +                        netmask = route.get('netmask')
 +                        if netmask:
-+                            prefix = mask_to_net_prefix(netmask)
++                            prefix = ipv4_mask_to_net_prefix(netmask)
 +                            dest += '/' + str(prefix)
 +                        if '/' not in dest:
 +                            LOG.warning(

Reply via email to