Update to 2.7.0.6 (#2040980)

Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
This commit is contained in:
Vitaly Kuznetsov 2022-04-22 08:51:13 +02:00
parent 21786db889
commit 3512a95d3d
5 changed files with 146 additions and 46 deletions

1
.gitignore vendored
View File

@ -17,3 +17,4 @@
/v2.3.0.2.tar.gz
/v2.3.1.1.tar.gz
/v2.5.0.2.tar.gz
/v2.7.0.6.tar.gz

View File

@ -1,42 +0,0 @@
From 53a8080be30553ecbd9262d721c9d3374b8e48e5 Mon Sep 17 00:00:00 2001
From: Vitaly Kuznetsov <vkuznets@redhat.com>
Date: Thu, 3 Jun 2021 12:48:02 +0200
Subject: [PATCH] Install systemd unit for 'default' OS
Fedora is not in the list but uses systemd and not sysv.
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
azurelinuxagent/common/osutil/default.py | 2 +-
setup.py | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/azurelinuxagent/common/osutil/default.py b/azurelinuxagent/common/osutil/default.py
index 066e143136d7..fcb7d9b857dd 100644
--- a/azurelinuxagent/common/osutil/default.py
+++ b/azurelinuxagent/common/osutil/default.py
@@ -146,7 +146,7 @@ class DefaultOSUtil(object):
@staticmethod
def get_systemd_unit_file_install_path():
- return "/lib/systemd/system"
+ return "/usr/lib/systemd/system"
@staticmethod
def get_agent_bin_path():
diff --git a/setup.py b/setup.py
index c258e4b878cc..b2ed8f4cde36 100755
--- a/setup.py
+++ b/setup.py
@@ -194,7 +194,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)
- set_sysv_files(data_files)
+ set_systemd_files(data_files, dest=systemd_dir_path)
return data_files
--
2.31.1

View File

