Merge pull request #47280 from gtmanfred/localectl

make sure not to send invalid information
This commit is contained in:
Nicole Thomas 2018-04-25 13:46:44 -04:00 committed by GitHub
commit fff4f8c1a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 6 deletions

View file

@ -87,7 +87,7 @@ def _localectl_status():
ret[ctl_key] = {}
ret[ctl_key][loc_set[0]] = loc_set[1]
else:
ret[ctl_key] = {'data': ctl_data}
ret[ctl_key] = {'data': None if ctl_data == 'n/a' else ctl_data}
if not ret:
log.debug("Unable to find any locale information inside the following data:\n%s", locale_ctl_out)
raise CommandExecutionError('Unable to parse result of "localectl"')
@ -102,7 +102,7 @@ def _localectl_set(locale=''):
'''
locale_params = _parse_dbus_locale() if dbus is not None else _localectl_status().get('system_locale', {})
locale_params['LANG'] = six.text_type(locale)
args = ' '.join(['{0}="{1}"'.format(k, v) for k, v in six.iteritems(locale_params)])
args = ' '.join(['{0}="{1}"'.format(k, v) for k, v in six.iteritems(locale_params) if v is not None])
return not __salt__['cmd.retcode']('localectl set-locale {0}'.format(args), python_shell=False)

View file

@ -86,7 +86,7 @@ class LocalemodTestCase(TestCase, LoaderModuleMockMixin):
assert out['system_locale']['LANG'] == out['system_locale']['LANGUAGE'] == 'de_DE.utf8'
assert isinstance(out['vc_keymap'], dict)
assert 'data' in out['vc_keymap']
assert out['vc_keymap']['data'] == 'n/a'
assert out['vc_keymap']['data'] is None
assert isinstance(out['x11_layout'], dict)
assert 'data' in out['x11_layout']
assert out['x11_layout']['data'] == 'us'
@ -107,13 +107,13 @@ class LocalemodTestCase(TestCase, LoaderModuleMockMixin):
assert key in out
assert isinstance(out['system_locale'], dict)
assert 'data' in out['system_locale']
assert out['system_locale']['data'] == 'n/a'
assert out['system_locale']['data'] is None
assert isinstance(out['vc_keymap'], dict)
assert 'data' in out['vc_keymap']
assert out['vc_keymap']['data'] == 'n/a'
assert out['vc_keymap']['data'] is None
assert isinstance(out['x11_layout'], dict)
assert 'data' in out['x11_layout']
assert out['x11_layout']['data'] == 'n/a'
assert out['x11_layout']['data'] is None
@patch('salt.modules.localemod.dbus', MagicMock())
def test_dbus_locale_parser_matches(self):