Compare commits

...

No commits in common. "c8" and "c10s" have entirely different histories.
c8 ... c10s

16 changed files with 809 additions and 698 deletions

View File

@ -1 +0,0 @@
9d9b8fcd872d8782b96d312fb13f47a41658dd04 SOURCES/v2.7.0.6.tar.gz

26
.gitignore vendored
View File

@ -1 +1,25 @@
SOURCES/v2.7.0.6.tar.gz
/WALinuxAgent-b3f2619a854455675ae5f2ee14726659e0398af7.tar.gz
/WALinuxAgent-26785b64279913d416767a6288a3b3f970ed4522.tar.gz
/WALinuxAgent-30019ae2c10a5c78f55d4ec342db07366abcc602.tar.gz
/WALinuxAgent-54d4ebde1a626e6bd000abdfd518e150b0495f37.tar.gz
/WALinuxAgent-5bb9df7f2f485dbd5be057bbb657afe54bc1bf1b.tar.gz
/WALinuxAgent-2.2.25.tar.gz
/WALinuxAgent-2.2.32.tar.gz
/WALinuxAgent-2.2.37.tar.gz
/WALinuxAgent-2.2.38.tar.gz
/WALinuxAgent-2.2.40.tar.gz
/WALinuxAgent-2.2.46.tar.gz
/v2.2.48.1.tar.gz
/WALinuxAgent-2.2.52.tar.gz
/v2.2.52.tar.gz
/module-setup.sh
/v2.2.54.2.tar.gz
/v2.3.0.2.tar.gz
/v2.3.1.1.tar.gz
/v2.5.0.2.tar.gz
/v2.7.0.6.tar.gz
/v2.7.1.0.tar.gz
/v2.7.3.0.tar.gz
/v2.8.0.11.tar.gz
/v2.9.0.4.tar.gz
/v2.9.1.1.tar.gz

View File

@ -0,0 +1,69 @@
From dac5101c56b59dbb14d96d4344d6cb2ac047b392 Mon Sep 17 00:00:00 2001
From: Chris Patterson <cpatterson@microsoft.com>
Date: Thu, 1 Sep 2022 10:45:47 -0400
Subject: [PATCH] waagent.service: set ConditionVirtualization=|microsoft
Only start waagent service when running under Microsoft virtualization.
Set it as a triggering condition to make it easier for downstreams or
test setups to add another condition (i.e. run outside of hyperv).
Signed-off-by: Chris Patterson <cpatterson@microsoft.com>
---
bin/waagent2.0 | 1 +
init/redhat/py2/waagent.service | 1 +
init/redhat/waagent.service | 1 +
init/waagent.service | 1 +
4 files changed, 4 insertions(+)
diff --git a/bin/waagent2.0 b/bin/waagent2.0
index 34732677..c84c8c40 100644
--- a/bin/waagent2.0
+++ b/bin/waagent2.0
@@ -1569,6 +1569,7 @@ After=network.target
After=sshd.service
ConditionFileIsExecutable=/usr/sbin/waagent
ConditionPathExists=/etc/waagent.conf
+ConditionVirtualization=|microsoft
[Service]
Type=simple
diff --git a/init/redhat/py2/waagent.service b/init/redhat/py2/waagent.service
index c6d15420..132e7027 100644
--- a/init/redhat/py2/waagent.service
+++ b/init/redhat/py2/waagent.service
@@ -5,6 +5,7 @@ After=network-online.target
ConditionFileIsExecutable=/usr/sbin/waagent
ConditionPathExists=/etc/waagent.conf
+ConditionVirtualization=|microsoft
[Service]
Type=simple
diff --git a/init/redhat/waagent.service b/init/redhat/waagent.service
index dc11fbb1..7c93b101 100644
--- a/init/redhat/waagent.service
+++ b/init/redhat/waagent.service
@@ -5,6 +5,7 @@ After=network-online.target
ConditionFileIsExecutable=/usr/sbin/waagent
ConditionPathExists=/etc/waagent.conf
+ConditionVirtualization=|microsoft
[Service]
Type=simple
diff --git a/init/waagent.service b/init/waagent.service
index e91f1433..aa1f3203 100644
--- a/init/waagent.service
+++ b/init/waagent.service
@@ -5,6 +5,7 @@ After=network-online.target
ConditionFileIsExecutable=/usr/sbin/waagent
ConditionPathExists=/etc/waagent.conf
+ConditionVirtualization=|microsoft
[Service]
Type=simple
--
2.37.3

View File

@ -1,131 +0,0 @@
From ee6172c4d57103ac857bbd69c46f247cee5394c3 Mon Sep 17 00:00:00 2001
From: Miroslav Rezanina <mrezanin@redhat.com>
Date: Thu, 6 Oct 2016 12:25:35 +0200
Subject: Add inital redhat build support
Rebase notes (2.2.32):
- Fix license text
Rebase notes (2.2.26):
- update to RHEL 8 build
- Do not use INSTALED_FILES for %files
Rebase notes (2.2.10):
- switched to sha256
- added .gitpublish profile
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
Merged patches (2.2.32):
- ce36fd9 Use Python3
- 952c830 Remove FIPS setting from the default config
- cc9df73 Switch hardcoded python3 shebangs into the %%{__python3} macro
- 66b6f8c Use correct macro for waagent.service
- 1b15ada Switch to platform-python in systemd unit file
- 59f682b Use sys.executable to find system python
Merged patches (2.2.49):
- 3a23336 Mark logrotate configs with %config(noreplace)
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 +
makepkg.py | 2 +-
redhat/.gitignore | 1 +
redhat/Makefile | 72 +++++
redhat/Makefile.common | 37 +++
redhat/WALinuxAgent.spec.template | 243 ++++++++++++++++
redhat/rpmbuild/BUILD/.gitignore | 2 +
redhat/rpmbuild/RPMS/.gitignore | 2 +
redhat/rpmbuild/SOURCES/.gitignore | 2 +
redhat/rpmbuild/SPECS/.gitignore | 2 +
redhat/rpmbuild/SRPMS/.gitignore | 2 +
redhat/scripts/frh.py | 27 ++
redhat/scripts/git-backport-diff | 327 ++++++++++++++++++++++
redhat/scripts/git-compile-check | 215 ++++++++++++++
redhat/scripts/process-patches.sh | 93 ++++++
redhat/scripts/tarball_checksum.sh | 3 +
setup.py | 6 +-
tests/data/ext/sample_ext-1.3.0/sample.py | 2 +-
19 files changed, 1042 insertions(+), 5 deletions(-)
create mode 100644 .gitpublish
create mode 100644 redhat/.gitignore
create mode 100644 redhat/Makefile
create mode 100644 redhat/Makefile.common
create mode 100644 redhat/WALinuxAgent.spec.template
create mode 100644 redhat/rpmbuild/BUILD/.gitignore
create mode 100644 redhat/rpmbuild/RPMS/.gitignore
create mode 100644 redhat/rpmbuild/SOURCES/.gitignore
create mode 100644 redhat/rpmbuild/SPECS/.gitignore
create mode 100644 redhat/rpmbuild/SRPMS/.gitignore
create mode 100755 redhat/scripts/frh.py
create mode 100755 redhat/scripts/git-backport-diff
create mode 100755 redhat/scripts/git-compile-check
create mode 100755 redhat/scripts/process-patches.sh
create mode 100755 redhat/scripts/tarball_checksum.sh
diff --git a/makepkg.py b/makepkg.py
index 11e90b95..1b6b4351 100755
--- a/makepkg.py
+++ b/makepkg.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import glob
import os
diff --git a/setup.py b/setup.py
index 12c9e1d6..586bb5ca 100755
--- a/setup.py
+++ b/setup.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
#
# 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
+++ b/tests/data/ext/sample_ext-1.3.0/sample.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
import json
import os
import re
--
2.31.1

