Update to 2.2.54.2 (#1916966)

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
This commit is contained in:
Vitaly Kuznetsov 2021-05-21 14:14:14 +02:00
parent 4d89b7a51e
commit 4afd599036
8 changed files with 51 additions and 273 deletions

1
.gitignore vendored
View File

@ -13,3 +13,4 @@
/WALinuxAgent-2.2.52.tar.gz
/v2.2.52.tar.gz
/module-setup.sh
/v2.2.54.2.tar.gz

View File

@ -0,0 +1,42 @@
From 53a8080be30553ecbd9262d721c9d3374b8e48e5 Mon Sep 17 00:00:00 2001
From: Vitaly Kuznetsov <vkuznets@redhat.com>
Date: Thu, 3 Jun 2021 12:48:02 +0200
Subject: [PATCH] Install systemd unit for 'default' OS
Fedora is not in the list but uses systemd and not sysv.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
azurelinuxagent/common/osutil/default.py | 2 +-
setup.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py
index 066e143136d7..fcb7d9b857dd 100644
--- a/azurelinuxagent/common/osutil/default.py
+++ b/azurelinuxagent/common/osutil/default.py
@@ -146,7 +146,7 @@ class DefaultOSUtil(object):
@staticmethod
def get_systemd_unit_file_install_path():
- return "/lib/systemd/system"
+ return "/usr/lib/systemd/system"
@staticmethod
def get_agent_bin_path():
diff --git a/setup.py b/setup.py
index c258e4b878cc..b2ed8f4cde36 100755
--- a/setup.py
+++ b/setup.py
@@ -194,7 +194,7 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912
set_conf_files(data_files)
set_logrotate_files(data_files)
set_udev_files(data_files)
- set_sysv_files(data_files)
+ set_systemd_files(data_files, dest=systemd_dir_path)
return data_files
--
2.31.1

View File

@ -1,72 +0,0 @@
From cc9b7996e542640bb19365822344298a04b18e44 Mon Sep 17 00:00:00 2001
From: Paula Gombar <gombarica@gmail.com>
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

View File

@ -1,90 +0,0 @@
From 66f600ed3d9f22c2aa6790002507d0c821a7fd0c Mon Sep 17 00:00:00 2001
From: Paula Gombar <gombarica@gmail.com>
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

View File

@ -1,33 +0,0 @@
From 90f1a4862cf63df4a96ad912effcfb54192ad4d7 Mon Sep 17 00:00:00 2001
From: Paula Gombar <gombarica@gmail.com>
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

View File

@ -1,64 +0,0 @@
From 3420fef144cf9a5be62cfae16f64c298ca397a17 Mon Sep 17 00:00:00 2001
From: Paula Gombar <gombarica@gmail.com>
Date: Wed, 2 Dec 2020 21:36:41 -0800
Subject: [PATCH] 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 <vkuznets@redhat.com>
---
azurelinuxagent/common/osutil/factory.py | 4 +---
tests/common/osutil/test_factory.py | 14 ++++++++++++++
2 files changed, 15 insertions(+), 3 deletions(-)
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
--- 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")
+ ret = _get_osutil(distro_name="rhel",
+ distro_code_name="",
+ distro_full_name="",
+ distro_version="6")
+ self.assertTrue(type(ret) == Redhat6xOSUtil)
+ self.assertEquals(ret.get_service_name(), "waagent")
+
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")
+ ret = _get_osutil(distro_name="rhel",
+ distro_code_name="",
+ distro_full_name="",
+ distro_version="7")
+ self.assertTrue(type(ret) == RedhatOSUtil)
+ self.assertEquals(ret.get_service_name(), "waagent")
+
ret = _get_osutil(distro_name="centos",
distro_code_name="",
distro_full_name="",
--
2.29.2

View File

@ -2,8 +2,8 @@
%global dracut_modname 97walinuxagent
Name: WALinuxAgent
Version: 2.2.52
Release: 6%{?dist}
Version: 2.2.54.2
Release: 1%{?dist}
Summary: The Microsoft Azure Linux Agent
License: ASL 2.0
@ -11,11 +11,7 @@ URL: https://github.com/Azure/%{name}
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
Patch0: 0001-Install-systemd-unit-for-default-OS.patch
BuildArch: noarch
@ -62,9 +58,6 @@ Udev rules specific to Microsoft Azure Virtual Machines.
%prep
%setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%build
%py3_build
@ -92,7 +85,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 +98,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 +118,9 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam
%endif
%changelog
* Fri May 21 2021 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.54.2-1
- Update to 2.2.54.2 (#1916966)
* Tue Mar 02 2021 Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> - 2.2.52-6
- Rebuilt for updated systemd-rpm-macros
See https://pagure.io/fesco/issue/2583.

View File

@ -1,2 +1,2 @@
SHA512 (v2.2.52.tar.gz) = b8d71cb4873b7e9cf92c755884bb104e5e37f171fbdae3d702b2b005a461b8f5447c9dcc80037ff0bfe9950ffbcb901e023e0bda918f481f5336c8ecbaecbbcc
SHA512 (v2.2.54.2.tar.gz) = a8b0d65b9179db9b83a0cbc53221fe31f220056cb62b522d8d22178948ff09beea8dd59b1ff0c289e36961f9b1ceebb7aa20a7057afbe6b7deea58376701a41a
SHA512 (module-setup.sh) = c05ed7395006c78bae1a7727b64c4b00a14e2c37e0d8a6ae7c05905a86d4ba638a2b98e4642ecd9a98db38298ff99f4877f900965a97f933b9aa034488835394