* Thu Jun 23 2022 Jon Maloy <jmaloy@redhat.com> - 22.1-4
- ci-Honor-system-locale-for-RHEL-1355.patch [bz#2061604] - ci-cloud-init.spec-adjust-path-for-66-azure-ephemeral.r.patch [bz#2096270] - ci-setup.py-adjust-udev-rules-default-path-1513.patch [bz#2096270] - Resolves: bz#2061604 (cloud-config will change /etc/locale.conf back to en_US.UTF-8 on rhel-guest-image-9.0) - Resolves: bz#2096270 (Adjust udev/rules default path[rhel-9])
This commit is contained in:
parent
cb3148c268
commit
d43312c1e3
135
ci-Honor-system-locale-for-RHEL-1355.patch
Normal file
135
ci-Honor-system-locale-for-RHEL-1355.patch
Normal file
@ -0,0 +1,135 @@
|
|||||||
|
From 53e3f8ab9008fec8400f96918c2129f7defe6a70 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
Date: Fri, 10 Jun 2022 20:51:55 +0200
|
||||||
|
Subject: [PATCH 1/3] Honor system locale for RHEL (#1355)
|
||||||
|
|
||||||
|
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
RH-MergeRequest: 29: Honor system locale for RHEL (#1355)
|
||||||
|
RH-Commit: [1/1] d571126fe6add8dc34a22c869d4e1a07a7373d8d (eesposit/cloud-init-centos-)
|
||||||
|
RH-Bugzilla: 2061604
|
||||||
|
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||||
|
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
|
|
||||||
|
commit 58da7d856274e9ca2b507128d6f186e0e6abfe06
|
||||||
|
Author: Wei Shi <wshi@redhat.com>
|
||||||
|
Date: Wed Mar 30 23:55:30 2022 +0800
|
||||||
|
|
||||||
|
Honor system locale for RHEL (#1355)
|
||||||
|
|
||||||
|
Make sure to use system locale as default on RHEL if locale is not
|
||||||
|
set in cloud-config.
|
||||||
|
|
||||||
|
RHEL has a pre-installed cloud image using C.UTF-8 for system locale
|
||||||
|
just like ubuntu-minimal cloud image, without this patch, locale
|
||||||
|
module will set it to en_US.UTF-8 from ds default value during config
|
||||||
|
stage.
|
||||||
|
|
||||||
|
Authored-by: Wei Shi <shi2wei3@hotmail.com>
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
---
|
||||||
|
cloudinit/distros/rhel.py | 32 +++++++++++++++++++++++++
|
||||||
|
tests/unittests/distros/test_generic.py | 10 ++++----
|
||||||
|
tools/.github-cla-signers | 1 +
|
||||||
|
3 files changed, 39 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/cloudinit/distros/rhel.py b/cloudinit/distros/rhel.py
|
||||||
|
index 84744ece..320f4ba1 100644
|
||||||
|
--- a/cloudinit/distros/rhel.py
|
||||||
|
+++ b/cloudinit/distros/rhel.py
|
||||||
|
@@ -7,6 +7,7 @@
|
||||||
|
# Author: Joshua Harlow <harlowja@yahoo-inc.com>
|
||||||
|
#
|
||||||
|
# This file is part of cloud-init. See LICENSE file for license information.
|
||||||
|
+import os
|
||||||
|
|
||||||
|
from cloudinit import distros, helpers
|
||||||
|
from cloudinit import log as logging
|
||||||
|
@@ -57,11 +58,25 @@ class Distro(distros.Distro):
|
||||||
|
# should only happen say once per instance...)
|
||||||
|
self._runner = helpers.Runners(paths)
|
||||||
|
self.osfamily = "redhat"
|
||||||
|
+ self.default_locale = "en_US.UTF-8"
|
||||||
|
+ self.system_locale = None
|
||||||
|
cfg["ssh_svcname"] = "sshd"
|
||||||
|
|
||||||
|
def install_packages(self, pkglist):
|
||||||
|
self.package_command("install", pkgs=pkglist)
|
||||||
|
|
||||||
|
+ def get_locale(self):
|
||||||
|
+ """Return the default locale if set, else use system locale"""
|
||||||
|
+
|
||||||
|
+ # read system locale value
|
||||||
|
+ if not self.system_locale:
|
||||||
|
+ self.system_locale = self._read_system_locale()
|
||||||
|
+
|
||||||
|
+ # Return system_locale setting if valid, else use default locale
|
||||||
|
+ return (
|
||||||
|
+ self.system_locale if self.system_locale else self.default_locale
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
def apply_locale(self, locale, out_fn=None):
|
||||||
|
if self.uses_systemd():
|
||||||
|
if not out_fn:
|
||||||
|
@@ -75,6 +90,23 @@ class Distro(distros.Distro):
|
||||||
|
}
|
||||||
|
rhel_util.update_sysconfig_file(out_fn, locale_cfg)
|
||||||
|
|
||||||
|
+ def _read_system_locale(self, keyname="LANG"):
|
||||||
|
+ """Read system default locale setting, if present"""
|
||||||
|
+ if self.uses_systemd():
|
||||||
|
+ locale_fn = self.systemd_locale_conf_fn
|
||||||
|
+ else:
|
||||||
|
+ locale_fn = self.locale_conf_fn
|
||||||
|
+
|
||||||
|
+ if not locale_fn:
|
||||||
|
+ raise ValueError("Invalid path: %s" % locale_fn)
|
||||||
|
+
|
||||||
|
+ if os.path.exists(locale_fn):
|
||||||
|
+ (_exists, contents) = rhel_util.read_sysconfig_file(locale_fn)
|
||||||
|
+ if keyname in contents:
|
||||||
|
+ return contents[keyname]
|
||||||
|
+ else:
|
||||||
|
+ return None
|
||||||
|
+
|
||||||
|
def _write_hostname(self, hostname, filename):
|
||||||
|
# systemd will never update previous-hostname for us, so
|
||||||
|
# we need to do it ourselves
|
||||||
|
diff --git a/tests/unittests/distros/test_generic.py b/tests/unittests/distros/test_generic.py
|
||||||
|
index 93c5395c..fedc7300 100644
|
||||||
|
--- a/tests/unittests/distros/test_generic.py
|
||||||
|
+++ b/tests/unittests/distros/test_generic.py
|
||||||
|
@@ -187,12 +187,14 @@ class TestGenericDistro(helpers.FilesystemMockingTestCase):
|
||||||
|
locale = d.get_locale()
|
||||||
|
self.assertEqual("C.UTF-8", locale)
|
||||||
|
|
||||||
|
- def test_get_locale_rhel(self):
|
||||||
|
- """Test rhel distro returns NotImplementedError exception"""
|
||||||
|
+ @mock.patch("cloudinit.distros.rhel.Distro._read_system_locale")
|
||||||
|
+ def test_get_locale_rhel(self, m_locale):
|
||||||
|
+ """Test rhel distro returns locale set to C.UTF-8"""
|
||||||
|
+ m_locale.return_value = "C.UTF-8"
|
||||||
|
cls = distros.fetch("rhel")
|
||||||
|
d = cls("rhel", {}, None)
|
||||||
|
- with self.assertRaises(NotImplementedError):
|
||||||
|
- d.get_locale()
|
||||||
|
+ locale = d.get_locale()
|
||||||
|
+ self.assertEqual("C.UTF-8", locale)
|
||||||
|
|
||||||
|
def test_expire_passwd_uses_chpasswd(self):
|
||||||
|
"""Test ubuntu.expire_passwd uses the passwd command."""
|
||||||
|
diff --git a/tools/.github-cla-signers b/tools/.github-cla-signers
|
||||||
|
index 9f71ea0c..9eb2ae38 100644
|
||||||
|
--- a/tools/.github-cla-signers
|
||||||
|
+++ b/tools/.github-cla-signers
|
||||||
|
@@ -70,6 +70,7 @@ renanrodrigo
|
||||||
|
rhansen
|
||||||
|
riedel
|
||||||
|
sarahwzadara
|
||||||
|
+shi2wei3
|
||||||
|
slingamn
|
||||||
|
slyon
|
||||||
|
smoser
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
57
ci-setup.py-adjust-udev-rules-default-path-1513.patch
Normal file
57
ci-setup.py-adjust-udev-rules-default-path-1513.patch
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
From f771d841dbdef8fbb1c1a3d1b8d51ff101354502 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
Date: Fri, 17 Jun 2022 09:41:23 +0200
|
||||||
|
Subject: [PATCH 3/3] setup.py: adjust udev/rules default path (#1513)
|
||||||
|
|
||||||
|
RH-Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
RH-MergeRequest: 30: setup.py: adjust udev/rules default path (#1513)
|
||||||
|
RH-Commit: [2/2] b71362acefa15587b2c72e8981708065d2fcfa07 (eesposit/cloud-init-centos-)
|
||||||
|
RH-Bugzilla: 2096270
|
||||||
|
RH-Acked-by: Mohamed Gamal Morsy <mmorsy@redhat.com>
|
||||||
|
RH-Acked-by: Vitaly Kuznetsov <vkuznets@redhat.com>
|
||||||
|
|
||||||
|
commit 70715125f3af118ae242770e61064c24f41e9a02
|
||||||
|
Author: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
Date: Thu Jun 16 20:39:42 2022 +0200
|
||||||
|
|
||||||
|
setup.py: adjust udev/rules default path (#1513)
|
||||||
|
|
||||||
|
RHEL must put cloudinit .rules files in /usr/lib/udev/rules.d
|
||||||
|
This place is a rhel standard and since it is used by all packages
|
||||||
|
cannot be modified.
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
|
||||||
|
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
|
||||||
|
---
|
||||||
|
setup.py | 7 ++++++-
|
||||||
|
1 file changed, 6 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/setup.py b/setup.py
|
||||||
|
index a9132d2c..fdf27cd7 100755
|
||||||
|
--- a/setup.py
|
||||||
|
+++ b/setup.py
|
||||||
|
@@ -302,6 +302,11 @@ data_files = [
|
||||||
|
),
|
||||||
|
]
|
||||||
|
if not platform.system().endswith("BSD"):
|
||||||
|
+
|
||||||
|
+ RULES_PATH = LIB
|
||||||
|
+ if os.path.isfile("/etc/redhat-release"):
|
||||||
|
+ RULES_PATH = "/usr/lib"
|
||||||
|
+
|
||||||
|
data_files.extend(
|
||||||
|
[
|
||||||
|
(
|
||||||
|
@@ -309,7 +314,7 @@ if not platform.system().endswith("BSD"):
|
||||||
|
["tools/hook-network-manager"],
|
||||||
|
),
|
||||||
|
(ETC + "/dhcp/dhclient-exit-hooks.d/", ["tools/hook-dhclient"]),
|
||||||
|
- (LIB + "/udev/rules.d", [f for f in glob("udev/*.rules")]),
|
||||||
|
+ (RULES_PATH + "/udev/rules.d", [f for f in glob("udev/*.rules")]),
|
||||||
|
(
|
||||||
|
ETC + "/systemd/system/sshd-keygen@.service.d/",
|
||||||
|
["systemd/disable-sshd-keygen-if-cloud-init-active.conf"],
|
||||||
|
--
|
||||||
|
2.35.1
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
Name: cloud-init
|
Name: cloud-init
|
||||||
Version: 22.1
|
Version: 22.1
|
||||||
Release: 3%{?dist}
|
Release: 4%{?dist}
|
||||||
Summary: Cloud instance init scripts
|
Summary: Cloud instance init scripts
|
||||||
License: ASL 2.0 or GPLv3
|
License: ASL 2.0 or GPLv3
|
||||||
URL: http://launchpad.net/cloud-init
|
URL: http://launchpad.net/cloud-init
|
||||||
@ -27,6 +27,10 @@ Patch11: ci-Remove-rhel-specific-files.patch
|
|||||||
Patch12: ci-Support-EC2-tags-in-instance-metadata-1309.patch
|
Patch12: ci-Support-EC2-tags-in-instance-metadata-1309.patch
|
||||||
# For bz#1980403 - [RHV] RHEL 9 VM with cloud-init without hostname set doesn't result in the FQDN as hostname
|
# For bz#1980403 - [RHV] RHEL 9 VM with cloud-init without hostname set doesn't result in the FQDN as hostname
|
||||||
Patch13: ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch
|
Patch13: ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch
|
||||||
|
# For bz#2061604 - cloud-config will change /etc/locale.conf back to en_US.UTF-8 on rhel-guest-image-9.0
|
||||||
|
Patch14: ci-Honor-system-locale-for-RHEL-1355.patch
|
||||||
|
# For bz#2096270 - Adjust udev/rules default path[rhel-9]
|
||||||
|
Patch15: ci-setup.py-adjust-udev-rules-default-path-1513.patch
|
||||||
|
|
||||||
# Source-git patches
|
# Source-git patches
|
||||||
|
|
||||||
@ -207,7 +211,7 @@ fi
|
|||||||
%dir /var/lib/cloud
|
%dir /var/lib/cloud
|
||||||
/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook
|
/etc/NetworkManager/dispatcher.d/cloud-init-azure-hook
|
||||||
/etc/dhcp/dhclient-exit-hooks.d/hook-dhclient
|
/etc/dhcp/dhclient-exit-hooks.d/hook-dhclient
|
||||||
/lib/udev/rules.d/66-azure-ephemeral.rules
|
%{_udevrulesdir}/66-azure-ephemeral.rules
|
||||||
%{_datadir}/bash-completion/completions/cloud-init
|
%{_datadir}/bash-completion/completions/cloud-init
|
||||||
%{_bindir}/cloud-id
|
%{_bindir}/cloud-id
|
||||||
%{_systemdgeneratordir}/cloud-init-generator
|
%{_systemdgeneratordir}/cloud-init-generator
|
||||||
@ -217,6 +221,15 @@ fi
|
|||||||
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
%config(noreplace) %{_sysconfdir}/rsyslog.d/21-cloudinit.conf
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 23 2022 Jon Maloy <jmaloy@redhat.com> - 22.1-4
|
||||||
|
- ci-Honor-system-locale-for-RHEL-1355.patch [bz#2061604]
|
||||||
|
- ci-cloud-init.spec-adjust-path-for-66-azure-ephemeral.r.patch [bz#2096270]
|
||||||
|
- ci-setup.py-adjust-udev-rules-default-path-1513.patch [bz#2096270]
|
||||||
|
- Resolves: bz#2061604
|
||||||
|
(cloud-config will change /etc/locale.conf back to en_US.UTF-8 on rhel-guest-image-9.0)
|
||||||
|
- Resolves: bz#2096270
|
||||||
|
(Adjust udev/rules default path[rhel-9])
|
||||||
|
|
||||||
* Wed Jun 08 2022 Miroslav Rezanina <mrezanin@redhat.com> - 22.1-3
|
* Wed Jun 08 2022 Miroslav Rezanina <mrezanin@redhat.com> - 22.1-3
|
||||||
- ci-Support-EC2-tags-in-instance-metadata-1309.patch [bz#2091640]
|
- ci-Support-EC2-tags-in-instance-metadata-1309.patch [bz#2091640]
|
||||||
- ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch [bz#1980403]
|
- ci-cc_set_hostname-do-not-write-localhost-when-no-hostn.patch [bz#1980403]
|
||||||
|
Loading…
Reference in New Issue
Block a user