diff --git a/salt/grains/core.py b/salt/grains/core.py index 03c3b6e24ebe..9f0b78e56c0c 100644 --- a/salt/grains/core.py +++ b/salt/grains/core.py @@ -46,6 +46,7 @@ import salt.utils.network import salt.utils.path import salt.utils.platform +import salt.utils.pkg.rpm from salt.ext import six from salt.ext.six.moves import range @@ -1896,8 +1897,8 @@ def os_data(): # architecture. if grains.get('os_family') == 'Debian': osarch = __salt__['cmd.run']('dpkg --print-architecture').strip() - elif grains.get('os_family') == 'RedHat': - osarch = __salt__['cmd.run']('rpm --eval %{_host_cpu}').strip() + elif grains.get('os_family') in ['RedHat', 'Suse']: + osarch = salt.utils.pkg.rpm.get_osarch() elif grains.get('os_family') in ('NILinuxRT', 'Poky'): archinfo = {} for line in __salt__['cmd.run']('opkg print-architecture').splitlines(): diff --git a/salt/utils/pkg/rpm.py b/salt/utils/pkg/rpm.py index 987edab8943d..94e231da4bc4 100644 --- a/salt/utils/pkg/rpm.py +++ b/salt/utils/pkg/rpm.py @@ -9,6 +9,7 @@ import datetime import logging import subprocess +import salt.utils.stringutils # Import 3rd-party libs from salt.ext import six @@ -47,7 +48,7 @@ def get_osarch(): close_fds=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE).communicate()[0] - return ret or 'unknown' + return salt.utils.stringutils.to_str(ret).strip() or 'unknown' def check_32(arch, osarch=None):