summaryrefslogtreecommitdiff
path: root/cloudinit
diff options
context:
space:
mode:
authorLouis Abel <nazunalika@users.noreply.github.com>2021-05-25 06:25:41 -0700
committerGitHub <noreply@github.com>2021-05-25 08:25:41 -0500
commit7c1d27b8836c266f6db1e179b98ef32effeb750e (patch)
tree0a7f4897b000ee0c1f7a1b16c5d2b06269fd25fd /cloudinit
parentc8db603218dd56123e43857d81f5eae5f66618f1 (diff)
downloadvyos-cloud-init-7c1d27b8836c266f6db1e179b98ef32effeb750e.tar.gz
vyos-cloud-init-7c1d27b8836c266f6db1e179b98ef32effeb750e.zip
Add Rocky Linux support to cloud-init (#906)
Rocky Linux is a RHEL-compatible distribution so all changes that have been made should be trivial.
Diffstat (limited to 'cloudinit')
-rw-r--r--cloudinit/config/cc_ntp.py2
-rw-r--r--cloudinit/config/cc_yum_add_repo.py4
-rwxr-xr-xcloudinit/distros/__init__.py2
-rw-r--r--cloudinit/distros/rocky.py9
-rw-r--r--cloudinit/net/sysconfig.py2
-rw-r--r--cloudinit/tests/.test_util.py.swpbin0 -> 16384 bytes
-rw-r--r--cloudinit/tests/test_util.py35
-rw-r--r--cloudinit/util.py2
8 files changed, 49 insertions, 7 deletions
diff --git a/cloudinit/config/cc_ntp.py b/cloudinit/config/cc_ntp.py
index 41c278ff..70c24610 100644
--- a/cloudinit/config/cc_ntp.py
+++ b/cloudinit/config/cc_ntp.py
@@ -25,7 +25,7 @@ frequency = PER_INSTANCE
NTP_CONF = '/etc/ntp.conf'
NR_POOL_SERVERS = 4
distros = ['almalinux', 'alpine', 'centos', 'debian', 'fedora', 'opensuse',
- 'rhel', 'sles', 'ubuntu']
+ 'rhel', 'rocky', 'sles', 'ubuntu']
NTP_CLIENT_CONFIG = {
'chrony': {
diff --git a/cloudinit/config/cc_yum_add_repo.py b/cloudinit/config/cc_yum_add_repo.py
index db513ed7..7daa6bd9 100644
--- a/cloudinit/config/cc_yum_add_repo.py
+++ b/cloudinit/config/cc_yum_add_repo.py
@@ -18,7 +18,7 @@ entry, the config entry will be skipped.
**Module frequency:** per always
-**Supported distros:** almalinux, centos, fedora, rhel
+**Supported distros:** almalinux, centos, fedora, rhel, rocky
**Config keys**::
@@ -36,7 +36,7 @@ from configparser import ConfigParser
from cloudinit import util
-distros = ['almalinux', 'centos', 'fedora', 'rhel']
+distros = ['almalinux', 'centos', 'fedora', 'rhel', 'rocky']
def _canonicalize_id(repo_id):
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index 107b928c..57e33621 100755
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -46,7 +46,7 @@ OSFAMILIES = {
'debian': ['debian', 'ubuntu'],
'freebsd': ['freebsd'],
'gentoo': ['gentoo'],
- 'redhat': ['almalinux', 'amazon', 'centos', 'fedora', 'rhel'],
+ 'redhat': ['almalinux', 'amazon', 'centos', 'fedora', 'rhel', 'rocky'],
'suse': ['opensuse', 'sles'],
}
diff --git a/cloudinit/distros/rocky.py b/cloudinit/distros/rocky.py
new file mode 100644
index 00000000..edb3165d
--- /dev/null
+++ b/cloudinit/distros/rocky.py
@@ -0,0 +1,9 @@
+# This file is part of cloud-init. See LICENSE file for license information.
+
+from cloudinit.distros import rhel
+
+
+class Distro(rhel.Distro):
+ pass
+
+# vi: ts=4 expandtab
diff --git a/cloudinit/net/sysconfig.py b/cloudinit/net/sysconfig.py
index 089b44b2..3a433c99 100644
--- a/cloudinit/net/sysconfig.py
+++ b/cloudinit/net/sysconfig.py
@@ -19,7 +19,7 @@ from .network_state import (
LOG = logging.getLogger(__name__)
NM_CFG_FILE = "/etc/NetworkManager/NetworkManager.conf"
-KNOWN_DISTROS = ['almalinux', 'centos', 'fedora', 'rhel', 'suse']
+KNOWN_DISTROS = ['almalinux', 'centos', 'fedora', 'rhel', 'rocky', 'suse']
def _make_header(sep='#'):
diff --git a/cloudinit/tests/.test_util.py.swp b/cloudinit/tests/.test_util.py.swp
new file mode 100644
index 00000000..78ef5865
--- /dev/null
+++ b/cloudinit/tests/.test_util.py.swp
Binary files differ
diff --git a/cloudinit/tests/test_util.py b/cloudinit/tests/test_util.py
index a4c02877..f9bc31be 100644
--- a/cloudinit/tests/test_util.py
+++ b/cloudinit/tests/test_util.py
@@ -124,6 +124,22 @@ OS_RELEASE_ALMALINUX_8 = dedent("""\
ALMALINUX_MANTISBT_PROJECT_VERSION="8.3"
""")
+OS_RELEASE_ROCKY_8 = dedent("""\
+ NAME="Rocky Linux"
+ VERSION="8.3 (Green Obsidian)"
+ ID="rocky"
+ ID_LIKE="rhel fedora"
+ VERSION_ID="8.3"
+ PLATFORM_ID="platform:el8"
+ PRETTY_NAME="Rocky Linux 8.3 (Green Obsidian)"
+ ANSI_COLOR="0;31"
+ CPE_NAME="cpe:/o:rocky:rocky:8"
+ HOME_URL="https://rockylinux.org/"
+ BUG_REPORT_URL="https://bugs.rockylinux.org/"
+ ROCKY_SUPPORT_PRODUCT="Rocky Linux"
+ ROCKY_SUPPORT_PRODUCT_VERSION="8"
+""")
+
REDHAT_RELEASE_CENTOS_6 = "CentOS release 6.10 (Final)"
REDHAT_RELEASE_CENTOS_7 = "CentOS Linux release 7.5.1804 (Core)"
REDHAT_RELEASE_REDHAT_6 = (
@@ -132,7 +148,8 @@ REDHAT_RELEASE_REDHAT_7 = (
"Red Hat Enterprise Linux Server release 7.5 (Maipo)")
REDHAT_RELEASE_ALMALINUX_8 = (
"AlmaLinux release 8.3 (Purple Manul)")
-
+REDHAT_RELEASE_ROCKY_8 = (
+ "Rocky Linux release 8.3 (Green Obsidian)")
OS_RELEASE_DEBIAN = dedent("""\
PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
@@ -538,6 +555,22 @@ class TestGetLinuxDistro(CiTestCase):
self.assertEqual(('almalinux', '8.3', 'Purple Manul'), dist)
@mock.patch('cloudinit.util.load_file')
+ def test_get_linux_rocky8_rhrelease(self, m_os_release, m_path_exists):
+ """Verify rocky linux 8 read from redhat-release."""
+ m_os_release.return_value = REDHAT_RELEASE_ROCKY_8
+ m_path_exists.side_effect = TestGetLinuxDistro.redhat_release_exists
+ dist = util.get_linux_distro()
+ self.assertEqual(('rocky', '8.3', 'Green Obsidian'), dist)
+
+ @mock.patch('cloudinit.util.load_file')
+ def test_get_linux_rocky8_osrelease(self, m_os_release, m_path_exists):
+ """Verify rocky linux 8 read from os-release."""
+ m_os_release.return_value = OS_RELEASE_ROCKY_8
+ m_path_exists.side_effect = TestGetLinuxDistro.os_release_exists
+ dist = util.get_linux_distro()
+ self.assertEqual(('rocky', '8.3', 'Green Obsidian'), dist)
+
+ @mock.patch('cloudinit.util.load_file')
def test_get_linux_debian(self, m_os_release, m_path_exists):
"""Verify we get the correct name and release name on Debian."""
m_os_release.return_value = OS_RELEASE_DEBIAN
diff --git a/cloudinit/util.py b/cloudinit/util.py
index fdea1181..2de1123e 100644
--- a/cloudinit/util.py
+++ b/cloudinit/util.py
@@ -522,7 +522,7 @@ def system_info():
linux_dist = info['dist'][0].lower()
if linux_dist in (
'almalinux', 'alpine', 'arch', 'centos', 'debian', 'fedora',
- 'rhel', 'suse'):
+ 'rhel', 'rocky', 'suse'):
var = linux_dist
elif linux_dist in ('ubuntu', 'linuxmint', 'mint'):
var = 'ubuntu'