parent
63505cd8b8
commit
285d9878ae
1 changed files with 21 additions and 0 deletions
|
@ -43,6 +43,7 @@ BOOLEANS = BOOLEANS_TRUE + BOOLEANS_FALSE
|
|||
# of an ansible module. The source of this common code lives
|
||||
# in lib/ansible/module_common.py
|
||||
|
||||
import locale
|
||||
import os
|
||||
import re
|
||||
import pipes
|
||||
|
@ -191,6 +192,10 @@ class AnsibleModule(object):
|
|||
if k not in self.argument_spec:
|
||||
self.argument_spec[k] = v
|
||||
|
||||
# check the locale as set by the current environment, and
|
||||
# reset to LANG=C if it's an invalid/unavailable locale
|
||||
self._check_locale()
|
||||
|
||||
(self.params, self.args) = self._load_params()
|
||||
|
||||
self._legal_inputs = ['CHECKMODE', 'NO_LOG']
|
||||
|
@ -561,6 +566,22 @@ class AnsibleModule(object):
|
|||
kwargs['state'] = 'absent'
|
||||
return kwargs
|
||||
|
||||
def _check_locale(self):
|
||||
'''
|
||||
Uses the locale module to test the currently set locale
|
||||
(per the LANG and LC_CTYPE environment settings)
|
||||
'''
|
||||
try:
|
||||
# setting the locale to '' uses the default locale
|
||||
# as it would be returned by locale.getdefaultlocale()
|
||||
locale.setlocale(locale.LC_ALL, '')
|
||||
except locale.Error, e:
|
||||
# fallback to the 'C' locale, which may cause unicode
|
||||
# issues but is preferable to simply failing because
|
||||
# of an unknown locale
|
||||
locale.setlocale(locale.LC_ALL, 'C')
|
||||
except Exception, e:
|
||||
self.fail_json(msg="An unknown error was encountered while attempting to validate the locale: %s" % e)
|
||||
|
||||
def _handle_aliases(self):
|
||||
aliases_results = {} #alias:canon
|
||||
|
|
Loading…
Reference in a new issue