* Thu May 22 2025 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.13.1.1-1
- Rebase to 2.13.1.1 [RHEL-86509] - Resolves: RHEL-86509 (Rebase to v2.13.1.1)
This commit is contained in:
parent
a40903006e
commit
ec5ea5a3f5
1
.gitignore
vendored
1
.gitignore
vendored
@ -23,3 +23,4 @@
|
|||||||
/v2.8.0.11.tar.gz
|
/v2.8.0.11.tar.gz
|
||||||
/v2.9.0.4.tar.gz
|
/v2.9.0.4.tar.gz
|
||||||
/v2.9.1.1.tar.gz
|
/v2.9.1.1.tar.gz
|
||||||
|
/v2.13.1.1.tar.gz
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
From dac5101c56b59dbb14d96d4344d6cb2ac047b392 Mon Sep 17 00:00:00 2001
|
From 2d78c9ebaba4742390e92dc5994391949b90ec4c Mon Sep 17 00:00:00 2001
|
||||||
From: Chris Patterson <cpatterson@microsoft.com>
|
From: Chris Patterson <cpatterson@microsoft.com>
|
||||||
Date: Thu, 1 Sep 2022 10:45:47 -0400
|
Date: Thu, 1 Sep 2022 10:45:47 -0400
|
||||||
Subject: [PATCH] waagent.service: set ConditionVirtualization=|microsoft
|
Subject: [PATCH] waagent.service: set ConditionVirtualization=|microsoft
|
||||||
@ -10,10 +10,10 @@ test setups to add another condition (i.e. run outside of hyperv).
|
|||||||
|
|
||||||
Signed-off-by: Chris Patterson <cpatterson@microsoft.com>
|
Signed-off-by: Chris Patterson <cpatterson@microsoft.com>
|
||||||
---
|
---
|
||||||
bin/waagent2.0 | 1 +
|
bin/waagent2.0 | 1 +
|
||||||
init/redhat/py2/waagent.service | 1 +
|
init/redhat/py2/waagent.service | 1 +
|
||||||
init/redhat/waagent.service | 1 +
|
init/redhat/waagent.service | 1 +
|
||||||
init/waagent.service | 1 +
|
init/waagent.service | 1 +
|
||||||
4 files changed, 4 insertions(+)
|
4 files changed, 4 insertions(+)
|
||||||
|
|
||||||
diff --git a/bin/waagent2.0 b/bin/waagent2.0
|
diff --git a/bin/waagent2.0 b/bin/waagent2.0
|
||||||
@ -29,7 +29,7 @@ index 34732677..c84c8c40 100644
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
diff --git a/init/redhat/py2/waagent.service b/init/redhat/py2/waagent.service
|
diff --git a/init/redhat/py2/waagent.service b/init/redhat/py2/waagent.service
|
||||||
index c6d15420..132e7027 100644
|
index 920e0ec7..46254ec3 100644
|
||||||
--- a/init/redhat/py2/waagent.service
|
--- a/init/redhat/py2/waagent.service
|
||||||
+++ b/init/redhat/py2/waagent.service
|
+++ b/init/redhat/py2/waagent.service
|
||||||
@@ -5,6 +5,7 @@ After=network-online.target
|
@@ -5,6 +5,7 @@ After=network-online.target
|
||||||
@ -41,7 +41,7 @@ index c6d15420..132e7027 100644
|
|||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
diff --git a/init/redhat/waagent.service b/init/redhat/waagent.service
|
diff --git a/init/redhat/waagent.service b/init/redhat/waagent.service
|
||||||
index dc11fbb1..7c93b101 100644
|
index 2c6ac5d8..12d5feee 100644
|
||||||
--- a/init/redhat/waagent.service
|
--- a/init/redhat/waagent.service
|
||||||
+++ b/init/redhat/waagent.service
|
+++ b/init/redhat/waagent.service
|
||||||
@@ -5,6 +5,7 @@ After=network-online.target
|
@@ -5,6 +5,7 @@ After=network-online.target
|
||||||
@ -64,6 +64,3 @@ index e91f1433..aa1f3203 100644
|
|||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
--
|
|
||||||
2.37.3
|
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
From 896d0f1edfbfad20c2eecb04fca17e7dc335dfb8 Mon Sep 17 00:00:00 2001
|
From cb221e0885f794e0ec302cbb77bff927a8d4458a Mon Sep 17 00:00:00 2001
|
||||||
From: Ani Sinha <anisinha@redhat.com>
|
From: Ani Sinha <anisinha@redhat.com>
|
||||||
Date: Mon, 6 May 2024 11:50:49 +0530
|
Date: Mon, 6 May 2024 11:50:49 +0530
|
||||||
Subject: [PATCH] Disable automatic log collector
|
Subject: [PATCH] Disable automatic log collector
|
||||||
@ -16,12 +16,16 @@ Jira: https://issues.redhat.com/browse/RHEL-35963
|
|||||||
Upstream: RHEL only.
|
Upstream: RHEL only.
|
||||||
|
|
||||||
Signed-off-by: Ani Sinha <anisinha@redhat.com>
|
Signed-off-by: Ani Sinha <anisinha@redhat.com>
|
||||||
|
|
||||||
|
Patch-name: wla-Disable-automatic-log-collector.patch
|
||||||
|
Patch-id:
|
||||||
|
Patch-present-in-specfile: True
|
||||||
---
|
---
|
||||||
config/waagent.conf | 2 +-
|
config/waagent.conf | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/config/waagent.conf b/config/waagent.conf
|
diff --git a/config/waagent.conf b/config/waagent.conf
|
||||||
index 7316dc2d..4a345fc0 100644
|
index 3c9ad5d4..62d8148e 100644
|
||||||
--- a/config/waagent.conf
|
--- a/config/waagent.conf
|
||||||
+++ b/config/waagent.conf
|
+++ b/config/waagent.conf
|
||||||
@@ -70,7 +70,7 @@ Logs.Verbose=n
|
@@ -70,7 +70,7 @@ Logs.Verbose=n
|
||||||
@ -33,6 +37,3 @@ index 7316dc2d..4a345fc0 100644
|
|||||||
|
|
||||||
# How frequently to collect logs, default is each hour
|
# How frequently to collect logs, default is each hour
|
||||||
Logs.CollectPeriod=3600
|
Logs.CollectPeriod=3600
|
||||||
--
|
|
||||||
2.39.3
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
|||||||
From 8cc6f62bd1be39e60be6ae606ea4beb76ae24d7c Mon Sep 17 00:00:00 2001
|
From b0c1a1641973b0444045a4906d80e0b16ff755e7 Mon Sep 17 00:00:00 2001
|
||||||
From: Mohammed Gamal <mgamal@redhat.com>
|
From: Mohammed Gamal <mgamal@redhat.com>
|
||||||
Date: Fri, 29 Jul 2022 13:07:13 +0200
|
Date: Fri, 29 Jul 2022 13:07:13 +0200
|
||||||
Subject: [PATCH 1/4] redhat: Use NetworkManager to set DHCP hostnames on
|
Subject: [PATCH] redhat: Use NetworkManager to set DHCP hostnames on recent
|
||||||
recent RHEL distros
|
RHEL distros
|
||||||
|
|
||||||
RH-Author: Ani Sinha <anisinha@redhat.com>
|
RH-Author: Ani Sinha <anisinha@redhat.com>
|
||||||
RH-MergeRequest: 13: sync c10s branch from c9s
|
RH-MergeRequest: 13: sync c10s branch from c9s
|
||||||
@ -32,18 +32,22 @@ Patch-name: wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch
|
|||||||
Patch-id:
|
Patch-id:
|
||||||
Patch-present-in-specfile: True
|
Patch-present-in-specfile: True
|
||||||
(cherry picked from commit 8400a993c6c27f8f8fc598f81e2c329dc8255805)
|
(cherry picked from commit 8400a993c6c27f8f8fc598f81e2c329dc8255805)
|
||||||
|
|
||||||
|
Patch-name: wla-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch
|
||||||
|
Patch-id:
|
||||||
|
Patch-present-in-specfile: True
|
||||||
---
|
---
|
||||||
azurelinuxagent/common/osutil/redhat.py | 12 ++++++++++++
|
azurelinuxagent/common/osutil/redhat.py | 12 ++++++++++++
|
||||||
1 file changed, 12 insertions(+)
|
1 file changed, 12 insertions(+)
|
||||||
|
|
||||||
diff --git a/azurelinuxagent/common/osutil/redhat.py b/azurelinuxagent/common/osutil/redhat.py
|
diff --git a/azurelinuxagent/common/osutil/redhat.py b/azurelinuxagent/common/osutil/redhat.py
|
||||||
index 312dd160..4b46a97a 100644
|
index a9a10347..b85b2d42 100644
|
||||||
--- a/azurelinuxagent/common/osutil/redhat.py
|
--- a/azurelinuxagent/common/osutil/redhat.py
|
||||||
+++ b/azurelinuxagent/common/osutil/redhat.py
|
+++ b/azurelinuxagent/common/osutil/redhat.py
|
||||||
@@ -164,3 +164,15 @@ class RedhatOSModernUtil(RedhatOSUtil):
|
@@ -272,3 +272,15 @@ class RedhatOSModernUtil(RedhatOSUtil):
|
||||||
time.sleep(wait)
|
# NetworkManager restart in RedhatOSModernUtil because the issue was not reproduced on these versions.
|
||||||
else:
|
shellutil.run("service NetworkManager restart")
|
||||||
logger.warn("exceeded restart retries")
|
DefaultOSUtil.publish_hostname(self, hostname)
|
||||||
+
|
+
|
||||||
+ def set_dhcp_hostname(self, hostname):
|
+ def set_dhcp_hostname(self, hostname):
|
||||||
+ """
|
+ """
|
||||||
@ -56,6 +60,3 @@ index 312dd160..4b46a97a 100644
|
|||||||
+
|
+
|
||||||
+ if return_code != 0:
|
+ if return_code != 0:
|
||||||
+ logger.error("failed to set DHCP hostname for interface {0}: return code {1}".format(ifname, return_code))
|
+ logger.error("failed to set DHCP hostname for interface {0}: return code {1}".format(ifname, return_code))
|
||||||
--
|
|
||||||
2.39.3
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
From dd3a8f78ef32aed2f1267dd7dd495c65edd259a1 Mon Sep 17 00:00:00 2001
|
From c17811fbdb131a4cca41a847e8b666f432dbe4a8 Mon Sep 17 00:00:00 2001
|
||||||
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
From: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
Date: Mon, 6 Jan 2025 17:13:11 +0100
|
Date: Mon, 6 Jan 2025 17:13:11 +0100
|
||||||
Subject: [PATCH] redhat: Add a udev rule to avoid managing slave NICs with
|
Subject: [PATCH] redhat: Add a udev rule to avoid managing slave NICs with
|
||||||
@ -18,6 +18,10 @@ eventually. For the time being, just put the required udev rule into
|
|||||||
WALinuxAgent package.
|
WALinuxAgent package.
|
||||||
|
|
||||||
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
|
|
||||||
|
Patch-name: wla-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch
|
||||||
|
Patch-id:
|
||||||
|
Patch-present-in-specfile: True
|
||||||
---
|
---
|
||||||
config/10-azure-unmanaged-sriov.rules | 6 ++++++
|
config/10-azure-unmanaged-sriov.rules | 6 ++++++
|
||||||
setup.py | 3 ++-
|
setup.py | 3 ++-
|
||||||
@ -37,7 +41,7 @@ index 00000000..7eefcb26
|
|||||||
+# NM_UNMANAGED=1 for NetworkManager
|
+# NM_UNMANAGED=1 for NetworkManager
|
||||||
+SUBSYSTEM=="net", ACTION!="remove", DRIVERS=="mana|mlx4_core|mlx5_core", ATTR{flags}=="0x?[89ABCDEF]??", ENV{AZURE_UNMANAGED_SRIOV}="1", ENV{ID_NET_MANAGED_BY}="unmanaged", ENV{NM_UNMANAGED}="1"
|
+SUBSYSTEM=="net", ACTION!="remove", DRIVERS=="mana|mlx4_core|mlx5_core", ATTR{flags}=="0x?[89ABCDEF]??", ENV{AZURE_UNMANAGED_SRIOV}="1", ENV{ID_NET_MANAGED_BY}="unmanaged", ENV{NM_UNMANAGED}="1"
|
||||||
diff --git a/setup.py b/setup.py
|
diff --git a/setup.py b/setup.py
|
||||||
index 8f5d92b4..f76aff30 100755
|
index e83f5989..cf6e90b5 100755
|
||||||
--- a/setup.py
|
--- a/setup.py
|
||||||
+++ b/setup.py
|
+++ b/setup.py
|
||||||
@@ -82,7 +82,8 @@ def set_openbsd_rc_files(data_files, dest="/etc/rc.d/", src=None):
|
@@ -82,7 +82,8 @@ def set_openbsd_rc_files(data_files, dest="/etc/rc.d/", src=None):
|
||||||
@ -50,6 +54,3 @@ index 8f5d92b4..f76aff30 100755
|
|||||||
"config/99-azure-product-uuid.rules"]
|
"config/99-azure-product-uuid.rules"]
|
||||||
data_files.append((dest, src))
|
data_files.append((dest, src))
|
||||||
|
|
||||||
--
|
|
||||||
2.39.3
|
|
||||||
|
|
18
README.rst
Normal file
18
README.rst
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
========================
|
||||||
|
WALinuxAgent development
|
||||||
|
========================
|
||||||
|
|
||||||
|
WALinuxAgent is maintained in a `source tree`_ rather than directly in dist-git.
|
||||||
|
This provides way to develope using regular source code structure and provides
|
||||||
|
way to generate SRPM and build using koji service. In addition, local build using
|
||||||
|
CentOS 9 Stream specific configuration.
|
||||||
|
|
||||||
|
Developers deliver all changes to source-git using merge request. Only maintainers
|
||||||
|
will be pushing changes sent to source-git to dist-git.
|
||||||
|
|
||||||
|
Each release in dist-git is tagged in the source repository so you can easily
|
||||||
|
check out the source tree for a build. The tags are in the format
|
||||||
|
name-version-release, but note release doesn't contain the dist tag since the
|
||||||
|
source can be built in different build roots (Fedora, CentOS, etc.)
|
||||||
|
|
||||||
|
.. _source tree: https://gitlab.com/redhat/centos-stream/src/walinuxagent
|
@ -2,24 +2,18 @@
|
|||||||
%global dracut_modname 97walinuxagent
|
%global dracut_modname 97walinuxagent
|
||||||
|
|
||||||
Name: WALinuxAgent
|
Name: WALinuxAgent
|
||||||
Version: 2.9.1.1
|
Version: 2.13.1.1
|
||||||
Release: 10%{?dist}
|
Release: 1%{?dist}
|
||||||
Summary: The Microsoft Azure Linux Agent
|
Summary: The Microsoft Azure Linux Agent
|
||||||
|
|
||||||
License: Apache-2.0
|
License: Apache-2.0
|
||||||
URL: https://github.com/Azure/%{name}
|
URL: https://github.com/Azure/%{name}
|
||||||
Source0: https://github.com/Azure/%{name}/archive/v%{version}.tar.gz
|
Source0: https://github.com/Azure/%{name}/archive/v%{version}.tar.gz
|
||||||
Source1: module-setup.sh
|
Source1: module-setup.sh
|
||||||
|
Patch1: 0001-waagent.service-set-ConditionVirtualization-microsof.patch
|
||||||
Patch1: 0001-waagent.service-set-ConditionVirtualization-microsof.patch
|
Patch2: 0002-Disable-automatic-log-collector.patch
|
||||||
# For RHEL-35963 - [Azure][WALA] Consider to disable Log collector [rhel-10]
|
Patch3: 0003-redhat-Use-NetworkManager-to-set-DHCP-hostnames-on-r.patch
|
||||||
Patch2: wla-Disable-automatic-log-collector.patch
|
Patch4: 0004-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.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
|
|
||||||
# For RHEL-68796 - Please add `mana` to 99-azure-unmanaged-devices.conf of Azure image
|
|
||||||
Patch5: wla-redhat-Add-a-udev-rule-to-avoid-managing-slave-NICs-.patch
|
|
||||||
|
|
||||||
BuildArch: noarch
|
BuildArch: noarch
|
||||||
|
|
||||||
@ -131,6 +125,11 @@ rm -rf %{_unitdir}/waagent.service.d/
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu May 22 2025 Vitaly Kuznetsov <vkuznets@redhat.com> - 2.13.1.1-1
|
||||||
|
- Rebase to 2.13.1.1 [RHEL-86509]
|
||||||
|
- Resolves: RHEL-86509
|
||||||
|
(Rebase to v2.13.1.1)
|
||||||
|
|
||||||
* Tue Mar 25 2025 Miroslav Rezanina <mrezanin@redhat.com> - 2.9.1.1-10
|
* Tue Mar 25 2025 Miroslav Rezanina <mrezanin@redhat.com> - 2.9.1.1-10
|
||||||
- wla-redhat-Explicitly-list-udev-rule-requirements-in-the.patch [RHEL-84073]
|
- wla-redhat-Explicitly-list-udev-rule-requirements-in-the.patch [RHEL-84073]
|
||||||
- wla-redhat-Include-10-azure-unmanaged-sriov.rules-into-i.patch [RHEL-84073]
|
- wla-redhat-Include-10-azure-unmanaged-sriov.rules-into-i.patch [RHEL-84073]
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (v2.9.1.1.tar.gz) = 3f44aecc16ac545db4b550586f168dbbdef34289aad6775973517bf645e5a1d486864c01e974f03a71b3e946c14e1ca140673a75c1cd602aac28725eaa68e83d
|
SHA512 (v2.13.1.1.tar.gz) = 3cb65495955c746bf112e794cbeb11f47ace72e4272c3cd16eb8d478c0b3b0323890b52c592b68775efafb8c6f267b3614e66f09d6a6dee066b603297676cd38
|
||||||
|
@ -1,288 +0,0 @@
|
|||||||
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
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user