Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add linux_distribution to utils #63921

Merged
merged 1 commit into from
Mar 21, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
rebase
  • Loading branch information
cmcmarrow committed Mar 21, 2023

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
commit af3b2358b07cbd56313da782e99414fa52cb314e
1 change: 1 addition & 0 deletions changelog/63904.fixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
add linux_distribution to util to stop dep warning
12 changes: 1 addition & 11 deletions salt/grains/core.py
Original file line number Diff line number Diff line change
@@ -23,8 +23,6 @@
import uuid
from errno import EACCES, EPERM

import distro

import salt.exceptions

# Solve the Chicken and egg problem where grains need to run before any
@@ -41,6 +39,7 @@
import salt.utils.platform
import salt.utils.stringutils
from salt.utils.network import _clear_interfaces, _get_interfaces
from salt.utils.platform import linux_distribution as _linux_distribution

try:
# pylint: disable=no-name-in-module
@@ -90,15 +89,6 @@ def _freedesktop_os_release():
return _parse_os_release("/etc/os-release", "/usr/lib/os-release")


# rewrite distro.linux_distribution to allow best=True kwarg in version(), needed to get the minor version numbers in CentOS
def _linux_distribution():
return (
distro.id(),
distro.version(best=True),
distro.codename(),
)


def __init__(opts):
_clear_interfaces()

11 changes: 10 additions & 1 deletion salt/utils/platform.py
Original file line number Diff line number Diff line change
@@ -8,11 +8,20 @@
import subprocess
import sys

from distro import linux_distribution
import distro

from salt.utils.decorators import memoize as real_memoize


def linux_distribution(full_distribution_name=True):
"""
Simple function to return information about the OS distribution (id_name, version, codename).
"""
if full_distribution_name:
return distro.name(), distro.version(best=True), distro.codename()
return distro.id(), distro.version(best=True), distro.codename()


@real_memoize
def is_windows():
"""
2 changes: 1 addition & 1 deletion salt/version.py
Original file line number Diff line number Diff line change
@@ -755,7 +755,7 @@ def system_information():
Report system versions.
"""
# Late import so that when getting called from setup.py does not break
from distro import linux_distribution
from salt.utils.platform import linux_distribution

def system_version():
"""
12 changes: 6 additions & 6 deletions tests/pytests/unit/test_version.py
Original file line number Diff line number Diff line change
@@ -433,47 +433,47 @@ def test_system_version_linux():
"""

with patch(
"distro.linux_distribution",
"salt.utils.platform.linux_distribution",
MagicMock(return_value=("Manjaro Linux", "20.0.2", "Lysia")),
):
versions = [item for item in system_information()]
version = ("version", "Manjaro Linux 20.0.2 Lysia")
assert version in versions

with patch(
"distro.linux_distribution",
"salt.utils.platform.linux_distribution",
MagicMock(return_value=("Debian GNU/Linux", "9", "stretch")),
):
versions = [item for item in system_information()]
version = ("version", "Debian GNU/Linux 9 stretch")
assert version in versions

with patch(
"distro.linux_distribution",
"salt.utils.platform.linux_distribution",
MagicMock(return_value=("Debian GNU/Linux", "10", "buster")),
):
versions = [item for item in system_information()]
version = ("version", "Debian GNU/Linux 10 buster")
assert version in versions

with patch(
"distro.linux_distribution",
"salt.utils.platform.linux_distribution",
MagicMock(return_value=("CentOS Linux", "7", "Core")),
):
versions = [item for item in system_information()]
version = ("version", "CentOS Linux 7 Core")
assert version in versions

with patch(
"distro.linux_distribution",
"salt.utils.platform.linux_distribution",
MagicMock(return_value=("CentOS Linux", "8", "Core")),
):
versions = [item for item in system_information()]
version = ("version", "CentOS Linux 8 Core")
assert version in versions

with patch(
"distro.linux_distribution",
"salt.utils.platform.linux_distribution",
MagicMock(return_value=("OpenSUSE Leap", "15.1", "")),
):
versions = [item for item in system_information()]