From 236d13ac3ac8cfb5dd49dbdcac6497fc160ea019 Mon Sep 17 00:00:00 2001 From: Brian Coca Date: Wed, 20 Sep 2017 17:26:22 -0400 Subject: [PATCH] become flags are primary with new configuration the sudo flags are always set and become cannot override, switching to simle 'or' will result in become_flags working. also sudo_flags are deprecated. also changed from YAML null causing a 'None' str fixes #30629 --- lib/ansible/config/base.yml | 4 ++-- lib/ansible/playbook/play_context.py | 14 ++++---------- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/lib/ansible/config/base.yml b/lib/ansible/config/base.yml index 504b17ce5b..520ea7422e 100644 --- a/lib/ansible/config/base.yml +++ b/lib/ansible/config/base.yml @@ -400,7 +400,7 @@ DEFAULT_BECOME_EXE: - {key: become_exe, section: privilege_escalation} DEFAULT_BECOME_FLAGS: name: Set 'become' executable options - default: ~ + default: '' description: Flags to pass to the privilege escalation executable. env: [{name: ANSIBLE_BECOME_FLAGS}] ini: @@ -1001,7 +1001,7 @@ DEFAULT_SU_EXE: - {key: su_exe, section: defaults} DEFAULT_SU_FLAGS: name: su flags - default: ~ + default: '' deprecated: why: In favor of become which is a generic framework version: "2.8" diff --git a/lib/ansible/playbook/play_context.py b/lib/ansible/playbook/play_context.py index bf764e5196..94f0dbe098 100644 --- a/lib/ansible/playbook/play_context.py +++ b/lib/ansible/playbook/play_context.py @@ -528,19 +528,13 @@ class PlayContext(Base): command = success_cmd # set executable to use for the privilege escalation method, with various overrides - exe = self.become_method - for myexe in (getattr(self, '%s_exe' % self.become_method, None), self.become_exe): - if myexe: - exe = myexe - break + exe = self.become_exe or getattr(self, '%s_exe' % self.become_method, self.become_method) # set flags to use for the privilege escalation method, with various overrides - flags = '' - for myflag in (getattr(self, '%s_flags' % self.become_method, None), self.become_flags): - if myflag is not None: - flags = myflag - break + flags = self.become_flags or getattr(self, '%s_flags' % self.become_method, '') + print(exe) + print(flags) if self.become_method == 'sudo': # If we have a password, we run sudo with a randomly-generated # prompt set using -p. Otherwise we run it with default -n, which makes