mirror of
https://github.com/saltstack/salt.git
synced 2025-04-17 10:10:20 +00:00
![]() Most Linux distributions ship an os-release file by default. Some do not ship lsb-release information, but they can be installed afterwards. Installing/Removing lsb-release can lead to different OS grain values. | OS | grain | without lsb-release | with lsb-release | |------------------|------------|----------------------------------|------------------| | AlmaLinux 8 | oscodename | AlmaLinux 8.5 (Arctic Sphynx) | ArcticSphynx | | Astra CE | os | Astra (Orel) | AstraLinuxCE | | Astra CE | os_family | Astra (Orel) | Debian | | Astra CE | osfullname | Astra Linux (Orel) | AstraLinuxCE | | Astra CE 2.12.40 | osfinger | Astra Linux (Orel)-2 | AstraLinuxCE-2 | | Debian | osfullname | Debian GNU/Linux | Debian | | Mendel | osfullname | Mendel GNU/Linux | Mendel | | Mendel 10 | osfinger | Mendel GNU/Linux-10 | Mendel-10 | | Mint | osfullname | Linux Mint | Linuxmint | | Mint 20.3 | osfinger | Linuxmint-20 | Linux Mint-20 | | Pop | osfullname | Pop!_OS | Pop | | Pop 20.04 | osfinger | Pop!_OS-20 | Pop-20 | | Rocky | osfullname | Rocky Linux | Rocky | | Rocky 8 | osfinger | Rocky Linux-8 | Rocky-8 | | Rocky 8 | oscodename | Rocky Linux 8.5 (Green Obsidian) | GreenObsidian | The current code that determines the OS grains on Linux is a mess: First lsb-release is queried. If that fails, fall back to read os-release and parse some `/etc/*-release` files. Then query `_linux_distribution` and use a mixtures of those for the OS grains. `_linux_distribution` queries the Python `distro` library. `distro` queries the os-release file, lsb-release, and then `/etc/*-release`. Rewrite the code that determines the OS grains on Linux. Solely rely on the data provided by the os-release file. To not cause regressions, only switch the distribution that has been tested. All other distributions will use the legacy code (which was moved to `_legacy_linux_distribution_data`). The new code derives the `os_family` grain from the `ID_LIKE` field from os-release (see https://github.com/saltstack/salt/issues/59061 for this feature request). To enable this feature, the new code needs to be used by default (and not just for selected distributions). This commit introduces a few changes to the OS grains: * AlmaLinux and Rocky Linux extract the codename from the `VERSION` field now instead of using the full `PRETTY_NAME`. * Mendel uses now `Mendel GNU/Linux` as `osfullname` and correctly extracts the `osrelease` from `PRETTY_NAME`. * Pop!_OS changes the `osfullname` from `Pop` to `Pop!_OS`. * Astra Linux changes the `osfullname` from `AstraLinuxCE` to `Astra Linux (Orel)` and `AstraLinuxSE` to `Astra Linux (Smolensk)` respectively. Fixes https://github.com/saltstack/salt/issues/61618 Signed-off-by: Benjamin Drung <benjamin.drung@ionos.com> |
||
---|---|---|
.. | ||
os-releases | ||
solaris | ||
__init__.py | ||
test_core.py | ||
test_disks.py | ||
test_esxi.py | ||
test_fibre_channel.py | ||
test_iscsi.py | ||
test_lvm.py | ||
test_mdata.py | ||
test_metadata_gce.py | ||
test_napalm.py | ||
test_nvme.py | ||
test_pending_reboot.py | ||
test_smartos.py |