summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Cammarata <jimi@sngx.net>2014-05-01 16:12:52 -0500
committerJames Cammarata <jimi@sngx.net>2014-05-01 16:12:52 -0500
commitc6f3a0a4ccc7dceda0946d3b4c38797ba18ce59d (patch)
treed96d16951190cecf002091c7322e99bb7b7ccad5
parentae7503d6fbf79ddd7444a2a4b3d19c81f74d0c39 (diff)
parent54b1f820fb2d58be777246cfd166a563a0ccae71 (diff)
downloadansible-c6f3a0a4ccc7dceda0946d3b4c38797ba18ce59d.tar.gz
Merge pull request #7243 from jimi-c/issue_7060_lang_c
Modify the way we set the localization environment
-rw-r--r--lib/ansible/module_common.py4
-rw-r--r--lib/ansible/module_utils/basic.py3
-rw-r--r--lib/ansible/runner/__init__.py22
3 files changed, 14 insertions, 15 deletions
diff --git a/lib/ansible/module_common.py b/lib/ansible/module_common.py
index a6af86d6fc..fa8be1a4a0 100644
--- a/lib/ansible/module_common.py
+++ b/lib/ansible/module_common.py
@@ -28,7 +28,6 @@ from ansible import constants as C
REPLACER = "#<<INCLUDE_ANSIBLE_MODULE_COMMON>>"
REPLACER_ARGS = "\"<<INCLUDE_ANSIBLE_MODULE_ARGS>>\""
-REPLACER_LANG = "\"<<INCLUDE_ANSIBLE_MODULE_LANG>>\""
REPLACER_COMPLEX = "\"<<INCLUDE_ANSIBLE_MODULE_COMPLEX_ARGS>>\""
class ModuleReplacer(object):
@@ -140,12 +139,10 @@ class ModuleReplacer(object):
encoded_args = repr(module_args.encode('utf-8'))
except UnicodeDecodeError:
encoded_args = repr(module_args)
- encoded_lang = repr(C.DEFAULT_MODULE_LANG)
encoded_complex = repr(complex_args_json)
# these strings should be part of the 'basic' snippet which is required to be included
module_data = module_data.replace(REPLACER_ARGS, encoded_args)
- module_data = module_data.replace(REPLACER_LANG, encoded_lang)
module_data = module_data.replace(REPLACER_COMPLEX, encoded_complex)
if module_style == 'new':
@@ -154,7 +151,6 @@ class ModuleReplacer(object):
facility = inject['ansible_syslog_facility']
module_data = module_data.replace('syslog.LOG_USER', "syslog.%s" % facility)
-
lines = module_data.split("\n")
shebang = None
if lines[0].startswith("#!"):
diff --git a/lib/ansible/module_utils/basic.py b/lib/ansible/module_utils/basic.py
index 60a4d0655f..c0b00d3865 100644
--- a/lib/ansible/module_utils/basic.py
+++ b/lib/ansible/module_utils/basic.py
@@ -30,7 +30,6 @@
# == BEGIN DYNAMICALLY INSERTED CODE ==
MODULE_ARGS = "<<INCLUDE_ANSIBLE_MODULE_ARGS>>"
-MODULE_LANG = "<<INCLUDE_ANSIBLE_MODULE_LANG>>"
MODULE_COMPLEX_ARGS = "<<INCLUDE_ANSIBLE_MODULE_COMPLEX_ARGS>>"
BOOLEANS_TRUE = ['yes', 'on', '1', 'true', 1]
@@ -191,8 +190,6 @@ class AnsibleModule(object):
if k not in self.argument_spec:
self.argument_spec[k] = v
- os.environ['LANG'] = MODULE_LANG
- os.environ['LC_CTYPE'] = MODULE_LANG
(self.params, self.args) = self._load_params()
self._legal_inputs = ['CHECKMODE', 'NO_LOG']
diff --git a/lib/ansible/runner/__init__.py b/lib/ansible/runner/__init__.py
index dbcb869ae2..bb661a0c52 100644
--- a/lib/ansible/runner/__init__.py
+++ b/lib/ansible/runner/__init__.py
@@ -287,15 +287,21 @@ class Runner(object):
def _compute_environment_string(self, inject=None):
''' what environment variables to use when running the command? '''
- if not self.environment:
- return ""
- enviro = template.template(self.basedir, self.environment, inject, convert_bare=True)
- enviro = utils.safe_eval(enviro)
- if type(enviro) != dict:
- raise errors.AnsibleError("environment must be a dictionary, received %s" % enviro)
+ default_environment = collections.OrderedDict([
+ ('LANG', C.DEFAULT_MODULE_LANG),
+ ('LC_CTYPE', C.DEFAULT_MODULE_LANG),
+ ])
+
+ if self.environment:
+ enviro = template.template(self.basedir, self.environment, inject, convert_bare=True)
+ enviro = utils.safe_eval(enviro)
+ if type(enviro) != dict:
+ raise errors.AnsibleError("environment must be a dictionary, received %s" % enviro)
+ default_environment.update(enviro)
+
result = ""
- for (k,v) in enviro.iteritems():
- result = "%s=%s %s" % (k, pipes.quote(unicode(v)), result)
+ for (k,v) in default_environment.iteritems():
+ result = "%s %s=%s" % (result, k, pipes.quote(unicode(v)))
return result
# *****************************************************