diff --git a/changelog/68715.added.md b/changelog/68715.added.md new file mode 100644 index 000000000000..d3f02b5f5912 --- /dev/null +++ b/changelog/68715.added.md @@ -0,0 +1 @@ +Added os_family mappings for additional Linux distributions. diff --git a/salt/grains/core.py b/salt/grains/core.py index 992532689a35..bdd797ada934 100644 --- a/salt/grains/core.py +++ b/salt/grains/core.py @@ -1902,6 +1902,10 @@ def _derive_os_grain(osfullname, os_id=None): "openSUSE Leap": "Suse", "openSUSE Tumbleweed": "Suse", "SLES_SAP": "Suse", + "alfaLinux": "Suse", + "alfaLinux Rise": "Suse", + "AlterOS": "RedHat", + "RED OS": "RedHat", "Arch ARM": "Arch", "Manjaro": "Arch", "Manjaro ARM": "Arch", diff --git a/tests/pytests/unit/grains/test_core.py b/tests/pytests/unit/grains/test_core.py index 15ded063ecc1..105a2c6aefa4 100644 --- a/tests/pytests/unit/grains/test_core.py +++ b/tests/pytests/unit/grains/test_core.py @@ -5608,3 +5608,96 @@ def test__ps(): "| awk '{ $7=\"\"; print }'" ) } + + +@pytest.mark.skip_unless_on_linux +def test_alfalinux_os_grains(): + _os_release_data = { + "NAME": "alfaLinux", + "PRETTY_NAME": "alfaLinux", + "ID": "alfalinux", + "VERSION_ID": "1", + } + + expectation = { + "os": "alfaLinux", + "os_family": "Suse", + "osfullname": "alfaLinux", + "oscodename": "alfaLinux", + "osfinger": "alfaLinux-1", + "osrelease": "1", + "osrelease_info": (1,), + "osmajorrelease": 1, + } + + _run_os_grains_tests(_os_release_data, {}, expectation) + + +@pytest.mark.skip_unless_on_linux +def test_alfalinux_rise_os_grains(): + _os_release_data = { + "NAME": "alfaLinux Rise", + "PRETTY_NAME": "alfaLinux Rise", + "ID": "alfalinux-rise", + "VERSION_ID": "1", + } + + expectation = { + "os": "alfaLinux Rise", + "os_family": "Suse", + "osfullname": "alfaLinux Rise", + "oscodename": "alfaLinux Rise", + "osfinger": "alfaLinux Rise-1", + "osrelease": "1", + "osrelease_info": (1,), + "osmajorrelease": 1, + } + + _run_os_grains_tests(_os_release_data, {}, expectation) + + +@pytest.mark.skip_unless_on_linux +def test_alteros_os_grains(): + _os_release_data = { + "NAME": "AlterOS", + "PRETTY_NAME": "AlterOS", + "ID": "alteros", + "VERSION_ID": "1", + } + + expectation = { + "os": "AlterOS", + "os_family": "RedHat", + "osfullname": "AlterOS", + "oscodename": "AlterOS", + "osfinger": "AlterOS-1", + "osrelease": "1", + "osrelease_info": (1,), + "osmajorrelease": 1, + } + + _run_os_grains_tests(_os_release_data, {}, expectation) + + +@pytest.mark.skip_unless_on_linux +def test_red_os_os_grains(): + _os_release_data = { + "NAME": "RED OS", + "PRETTY_NAME": "RED OS", + "ID": "redos", + "VERSION_ID": "1", + } + + expectation = { + "os": "RED OS", + "os_family": "RedHat", + "osfullname": "RED OS", + "oscodename": "RED OS", + "osfinger": "RED OS-1", + "osrelease": "1", + "osrelease_info": (1,), + "osmajorrelease": 1, + } + + _run_os_grains_tests(_os_release_data, {}, expectation) +