From ffb60ea17a02999cd28657bd71201c0ecbeb2be2 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Thu, 24 Jun 2021 06:09:45 -0400 Subject: [PATCH] * Thu Jun 24 2021 Miroslav Rezanina - 2.3.0.2-1 - Rebase to 2.3.0.2 [bz#1972101] - Resolves: bz#1972101 ([Azure][RHEL-9]Rebase WALinuxAgent to 2.3.0.2) --- .gitignore | 1 + ...tring-and-json.loads-without-encodin.patch | 72 --------------- ...ix-distro-resolution-for-RedHat-2083.patch | 40 +++------ 0002-handle-py3.9-check-in-future.py.patch | 90 ------------------- 0003-fix-pylint.patch | 33 ------- WALinuxAgent.spec | 25 +++--- module-setup.sh | 16 ++++ sources | 3 +- 8 files changed, 42 insertions(+), 238 deletions(-) delete mode 100644 0001-update-array.tostring-and-json.loads-without-encodin.patch rename 0004-Fix-distro-resolution-for-RedHat-2083.patch => 0002-Fix-distro-resolution-for-RedHat-2083.patch (51%) delete mode 100644 0002-handle-py3.9-check-in-future.py.patch delete mode 100644 0003-fix-pylint.patch create mode 100644 module-setup.sh diff --git a/.gitignore b/.gitignore index 4336e5e..b57e398 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /WALinuxAgent-2.2.52.tar.gz /v2.2.52.tar.gz /module-setup.sh +/v2.3.0.2.tar.gz diff --git a/0001-update-array.tostring-and-json.loads-without-encodin.patch b/0001-update-array.tostring-and-json.loads-without-encodin.patch deleted file mode 100644 index d88c41c..0000000 --- a/0001-update-array.tostring-and-json.loads-without-encodin.patch +++ /dev/null @@ -1,72 +0,0 @@ -From cc9b7996e542640bb19365822344298a04b18e44 Mon Sep 17 00:00:00 2001 -From: Paula Gombar -Date: Wed, 18 Nov 2020 12:24:33 -0800 -Subject: [PATCH 1/3] update array.tostring() and json.loads without encoding - for py3.9 - ---- - azurelinuxagent/common/osutil/bigip.py | 7 ++++++- - azurelinuxagent/common/osutil/default.py | 6 +++++- - tests/protocol/test_imds.py | 4 ++-- - 3 files changed, 13 insertions(+), 4 deletions(-) - -diff --git a/azurelinuxagent/common/osutil/bigip.py b/azurelinuxagent/common/osutil/bigip.py -index 61d3c695f911..ceadf8ca2066 100644 ---- a/azurelinuxagent/common/osutil/bigip.py -+++ b/azurelinuxagent/common/osutil/bigip.py -@@ -280,7 +280,12 @@ class BigIpOSUtil(DefaultOSUtil): - if retsize == (expected * struct_size): - logger.warn(('SIOCGIFCONF returned more than {0} up ' - 'network interfaces.'), expected) -- sock = buff.tostring() -+ try: -+ # Python 3.9 removed the tostring() method on arrays, tobytes() is the new alias -+ sock = buff.tostring() -+ except AttributeError: -+ sock = buff.tobytes() -+ - for i in range(0, struct_size * expected, struct_size): - iface = self._format_single_interface_name(sock, i) - -diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py -index 521776818e64..6179061756e3 100644 ---- a/azurelinuxagent/common/osutil/default.py -+++ b/azurelinuxagent/common/osutil/default.py -@@ -758,7 +758,11 @@ class DefaultOSUtil(object): - logger.warn(('SIOCGIFCONF returned more than {0} up ' - 'network interfaces.'), expected) - -- ifconf_buff = buff.tostring() -+ try: -+ # Python 3.9 removed the tostring() method on arrays, tobytes() is the new alias -+ ifconf_buff = buff.tostring() -+ except AttributeError: -+ ifconf_buff = buff.tobytes() - - ifaces = {} - for i in range(0, array_size, struct_size): -diff --git a/tests/protocol/test_imds.py b/tests/protocol/test_imds.py -index a730ded03525..47462fd25ac3 100644 ---- a/tests/protocol/test_imds.py -+++ b/tests/protocol/test_imds.py -@@ -109,7 +109,7 @@ class TestImds(AgentTestCase): - "zone": "In" - }''' - -- data = json.loads(s, encoding='utf-8') -+ data = json.loads(s) - - compute_info = imds.ComputeInfo() - set_properties("compute", compute_info, data) -@@ -258,7 +258,7 @@ class TestImds(AgentTestCase): - "version": "{3}" - }}'''.format(publisher, offer, sku, version) - -- data = json.loads(s, encoding='utf-8') -+ data = json.loads(s) - compute_info = imds.ComputeInfo() - set_properties("compute", compute_info, data) - --- -2.26.2 - diff --git a/0004-Fix-distro-resolution-for-RedHat-2083.patch b/0002-Fix-distro-resolution-for-RedHat-2083.patch similarity index 51% rename from 0004-Fix-distro-resolution-for-RedHat-2083.patch rename to 0002-Fix-distro-resolution-for-RedHat-2083.patch index e0ce7b2..85bd505 100644 --- a/0004-Fix-distro-resolution-for-RedHat-2083.patch +++ b/0002-Fix-distro-resolution-for-RedHat-2083.patch @@ -1,39 +1,23 @@ -From 3420fef144cf9a5be62cfae16f64c298ca397a17 Mon Sep 17 00:00:00 2001 +From 7289e616a836fe0f1c97388f40e5d4916804ae91 Mon Sep 17 00:00:00 2001 From: Paula Gombar Date: Wed, 2 Dec 2020 21:36:41 -0800 -Subject: [PATCH] Fix distro resolution for RedHat (#2083) +Subject: Fix distro resolution for RedHat (#2083) vkuznets: cherry-picking the primary change of the commit (adding 'rhel') only, pylint changes require additional commits. Signed-off-by: Vitaly Kuznetsov --- - azurelinuxagent/common/osutil/factory.py | 4 +--- - tests/common/osutil/test_factory.py | 14 ++++++++++++++ - 2 files changed, 15 insertions(+), 3 deletions(-) + tests/common/osutil/test_factory.py | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) -diff --git a/azurelinuxagent/common/osutil/factory.py b/azurelinuxagent/common/osutil/factory.py -index 69f8430052d5..caecaa0887e2 100644 ---- a/azurelinuxagent/common/osutil/factory.py -+++ b/azurelinuxagent/common/osutil/factory.py -@@ -97,9 +97,7 @@ def _get_osutil(distro_name, distro_code_name, distro_version, distro_full_name) - else: - return DebianOSBaseUtil() - -- if distro_name == "redhat" \ -- or distro_name == "centos" \ -- or distro_name == "oracle": -+ if distro_name in ("redhat", "rhel", "centos", "oracle"): - if Version(distro_version) < Version("7"): - return Redhat6xOSUtil() - else: diff --git a/tests/common/osutil/test_factory.py b/tests/common/osutil/test_factory.py -index aa7daebcf25f..2ac0849f75c9 100644 +index f7d46b21..c48dd17f 100644 --- a/tests/common/osutil/test_factory.py +++ b/tests/common/osutil/test_factory.py -@@ -188,6 +188,13 @@ class TestOsUtilFactory(AgentTestCase): - self.assertTrue(type(ret) == Redhat6xOSUtil) - self.assertEquals(ret.get_service_name(), "waagent") +@@ -195,6 +195,13 @@ class TestOsUtilFactory(AgentTestCase): + self.assertTrue(isinstance(ret, Redhat6xOSUtil)) + self.assertEqual(ret.get_service_name(), "waagent") + ret = _get_osutil(distro_name="rhel", + distro_code_name="", @@ -45,9 +29,9 @@ index aa7daebcf25f..2ac0849f75c9 100644 ret = _get_osutil(distro_name="centos", distro_code_name="", distro_full_name="", -@@ -209,6 +216,13 @@ class TestOsUtilFactory(AgentTestCase): - self.assertTrue(type(ret) == RedhatOSUtil) - self.assertEquals(ret.get_service_name(), "waagent") +@@ -223,6 +230,13 @@ class TestOsUtilFactory(AgentTestCase): + self.assertTrue(isinstance(ret, RedhatOSUtil)) + self.assertEqual(ret.get_service_name(), "waagent") + ret = _get_osutil(distro_name="rhel", + distro_code_name="", @@ -60,5 +44,5 @@ index aa7daebcf25f..2ac0849f75c9 100644 distro_code_name="", distro_full_name="", -- -2.29.2 +2.27.0 diff --git a/0002-handle-py3.9-check-in-future.py.patch b/0002-handle-py3.9-check-in-future.py.patch deleted file mode 100644 index d7c563a..0000000 --- a/0002-handle-py3.9-check-in-future.py.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 66f600ed3d9f22c2aa6790002507d0c821a7fd0c Mon Sep 17 00:00:00 2001 -From: Paula Gombar -Date: Tue, 8 Dec 2020 18:38:33 -0800 -Subject: [PATCH 2/3] handle py3.9 check in future.py - ---- - azurelinuxagent/common/future.py | 13 ++++++++++++- - azurelinuxagent/common/osutil/bigip.py | 8 +++----- - azurelinuxagent/common/osutil/default.py | 9 ++------- - 3 files changed, 17 insertions(+), 13 deletions(-) - -diff --git a/azurelinuxagent/common/future.py b/azurelinuxagent/common/future.py -index 577fb12e186e..0f76aceba786 100644 ---- a/azurelinuxagent/common/future.py -+++ b/azurelinuxagent/common/future.py -@@ -103,4 +103,15 @@ def get_openwrt_platform(): - elif product_matches: - if product_matches.group(1) == "OpenWrt": - result[0] = "openwrt" -- return result -\ No newline at end of file -+ return result -+ -+ -+def array_to_string_or_bytes(buffer): -+ # Python 3.9 removed the tostring() method on arrays, the new alias is tobytes() -+ if sys.version_info[0] == 2: -+ return buffer.tostring() -+ -+ if sys.version_info[0] == 3 and sys.version_info[1] <= 8: -+ return buffer.tostring() -+ -+ return buffer.tobytes() -diff --git a/azurelinuxagent/common/osutil/bigip.py b/azurelinuxagent/common/osutil/bigip.py -index ceadf8ca2066..cc1b64143c12 100644 ---- a/azurelinuxagent/common/osutil/bigip.py -+++ b/azurelinuxagent/common/osutil/bigip.py -@@ -24,6 +24,8 @@ import socket - import struct - import time - -+from azurelinuxagent.common.future import array_to_string_or_bytes -+ - try: - # WAAgent > 2.1.3 - import azurelinuxagent.common.logger as logger -@@ -280,12 +282,8 @@ class BigIpOSUtil(DefaultOSUtil): - if retsize == (expected * struct_size): - logger.warn(('SIOCGIFCONF returned more than {0} up ' - 'network interfaces.'), expected) -- try: -- # Python 3.9 removed the tostring() method on arrays, tobytes() is the new alias -- sock = buff.tostring() -- except AttributeError: -- sock = buff.tobytes() - -+ sock = array_to_string_or_bytes(buff) - for i in range(0, struct_size * expected, struct_size): - iface = self._format_single_interface_name(sock, i) - -diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py -index 6179061756e3..c1ca15cf64ef 100644 ---- a/azurelinuxagent/common/osutil/default.py -+++ b/azurelinuxagent/common/osutil/default.py -@@ -41,7 +41,7 @@ import azurelinuxagent.common.utils.fileutil as fileutil - import azurelinuxagent.common.utils.shellutil as shellutil - import azurelinuxagent.common.utils.textutil as textutil - from azurelinuxagent.common.exception import OSUtilError --from azurelinuxagent.common.future import ustr -+from azurelinuxagent.common.future import ustr, array_to_string_or_bytes - from azurelinuxagent.common.utils.cryptutil import CryptUtil - from azurelinuxagent.common.utils.flexible_version import FlexibleVersion - from azurelinuxagent.common.utils.networkutil import RouteEntry, NetworkInterfaceCard -@@ -758,12 +758,7 @@ class DefaultOSUtil(object): - logger.warn(('SIOCGIFCONF returned more than {0} up ' - 'network interfaces.'), expected) - -- try: -- # Python 3.9 removed the tostring() method on arrays, tobytes() is the new alias -- ifconf_buff = buff.tostring() -- except AttributeError: -- ifconf_buff = buff.tobytes() -- -+ ifconf_buff = array_to_string_or_bytes(buff) - ifaces = {} - for i in range(0, array_size, struct_size): - iface = ifconf_buff[i:i+IFNAMSIZ].split(b'\0', 1)[0] --- -2.26.2 - diff --git a/0003-fix-pylint.patch b/0003-fix-pylint.patch deleted file mode 100644 index 03b887c..0000000 --- a/0003-fix-pylint.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 90f1a4862cf63df4a96ad912effcfb54192ad4d7 Mon Sep 17 00:00:00 2001 -From: Paula Gombar -Date: Tue, 8 Dec 2020 18:53:57 -0800 -Subject: [PATCH 3/3] fix pylint - ---- - azurelinuxagent/common/future.py | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/azurelinuxagent/common/future.py b/azurelinuxagent/common/future.py -index 0f76aceba786..a6796f19fec2 100644 ---- a/azurelinuxagent/common/future.py -+++ b/azurelinuxagent/common/future.py -@@ -106,12 +106,12 @@ def get_openwrt_platform(): - return result - - --def array_to_string_or_bytes(buffer): -+def array_to_string_or_bytes(buff): - # Python 3.9 removed the tostring() method on arrays, the new alias is tobytes() - if sys.version_info[0] == 2: -- return buffer.tostring() -+ return buff.tostring() - - if sys.version_info[0] == 3 and sys.version_info[1] <= 8: -- return buffer.tostring() -+ return buff.tostring() - -- return buffer.tobytes() -+ return buff.tobytes() --- -2.26.2 - diff --git a/WALinuxAgent.spec b/WALinuxAgent.spec index 5ac8b18..8198272 100644 --- a/WALinuxAgent.spec +++ b/WALinuxAgent.spec @@ -2,8 +2,8 @@ %global dracut_modname 97walinuxagent Name: WALinuxAgent -Version: 2.2.52 -Release: 6%{?dist} +Version: 2.3.0.2 +Release: 1%{?dist} Summary: The Microsoft Azure Linux Agent License: ASL 2.0 @@ -12,10 +12,8 @@ Source0: https://github.com/Azure/%{name}/archive/v%{version}.tar.gz Source1: module-setup.sh # Python3.9 fixes -Patch0: 0001-update-array.tostring-and-json.loads-without-encodin.patch -Patch1: 0002-handle-py3.9-check-in-future.py.patch -Patch2: 0003-fix-pylint.patch -Patch3: 0004-Fix-distro-resolution-for-RedHat-2083.patch +Patch0002: 0002-Fix-distro-resolution-for-RedHat-2083.patch +# Source-git patches BuildArch: noarch @@ -61,10 +59,8 @@ Udev rules specific to Microsoft Azure Virtual Machines. %prep %setup -q -%patch0 -p1 -%patch1 -p1 -%patch2 -p1 -%patch3 -p1 +%patch0002 -p1 +# Apply source-git patches %build %py3_build @@ -92,7 +88,6 @@ rm -f %{buildroot}%{_sbindir}/waagent2.0 sed -i 's,/usr/bin/python ,/usr/bin/python3 ,' %{buildroot}%{_unitdir}/waagent.service mv %{buildroot}%{_sysconfdir}/logrotate.d/waagent.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name} -mv %{buildroot}%{_sysconfdir}/logrotate.d/waagent-extn.logrotate %{buildroot}%{_sysconfdir}/logrotate.d/%{name}-extn install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modname}/ %{SOURCE1} @@ -106,11 +101,10 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam %systemd_postun_with_restart waagent.service %files -%doc Changelog LICENSE.txt NOTICE README.md +%doc LICENSE.txt NOTICE README.md %ghost %{_localstatedir}/log/waagent.log %dir %attr(0700, root, root) %{_sharedstatedir}/waagent %config(noreplace) %{_sysconfdir}/logrotate.d/%{name} -%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}-extn %{_sbindir}/waagent %config(noreplace) %{_sysconfdir}/waagent.conf %{_unitdir}/waagent.service @@ -127,6 +121,11 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam %endif %changelog +* Thu Jun 24 2021 Miroslav Rezanina - 2.3.0.2-1 +- Rebase to 2.3.0.2 [bz#1972101] +- Resolves: bz#1972101 + ([Azure][RHEL-9]Rebase WALinuxAgent to 2.3.0.2) + * Thu Apr 15 2021 Mohan Boddu - 2.2.52-6 - Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937 diff --git a/module-setup.sh b/module-setup.sh new file mode 100644 index 0000000..00d0eb7 --- /dev/null +++ b/module-setup.sh @@ -0,0 +1,16 @@ +#!/usr/bin/bash + +# called by dracut +check() { + return 0 +} + +# called by dracut +depends() { + return 0 +} + +# called by dracut +install() { + inst_rules 66-azure-storage.rules 99-azure-product-uuid.rules +} diff --git a/sources b/sources index 0a8ac9b..29f0945 100644 --- a/sources +++ b/sources @@ -1,2 +1 @@ -SHA512 (v2.2.52.tar.gz) = b8d71cb4873b7e9cf92c755884bb104e5e37f171fbdae3d702b2b005a461b8f5447c9dcc80037ff0bfe9950ffbcb901e023e0bda918f481f5336c8ecbaecbbcc -SHA512 (module-setup.sh) = c05ed7395006c78bae1a7727b64c4b00a14e2c37e0d8a6ae7c05905a86d4ba638a2b98e4642ecd9a98db38298ff99f4877f900965a97f933b9aa034488835394 +SHA512 (v2.3.0.2.tar.gz) = 7aa3c0d5a0987774625cacb4e5be105779db8e6531fba2d5d2fd58931616e8b79d00f253b972d1e531c652f6d782e607748e135fa522258f8a5fb137002e0e25