diff --git a/salt/grains/core.py b/salt/grains/core.py index 08ea51d19b7f..6c7a161aaad7 100644 --- a/salt/grains/core.py +++ b/salt/grains/core.py @@ -1438,6 +1438,7 @@ def os_data(): # freebsd-version was introduced in 10.0. # derive osrelease from kernelversion prior to that grains['osrelease'] = grains['kernelrelease'].split('-')[0] + grains.update(_bsd_cpudata(grains)) if grains['kernel'] in ('OpenBSD', 'NetBSD'): grains.update(_bsd_cpudata(grains)) grains['osrelease'] = grains['kernelrelease'].split('-')[0] diff --git a/tests/integration/modules/grains.py b/tests/integration/modules/grains.py index be58b45b5271..ead358a2d845 100644 --- a/tests/integration/modules/grains.py +++ b/tests/integration/modules/grains.py @@ -120,6 +120,18 @@ def test_get_core_grains(self): continue self.assertTrue(get_grain) + def test_get_grains_int(self): + ''' + test to ensure int grains + are returned as integers + ''' + grains = ['num_cpus', 'mem_total', 'num_gpus', 'uid'] + for grain in grains: + get_grain = self.run_function('grains.get', [grain]) + + self.assertIsInstance(get_grain, int, + msg='grain: {0} is not an int or empty'.format(grain)) + class GrainsAppendTestCase(integration.ModuleCase): '''