@ -0,0 +1,136 @@
From e236dc20fbda54d040960615a93565be9c4bdae7 Mon Sep 17 00:00:00 2001
From: Vitaly Kuznetsov <vkuznets@redhat.com>
Date: Fri, 22 Apr 2022 16:16:19 +0200
Subject: [PATCH] Rudimentary Fedora OS implementation
Content-Type: text/plain
Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com>
---
azurelinuxagent/common/osutil/factory.py | 4 ++
azurelinuxagent/common/osutil/fedora.py | 75 ++++++++++++++++++++++++
setup.py | 6 ++
3 files changed, 85 insertions(+)
create mode 100644 azurelinuxagent/common/osutil/fedora.py
diff --git a/azurelinuxagent/common/osutil/factory.py b/azurelinuxagent/common/osutil/factory.py
index b8f4291b3ea4..625978569880 100644
--- a/azurelinuxagent/common/osutil/factory.py
+++ b/azurelinuxagent/common/osutil/factory.py
@@ -39,6 +39,7 @@ from .suse import SUSEOSUtil, SUSE11OSUtil
from .photonos import PhotonOSUtil
from .ubuntu import UbuntuOSUtil, Ubuntu12OSUtil, Ubuntu14OSUtil, \
UbuntuSnappyOSUtil, Ubuntu16OSUtil, Ubuntu18OSUtil
+from .fedora import FedoraOSUtil
def get_osutil(distro_name=DISTRO_NAME,
@@ -138,5 +139,8 @@ def _get_osutil(distro_name, distro_code_name, distro_version, distro_full_name)
if distro_name == "openwrt":
return OpenWRTOSUtil()
+ if distro_name == "fedora":
+ return FedoraOSUtil()
+
logger.warn("Unable to load distro implementation for {0}. Using default distro implementation instead.", distro_name)
return DefaultOSUtil()
diff --git a/azurelinuxagent/common/osutil/fedora.py b/azurelinuxagent/common/osutil/fedora.py
new file mode 100644
index 000000000000..480f139a87ed
--- /dev/null
+++ b/azurelinuxagent/common/osutil/fedora.py
@@ -0,0 +1,75 @@
+#
+# Copyright 2022 Red Hat Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# Requires Python 2.6+ and Openssl 1.0+
+#
+
+import azurelinuxagent.common.utils.shellutil as shellutil
+from azurelinuxagent.common.osutil.default import DefaultOSUtil
+
+
+class FedoraOSUtil(DefaultOSUtil):
+
+ def __init__(self):
+ super(FedoraOSUtil, self).__init__()
+ self.agent_conf_file_path = '/etc/waagent.conf'
+
+ @staticmethod
+ def get_systemd_unit_file_install_path():
+ return '/usr/lib/systemd/system'
+
+ @staticmethod
+ def get_agent_bin_path():
+ return '/usr/sbin'
+
+ def is_dhcp_enabled(self):
+ return True
+
+ def start_network(self):
+ pass
+
+ def restart_if(self, ifname=None, retries=None, wait=None):
+ retry_limit = retries+1
+ for attempt in range(1, retry_limit):
+ return_code = shellutil.run("ip link set {0} down && ip link set {0} up".format(ifname))
+ 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")
+
+ def restart_ssh_service(self):
+ shellutil.run('systemctl restart sshd')
+
+ def stop_dhcp_service(self):
+ pass
+
+ def start_dhcp_service(self):
+ pass
+
+ def start_agent_service(self):
+ return shellutil.run('systemctl start waagent', chk_err=False)
+
+ def stop_agent_service(self):
+ return shellutil.run('systemctl stop waagent', chk_err=False)
+
+ def get_dhcp_pid(self):
+ return self._get_dhcp_pid(["pidof", "dhclient"])
+
+ def conf_sshd(self, disable_password):
+ pass
diff --git a/setup.py b/setup.py
index 12c9e1d61979..b0acead305b5 100755
--- a/setup.py
+++ b/setup.py
@@ -238,6 +238,12 @@ def get_data_files(name, version, fullname): # pylint: disable=R0912
set_conf_files(data_files, src=["config/photonos/waagent.conf"])
set_systemd_files(data_files, dest=systemd_dir_path,
src=["init/photonos/waagent.service"])
+ elif name == 'fedora':
+ set_bin_files(data_files, dest=agent_bin_path)
+ set_conf_files(data_files)
+ set_logrotate_files(data_files)
+ set_udev_files(data_files)
+ set_systemd_files(data_files, dest=systemd_dir_path)
else:
# Use default setting
set_bin_files(data_files, dest=agent_bin_path)
--
2.35.1

View File

@ -2,8 +2,8 @@
%global dracut_modname 97walinuxagent
Name: WALinuxAgent
Version: 2.5.0.2
Release: 2%{?dist}
Version: 2.7.0.6
Release: 1%{?dist}
Summary: The Microsoft Azure Linux Agent
License: ASL 2.0
@ -11,7 +11,7 @@ URL: https://github.com/Azure/%{name}
Source0: https://github.com/Azure/%{name}/archive/v%{version}.tar.gz
Source1: module-setup.sh
Patch0: 0001-Install-systemd-unit-for-default-OS.patch
Patch0: 0001-Rudimentary-Fedora-OS-implementation.patch
BuildArch: noarch
@ -106,6 +106,8 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam
%{_sbindir}/waagent
%config(noreplace) %{_sysconfdir}/waagent.conf
%{_unitdir}/waagent.service
%{_unitdir}/azure.slice
%{_unitdir}/azure-vmextensions.slice
%{python3_sitelib}/azurelinuxagent
%{python3_sitelib}/*.egg-info
@ -119,6 +121,9 @@ install -m0755 -D -t %{buildroot}%{_prefix}/lib/dracut/modules.d/%{dracut_modnam
%endif
%changelog
* 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

View File

@ -1,2 +1,2 @@
SHA512 (v2.5.0.2.tar.gz) = e3b81ad767e42cfc0884c5adfb08912da725dcd14f9ee2f0003c101ed0a370c47f37141e504cbe6d2860e52581e714565b7815685d8b6e6792af7dae7d3cc29e
SHA512 (v2.7.0.6.tar.gz) = b23c9c31014d5f5e31952bb97babfcf45058fa2826d3ca167ee87d432a9459b99ce1b823e7c7e83933f8389368ee47d76398dd514ce0a3b27bfb47ba4e44a17b
SHA512 (module-setup.sh) = c05ed7395006c78bae1a7727b64c4b00a14e2c37e0d8a6ae7c05905a86d4ba638a2b98e4642ecd9a98db38298ff99f4877f900965a97f933b9aa034488835394