From d27a8427ca1a47517b95d57585c4f9cdeae70033 Mon Sep 17 00:00:00 2001 From: Jiabao <228353429@qq.com> Date: Fri, 19 Dec 2025 03:13:11 +0000 Subject: [PATCH 1/2] cloud-init: add UnionTech/Kylin distro support - detect UnionTech and Kylin via /etc/*-release Signed-off-by: Jiabao --- cloud-init.spec | 6 +- ...ect-package-manager-on-kylin-and-uos.patch | 265 ++++++++++++++++++ 2 files changed, 270 insertions(+), 1 deletion(-) create mode 100644 fix-cannot-detect-package-manager-on-kylin-and-uos.patch diff --git a/cloud-init.spec b/cloud-init.spec index 2c8b092..da6b36c 100644 --- a/cloud-init.spec +++ b/cloud-init.spec @@ -1,6 +1,6 @@ Name: cloud-init Version: 19.4 -Release: 16 +Release: 17 Summary: the defacto multi-distribution package that handles early initialization of a cloud instance. License: ASL 2.0 or GPLv3 URL: http://launchpad.net/cloud-init @@ -31,6 +31,7 @@ Patch20: fix-CVE-2024-6174-1.patch Patch21: fix-CVE-2024-6174-2.patch Patch9000: Fix-the-error-level-logs-displayed-for-the-cloud-init-local-service.patch +Patch9001: fix-cannot-detect-package-manager-on-kylin-and-uos.patch BuildRequires: pkgconfig(systemd) python3-devel python3-setuptools systemd BuildRequires: iproute python3-configobj python3-httpretty >= 0.8.14-2 @@ -137,6 +138,9 @@ fi %exclude /usr/share/doc/* %changelog +* Wed Dec 17 2025 jiabao.li - 19.4-17 +- add UnionTech/Kylin distro support + * Mon Jul 07 2025 cenhuilin - 19.4-16 - fix CVE-2024-6174 diff --git a/fix-cannot-detect-package-manager-on-kylin-and-uos.patch b/fix-cannot-detect-package-manager-on-kylin-and-uos.patch new file mode 100644 index 0000000..0016a3f --- /dev/null +++ b/fix-cannot-detect-package-manager-on-kylin-and-uos.patch @@ -0,0 +1,265 @@ +From 775b3ac5f09a25680cdcc9db6f6503992caf0a0e Mon Sep 17 00:00:00 2001 +From: jiabao.li +Date: Wed, 17 Dec 2025 18:33:49 +0800 +Subject: [PATCH] fix cannot detect package manager on kylin and uos + +--- + cloudinit/config/cc_ntp.py | 2 +- + cloudinit/config/cc_resolv_conf.py | 2 +- + cloudinit/config/cc_rh_subscription.py | 2 +- + cloudinit/config/cc_spacewalk.py | 2 +- + cloudinit/config/cc_yum_add_repo.py | 2 +- + cloudinit/distros/Kylin.py | 12 ++++++++++++ + cloudinit/distros/UnionTech.py | 12 ++++++++++++ + cloudinit/distros/__init__.py | 2 +- + cloudinit/net/sysconfig.py | 2 +- + cloudinit/util.py | 6 +++++- + config/cloud.cfg.tmpl | 8 ++++---- + systemd/cloud-init-generator.tmpl | 2 +- + systemd/cloud-init.service.tmpl | 2 +- + tests/cloud_tests/util.py | 2 +- + tools/render-cloudcfg | 2 +- + 15 files changed, 44 insertions(+), 16 deletions(-) + create mode 100644 cloudinit/distros/Kylin.py + create mode 100644 cloudinit/distros/UnionTech.py + +diff --git a/cloudinit/config/cc_ntp.py b/cloudinit/config/cc_ntp.py +index 5481f54..f37d32b 100644 +--- a/cloudinit/config/cc_ntp.py ++++ b/cloudinit/config/cc_ntp.py +@@ -25,7 +25,7 @@ LOG = logging.getLogger(__name__) + frequency = PER_INSTANCE + NTP_CONF = '/etc/ntp.conf' + NR_POOL_SERVERS = 4 +-distros = ['centos', 'debian', 'fedora', 'opensuse', 'rhel', 'sles', 'ubuntu', 'openeuler'] ++distros = ['centos', 'debian', 'fedora', 'opensuse', 'rhel', 'sles', 'ubuntu', 'openeuler', 'UnionTech', 'Kylin'] + + NTP_CLIENT_CONFIG = { + 'chrony': { +diff --git a/cloudinit/config/cc_resolv_conf.py b/cloudinit/config/cc_resolv_conf.py +index c396dcf..a37e0d2 100644 +--- a/cloudinit/config/cc_resolv_conf.py ++++ b/cloudinit/config/cc_resolv_conf.py +@@ -55,7 +55,7 @@ LOG = logging.getLogger(__name__) + + frequency = PER_INSTANCE + +-distros = ['fedora', 'opensuse', 'rhel', 'sles', 'openeuler'] ++distros = ['fedora', 'opensuse', 'rhel', 'sles', 'openeuler', 'UnionTech', 'Kylin'] + + + def generate_resolv_conf(template_fn, params, target_fname="/etc/resolv.conf"): +diff --git a/cloudinit/config/cc_rh_subscription.py b/cloudinit/config/cc_rh_subscription.py +index d0ea71a..c10c0e5 100644 +--- a/cloudinit/config/cc_rh_subscription.py ++++ b/cloudinit/config/cc_rh_subscription.py +@@ -43,7 +43,7 @@ from cloudinit import util + + LOG = logging.getLogger(__name__) + +-distros = ['fedora', 'rhel', 'openeuler'] ++distros = ['fedora', 'rhel', 'openeuler', 'UnionTech', 'Kylin'] + + + def handle(name, cfg, _cloud, log, _args): +diff --git a/cloudinit/config/cc_spacewalk.py b/cloudinit/config/cc_spacewalk.py +index 7696c47..86f4758 100644 +--- a/cloudinit/config/cc_spacewalk.py ++++ b/cloudinit/config/cc_spacewalk.py +@@ -30,7 +30,7 @@ For more information about spacewalk see: https://fedorahosted.org/spacewalk/ + from cloudinit import util + + +-distros = ['redhat', 'fedora', 'openeuler'] ++distros = ['redhat', 'fedora', 'openeuler', 'UnionTech', 'Kylin'] + required_packages = ['rhn-setup'] + def_ca_cert_path = "/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT" + +diff --git a/cloudinit/config/cc_yum_add_repo.py b/cloudinit/config/cc_yum_add_repo.py +index 0c3f481..5dc0a8f 100644 +--- a/cloudinit/config/cc_yum_add_repo.py ++++ b/cloudinit/config/cc_yum_add_repo.py +@@ -40,7 +40,7 @@ import six + + from cloudinit import util + +-distros = ['fedora', 'rhel', 'openeuler'] ++distros = ['fedora', 'rhel', 'openeuler', 'UnionTech', 'Kylin'] + + + def _canonicalize_id(repo_id): +diff --git a/cloudinit/distros/Kylin.py b/cloudinit/distros/Kylin.py +new file mode 100644 +index 0000000..7505ca4 +--- /dev/null ++++ b/cloudinit/distros/Kylin.py +@@ -0,0 +1,12 @@ ++# Copyright (c) Huawei Technologies Co., Ltd. 2019-2019. All rights reserved. ++# This file is part of cloud-init. See LICENSE file for license information. ++ ++from cloudinit.distros import rhel ++from cloudinit import log as logging ++ ++LOG = logging.getLogger(__name__) ++ ++class Distro(rhel.Distro): ++ pass ++ ++# vi: ts=4 expandtab +diff --git a/cloudinit/distros/UnionTech.py b/cloudinit/distros/UnionTech.py +new file mode 100644 +index 0000000..7505ca4 +--- /dev/null ++++ b/cloudinit/distros/UnionTech.py +@@ -0,0 +1,12 @@ ++# Copyright (c) Huawei Technologies Co., Ltd. 2019-2019. All rights reserved. ++# This file is part of cloud-init. See LICENSE file for license information. ++ ++from cloudinit.distros import rhel ++from cloudinit import log as logging ++ ++LOG = logging.getLogger(__name__) ++ ++class Distro(rhel.Distro): ++ pass ++ ++# vi: ts=4 expandtab +diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py +index f878c22..7e627a2 100755 +--- a/cloudinit/distros/__init__.py ++++ b/cloudinit/distros/__init__.py +@@ -36,7 +36,7 @@ ALL_DISTROS = 'all' + + OSFAMILIES = { + 'debian': ['debian', 'ubuntu'], +- 'redhat': ['amazon', 'centos', 'fedora', 'rhel', 'openeuler'], ++ 'redhat': ['amazon', 'centos', 'fedora', 'rhel', 'openeuler', 'UnionTech', 'Kylin'], + 'gentoo': ['gentoo'], + 'freebsd': ['freebsd'], + 'suse': ['opensuse', 'sles'], +diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py +index 17959d8..1c91a30 100644 +--- a/cloudinit/net/sysconfig.py ++++ b/cloudinit/net/sysconfig.py +@@ -18,7 +18,7 @@ from .network_state import ( + + LOG = logging.getLogger(__name__) + NM_CFG_FILE = "/etc/NetworkManager/NetworkManager.conf" +-KNOWN_DISTROS = ['centos', 'fedora', 'rhel', 'suse', 'openeuler'] ++KNOWN_DISTROS = ['centos', 'fedora', 'rhel', 'suse', 'openeuler', 'UnionTech', 'Kylin'] + + + def _make_header(sep='#'): +diff --git a/cloudinit/util.py b/cloudinit/util.py +index 2379177..3caa674 100644 +--- a/cloudinit/util.py ++++ b/cloudinit/util.py +@@ -669,8 +669,12 @@ def system_info(): + if system == "linux": + linux_dist = info['dist'][0].lower() + if linux_dist in ( +- 'arch', 'centos', 'debian', 'fedora', 'rhel', 'suse', 'openeuler'): ++ 'arch', 'centos', 'debian', 'fedora', 'rhel', 'suse', 'openeuler', 'UnionTech', 'Kylin'): + var = linux_dist ++ elif linux_dist == 'uos': ++ var = 'UnionTech' ++ elif linux_dist == 'kylin': ++ var = 'Kylin' + elif linux_dist in ('ubuntu', 'linuxmint', 'mint'): + var = 'ubuntu' + elif linux_dist == 'redhat': +diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl +index 296da18..51dd645 100644 +--- a/config/cloud.cfg.tmpl ++++ b/config/cloud.cfg.tmpl +@@ -21,7 +21,7 @@ disable_root: false + disable_root: true + {% endif %} + +-{% if variant in ["centos", "fedora", "rhel", "openeuler"] %} ++{% if variant in ["centos", "fedora", "rhel", "openeuler", "UnionTech", "Kylin"] %} + mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2'] + resize_rootfs_tmp: /dev + ssh_pwauth: 0 +@@ -76,7 +76,7 @@ cloud_config_modules: + - ssh-import-id + - locale + - set-passwords +-{% if variant in ["rhel", "fedora", "openeuler"] %} ++{% if variant in ["rhel", "fedora", "openeuler", "UnionTech", "Kylin"] %} + - spacewalk + - yum-add-repo + {% endif %} +@@ -137,7 +137,7 @@ cloud_final_modules: + # (not accessible to handlers/transforms) + system_info: + # This will affect which distro class gets used +-{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu", "openeuler"] %} ++{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu", "openeuler", "UnionTech", "Kylin"] %} + distro: {{ variant }} + {% else %} + # Unknown/fallback distro. +@@ -185,7 +185,7 @@ system_info: + primary: http://ports.ubuntu.com/ubuntu-ports + security: http://ports.ubuntu.com/ubuntu-ports + ssh_svcname: ssh +-{% elif variant in ["arch", "centos", "fedora", "rhel", "suse", "openeuler"] %} ++{% elif variant in ["arch", "centos", "fedora", "rhel", "suse", "openeuler", "UnionTech", "Kylin"] %} + # Default user name + that default users groups (if added/used) + default_user: + name: {{ variant }} +diff --git a/systemd/cloud-init-generator.tmpl b/systemd/cloud-init-generator.tmpl +index 8bd49cc..22c358b 100755 +--- a/systemd/cloud-init-generator.tmpl ++++ b/systemd/cloud-init-generator.tmpl +@@ -83,7 +83,7 @@ default() { + + check_for_datasource() { + local ds_rc="" +-{% if variant in ["redhat", "fedora", "centos", "openeuler"] %} ++{% if variant in ["redhat", "fedora", "centos", "openeuler", "UnionTech", "Kylin"] %} + local dsidentify="/usr/libexec/cloud-init/ds-identify" + {% else %} + local dsidentify="/usr/lib/cloud-init/ds-identify" +diff --git a/systemd/cloud-init.service.tmpl b/systemd/cloud-init.service.tmpl +index c7fe613..d3bd617 100644 +--- a/systemd/cloud-init.service.tmpl ++++ b/systemd/cloud-init.service.tmpl +@@ -10,7 +10,7 @@ After=systemd-networkd-wait-online.service + {% if variant in ["ubuntu", "unknown", "debian"] %} + After=networking.service + {% endif %} +-{% if variant in ["centos", "fedora", "redhat", "openeuler"] %} ++{% if variant in ["centos", "fedora", "redhat", "openeuler", "UnionTech", "Kylin"] %} + After=network.service + After=NetworkManager.service + {% endif %} +diff --git a/tests/cloud_tests/util.py b/tests/cloud_tests/util.py +index 6dbc413..10c2802 100644 +--- a/tests/cloud_tests/util.py ++++ b/tests/cloud_tests/util.py +@@ -19,7 +19,7 @@ from tests.cloud_tests import LOG + + OS_FAMILY_MAPPING = { + 'debian': ['debian', 'ubuntu'], +- 'redhat': ['centos', 'rhel', 'fedora', 'openeuler'], ++ 'redhat': ['centos', 'rhel', 'fedora', 'openeuler', 'UnionTech', 'Kylin'], + 'gentoo': ['gentoo'], + 'freebsd': ['freebsd'], + 'suse': ['sles'], +diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg +index ef0afa8..4ceb646 100755 +--- a/tools/render-cloudcfg ++++ b/tools/render-cloudcfg +@@ -5,7 +5,7 @@ import os + import sys + + VARIANTS = ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", +- "ubuntu", "unknown", "openeuler"] ++ "ubuntu", "unknown", "openeuler", "UnionTech", "Kylin"] + + if "avoid-pep8-E402-import-not-top-of-file": + _tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) +-- +2.27.0 + -- Gitee From 13b93c73a1af4b9a6524a141290daa2b9a066902 Mon Sep 17 00:00:00 2001 From: Jiabao Date: Fri, 19 Dec 2025 05:52:43 +0000 Subject: [PATCH 2/2] Revert "cloud-init: add UnionTech/Kylin distro support" This reverts commit d27a8427ca1a47517b95d57585c4f9cdeae70033. --- cloud-init.spec | 6 +- ...ect-package-manager-on-kylin-and-uos.patch | 265 ------------------ 2 files changed, 1 insertion(+), 270 deletions(-) delete mode 100644 fix-cannot-detect-package-manager-on-kylin-and-uos.patch diff --git a/cloud-init.spec b/cloud-init.spec index da6b36c..2c8b092 100644 --- a/cloud-init.spec +++ b/cloud-init.spec @@ -1,6 +1,6 @@ Name: cloud-init Version: 19.4 -Release: 17 +Release: 16 Summary: the defacto multi-distribution package that handles early initialization of a cloud instance. License: ASL 2.0 or GPLv3 URL: http://launchpad.net/cloud-init @@ -31,7 +31,6 @@ Patch20: fix-CVE-2024-6174-1.patch Patch21: fix-CVE-2024-6174-2.patch Patch9000: Fix-the-error-level-logs-displayed-for-the-cloud-init-local-service.patch -Patch9001: fix-cannot-detect-package-manager-on-kylin-and-uos.patch BuildRequires: pkgconfig(systemd) python3-devel python3-setuptools systemd BuildRequires: iproute python3-configobj python3-httpretty >= 0.8.14-2 @@ -138,9 +137,6 @@ fi %exclude /usr/share/doc/* %changelog -* Wed Dec 17 2025 jiabao.li - 19.4-17 -- add UnionTech/Kylin distro support - * Mon Jul 07 2025 cenhuilin - 19.4-16 - fix CVE-2024-6174 diff --git a/fix-cannot-detect-package-manager-on-kylin-and-uos.patch b/fix-cannot-detect-package-manager-on-kylin-and-uos.patch deleted file mode 100644 index 0016a3f..0000000 --- a/fix-cannot-detect-package-manager-on-kylin-and-uos.patch +++ /dev/null @@ -1,265 +0,0 @@ -From 775b3ac5f09a25680cdcc9db6f6503992caf0a0e Mon Sep 17 00:00:00 2001 -From: jiabao.li -Date: Wed, 17 Dec 2025 18:33:49 +0800 -Subject: [PATCH] fix cannot detect package manager on kylin and uos - ---- - cloudinit/config/cc_ntp.py | 2 +- - cloudinit/config/cc_resolv_conf.py | 2 +- - cloudinit/config/cc_rh_subscription.py | 2 +- - cloudinit/config/cc_spacewalk.py | 2 +- - cloudinit/config/cc_yum_add_repo.py | 2 +- - cloudinit/distros/Kylin.py | 12 ++++++++++++ - cloudinit/distros/UnionTech.py | 12 ++++++++++++ - cloudinit/distros/__init__.py | 2 +- - cloudinit/net/sysconfig.py | 2 +- - cloudinit/util.py | 6 +++++- - config/cloud.cfg.tmpl | 8 ++++---- - systemd/cloud-init-generator.tmpl | 2 +- - systemd/cloud-init.service.tmpl | 2 +- - tests/cloud_tests/util.py | 2 +- - tools/render-cloudcfg | 2 +- - 15 files changed, 44 insertions(+), 16 deletions(-) - create mode 100644 cloudinit/distros/Kylin.py - create mode 100644 cloudinit/distros/UnionTech.py - -diff --git a/cloudinit/config/cc_ntp.py b/cloudinit/config/cc_ntp.py -index 5481f54..f37d32b 100644 ---- a/cloudinit/config/cc_ntp.py -+++ b/cloudinit/config/cc_ntp.py -@@ -25,7 +25,7 @@ LOG = logging.getLogger(__name__) - frequency = PER_INSTANCE - NTP_CONF = '/etc/ntp.conf' - NR_POOL_SERVERS = 4 --distros = ['centos', 'debian', 'fedora', 'opensuse', 'rhel', 'sles', 'ubuntu', 'openeuler'] -+distros = ['centos', 'debian', 'fedora', 'opensuse', 'rhel', 'sles', 'ubuntu', 'openeuler', 'UnionTech', 'Kylin'] - - NTP_CLIENT_CONFIG = { - 'chrony': { -diff --git a/cloudinit/config/cc_resolv_conf.py b/cloudinit/config/cc_resolv_conf.py -index c396dcf..a37e0d2 100644 ---- a/cloudinit/config/cc_resolv_conf.py -+++ b/cloudinit/config/cc_resolv_conf.py -@@ -55,7 +55,7 @@ LOG = logging.getLogger(__name__) - - frequency = PER_INSTANCE - --distros = ['fedora', 'opensuse', 'rhel', 'sles', 'openeuler'] -+distros = ['fedora', 'opensuse', 'rhel', 'sles', 'openeuler', 'UnionTech', 'Kylin'] - - - def generate_resolv_conf(template_fn, params, target_fname="/etc/resolv.conf"): -diff --git a/cloudinit/config/cc_rh_subscription.py b/cloudinit/config/cc_rh_subscription.py -index d0ea71a..c10c0e5 100644 ---- a/cloudinit/config/cc_rh_subscription.py -+++ b/cloudinit/config/cc_rh_subscription.py -@@ -43,7 +43,7 @@ from cloudinit import util - - LOG = logging.getLogger(__name__) - --distros = ['fedora', 'rhel', 'openeuler'] -+distros = ['fedora', 'rhel', 'openeuler', 'UnionTech', 'Kylin'] - - - def handle(name, cfg, _cloud, log, _args): -diff --git a/cloudinit/config/cc_spacewalk.py b/cloudinit/config/cc_spacewalk.py -index 7696c47..86f4758 100644 ---- a/cloudinit/config/cc_spacewalk.py -+++ b/cloudinit/config/cc_spacewalk.py -@@ -30,7 +30,7 @@ For more information about spacewalk see: https://fedorahosted.org/spacewalk/ - from cloudinit import util - - --distros = ['redhat', 'fedora', 'openeuler'] -+distros = ['redhat', 'fedora', 'openeuler', 'UnionTech', 'Kylin'] - required_packages = ['rhn-setup'] - def_ca_cert_path = "/usr/share/rhn/RHN-ORG-TRUSTED-SSL-CERT" - -diff --git a/cloudinit/config/cc_yum_add_repo.py b/cloudinit/config/cc_yum_add_repo.py -index 0c3f481..5dc0a8f 100644 ---- a/cloudinit/config/cc_yum_add_repo.py -+++ b/cloudinit/config/cc_yum_add_repo.py -@@ -40,7 +40,7 @@ import six - - from cloudinit import util - --distros = ['fedora', 'rhel', 'openeuler'] -+distros = ['fedora', 'rhel', 'openeuler', 'UnionTech', 'Kylin'] - - - def _canonicalize_id(repo_id): -diff --git a/cloudinit/distros/Kylin.py b/cloudinit/distros/Kylin.py -new file mode 100644 -index 0000000..7505ca4 ---- /dev/null -+++ b/cloudinit/distros/Kylin.py -@@ -0,0 +1,12 @@ -+# Copyright (c) Huawei Technologies Co., Ltd. 2019-2019. All rights reserved. -+# This file is part of cloud-init. See LICENSE file for license information. -+ -+from cloudinit.distros import rhel -+from cloudinit import log as logging -+ -+LOG = logging.getLogger(__name__) -+ -+class Distro(rhel.Distro): -+ pass -+ -+# vi: ts=4 expandtab -diff --git a/cloudinit/distros/UnionTech.py b/cloudinit/distros/UnionTech.py -new file mode 100644 -index 0000000..7505ca4 ---- /dev/null -+++ b/cloudinit/distros/UnionTech.py -@@ -0,0 +1,12 @@ -+# Copyright (c) Huawei Technologies Co., Ltd. 2019-2019. All rights reserved. -+# This file is part of cloud-init. See LICENSE file for license information. -+ -+from cloudinit.distros import rhel -+from cloudinit import log as logging -+ -+LOG = logging.getLogger(__name__) -+ -+class Distro(rhel.Distro): -+ pass -+ -+# vi: ts=4 expandtab -diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py -index f878c22..7e627a2 100755 ---- a/cloudinit/distros/__init__.py -+++ b/cloudinit/distros/__init__.py -@@ -36,7 +36,7 @@ ALL_DISTROS = 'all' - - OSFAMILIES = { - 'debian': ['debian', 'ubuntu'], -- 'redhat': ['amazon', 'centos', 'fedora', 'rhel', 'openeuler'], -+ 'redhat': ['amazon', 'centos', 'fedora', 'rhel', 'openeuler', 'UnionTech', 'Kylin'], - 'gentoo': ['gentoo'], - 'freebsd': ['freebsd'], - 'suse': ['opensuse', 'sles'], -diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py -index 17959d8..1c91a30 100644 ---- a/cloudinit/net/sysconfig.py -+++ b/cloudinit/net/sysconfig.py -@@ -18,7 +18,7 @@ from .network_state import ( - - LOG = logging.getLogger(__name__) - NM_CFG_FILE = "/etc/NetworkManager/NetworkManager.conf" --KNOWN_DISTROS = ['centos', 'fedora', 'rhel', 'suse', 'openeuler'] -+KNOWN_DISTROS = ['centos', 'fedora', 'rhel', 'suse', 'openeuler', 'UnionTech', 'Kylin'] - - - def _make_header(sep='#'): -diff --git a/cloudinit/util.py b/cloudinit/util.py -index 2379177..3caa674 100644 ---- a/cloudinit/util.py -+++ b/cloudinit/util.py -@@ -669,8 +669,12 @@ def system_info(): - if system == "linux": - linux_dist = info['dist'][0].lower() - if linux_dist in ( -- 'arch', 'centos', 'debian', 'fedora', 'rhel', 'suse', 'openeuler'): -+ 'arch', 'centos', 'debian', 'fedora', 'rhel', 'suse', 'openeuler', 'UnionTech', 'Kylin'): - var = linux_dist -+ elif linux_dist == 'uos': -+ var = 'UnionTech' -+ elif linux_dist == 'kylin': -+ var = 'Kylin' - elif linux_dist in ('ubuntu', 'linuxmint', 'mint'): - var = 'ubuntu' - elif linux_dist == 'redhat': -diff --git a/config/cloud.cfg.tmpl b/config/cloud.cfg.tmpl -index 296da18..51dd645 100644 ---- a/config/cloud.cfg.tmpl -+++ b/config/cloud.cfg.tmpl -@@ -21,7 +21,7 @@ disable_root: false - disable_root: true - {% endif %} - --{% if variant in ["centos", "fedora", "rhel", "openeuler"] %} -+{% if variant in ["centos", "fedora", "rhel", "openeuler", "UnionTech", "Kylin"] %} - mount_default_fields: [~, ~, 'auto', 'defaults,nofail', '0', '2'] - resize_rootfs_tmp: /dev - ssh_pwauth: 0 -@@ -76,7 +76,7 @@ cloud_config_modules: - - ssh-import-id - - locale - - set-passwords --{% if variant in ["rhel", "fedora", "openeuler"] %} -+{% if variant in ["rhel", "fedora", "openeuler", "UnionTech", "Kylin"] %} - - spacewalk - - yum-add-repo - {% endif %} -@@ -137,7 +137,7 @@ cloud_final_modules: - # (not accessible to handlers/transforms) - system_info: - # This will affect which distro class gets used --{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu", "openeuler"] %} -+{% if variant in ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", "ubuntu", "openeuler", "UnionTech", "Kylin"] %} - distro: {{ variant }} - {% else %} - # Unknown/fallback distro. -@@ -185,7 +185,7 @@ system_info: - primary: http://ports.ubuntu.com/ubuntu-ports - security: http://ports.ubuntu.com/ubuntu-ports - ssh_svcname: ssh --{% elif variant in ["arch", "centos", "fedora", "rhel", "suse", "openeuler"] %} -+{% elif variant in ["arch", "centos", "fedora", "rhel", "suse", "openeuler", "UnionTech", "Kylin"] %} - # Default user name + that default users groups (if added/used) - default_user: - name: {{ variant }} -diff --git a/systemd/cloud-init-generator.tmpl b/systemd/cloud-init-generator.tmpl -index 8bd49cc..22c358b 100755 ---- a/systemd/cloud-init-generator.tmpl -+++ b/systemd/cloud-init-generator.tmpl -@@ -83,7 +83,7 @@ default() { - - check_for_datasource() { - local ds_rc="" --{% if variant in ["redhat", "fedora", "centos", "openeuler"] %} -+{% if variant in ["redhat", "fedora", "centos", "openeuler", "UnionTech", "Kylin"] %} - local dsidentify="/usr/libexec/cloud-init/ds-identify" - {% else %} - local dsidentify="/usr/lib/cloud-init/ds-identify" -diff --git a/systemd/cloud-init.service.tmpl b/systemd/cloud-init.service.tmpl -index c7fe613..d3bd617 100644 ---- a/systemd/cloud-init.service.tmpl -+++ b/systemd/cloud-init.service.tmpl -@@ -10,7 +10,7 @@ After=systemd-networkd-wait-online.service - {% if variant in ["ubuntu", "unknown", "debian"] %} - After=networking.service - {% endif %} --{% if variant in ["centos", "fedora", "redhat", "openeuler"] %} -+{% if variant in ["centos", "fedora", "redhat", "openeuler", "UnionTech", "Kylin"] %} - After=network.service - After=NetworkManager.service - {% endif %} -diff --git a/tests/cloud_tests/util.py b/tests/cloud_tests/util.py -index 6dbc413..10c2802 100644 ---- a/tests/cloud_tests/util.py -+++ b/tests/cloud_tests/util.py -@@ -19,7 +19,7 @@ from tests.cloud_tests import LOG - - OS_FAMILY_MAPPING = { - 'debian': ['debian', 'ubuntu'], -- 'redhat': ['centos', 'rhel', 'fedora', 'openeuler'], -+ 'redhat': ['centos', 'rhel', 'fedora', 'openeuler', 'UnionTech', 'Kylin'], - 'gentoo': ['gentoo'], - 'freebsd': ['freebsd'], - 'suse': ['sles'], -diff --git a/tools/render-cloudcfg b/tools/render-cloudcfg -index ef0afa8..4ceb646 100755 ---- a/tools/render-cloudcfg -+++ b/tools/render-cloudcfg -@@ -5,7 +5,7 @@ import os - import sys - - VARIANTS = ["arch", "centos", "debian", "fedora", "freebsd", "rhel", "suse", -- "ubuntu", "unknown", "openeuler"] -+ "ubuntu", "unknown", "openeuler", "UnionTech", "Kylin"] - - if "avoid-pep8-E402-import-not-top-of-file": - _tdir = os.path.abspath(os.path.join(os.path.dirname(__file__), "..")) --- -2.27.0 - -- Gitee