This adds the new openvswitch_db state module. It also adds the new
functions bridge_to_parent, bridge_to_vlan, db_get, and db_set to the
openvswitch execution module.
Besides, it adds two new optional parameters parent and vlan to the
openvswitch_bridge.present state module function and the
openvswitch.bridge_create execution module function.
This is a workaround because there is/was a bug in boto (see
boto/boto#3061 and boto/boto#2882 for more info) where VPCs were a list
with multiple, or a dict with one VPC. Now it won't matter if the return
is a dict or a list, we'll correctly process it.
Updates changelog entry for netapi_enable_clients options to be a
"changed" rather than "added" changelog entry as it will require users
to update their master config.
Expands on explanation of change to make clear what will happen.
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>