import WALinuxAgent-2.9.1.1-7.el10

c10-beta imports/c10-beta/WALinuxAgent-2.9.1.1-7.el10
MSVSphere Packaging Team 1 month ago
commit bbdede545c
Signed by: sys_gitsync
GPG Key ID: B2B0B9F29E528FE8

@ -0,0 +1 @@
b61bd57f3b2f7b048d6bab2739690bbf1d9c213b SOURCES/v2.9.1.1.tar.gz

1
.gitignore vendored

@ -0,0 +1 @@
SOURCES/v2.9.1.1.tar.gz

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

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

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

@ -0,0 +1,61 @@
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/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: 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=2114830
Recent versions of RHEL 8 and RHEL 9 started using NetworkManager to configure
network intefaces instead of sysconfig files. Configurations are no longer
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 312dd160..4b46a97a 100644
--- a/azurelinuxagent/common/osutil/redhat.py
+++ b/azurelinuxagent/common/osutil/redhat.py
@@ -164,3 +164,15 @@ class RedhatOSModernUtil(RedhatOSUtil):
time.sleep(wait)
else:
logger.warn("exceeded restart retries")
+
+ def set_dhcp_hostname(self, hostname):
+ """
+ Recent RHEL distributions use network manager instead of sysconfig files
+ to configure network interfaces
+ """
+ ifname = self.get_if_name()
+
+ return_code = shellutil.run("nmcli device modify {0} ipv4.dhcp-hostname {1} ipv6.dhcp-hostname {1}".format(ifname, hostname))
+
+ if return_code != 0:
+ logger.error("failed to set DHCP hostname for interface {0}: return code {1}".format(ifname, return_code))
--
2.39.3

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

@ -0,0 +1,341 @@
%global with_legacy 0
%global dracut_modname 97walinuxagent
Name: WALinuxAgent
Version: 2.9.1.1
Release: 7%{?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
* 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
Loading…
Cancel
Save