mirror of
https://github.com/valitydev/salt.git
synced 2024-11-07 17:09:03 +00:00
Merge pull request #41336 from mcalmer/fix-locale-on-SUSE
fix setting and getting locale on SUSE systems
This commit is contained in:
commit
88fd3c0ed9
@ -127,13 +127,14 @@ def get_locale():
|
|||||||
salt '*' locale.get_locale
|
salt '*' locale.get_locale
|
||||||
'''
|
'''
|
||||||
cmd = ''
|
cmd = ''
|
||||||
if salt.utils.systemd.booted(__context__):
|
if 'Suse' in __grains__['os_family']:
|
||||||
|
# this block applies to all SUSE systems - also with systemd
|
||||||
|
cmd = 'grep "^RC_LANG" /etc/sysconfig/language'
|
||||||
|
elif salt.utils.systemd.booted(__context__):
|
||||||
params = _parse_dbus_locale() if HAS_DBUS else _parse_localectl()
|
params = _parse_dbus_locale() if HAS_DBUS else _parse_localectl()
|
||||||
return params.get('LANG', '')
|
return params.get('LANG', '')
|
||||||
elif 'RedHat' in __grains__['os_family']:
|
elif 'RedHat' in __grains__['os_family']:
|
||||||
cmd = 'grep "^LANG=" /etc/sysconfig/i18n'
|
cmd = 'grep "^LANG=" /etc/sysconfig/i18n'
|
||||||
elif 'SUSE' in __grains__['os_family']:
|
|
||||||
cmd = 'grep "^RC_LANG" /etc/sysconfig/language'
|
|
||||||
elif 'Debian' in __grains__['os_family']:
|
elif 'Debian' in __grains__['os_family']:
|
||||||
# this block only applies to Debian without systemd
|
# this block only applies to Debian without systemd
|
||||||
cmd = 'grep "^LANG=" /etc/default/locale'
|
cmd = 'grep "^LANG=" /etc/default/locale'
|
||||||
@ -161,7 +162,17 @@ def set_locale(locale):
|
|||||||
|
|
||||||
salt '*' locale.set_locale 'en_US.UTF-8'
|
salt '*' locale.set_locale 'en_US.UTF-8'
|
||||||
'''
|
'''
|
||||||
if salt.utils.systemd.booted(__context__):
|
if 'Suse' in __grains__['os_family']:
|
||||||
|
# this block applies to all SUSE systems - also with systemd
|
||||||
|
if not __salt__['file.file_exists']('/etc/sysconfig/language'):
|
||||||
|
__salt__['file.touch']('/etc/sysconfig/language')
|
||||||
|
__salt__['file.replace'](
|
||||||
|
'/etc/sysconfig/language',
|
||||||
|
'^RC_LANG=.*',
|
||||||
|
'RC_LANG="{0}"'.format(locale),
|
||||||
|
append_if_not_found=True
|
||||||
|
)
|
||||||
|
elif salt.utils.systemd.booted(__context__):
|
||||||
return _localectl_set(locale)
|
return _localectl_set(locale)
|
||||||
elif 'RedHat' in __grains__['os_family']:
|
elif 'RedHat' in __grains__['os_family']:
|
||||||
if not __salt__['file.file_exists']('/etc/sysconfig/i18n'):
|
if not __salt__['file.file_exists']('/etc/sysconfig/i18n'):
|
||||||
@ -172,15 +183,6 @@ def set_locale(locale):
|
|||||||
'LANG="{0}"'.format(locale),
|
'LANG="{0}"'.format(locale),
|
||||||
append_if_not_found=True
|
append_if_not_found=True
|
||||||
)
|
)
|
||||||
elif 'SUSE' in __grains__['os_family']:
|
|
||||||
if not __salt__['file.file_exists']('/etc/sysconfig/language'):
|
|
||||||
__salt__['file.touch']('/etc/sysconfig/language')
|
|
||||||
__salt__['file.replace'](
|
|
||||||
'/etc/sysconfig/language',
|
|
||||||
'^RC_LANG=.*',
|
|
||||||
'RC_LANG="{0}"'.format(locale),
|
|
||||||
append_if_not_found=True
|
|
||||||
)
|
|
||||||
elif 'Debian' in __grains__['os_family']:
|
elif 'Debian' in __grains__['os_family']:
|
||||||
# this block only applies to Debian without systemd
|
# this block only applies to Debian without systemd
|
||||||
update_locale = salt.utils.which('update-locale')
|
update_locale = salt.utils.which('update-locale')
|
||||||
|
@ -44,19 +44,20 @@ class LocalemodTestCase(TestCase):
|
|||||||
Test for Get the current system locale
|
Test for Get the current system locale
|
||||||
'''
|
'''
|
||||||
with patch.dict(localemod.__context__, {'salt.utils.systemd.booted': True}):
|
with patch.dict(localemod.__context__, {'salt.utils.systemd.booted': True}):
|
||||||
localemod.HAS_DBUS = True
|
with patch.dict(localemod.__grains__, {'os_family': ['Unknown']}):
|
||||||
with patch.object(localemod,
|
localemod.HAS_DBUS = True
|
||||||
'_parse_dbus_locale',
|
with patch.object(localemod,
|
||||||
return_value={'LANG': 'A'}):
|
'_parse_dbus_locale',
|
||||||
self.assertEqual('A', localemod.get_locale())
|
return_value={'LANG': 'A'}):
|
||||||
localemod._parse_dbus_locale.assert_called_once_with()
|
self.assertEqual('A', localemod.get_locale())
|
||||||
|
localemod._parse_dbus_locale.assert_called_once_with()
|
||||||
|
|
||||||
localemod.HAS_DBUS = False
|
localemod.HAS_DBUS = False
|
||||||
with patch.object(localemod,
|
with patch.object(localemod,
|
||||||
'_parse_localectl',
|
'_parse_localectl',
|
||||||
return_value={'LANG': 'A'}):
|
return_value={'LANG': 'A'}):
|
||||||
self.assertEqual('A', localemod.get_locale())
|
self.assertEqual('A', localemod.get_locale())
|
||||||
localemod._parse_localectl.assert_called_once_with()
|
localemod._parse_localectl.assert_called_once_with()
|
||||||
|
|
||||||
with patch.dict(localemod.__context__, {'salt.utils.systemd.booted': False}):
|
with patch.dict(localemod.__context__, {'salt.utils.systemd.booted': False}):
|
||||||
with patch.dict(localemod.__grains__, {'os_family': ['Gentoo']}):
|
with patch.dict(localemod.__grains__, {'os_family': ['Gentoo']}):
|
||||||
@ -82,8 +83,9 @@ class LocalemodTestCase(TestCase):
|
|||||||
Test for Sets the current system locale
|
Test for Sets the current system locale
|
||||||
'''
|
'''
|
||||||
with patch.dict(localemod.__context__, {'salt.utils.systemd.booted': True}):
|
with patch.dict(localemod.__context__, {'salt.utils.systemd.booted': True}):
|
||||||
with patch.object(localemod, '_localectl_set', return_value=True):
|
with patch.dict(localemod.__grains__, {'os_family': ['Unknown']}):
|
||||||
self.assertTrue(localemod.set_locale('l'))
|
with patch.object(localemod, '_localectl_set', return_value=True):
|
||||||
|
self.assertTrue(localemod.set_locale('l'))
|
||||||
|
|
||||||
with patch.dict(localemod.__context__, {'salt.utils.systemd.booted': False}):
|
with patch.dict(localemod.__context__, {'salt.utils.systemd.booted': False}):
|
||||||
with patch.dict(localemod.__grains__, {'os_family': ['Gentoo']}):
|
with patch.dict(localemod.__grains__, {'os_family': ['Gentoo']}):
|
||||||
|
Loading…
Reference in New Issue
Block a user