* Wed May 25 2022 Miroslav Rezanina <mrezanin@redhat.com> - 2.7.0.6-1

- Rebase to 2.7.0.6-1 [bz#2083464]
- Adding restart_if implementation for RHEL [bz#2081944]
- Resolves: bz#2083464
  ([Azure][RHEL-9]Rebase WALinuxAgent to v2.7.0.6)
- Resolves: bz#2081944
  ([Azure][WALA][9.0] WALA provisions VM failed because of no "ifdown")
This commit is contained in:
Miroslav Rezanina 2022-05-25 04:50:10 -04:00
parent 269444d79f
commit a20a7eda60
6 changed files with 133 additions and 56 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@
/v2.2.52.tar.gz
/module-setup.sh
/v2.3.0.2.tar.gz
/v2.7.0.6.tar.gz

View File

@ -0,0 +1,75 @@
From 9d071a9b4b40f0f86bb0b739b72c0b9b4870f060 Mon Sep 17 00:00:00 2001
From: Miroslav Rezanina <mrezanin@redhat.com>
Date: Fri, 14 May 2021 09:42:08 +0200
Subject: Initial redhat build configuation.
Using .distro repository to hold redhat tools and configuration.
Package can be built on brew using rh-rhel-koji command.
Note: Old rh-brew target is supported.
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
Merged patches (2.7.0.6):
- 896c5c83 Require iptables package
- a702a0d1 (origin/rhel-9.0.0-beta) source-git: Use dynamic SRPM_NAME
---
.distro/Makefile | 73 ++++++
.distro/Makefile.common | 18 ++
.distro/WALinuxAgent.spec.template | 254 +++++++++++++++++++++
.distro/module-setup.sh | 16 ++
.distro/rpmbuild/BUILD/.gitignore | 2 +
.distro/rpmbuild/RPMS/.gitignore | 2 +
.distro/rpmbuild/SOURCES/.gitignore | 2 +
.distro/rpmbuild/SPECS/.gitignore | 2 +
.distro/rpmbuild/SRPMS/.gitignore | 2 +
.distro/scripts/extract_build_cmd.py | 83 +++++++
.distro/scripts/frh.py | 24 ++
.distro/scripts/git-backport-diff | 327 +++++++++++++++++++++++++++
.distro/scripts/git-compile-check | 215 ++++++++++++++++++
.distro/scripts/process-patches.sh | 92 ++++++++
.distro/scripts/tarball_checksum.sh | 3 +
setup.py | 4 +-
16 files changed, 1117 insertions(+), 2 deletions(-)
create mode 100644 .distro/Makefile
create mode 100644 .distro/Makefile.common
create mode 100644 .distro/WALinuxAgent.spec.template
create mode 100644 .distro/module-setup.sh
create mode 100644 .distro/rpmbuild/BUILD/.gitignore
create mode 100644 .distro/rpmbuild/RPMS/.gitignore
create mode 100644 .distro/rpmbuild/SOURCES/.gitignore
create mode 100644 .distro/rpmbuild/SPECS/.gitignore
create mode 100644 .distro/rpmbuild/SRPMS/.gitignore
create mode 100755 .distro/scripts/extract_build_cmd.py
create mode 100755 .distro/scripts/frh.py
create mode 100755 .distro/scripts/git-backport-diff
create mode 100755 .distro/scripts/git-compile-check
create mode 100755 .distro/scripts/process-patches.sh
create mode 100755 .distro/scripts/tarball_checksum.sh
diff --git a/setup.py b/setup.py
index 12c9e1d6..e4d7cf7e 100755
--- a/setup.py
+++ b/setup.py
@@ -97,7 +97,7 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912
agent_bin_path = osutil.get_agent_bin_path()
if name in ('redhat', 'centos', 'almalinux', 'cloudlinux'): # pylint: disable=R1714
- if version.startswith("8.2"):
+ if version.startswith("9"):
# redhat8+ default to py3
set_bin_files(data_files, dest=agent_bin_path,
src=["bin/py3/waagent", "bin/waagent2.0"])
@@ -106,7 +106,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)
- if version.startswith("8.2"):
+ if version.startswith("9"):
# redhat 8+ uses systemd and python3
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/redhat/waagent.service",
--
2.31.1

View File

@ -1,48 +0,0 @@
From 7289e616a836fe0f1c97388f40e5d4916804ae91 Mon Sep 17 00:00:00 2001
From: Paula Gombar <gombarica@gmail.com>
Date: Wed, 2 Dec 2020 21:36:41 -0800
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 <vkuznets@redhat.com>
---
tests/common/osutil/test_factory.py | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/tests/common/osutil/test_factory.py b/tests/common/osutil/test_factory.py
index f7d46b21..c48dd17f 100644
--- a/tests/common/osutil/test_factory.py
+++ b/tests/common/osutil/test_factory.py
@@ -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="",
+ 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="",
@@ -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="",
+ 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.27.0

View File

@ -0,0 +1,40 @@
From 8538516744130409f96b3ec956ff5ec1b1c1be11 Mon Sep 17 00:00:00 2001
From: Miroslav Rezanina <mrezanin@redhat.com>
Date: Tue, 24 May 2022 04:10:46 -0400
Subject: Implement restart_if for RedHat OS
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
---
azurelinuxagent/common/osutil/redhat.py | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/azurelinuxagent/common/osutil/redhat.py b/azurelinuxagent/common/osutil/redhat.py
index 9759d113..a02647cd 100644
--- a/azurelinuxagent/common/osutil/redhat.py
+++ b/azurelinuxagent/common/osutil/redhat.py
@@ -142,3 +142,21 @@ class RedhatOSUtil(Redhat6xOSUtil):
endpoint = self.get_endpoint_from_leases_path('/var/lib/NetworkManager/dhclient-*.lease')
return endpoint
+
+ def restart_if(self, ifname, retries=3, wait=5):
+ """
+ Restart an interface by bouncing the link.
+ """
+ retry_limit=retries+1
+ for attempt in range(1, retry_limit):
+ try:
+ shellutil.run_command(["ip", "link", "set", ifname, "down"])
+ shellutil.run_command(["ip", "link", "set", ifname, "up"])
+
+ except shellutil.CommandError as cmd_err:
+ logger.warn("failed to restart {0}: return code {1}".format(ifname, cmd_err.returncode))
+ if attempt < retry_limit:
+ logger.info("retrying in {0} seconds".format(wait))
+ time.sleep(wait)
+ else:
+ logger.warn("exceeded restart retries")
--
2.31.1

View File

@ -2,8 +2,8 @@
%global dracut_modname 97walinuxagent
Name: WALinuxAgent
Version: 2.3.0.2
Release: 3%{?dist}
Version: 2.7.0.6
Release: 1%{?dist}
Summary: The Microsoft Azure Linux Agent
License: ASL 2.0
@ -12,7 +12,9 @@ Source0: https://github.com/Azure/%{name}/archive/v%{version}.tar.gz
Source1: module-setup.sh
# Python3.9 fixes
Patch0002: 0002-Fix-distro-resolution-for-RedHat-2083.patch
Patch0001: 0001-Initial-redhat-build-configuation.patch
Patch0002: 0002-Implement-restart_if-for-RedHat-OS.patch
# Source-git patches
BuildArch: noarch
@ -60,8 +62,7 @@ Udev rules specific to Microsoft Azure Virtual Machines.
%prep
%setup -q
%patch0002 -p1
# Apply source-git patches
%autopatch -p1
%build
%py3_build
@ -80,13 +81,11 @@ rm -rf %{buildroot}/%{python3_sitelib}/tests
rm -rf %{buildroot}/%{python3_sitelib}/__main__.py
rm -rf %{buildroot}/%{python3_sitelib}/__pycache__/__main__*.py*
sed -i 's,#!/usr/bin/env python,#!/usr/bin/python3,' %{buildroot}%{_sbindir}/waagent
%if 0%{?with_legacy}
sed -i 's,#!/usr/bin/env python,#!/usr/bin/python2,' %{buildroot}%{_sbindir}/waagent2.0
%else
rm -f %{buildroot}%{_sbindir}/waagent2.0
%endif
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}
@ -109,6 +108,8 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam
%{_sbindir}/waagent
%config(noreplace) %{_sysconfdir}/waagent.conf
%{_unitdir}/waagent.service
%{_unitdir}/azure.slice
%{_unitdir}/azure-vmextensions.slice
%{python3_sitelib}/azurelinuxagent
%{python3_sitelib}/*.egg-info
@ -122,6 +123,14 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam
%endif
%changelog
* Wed May 25 2022 Miroslav Rezanina <mrezanin@redhat.com> - 2.7.0.6-1
- Rebase to 2.7.0.6-1 [bz#2083464]
- Adding restart_if implementation for RHEL [bz#2081944]
- Resolves: bz#2083464
([Azure][RHEL-9]Rebase WALinuxAgent to v2.7.0.6)
- Resolves: bz#2081944
([Azure][WALA][9.0] WALA provisions VM failed because of no "ifdown")
* Tue Aug 10 2021 Mohan Boddu <mboddu@redhat.com> - 2.3.0.2-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688

View File

@ -1 +1 @@
SHA512 (v2.3.0.2.tar.gz) = 7aa3c0d5a0987774625cacb4e5be105779db8e6531fba2d5d2fd58931616e8b79d00f253b972d1e531c652f6d782e607748e135fa522258f8a5fb137002e0e25
SHA512 (v2.7.0.6.tar.gz) = b23c9c31014d5f5e31952bb97babfcf45058fa2826d3ca167ee87d432a9459b99ce1b823e7c7e83933f8389368ee47d76398dd514ce0a3b27bfb47ba4e44a17b