diff --git a/.WALinuxAgent.metadata b/.WALinuxAgent.metadata index 8ac06c5..6fc22e2 100644 --- a/.WALinuxAgent.metadata +++ b/.WALinuxAgent.metadata @@ -1 +1 @@ -de1d5307a1fc937038536b27d1e32f7ee851d0dd SOURCES/WALinuxAgent-2.3.0.2.tar.gz +9d9b8fcd872d8782b96d312fb13f47a41658dd04 SOURCES/v2.7.0.6.tar.gz diff --git a/.gitignore b/.gitignore index 1b6e24f..d9de403 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/WALinuxAgent-2.3.0.2.tar.gz +SOURCES/v2.7.0.6.tar.gz diff --git a/SOURCES/0001-Add-inital-redhat-build-support.patch b/SOURCES/0001-Add-inital-redhat-build-support.patch index d330b09..a2aa39e 100644 --- a/SOURCES/0001-Add-inital-redhat-build-support.patch +++ b/SOURCES/0001-Add-inital-redhat-build-support.patch @@ -1,4 +1,4 @@ -From 3aa5fe71fd77f07c5b35ef40e774840f12ee4ee8 Mon Sep 17 00:00:00 2001 +From ee6172c4d57103ac857bbd69c46f247cee5394c3 Mon Sep 17 00:00:00 2001 From: Miroslav Rezanina Date: Thu, 6 Oct 2016 12:25:35 +0200 Subject: Add inital redhat build support @@ -17,6 +17,10 @@ Rebase notes (2.2.10): Rebase notes (2.2.46): - added waagent-extn.logrotate +Rebase notes (2.7.0.6): +- new files - azure.slice and azure-vmextensions.slice +- removed changes in not shipped scripts + Merged patches (2.2.45): - df29beb Switch from platform-python to python36 - 6749108 Stop packaging legacy waagent2.0 @@ -34,20 +38,17 @@ Merged patches (2.2.49): Merged patches (2.3.0.2): - 30bb06f9 Provide udev rules as a separate subpackage. + +Merged patches (2.7.0.6): +- a790fb5c Require iptables for setting up persistent firewall rules --- .gitignore | 1 + .gitpublish | 8 + - bin/waagent | 2 +- - bin/waagent2.0 | 2 +- - init/arch/waagent.service | 2 +- - init/clearlinux/waagent.service | 2 +- - init/suse/waagent | 2 +- - init/waagent.service | 2 +- makepkg.py | 2 +- redhat/.gitignore | 1 + redhat/Makefile | 72 +++++ redhat/Makefile.common | 37 +++ - redhat/WALinuxAgent.spec.template | 234 ++++++++++++++++ + redhat/WALinuxAgent.spec.template | 243 ++++++++++++++++ redhat/rpmbuild/BUILD/.gitignore | 2 + redhat/rpmbuild/RPMS/.gitignore | 2 + redhat/rpmbuild/SOURCES/.gitignore | 2 + @@ -58,9 +59,9 @@ Merged patches (2.3.0.2): redhat/scripts/git-compile-check | 215 ++++++++++++++ redhat/scripts/process-patches.sh | 93 ++++++ redhat/scripts/tarball_checksum.sh | 3 + - setup.py | 2 +- + setup.py | 6 +- tests/data/ext/sample_ext-1.3.0/sample.py | 2 +- - 25 files changed, 1037 insertions(+), 9 deletions(-) + 19 files changed, 1042 insertions(+), 5 deletions(-) create mode 100644 .gitpublish create mode 100644 redhat/.gitignore create mode 100644 redhat/Makefile @@ -77,78 +78,6 @@ Merged patches (2.3.0.2): create mode 100755 redhat/scripts/process-patches.sh create mode 100755 redhat/scripts/tarball_checksum.sh -diff --git a/bin/waagent b/bin/waagent -index 60cdf56c..0443ecb4 100755 ---- a/bin/waagent -+++ b/bin/waagent -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/python3.6 - # - # Azure Linux Agent - # -diff --git a/bin/waagent2.0 b/bin/waagent2.0 -index 34732677..762d211f 100644 ---- a/bin/waagent2.0 -+++ b/bin/waagent2.0 -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # - # Azure Linux Agent - # -diff --git a/init/arch/waagent.service b/init/arch/waagent.service -index d426eb21..ff1ebab1 100644 ---- a/init/arch/waagent.service -+++ b/init/arch/waagent.service -@@ -8,7 +8,7 @@ ConditionPathExists=/etc/waagent.conf - - [Service] - Type=simple --ExecStart=/usr/bin/python -u /usr/bin/waagent -daemon -+ExecStart=/usr/bin/python3 -u /usr/bin/waagent -daemon - Restart=always - RestartSec=5 - -diff --git a/init/clearlinux/waagent.service b/init/clearlinux/waagent.service -index 9afee454..c29fc1b2 100644 ---- a/init/clearlinux/waagent.service -+++ b/init/clearlinux/waagent.service -@@ -8,7 +8,7 @@ ConditionPathExists=/usr/share/defaults/waagent/waagent.conf - - [Service] - Type=simple --ExecStart=/usr/bin/python -u /usr/bin/waagent -daemon -+ExecStart=/usr/bin/python3 -u /usr/bin/waagent -daemon - Restart=always - RestartSec=5 - -diff --git a/init/suse/waagent b/init/suse/waagent -index b77b0fa4..317e89ec 100755 ---- a/init/suse/waagent -+++ b/init/suse/waagent -@@ -34,7 +34,7 @@ - # Description: Start the MicrosoftAzureLinuxAgent - ### END INIT INFO - --PYTHON=/usr/bin/python -+PYTHON=/usr/bin/python3 - WAZD_BIN=/usr/sbin/waagent - WAZD_CONF=/etc/waagent.conf - WAZD_PIDFILE=/var/run/waagent.pid -diff --git a/init/waagent.service b/init/waagent.service -index e91f1433..99f31830 100644 ---- a/init/waagent.service -+++ b/init/waagent.service -@@ -8,7 +8,7 @@ ConditionPathExists=/etc/waagent.conf - - [Service] - Type=simple --ExecStart=/usr/bin/python -u /usr/sbin/waagent -daemon -+ExecStart=/usr/bin/python3.6 -u /usr/sbin/waagent -daemon - Restart=always - RestartSec=5 - diff --git a/makepkg.py b/makepkg.py index 11e90b95..1b6b4351 100755 --- a/makepkg.py @@ -160,7 +89,7 @@ index 11e90b95..1b6b4351 100755 import glob import os diff --git a/setup.py b/setup.py -index c258e4b8..ba6783c6 100755 +index 12c9e1d6..586bb5ca 100755 --- a/setup.py +++ b/setup.py @@ -1,4 +1,4 @@ @@ -169,6 +98,24 @@ index c258e4b8..ba6783c6 100755 # # Microsoft Azure Linux Agent 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("8"): + # 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("8"): + # redhat 8+ uses systemd and python3 + set_systemd_files(data_files, dest=systemd_dir_path, + src=["init/redhat/waagent.service", diff --git a/tests/data/ext/sample_ext-1.3.0/sample.py b/tests/data/ext/sample_ext-1.3.0/sample.py index 47f86af8..92585ed3 100755 --- a/tests/data/ext/sample_ext-1.3.0/sample.py @@ -180,5 +127,5 @@ index 47f86af8..92585ed3 100755 import os import re -- -2.27.0 +2.31.1 diff --git a/SOURCES/0002-Implement-restart_if-for-RedHat-OS.patch b/SOURCES/0002-Implement-restart_if-for-RedHat-OS.patch new file mode 100644 index 0000000..d90a129 --- /dev/null +++ b/SOURCES/0002-Implement-restart_if-for-RedHat-OS.patch @@ -0,0 +1,40 @@ +From 0a9c628d9edd67af7b6f20d034be85c1c552a512 Mon Sep 17 00:00:00 2001 +From: Miroslav Rezanina +Date: Tue, 24 May 2022 04:10:46 -0400 +Subject: Implement restart_if for RedHat OS + +Signed-off-by: Vitaly Kuznetsov +Signed-off-by: Miroslav Rezanina +--- + 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 + diff --git a/SPECS/WALinuxAgent.spec b/SPECS/WALinuxAgent.spec index 8344ba3..e0284ea 100644 --- a/SPECS/WALinuxAgent.spec +++ b/SPECS/WALinuxAgent.spec @@ -1,15 +1,16 @@ Summary: Microsoft Azure Linux Agent Name: WALinuxAgent -Version: 2.3.0.2 -Release: 2%{?dist} +Version: 2.7.0.6 +Release: 1%{?dist} License: ASL 2.0 Group: Development/Libraries Url: https://github.com/Azure/WALinuxAgent -Source0: WALinuxAgent-2.3.0.2.tar.gz +Source0: v2.7.0.6.tar.gz BuildArch: noarch Patch0001: 0001-Add-inital-redhat-build-support.patch +Patch0002: 0002-Implement-restart_if-for-RedHat-OS.patch # rhel requirements BuildRequires: python3-devel @@ -43,6 +44,7 @@ Udev rules specific to Microsoft Azure Virtual Machines. %setup -q %patch0001 -p1 +%patch0002 -p1 %build %py3_build @@ -73,11 +75,22 @@ rm -rf $RPM_BUILD_ROOT %config(noreplace) %{_sysconfdir}/logrotate.d/waagent.logrotate %{_sbindir}/waagent %{_unitdir}/waagent.service +%{_unitdir}/azure.slice +%{_unitdir}/azure-vmextensions.slice + %files udev %{_udevrulesdir}/*.rules %changelog +* Wed May 25 2022 Miroslav Rezanina - 2.7.0.6-1 +- Rebase to 2.7.0.6 [bz#2083465] +- Adding restart_if implementation for RHEL [bz#2085578] +- Resolves: bz#2083465 + ([Azure][RHEL-8][8.7] Rebase WALinuxAgent to v2.7.0.6) +- Resolves: bz#2085578 + ([Azure][WALA][8.6] WALA provisions VM failed because of no "ifdown") + * Mon Aug 09 2021 Miroslav Rezanina - 2.3.0.2-2 - wla-Require-iptables-for-setting-up-persistent-firewall-.patch [bz#1985198] - Resolves: bz#1985198