View File

@ -1,40 +0,0 @@
From 0a9c628d9edd67af7b6f20d034be85c1c552a512 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

@ -1,108 +0,0 @@
From 97728b1371d39f5ddd31004db0ba87b268308c5d Mon Sep 17 00:00:00 2001
From: Mohammed Gamal <mgamal@redhat.com>
Date: Wed, 3 Aug 2022 13:39:56 +0200
Subject: [PATCH 2/2] Update Log Collector default in Comments and Readme
(#2608)
RH-Author: Mohamed Gamal Morsy <mmorsy@redhat.com>
RH-MergeRequest: 9: Update Log Collector default in Comments and Readme
RH-Commit: [1/1] ff82c0e933649ccd06d3cc48753324cddef2c56a
RH-Bugzilla: 2114824
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2114824
(cherry picked from commit a560872bec103523e73ddcb5fb5705896545ffce)
Signed-off-by: Mohammed Gamal <mgamal@redhat.com>
---
README.md | 2 +-
config/debian/waagent.conf | 2 +-
config/suse/waagent.conf | 2 +-
config/ubuntu/waagent.conf | 2 +-
config/waagent.conf | 2 +-
tests/data/test_waagent.conf | 2 +-
6 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/README.md b/README.md
index c69f43e6..f2f3db46 100644
--- a/README.md
+++ b/README.md
@@ -465,7 +465,7 @@ _Default: y_
If set, agent logs will be periodically collected and uploaded to a secure location for improved supportability.
-NOTE: This feature is only supported ubuntu 16.04+; this flag will not take effect on any other distro.
+NOTE: This feature relies on the agent's resource usage features (cgroups); this flag will not take effect on any distro not supported.
#### __Logs.CollectPeriod__
diff --git a/config/debian/waagent.conf b/config/debian/waagent.conf
index 6bc36604..dfd7afcd 100644
--- a/config/debian/waagent.conf
+++ b/config/debian/waagent.conf
@@ -63,7 +63,7 @@ Logs.Verbose=n
# Enable Console logging, default is y
# Logs.Console=y
-# Enable periodic log collection, default is n
+# Enable periodic log collection, default is y
Logs.Collect=y
# How frequently to collect logs, default is each hour
diff --git a/config/suse/waagent.conf b/config/suse/waagent.conf
index ac9f11a2..c617f9af 100644
--- a/config/suse/waagent.conf
+++ b/config/suse/waagent.conf
@@ -66,7 +66,7 @@ Logs.Verbose=n
# Enable Console logging, default is y
# Logs.Console=y
-# Enable periodic log collection, default is n
+# Enable periodic log collection, default is y
Logs.Collect=y
# How frequently to collect logs, default is each hour
diff --git a/config/ubuntu/waagent.conf b/config/ubuntu/waagent.conf
index 63635a81..19b56bae 100644
--- a/config/ubuntu/waagent.conf
+++ b/config/ubuntu/waagent.conf
@@ -66,7 +66,7 @@ Logs.Verbose=n
# Enable Console logging, default is y
# Logs.Console=y
-# Enable periodic log collection, default is n
+# Enable periodic log collection, default is y
Logs.Collect=y
# How frequently to collect logs, default is each hour
diff --git a/config/waagent.conf b/config/waagent.conf
index c7d10e2f..14cd01c8 100644
--- a/config/waagent.conf
+++ b/config/waagent.conf
@@ -72,7 +72,7 @@ Logs.Verbose=n
# Enable Console logging, default is y
# Logs.Console=y
-# Enable periodic log collection, default is n
+# Enable periodic log collection, default is y
Logs.Collect=y
# How frequently to collect logs, default is each hour
diff --git a/tests/data/test_waagent.conf b/tests/data/test_waagent.conf
index a386228a..cc60886e 100644
--- a/tests/data/test_waagent.conf
+++ b/tests/data/test_waagent.conf
@@ -67,7 +67,7 @@ ResourceDisk.MountOptions=None
# Enable verbose logging (y|n)
Logs.Verbose=n
-# Enable periodic log collection, default is n
+# Enable periodic log collection, default is y
Logs.Collect=y
# How frequently to collect logs, default is each hour
--
2.31.1

View File

@ -1,45 +0,0 @@
From 85638d1238ba9ab0c77138133ab1b7c7069e3821 Mon Sep 17 00:00:00 2001
From: Vitaly Kuznetsov <vkuznets@redhat.com>
Date: Tue, 21 Feb 2023 10:29:52 +0100
Subject: [PATCH 2/2] Use platform-python in waagent.service
RH-Author: Vitaly Kuznetsov <vkuznets@redhat.com>
RH-MergeRequest: 16: Use platform-python in waagent.service
RH-Bugzilla: 2170104
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
RH-Commit: [2/2] e548a4d37bd89e6e2eb471b5193b76f1f9f9529b
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2170104
Upstream: RHEL only
WALinuxAgent in RHEL8 uses platform-python, which is python3.6.
'waagent.service', however, overrides this by calling
'/usr/bin/python3' directly and in case this point to a newer
AppStream Python (e.g. Python3.9) WALinuxAgent breaks as it can't
find its files.
See also: https://github.com/Azure/WALinuxAgent/issues/2728
See also: https://github.com/Azure/WALinuxAgent/pull/2729
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
init/redhat/waagent.service | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/init/redhat/waagent.service b/init/redhat/waagent.service
index dc11fbb1..29056395 100644
--- a/init/redhat/waagent.service
+++ b/init/redhat/waagent.service
@@ -8,7 +8,7 @@ ConditionPathExists=/etc/waagent.conf
[Service]
Type=simple
-ExecStart=/usr/bin/python3 -u /usr/sbin/waagent -daemon
+ExecStart=/usr/sbin/waagent -daemon
Restart=always
RestartSec=5
Slice=azure.slice
--
2.37.3

View File

@ -1,57 +0,0 @@
From ac21739b94266387360a7ba2b3cfeb44c3df5b01 Mon Sep 17 00:00:00 2001
From: Mohammed Gamal <mgamal@redhat.com>
Date: Wed, 22 Jun 2022 13:36:07 +0200
Subject: [PATCH] redhat: Fix command sequence for restarting net interface
RH-Author: Mohamed Gamal Morsy <mmorsy@redhat.com>
RH-MergeRequest: 4: redhat: Fix command sequence for restarting net interface
RH-Commit: [1/1] ac14220635c30b3361399ae33a5ecd4e7d8cf92b
RH-Bugzilla: 2080826
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2080826
Apparently the down and up commands need to be run in the same command, so
connect them together with "&&" operator. Also re-implement restart_if ot handle
warnings same wat as other distros
Signed-off-by: Mohammed Gamal <mgamal@redhat.com>
---
azurelinuxagent/common/osutil/redhat.py | 22 ++++++++++------------
1 file changed, 10 insertions(+), 12 deletions(-)
diff --git a/azurelinuxagent/common/osutil/redhat.py b/azurelinuxagent/common/osutil/redhat.py
index a02647cd..5c397ae8 100644
--- a/azurelinuxagent/common/osutil/redhat.py
+++ b/azurelinuxagent/common/osutil/redhat.py
@@ -147,16 +147,14 @@ class RedhatOSUtil(Redhat6xOSUtil):
"""
Restart an interface by bouncing the link.
"""
- retry_limit=retries+1
+ 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")
+ return_code = shellutil.run("ip link set {0} down && ip link set {0} up".format(ifname), expected_errors=[1] if attempt < retries else [])
+ if return_code == 0:
+ return
+ logger.warn("failed to restart {0}: return code {1}".format(ifname, return_code))
+ if attempt < retry_limit:
+ logger.info("retrying in {0} seconds".format(wait))
+ time.sleep(wait)
+ else:
+ logger.warn("exceeded restart retries")
--
2.35.3

View File

@ -1,306 +0,0 @@
Summary: Microsoft Azure Linux Agent
Name: WALinuxAgent
Version: 2.7.0.6
Release: 8%{?dist}
License: ASL 2.0
Group: Development/Libraries
Url: https://github.com/Azure/WALinuxAgent
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
# For bz#2080826 - [Azure][WALA][RHEL-8] [8.7] walinuxagent kills network during boot
Patch0003: wla-redhat-Fix-command-sequence-for-restarting-net-inter.patch
# For bz#2092002 - [Azure][WALA][RHEL-8.7] Provisioning failed if no ifcfg-eth0
Patch4: wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch
# For bz#2114824 - [Azure][WALA][RHEL-8.7] The description of "Logs.Collect" is incorrect
Patch5: wla-Update-Log-Collector-default-in-Comments-and-Readme-.patch
# For bz#2170104 - [Azure][WALA][RHEL-8] systemd service should not use python3
Patch6: wla-Use-platform-python-in-waagent.service.patch
# rhel requirements
BuildRequires: python3-devel
BuildRequires: python3-setuptools
Requires: %name-udev = %version-%release
Requires: openssh
Requires: openssh-server
Requires: openssl
Requires: parted
Requires: python3-pyasn1
Requires: python36
Requires: iptables
BuildRequires: systemd
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%description
The Azure Linux Agent supports the provisioning and running of Linux
VMs in the Azure cloud. This package should be installed on Linux disk
images that are built to run in the Azure environment.
%package udev
Summary: Udev rules for Microsoft Azure
%description udev
Udev rules specific to Microsoft Azure Virtual Machines.
%prep
%setup -q
%patch0001 -p1
%patch0002 -p1
%patch0003 -p1
%patch4 -p1
%patch5 -p1
%patch6 -p1
%build
%py3_build
%install
%{__python3} setup.py install --single-version-externally-managed -O1 --root=$RPM_BUILD_ROOT --record=INSTALLED_FILES
rm -f %{buildroot}%{_sbindir}/waagent2.0
mkdir -p %{buildroot}%{_udevrulesdir}
mv %{buildroot}%{_sysconfdir}/udev/rules.d/*.rules %{buildroot}%{_udevrulesdir}/
%clean
rm -rf $RPM_BUILD_ROOT
%post
%systemd_post waagent.service
%preun
%systemd_preun waagent.service
%postun
%systemd_postun_with_restart waagent.service
rm -rf %{_unitdir}/waagent.service.d/
%files
%defattr(-,root,root)
%{python3_sitelib}/*
%config(noreplace) %{_sysconfdir}/waagent.conf
%config(noreplace) %{_sysconfdir}/logrotate.d/waagent.logrotate
%{_sbindir}/waagent
%{_unitdir}/waagent.service
%{_unitdir}/azure.slice
%{_unitdir}/azure-vmextensions.slice
%ghost %{_unitdir}/waagent-network-setup.service
%files udev
%{_udevrulesdir}/*.rules
%changelog
* Mon Mar 06 2023 Jon Maloy <jmaloy@redhat.com> - 2.7.0.6-8.el8_8
- wla-redhat-Fix-frh.py-to-not-skip-valid-patches-to-init-.patch [bz#2170104]
- wla-Use-platform-python-in-waagent.service.patch [bz#2170104]
- Resolves: bz#2170104
([Azure][WALA][RHEL-8] systemd service should not use python3)
* Mon Mar 06 2023 Jon Maloy <jmaloy@redhat.com> - 2.7.0.6-7.el8_8
- wla-redhat-Fix-frh.py-to-not-skip-valid-patches-to-init-.patch [bz#2170104]
- wla-Use-platform-python-in-waagent.service.patch [bz#2170104]
- Resolves: bz#2170104
([Azure][WALA][RHEL-8] systemd service should not use python3)
* Mon Aug 29 2022 Miroslav Rezanina <mrezanin@redhat.com> - 2.7.0.6-6
- wla-redhat-Remove-files-inside-WALA-services-directory.patch [bz#2114742]
- Resolves: bz#2114742
([Azure][WALA][RHEL-8] When remove package some files left)
* Tue Aug 23 2022 Miroslav Rezanina <mrezanin@redhat.com> - 2.7.0.6-5
- wla-redhat-Mark-directories-properly-in-the-files-list.patch [bz#2114742]
- Resolves: bz#2114742
([Azure][WALA][RHEL-8] When remove package some files left)
* Wed Aug 17 2022 Jon Maloy <jmaloy@redhat.com> - 2.7.0.6-4
- wla-redhat-Remove-all-waagent-unit-files-when-uninstalli.patch [bz#2114742]
- Resolves: bz#2114742
([Azure][WALA][RHEL-8] When remove package some files left)
* Tue Aug 09 2022 Miroslav Rezanina <mrezanin@redhat.com> - 2.7.0.6-3
- wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch [bz#2092002]
- wla-Update-Log-Collector-default-in-Comments-and-Readme-.patch [bz#2114824]
- Resolves: bz#2092002
([Azure][WALA][RHEL-8.7] Provisioning failed if no ifcfg-eth0)
- Resolves: bz#2114824
([Azure][WALA][RHEL-8.7] The description of "Logs.Collect" is incorrect)
* Tue Jul 12 2022 Camilla Conte <cconte@redhat.com> - 2.7.0.6-2
- wla-redhat-Fix-command-sequence-for-restarting-net-inter.patch [bz#2080826]
- Resolves: bz#2080826
([Azure][WALA][RHEL-8] [8.7] walinuxagent kills network during boot)
* Wed May 25 2022 Miroslav Rezanina <mrezanin@redhat.com> - 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 <mrezanin@redhat.com> - 2.3.0.2-2
- wla-Require-iptables-for-setting-up-persistent-firewall-.patch [bz#1985198]
- Resolves: bz#1985198
([Azure][WALA][RHEL-8] WALA needs iptables package)
* Fri Jun 25 2021 Miroslav Rezanina <mrezanin@redhat.com> - 2.3.0.2-1
- Rebase to 2.3.0.2 [bz#1972102]
- Resolves: bz#1972102
([Azure][RHEL-8]Rebase WALinuxAgent to 2.3.0.2)
* Tue Jan 12 2021 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.49.2-3.el8
- wla-Provide-udev-rules-as-a-separate-subpackage.patch [bz#1913074]
- Resolves: bz#1913074
([Azure][RFE] please provide the WALinuxAgent-udev subpackage)
* Thu Dec 17 2020 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.49.2-2.el8
- wla-Fixed-faulty-check-for-run_command-2093.patch [bz#1903074]
- Resolves: bz#1903074
([Azure][WALA] Miss report "hostnamectl set-hostname --static] failed, attempting fallback")
* Wed Nov 18 2020 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.49.2-1.el8
- Rebase to 2.2.49.2 [bz#1896907]
([Azure] Rebase WALinuxAgent to 2.2.49)
* Thu Aug 13 2020 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.46-8.el8
- wla-Fix-handling-of-gen2-disks-with-udev-rules-1954.patch [bz#1859037]
- Resolves: bz#1859037
([Azure][WALA]Cannot create /dev/disk/azure/resource softlinks in Gen2 VM)
* Wed Jun 10 2020 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.46-7.el8
- wla-Mark-logrotate-configs-with-config-noreplace.patch [bz#1838254]
- Resolves: bz#1838254
([Azure]WALinuxAgent RPM update clobbers waagent.logrotate log rotation changes)
* Tue May 26 2020 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.46-6.el8
- wala-Update-Provisioning-options-1853.patch [bz#1827792]
- Resolves: bz#1822882
([Azure][RHEL-8]Some parameter changes are not in waagent.conf)
* Thu Apr 09 2020 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.46-5.el8
- Rebase to 2.2.46 [bz#1791069]
- Resolves: bz#1791069
([Azure][RHEL-8.3]Ask to increase the WALA version available for RHEL 8.0 to 2.2.46)
* Wed Jun 26 2019 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.32-3.el8
- wla-Switch-from-platform-python-to-python36.patch [bz#1720373]
- wla-Stop-packaging-legacy-waagent2.0.patch [bz#1720373]
- Resolves: bz#1720373
([RHEL 8.1] [Azure] Change WALinuxAgent spec to depend on Python3.6 package)
* Tue Apr 30 2019 Danilo Cesar Lemes de Paula <ddepaula@redhat.com> - 2.2.32-2.el8
- wla-Add-fixes-for-handling-swap-file-and-other-nit-fixes.patch [bz#1684181 bz#1688276]
- Resolves: bz#1684181
(CVE-2019-0804 WALinuxAgent: swapfile created with weak permissions)
- Resolves: bz#1688276
(CVE-2019-0804 WALinuxAgent: swapfile created with weak permissions [rhel-8])
* Fri Dec 14 2018 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.32-1.el8
- Rebase to 2.2.32 [bz#1639498]
- Resolves: bz#1639498]
(walinuxagent 2.2.32 packaging request for RHEL 8)
* Tue Oct 23 2018 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.26-6.el8
- wala-Use-sys.executable-to-find-system-python.patch [bz#1639775]
- Resolves: bz#1639775
(WALinuxAgent: Systemd unit file will fail to execute)
* Mon Oct 22 2018 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.26-5.el8
- wala-Switch-to-platform-python-in-systemd-unit-file.patch [bz#1639775]
- Resolves: bz#1639775
(WALinuxAgent: Systemd unit file will fail to execute)
* Wed Aug 29 2018 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.26-4.el8
- Fix unit file location [bz#1637545]
- Resolves: bz#1637545
(Wrong macro used for systemd unit file location)
* Wed Jul 04 2018 Tomas Orsava <torsava@redhat.com> - 2.2.26-3
- Switch hardcoded python3 shebangs into the %%{__python3} macro
* Tue Jul 03 2018 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.26-2.el8
- Include 7.6 patches
* Tue Jul 03 2018 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.26-1.el7
- Rebase to 2.2.26 [bz#1571523]
- Resolves: bz#1571523
(Rebase WALinuxAgent in RHEL-8.0)
* Thu May 03 2018 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.18-2.el7
- wa-Add-show-configuration-option.patch [bz#1508340]
- Resolves: bz#1508340
([WALA] WALA usage prompt lack of " waagent -show-configuration")
* Tue Oct 10 2017 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.18-1.el7
- Rebase to 2.2.18 [bz#1491873]
- Resolves: bz#1491873
([WALA]Request to package WALA 2.2.18 into RHEL 7 Repo)
* Tue Jul 04 2017 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.14-1.el7
- Rebase to 2.2.14 [bz#1451172]
- wla-Remove-FIPS-setting-from-the-default-config.patch [bz#1467553]
- Resolves: bz#1451172
([WALA] Request to package WALA 2.2.14 into RHEL 7 Repo)
- Resolves: bz#1467553
([WALA] Remove FIPS from default config in WALA-2.2.14)
* Wed Apr 26 2017 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.10-1.el7
- Rebase to 2.2.10 [bz#1443425]
- Resolves: bz#1443425
([WALA]Request to package WALA 2.2.10 into RHEL 7 Repo)
* Wed Apr 19 2017 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.4-2.el7
- Enable AutoUpdate by default [bz#1434933]
- Resolves: bz#1434933
([WALA][RHEL-7] Enable AutoUpdate by default)
* Wed Mar 01 2017 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.4-1.el7
- Rebase to 2.2.4 [bz#1419201]
- resolves: bz#1419201
WALA 2.2.4
* Mon Jan 16 2017 Miroslav Rezanina <mrezanin@redhat.com> - 2.2.0-4.el7
- agent-RHEL-7-hostname-533.patch [bz#1413674]
- agent-fix-for-hostnamectl-534.patch [bz#1413674]
- Resolves: bz#1413674
([WALA] Fail to send hostname to DHCP server during provisioning)
* Fri Sep 30 2016 Dave Anderson <anderson@redhat.com> - 2.2.0-1
- Update to v2.2.0
Resolves: rhbz#1360492
* Wed Sep 21 2016 Dave Anderson <anderson@redhat.com> - 2.1.5-2
- Several QE updates to this file
Resolves: rhbz#1360492
* Tue Sep 13 2016 Dave Anderson <anderson@redhat.com> - 2.1.5-1
- Update to v2.1.5
Resolves: rhbz#1360492
* Thu Jan 14 2016 Dave Anderson <anderson@redhat.com> - 2.0.16-1
- Update to 2.0.16
Resolves: rhbz#1296360
* Mon Jun 01 2015 Dave Anderson <anderson@redhat.com> - 2.0.13-1
- Update to upstream 2.0.13 package.
- Remove global commit md5sum and fix Source0 to point to correct location.
- Fix setup to deal with "WALinuxAgent-WALinuxAgent" naming scheme
- Added files reference for /udev/rules.d/99-azure-product-uuid.rules
* Thu May 07 2015 Dave Anderson <anderson@redhat.com> - 2.0.11-3
- Remove Requires: ntfsprogs for RHEL7
* Sat Jan 10 2015 Scott K Logan <logans@cottsay.net> - 2.0.11-2
- Use systemd for rhel7
- Own logrotate.d
- Fix python2-devel dep
* Sat Dec 20 2014 Scott K Logan <logans@cottsay.net> - 2.0.11-1
- Initial package

345
WALinuxAgent.spec Normal file
View File

@ -0,0 +1,345 @@
%global with_legacy 0
%global dracut_modname 97walinuxagent
Name: WALinuxAgent
Version: 2.9.1.1
Release: 8%{?dist}
Summary: The Microsoft Azure Linux Agent
License: Apache-2.0
URL: https://github.com/Azure/%{name}
Source0: https://github.com/Azure/%{name}/archive/v%{version}.tar.gz
Source1: module-setup.sh
Patch1: 0001-waagent.service-set-ConditionVirtualization-microsof.patch
# For RHEL-35963 - [Azure][WALA] Consider to disable Log collector [rhel-10]
Patch2: wla-Disable-automatic-log-collector.patch
# For RHEL-40966 - [Azure][WALA][RHEL-10] Provisioning failed if no ifcfg-eth0
Patch3: wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch
# For RHEL-46713 - [Azure][RHEL-10][WALA] waagent -collect-logs doesn't work and the log is confusing
Patch4: wla-skip-cgorup-monitor-2939.patch
BuildArch: noarch
BuildRequires: python3-devel
BuildRequires: python3-setuptools
BuildRequires: python3-distro
Requires: %name-udev = %version-%release
%if 0%{?fedora}
Requires: ntfsprogs
%endif
Requires: openssh
Requires: openssh-server
Requires: openssl
Requires: parted
Requires: python3-pyasn1
Requires: iptables
BuildRequires: systemd
Requires(post): systemd
Requires(preun): systemd
Requires(postun): systemd
%description
The Microsoft Azure Linux Agent supports the provisioning and running of Linux
VMs in the Microsoft Azure cloud. This package should be installed on Linux disk
images that are built to run in the Microsoft Azure environment.
%if 0%{?with_legacy}
%package legacy
Summary: The Microsoft Azure Linux Agent (legacy)
Requires: %name = %version-%release
Requires: python2
Requires: net-tools
%description legacy
The Microsoft Azure Linux Agent supporting old version of extensions.
%endif
%package udev
Summary: Udev rules for Microsoft Azure
%description udev
Udev rules specific to Microsoft Azure Virtual Machines.
%prep
%setup -q
%autopatch -p1
%build
%py3_build
%install
%{__python3} setup.py install -O1 --skip-build --root %{buildroot} --lnx-distro redhat
mkdir -p -m 0700 %{buildroot}%{_sharedstatedir}/waagent
mkdir -p %{buildroot}%{_localstatedir}/log
touch %{buildroot}%{_localstatedir}/log/waagent.log
mkdir -p %{buildroot}%{_udevrulesdir}
mv %{buildroot}%{_sysconfdir}/udev/rules.d/*.rules %{buildroot}%{_udevrulesdir}/
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}
install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modname}/ %{SOURCE1}
%post
%systemd_post waagent.service
%preun
%systemd_preun waagent.service
%postun
%systemd_postun_with_restart waagent.service
rm -rf %{_unitdir}/waagent.service.d/
%files
%doc LICENSE.txt NOTICE README.md
%ghost %{_localstatedir}/log/waagent.log
%ghost %{_unitdir}/waagent-network-setup.service
%dir %attr(0700, root, root) %{_sharedstatedir}/waagent
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%{_sbindir}/waagent
%config(noreplace) %{_sysconfdir}/waagent.conf
%{_unitdir}/waagent.service
%{_unitdir}/azure.slice
%{_unitdir}/azure-vmextensions.slice
%{python3_sitelib}/azurelinuxagent
%{python3_sitelib}/*.egg-info
%files udev
%{_udevrulesdir}/*.rules
%{_prefix}/lib/dracut/modules.d/%{dracut_modname}/*.sh
%if 0%{?with_legacy}
%files legacy
%{_sbindir}/waagent2.0
%endif
%changelog
* Tue Oct 29 2024 Troy Dawson <tdawson@redhat.com> - 2.9.1.1-8
- Bump release for October 2024 mass rebuild:
Resolves: RHEL-64018
* Mon Aug 05 2024 Miroslav Rezanina <mrezanin@redhat.com> - 2.9.1.1-7
- wla-skip-cgorup-monitor-2939.patch [RHEL-46713]
- Resolves: RHEL-46713
([Azure][RHEL-10][WALA] waagent -collect-logs doesn't work and the log is confusing)
* Thu Jul 11 2024 Miroslav Rezanina <mrezanin@redhat.com> - 2.9.1.1-6
- wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch [RHEL-40966]
- wla-redhat-Remove-all-waagent-unit-files-when-uninstalli.patch [RHEL-40966]
- wla-redhat-Mark-directories-properly-in-the-files-list.patch [RHEL-40966]
- wla-redhat-Remove-files-inside-WALA-services-directory.patch [RHEL-40966]
- Resolves: RHEL-40966
([Azure][WALA][RHEL-10] Provisioning failed if no ifcfg-eth0)
* Mon Jun 24 2024 Troy Dawson <tdawson@redhat.com> - 2.9.1.1-5
- Bump release for June 2024 mass rebuild
* Tue May 14 2024 Miroslav Rezanina <mrezanin@redhat.com> - 2.9.1.1-4
- wla-Disable-automatic-log-collector.patch [RHEL-35963]
- Resolves: RHEL-35963
([Azure][WALA] Consider to disable Log collector [rhel-10])
* Mon Jan 22 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.1.1-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Fri Jan 19 2024 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Wed Oct 18 2023 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.9.1.1-1
- Update to 2.9.1.1 (#2232763)
* Wed Jul 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.9.0.4-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Tue Jun 13 2023 Python Maint <python-maint@redhat.com> - 2.9.0.4-3
- Rebuilt for Python 3.12
* Tue May 30 2023 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.9.0.4-2
- Switch to SPDX identifiers for the license field
* Mon Mar 13 2023 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.9.0.4-1
- Update to 2.9.0.4 (#2177333)
* Fri Jan 20 2023 Dusty Mabe <dusty@dustymabe.com> - 2.8.0.11-3
- Move module-setup.sh into git
* Wed Jan 18 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.8.0.11-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Mon Oct 31 2022 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.8.0.11-1
- Update to 2.8.0.11 (#2128547)
* Tue Oct 18 2022 Chris Patterson <cpatterson@microsoft.com> - 2.7.3.0-2
- Add ConditionVirtualization=|microsoft triggering condition
* Wed Aug 03 2022 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.7.3.0-1
- Update to 2.7.3.0 (#2110155)
* Wed Jul 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.7.1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Thu Jun 30 2022 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.7.1.0-1
- Update to 2.7.1.0 (#2097244)
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.7.0.6-2
- Rebuilt for Python 3.11
* Fri Apr 22 2022 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.7.0.6-1
- Update to 2.7.0.6 (#2040980)
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.5.0.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Mon Jan 03 2022 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.5.0.2-1
- Update to 2.5.0.2 (#2008699)
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.3.1.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Mon Jul 19 2021 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.3.1.1-1
- Update to 2.3.1.1 (#1982512)
- Require iptables for setting up persistent firewall rules
* Tue Jun 15 2021 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.3.0.2-1
- Update to 2.3.0.2 (#1971116)
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.2.54.2-2
- Rebuilt for Python 3.10
* 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.
* Fri Feb 19 2021 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.52-5
- Require ntfsprogs on Fedora only
* Tue Jan 26 2021 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.52-4
- Fix distro resolution for RedHat
* Mon Jan 25 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.52-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Fri Jan 15 2021 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.52-2
- Add udev rules to initramfs (#1909287)
* Wed Dec 09 2020 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.52-1
- Update to 2.2.52 (#1849923)
- Add not yet upstream patches supporting Python3.9 changes
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.48.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Tue Jun 09 2020 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.48.1-1
- Update to 2.2.48.1 (#1641605)
- Split udev rules to a separate subpackage (#1748432)
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 2.2.46-2
- Rebuilt for Python 3.9
* Wed Apr 15 2020 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.46-1
- Update to 2.2.46
* Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.40-7
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 2.2.40-6
- Rebuilt for Python 3.8.0rc1 (#1748018)
* Wed Aug 21 2019 Miro Hrončok <mhroncok@redhat.com> - 2.2.40-5
- Rebuilt for Python 3.8
* Wed Aug 21 2019 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.40-4
- Disable Python2 dependent 'legacy' subpackage (#1741029)
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 2.2.40-3
- Rebuilt for Python 3.8
* Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.40-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Mon Jun 03 2019 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.40-1
- Update to 2.2.40
- Fix FTBFS in the preparation for Python3.8 (#1705219)
* Thu Mar 14 2019 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.38-1
- Update to 2.2.38 (CVE-2019-0804)
* Thu Mar 14 2019 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.37-1
- Update to 2.2.37
* Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.32-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Sep 20 2018 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.32-1
- Update to 2.2.32.2
* Thu Jul 12 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.2.25-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 2.2.25-3
- Rebuilt for Python 3.7
* Wed Apr 25 2018 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.25-2
- Move net-tools dependency to WALinuxAgent-legacy (#1106781)
* Mon Apr 16 2018 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.2.25-1
- Update to 2.2.25
- Switch to Python3
- Legacy subpackage with waagent2.0 supporting old extensions
* Wed Feb 28 2018 Iryna Shcherbina <ishcherb@redhat.com> - 2.0.18-5
- Update Python 2 dependency declarations to new packaging standards
(See https://fedoraproject.org/wiki/FinalizingFedoraSwitchtoPython3)
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.18-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.18-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.18-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
* Sat Apr 02 2016 Scott K Logan <logans@cottsay.net> - 2.0.18-1
- Update to 2.0.18
* Wed Feb 03 2016 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.14-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
* Thu Jul 02 2015 Scott K Logan <logans@cottsay.net> - 2.0.14-1
- Update to 2.0.14
* Tue Jun 16 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.0.13-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
* Mon Jun 01 2015 Scott K Logan <logans@cottsay.net> - 2.0.13-1
- Update to 2.0.13
* Thu Apr 02 2015 Scott K Logan <logans@cottsay.net> - 2.0.12-1
- Update to 2.0.12-Oracle
* Sat Jan 10 2015 Scott K Logan <logans@cottsay.net> - 2.0.11-2
- Use systemd for rhel7
- Own logrotate.d
- Fix python2-devel dep
* Sat Dec 20 2014 Scott K Logan <logans@cottsay.net> - 2.0.11-1
- Initial package

6
gating.yaml Normal file
View File

@ -0,0 +1,6 @@
--- !Policy
product_versions:
- rhel-10
decision_context: osci_compose_gate
rules:
- !PassingTestCaseRule {test_case_name: 3rd-azure-ci.brew-build.tier1.functional}

16
module-setup.sh Normal file
View File

@ -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
}

1
sources Normal file
View File

@ -0,0 +1 @@
SHA512 (v2.9.1.1.tar.gz) = 3f44aecc16ac545db4b550586f168dbbdef34289aad6775973517bf645e5a1d486864c01e974f03a71b3e946c14e1ca140673a75c1cd602aac28725eaa68e83d

View File

@ -0,0 +1,38 @@
From 896d0f1edfbfad20c2eecb04fca17e7dc335dfb8 Mon Sep 17 00:00:00 2001
From: Ani Sinha <anisinha@redhat.com>
Date: Mon, 6 May 2024 11:50:49 +0530
Subject: [PATCH] Disable automatic log collector
RH-Author: Ani Sinha <anisinha@redhat.com>
RH-MergeRequest: 12: Disable automatic log collector
RH-Jira: RHEL-35963
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [1/1] d885b584e6bf7ad7d2169b21bcc12db2b526b651 (anisinha/centos-wa-linux-agent)
Log collector is enabled by default. Due to security concerns from our customers
disable it.
Jira: https://issues.redhat.com/browse/RHEL-35963
Upstream: RHEL only.
Signed-off-by: Ani Sinha <anisinha@redhat.com>
---
config/waagent.conf | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/config/waagent.conf b/config/waagent.conf
index 7316dc2d..4a345fc0 100644
--- a/config/waagent.conf
+++ b/config/waagent.conf
@@ -70,7 +70,7 @@ Logs.Verbose=n
# Logs.Console=y
# Enable periodic log collection, default is y
-Logs.Collect=y
+Logs.Collect=n
# How frequently to collect logs, default is each hour
Logs.CollectPeriod=3600
--
2.39.3

View File

@ -1,17 +1,24 @@
From f45dc73365999334e680d64c90d36f710a0c7831 Mon Sep 17 00:00:00 2001
From 8cc6f62bd1be39e60be6ae606ea4beb76ae24d7c Mon Sep 17 00:00:00 2001
From: Mohammed Gamal <mgamal@redhat.com>
Date: Fri, 29 Jul 2022 13:07:13 +0200
Subject: [PATCH 1/2] redhat: Use NetworkManager to set DHCP hostnames on
Subject: [PATCH 1/4] redhat: Use NetworkManager to set DHCP hostnames on
recent RHEL distros
RH-Author: Ani Sinha <anisinha@redhat.com>
RH-MergeRequest: 13: sync c10s branch from c9s
RH-Jira: RHEL-40966
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
RH-Commit: [1/4] 05e1d05db526deae49e976dea3bae140ea1b2ecf (anisinha/centos-wa-linux-agent)
RH-Author: Mohamed Gamal Morsy <mmorsy@redhat.com>
RH-MergeRequest: 8: redhat: Use NetworkManager to set DHCP hostnames on recent RHEL distros
RH-Commit: [1/1] b83612e9d88bac7117541d7f7832f65ef268bbe3
RH-Bugzilla: 2092002
RH-MergeRequest: 3: redhat: Use NetworkManager to set DHCP hostnames on recent RHEL distros
RH-Commit: [1/1] 2bf51293796ba0e8567e436836adc0547f062b04
RH-Bugzilla: 2114830
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2092002
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2114830
Recent versions of RHEL 8 and RHEL 9 started using NetworkManager to configure
network intefaces instead of sysconfig files. Configurations are no longer
@ -20,15 +27,20 @@ stored in /etc/sysconfig/ifcfg-{interface}.
Fix this for setting DHCP hostnames in those RHEL versions.
Signed-off-by: Mohammed Gamal <mgamal@redhat.com>
Patch-name: wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch
Patch-id:
Patch-present-in-specfile: True
(cherry picked from commit 8400a993c6c27f8f8fc598f81e2c329dc8255805)
---
azurelinuxagent/common/osutil/redhat.py | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/azurelinuxagent/common/osutil/redhat.py b/azurelinuxagent/common/osutil/redhat.py
index 5c397ae8..7dd36add 100644
index 312dd160..4b46a97a 100644
--- a/azurelinuxagent/common/osutil/redhat.py
+++ b/azurelinuxagent/common/osutil/redhat.py
@@ -158,3 +158,15 @@ class RedhatOSUtil(Redhat6xOSUtil):
@@ -164,3 +164,15 @@ class RedhatOSModernUtil(RedhatOSUtil):
time.sleep(wait)
else:
logger.warn("exceeded restart retries")
@ -45,5 +57,5 @@ index 5c397ae8..7dd36add 100644
+ if return_code != 0:
+ logger.error("failed to set DHCP hostname for interface {0}: return code {1}".format(ifname, return_code))
--
2.31.1
2.39.3

View File

@ -0,0 +1,288 @@
From 3747dabadea2fe288e6991723e5364179b2906dd Mon Sep 17 00:00:00 2001
From: Nageswara Nandigam <84482346+nagworld9@users.noreply.github.com>
Date: Mon, 9 Oct 2023 11:14:30 -0700
Subject: [PATCH] skip cgorup monitor (#2939)
RH-Author: Ani Sinha <anisinha@redhat.com>
RH-MergeRequest: 14: skip cgorup monitor (#2939)
RH-Jira: RHEL-46713
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
RH-Acked-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
RH-Commit: [1/1] 613c87b13204159b6b33214d0cf02ed25bcd67e7 (anisinha/centos-wa-linux-agent)
(cherry picked from commit 5bad0b4b19c907386b80ec18ad1423cdb7f3a050)
Signed-off-by: Ani Sinha <anisinha@redhat.com>
Conflicts:
azurelinuxagent/agent.py
azurelinuxagent/common/logcollector.py
tests/common/test_logcollector.py
All due to libraries being moved around in upstream.
---
azurelinuxagent/agent.py | 30 +++++++++++++++++++-------
azurelinuxagent/common/logcollector.py | 15 +------------
azurelinuxagent/ga/collect_logs.py | 10 ++++-----
tests/common/test_logcollector.py | 16 +++++++-------
tests/test_agent.py | 8 +++----
5 files changed, 40 insertions(+), 39 deletions(-)
diff --git a/azurelinuxagent/agent.py b/azurelinuxagent/agent.py
index 8c303482..0fb681e6 100644
--- a/azurelinuxagent/agent.py
+++ b/azurelinuxagent/agent.py
@@ -30,6 +30,7 @@ import sys
import threading
from azurelinuxagent.common import cgroupconfigurator, logcollector
from azurelinuxagent.common.cgroupapi import SystemdCgroupsApi
+from azurelinuxagent.common.cgroup import AGENT_LOG_COLLECTOR, CpuCgroup, MemoryCgroup
import azurelinuxagent.common.conf as conf
import azurelinuxagent.common.event as event
@@ -204,11 +205,10 @@ class Agent(object):
logger.info("Running log collector mode normal")
# Check the cgroups unit
- cpu_cgroup_path, memory_cgroup_path, log_collector_monitor = None, None, None
- if CollectLogsHandler.should_validate_cgroups():
- cgroups_api = SystemdCgroupsApi()
- cpu_cgroup_path, memory_cgroup_path = cgroups_api.get_process_cgroup_paths("self")
-
+ log_collector_monitor = None
+ cgroups_api = SystemdCgroupsApi()
+ cpu_cgroup_path, memory_cgroup_path = cgroups_api.get_process_cgroup_paths("self")
+ if CollectLogsHandler.is_enabled_monitor_cgroups_check():
cpu_slice_matches = (cgroupconfigurator.LOGCOLLECTOR_SLICE in cpu_cgroup_path)
memory_slice_matches = (cgroupconfigurator.LOGCOLLECTOR_SLICE in memory_cgroup_path)
@@ -221,10 +221,24 @@ class Agent(object):
sys.exit(logcollector.INVALID_CGROUPS_ERRCODE)
+ def initialize_cgroups_tracking(cpu_cgroup_path, memory_cgroup_path):
+ cpu_cgroup = CpuCgroup(AGENT_LOG_COLLECTOR, cpu_cgroup_path)
+ msg = "Started tracking cpu cgroup {0}".format(cpu_cgroup)
+ logger.info(msg)
+ cpu_cgroup.initialize_cpu_usage()
+ memory_cgroup = MemoryCgroup(AGENT_LOG_COLLECTOR, memory_cgroup_path)
+ msg = "Started tracking memory cgroup {0}".format(memory_cgroup)
+ logger.info(msg)
+ return [cpu_cgroup, memory_cgroup]
+
try:
- log_collector = LogCollector(is_full_mode, cpu_cgroup_path, memory_cgroup_path)
- log_collector_monitor = get_log_collector_monitor_handler(log_collector.cgroups)
- log_collector_monitor.run()
+ log_collector = LogCollector(is_full_mode)
+ # Running log collector resource(CPU, Memory) monitoring only if agent starts the log collector.
+ # If Log collector start by any other means, then it will not be monitored.
+ if CollectLogsHandler.is_enabled_monitor_cgroups_check():
+ tracked_cgroups = initialize_cgroups_tracking(cpu_cgroup_path, memory_cgroup_path)
+ log_collector_monitor = get_log_collector_monitor_handler(tracked_cgroups)
+ log_collector_monitor.run()
archive = log_collector.collect_logs_and_get_archive()
logger.info("Log collection successfully completed. Archive can be found at {0} "
"and detailed log output can be found at {1}".format(archive, OUTPUT_RESULTS_FILE_PATH))
diff --git a/azurelinuxagent/common/logcollector.py b/azurelinuxagent/common/logcollector.py
index fe62a7db..5f45a7de 100644
--- a/azurelinuxagent/common/logcollector.py
+++ b/azurelinuxagent/common/logcollector.py
@@ -26,7 +26,6 @@ import zipfile
from datetime import datetime
from heapq import heappush, heappop
-from azurelinuxagent.common.cgroup import CpuCgroup, AGENT_LOG_COLLECTOR, MemoryCgroup
from azurelinuxagent.common.conf import get_lib_dir, get_ext_log_dir, get_agent_log_file
from azurelinuxagent.common.event import initialize_event_logger_vminfo_common_parameters
from azurelinuxagent.common.future import ustr
@@ -71,14 +70,13 @@ class LogCollector(object):
_TRUNCATED_FILE_PREFIX = "truncated_"
- def __init__(self, is_full_mode=False, cpu_cgroup_path=None, memory_cgroup_path=None):
+ def __init__(self, is_full_mode=False):
self._is_full_mode = is_full_mode
self._manifest = MANIFEST_FULL if is_full_mode else MANIFEST_NORMAL
self._must_collect_files = self._expand_must_collect_files()
self._create_base_dirs()
self._set_logger()
self._initialize_telemetry()
- self.cgroups = self._set_resource_usage_cgroups(cpu_cgroup_path, memory_cgroup_path)
@staticmethod
def _mkdir(dirname):
@@ -105,17 +103,6 @@ class LogCollector(object):
_LOGGER.addHandler(_f_handler)
_LOGGER.setLevel(logging.INFO)
- @staticmethod
- def _set_resource_usage_cgroups(cpu_cgroup_path, memory_cgroup_path):
- cpu_cgroup = CpuCgroup(AGENT_LOG_COLLECTOR, cpu_cgroup_path)
- msg = "Started tracking cpu cgroup {0}".format(cpu_cgroup)
- _LOGGER.info(msg)
- cpu_cgroup.initialize_cpu_usage()
- memory_cgroup = MemoryCgroup(AGENT_LOG_COLLECTOR, memory_cgroup_path)
- msg = "Started tracking memory cgroup {0}".format(memory_cgroup)
- _LOGGER.info(msg)
- return [cpu_cgroup, memory_cgroup]
-
@staticmethod
def _initialize_telemetry():
protocol = get_protocol_util().get_protocol(init_goal_state=False)
diff --git a/azurelinuxagent/ga/collect_logs.py b/azurelinuxagent/ga/collect_logs.py
index 95c42f3a..4f42e149 100644
--- a/azurelinuxagent/ga/collect_logs.py
+++ b/azurelinuxagent/ga/collect_logs.py
@@ -83,16 +83,16 @@ class CollectLogsHandler(ThreadHandlerInterface):
return CollectLogsHandler._THREAD_NAME
@staticmethod
- def enable_cgroups_validation():
+ def enable_monitor_cgroups_check():
os.environ[CollectLogsHandler.__CGROUPS_FLAG_ENV_VARIABLE] = "1"
@staticmethod
- def disable_cgroups_validation():
+ def disable_monitor_cgroups_check():
if CollectLogsHandler.__CGROUPS_FLAG_ENV_VARIABLE in os.environ:
del os.environ[CollectLogsHandler.__CGROUPS_FLAG_ENV_VARIABLE]
@staticmethod
- def should_validate_cgroups():
+ def is_enabled_monitor_cgroups_check():
if CollectLogsHandler.__CGROUPS_FLAG_ENV_VARIABLE in os.environ:
return os.environ[CollectLogsHandler.__CGROUPS_FLAG_ENV_VARIABLE] == "1"
return False
@@ -147,7 +147,7 @@ class CollectLogsHandler(ThreadHandlerInterface):
time.sleep(_INITIAL_LOG_COLLECTION_DELAY)
try:
- CollectLogsHandler.enable_cgroups_validation()
+ CollectLogsHandler.enable_monitor_cgroups_check()
if self.protocol_util is None or self.protocol is None:
self.init_protocols()
@@ -162,7 +162,7 @@ class CollectLogsHandler(ThreadHandlerInterface):
except Exception as e:
logger.error("An error occurred in the log collection thread; will exit the thread.\n{0}", ustr(e))
finally:
- CollectLogsHandler.disable_cgroups_validation()
+ CollectLogsHandler.disable_monitor_cgroups_check()
def collect_and_send_logs(self):
if self._collect_logs():
diff --git a/tests/common/test_logcollector.py b/tests/common/test_logcollector.py
index 521e0f23..bf402cc7 100644
--- a/tests/common/test_logcollector.py
+++ b/tests/common/test_logcollector.py
@@ -212,7 +212,7 @@ diskinfo,""".format(folder_to_list, file_to_collect)
with patch("azurelinuxagent.common.logcollector.MANIFEST_NORMAL", manifest):
with patch('azurelinuxagent.common.logcollector.LogCollector._initialize_telemetry'):
- log_collector = LogCollector(cpu_cgroup_path="dummy_cpu_path", memory_cgroup_path="dummy_memory_path")
+ log_collector = LogCollector()
archive = log_collector.collect_logs_and_get_archive()
with open(self.output_results_file_path, "r") as fh:
@@ -241,7 +241,7 @@ copy,{0}
with patch("azurelinuxagent.common.logcollector.MANIFEST_FULL", manifest):
with patch('azurelinuxagent.common.logcollector.LogCollector._initialize_telemetry'):
- log_collector = LogCollector(is_full_mode=True, cpu_cgroup_path="dummy_cpu_path", memory_cgroup_path="dummy_memory_path")
+ log_collector = LogCollector(is_full_mode=True)
archive = log_collector.collect_logs_and_get_archive()
self._assert_archive_created(archive)
@@ -255,7 +255,7 @@ copy,{0}
# and combined they do not cross the archive size threshold.
with patch('azurelinuxagent.common.logcollector.LogCollector._initialize_telemetry'):
- log_collector = LogCollector(cpu_cgroup_path="dummy_cpu_path", memory_cgroup_path="dummy_memory_path")
+ log_collector = LogCollector()
archive = log_collector.collect_logs_and_get_archive()
self._assert_archive_created(archive)
@@ -277,7 +277,7 @@ copy,{0}
# Set the size limit so that some files are too large to collect in full.
with patch("azurelinuxagent.common.logcollector._FILE_SIZE_LIMIT", SMALL_FILE_SIZE):
with patch('azurelinuxagent.common.logcollector.LogCollector._initialize_telemetry'):
- log_collector = LogCollector(cpu_cgroup_path="dummy_cpu_path", memory_cgroup_path="dummy_memory_path")
+ log_collector = LogCollector()
archive = log_collector.collect_logs_and_get_archive()
self._assert_archive_created(archive)
@@ -311,7 +311,7 @@ copy,{0}
with patch("azurelinuxagent.common.logcollector._UNCOMPRESSED_ARCHIVE_SIZE_LIMIT", 10 * 1024 * 1024):
with patch("azurelinuxagent.common.logcollector._MUST_COLLECT_FILES", must_collect_files):
with patch('azurelinuxagent.common.logcollector.LogCollector._initialize_telemetry'):
- log_collector = LogCollector(cpu_cgroup_path="dummy_cpu_path", memory_cgroup_path="dummy_memory_path")
+ log_collector = LogCollector()
archive = log_collector.collect_logs_and_get_archive()
self._assert_archive_created(archive)
@@ -362,7 +362,7 @@ copy,{0}
# Ensure the archive reflects the state of files on the disk at collection time. If a file was updated, it
# needs to be updated in the archive, deleted if removed from disk, and added if not previously seen.
with patch('azurelinuxagent.common.logcollector.LogCollector._initialize_telemetry'):
- log_collector = LogCollector(cpu_cgroup_path="dummy_cpu_path", memory_cgroup_path="dummy_memory_path")
+ log_collector = LogCollector()
first_archive = log_collector.collect_logs_and_get_archive()
self._assert_archive_created(first_archive)
@@ -433,7 +433,7 @@ copy,{0}
with patch("azurelinuxagent.common.logcollector._MUST_COLLECT_FILES", must_collect_files):
with patch("azurelinuxagent.common.logcollector._FILE_SIZE_LIMIT", SMALL_FILE_SIZE):
with patch('azurelinuxagent.common.logcollector.LogCollector._initialize_telemetry'):
- log_collector = LogCollector(cpu_cgroup_path="dummy_cpu_path", memory_cgroup_path="dummy_memory_path")
+ log_collector = LogCollector()
archive = log_collector.collect_logs_and_get_archive()
self._assert_archive_created(archive)
@@ -455,7 +455,7 @@ copy,{0}
with patch("azurelinuxagent.common.logcollector._MUST_COLLECT_FILES", must_collect_files):
with patch("azurelinuxagent.common.logcollector._FILE_SIZE_LIMIT", SMALL_FILE_SIZE):
with patch('azurelinuxagent.common.logcollector.LogCollector._initialize_telemetry'):
- log_collector = LogCollector(cpu_cgroup_path="dummy_cpu_path", memory_cgroup_path="dummy_memory_path")
+ log_collector = LogCollector()
second_archive = log_collector.collect_logs_and_get_archive()
expected_files = [
diff --git a/tests/test_agent.py b/tests/test_agent.py
index f0f773f0..f5e87c87 100644
--- a/tests/test_agent.py
+++ b/tests/test_agent.py
@@ -231,7 +231,7 @@ class TestAgent(AgentTestCase):
@patch("azurelinuxagent.agent.LogCollector")
def test_calls_collect_logs_on_valid_cgroups(self, mock_log_collector):
try:
- CollectLogsHandler.enable_cgroups_validation()
+ CollectLogsHandler.enable_monitor_cgroups_check()
mock_log_collector.run = Mock()
def mock_cgroup_paths(*args, **kwargs):
@@ -246,12 +246,12 @@ class TestAgent(AgentTestCase):
mock_log_collector.assert_called_once()
finally:
- CollectLogsHandler.disable_cgroups_validation()
+ CollectLogsHandler.disable_monitor_cgroups_check()
@patch("azurelinuxagent.agent.LogCollector")
def test_doesnt_call_collect_logs_on_invalid_cgroups(self, mock_log_collector):
try:
- CollectLogsHandler.enable_cgroups_validation()
+ CollectLogsHandler.enable_monitor_cgroups_check()
mock_log_collector.run = Mock()
def mock_cgroup_paths(*args, **kwargs):
@@ -270,7 +270,7 @@ class TestAgent(AgentTestCase):
mock_exit.assert_called_once_with(logcollector.INVALID_CGROUPS_ERRCODE)
self.assertEqual(exit_error, re)
finally:
- CollectLogsHandler.disable_cgroups_validation()
+ CollectLogsHandler.disable_monitor_cgroups_check()
def test_it_should_parse_setup_firewall_properly(self):
--
2.39.3