Fix become plugins (#50)

* Fix become plugins.

* Fix become unit tests to avoid play_context.make_become_cmd.

* Remove hack.

* Remove explicit defaults. Adjust tests to be more like Ansible itself.

* Forgot two lines.

* Rewrite tests (again).

* Rename play_context -> task, add possibility to pass var_options.

* Add var_options variants.

* Properly test overwriting.
This commit is contained in:
Felix Fontein 2020-03-30 19:09:45 +02:00 committed by GitHub
parent 7d8ca8bdbb
commit 0026c9f5b2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 238 additions and 84 deletions

View file

@ -111,13 +111,13 @@ class BecomeModule(BecomeBase):
self.prompt = True
become_exe = self.get_option('become_exe') or self.name
become_exe = self.get_option('become_exe')
flags = self.get_option('become_flags') or ''
flags = self.get_option('become_flags')
if not self.get_option('become_pass') and '-n' not in flags:
flags += ' -n'
user = self.get_option('become_user') or ''
user = self.get_option('become_user')
if user:
user = '-u %s' % (user)

View file

@ -82,14 +82,14 @@ class BecomeModule(BecomeBase):
if not cmd:
return cmd
becomecmd = self.get_option('become_exe') or self.name
becomecmd = self.get_option('become_exe')
flags = self.get_option('become_flags') or ''
flags = self.get_option('become_flags')
if self.get_option('become_pass'):
self.prompt = '[dzdo via ansible, key=%s] password:' % self._id
flags = '%s -p "%s"' % (flags.replace('-n', ''), self.prompt)
user = self.get_option('become_user') or ''
user = self.get_option('become_user')
if user:
user = '-u %s' % (user)

View file

@ -13,6 +13,7 @@ DOCUMENTATION = '''
options:
become_user:
description: User you 'become' to execute the task
default: ''
ini:
- section: privilege_escalation
key: become_user
@ -113,7 +114,8 @@ class BecomeModule(BecomeBase):
if not cmd:
return cmd
exe = self.get_option('become_exe') or self.name
flags = self.get_option('become_flags') or ''
user = self.get_option('become_user') or ''
exe = self.get_option('become_exe')
flags = self.get_option('become_flags')
user = self.get_option('become_user')
return '%s %s %s -e %s ' % (exe, user, flags, self._build_success_command(cmd, shell))

View file

@ -13,6 +13,7 @@ DOCUMENTATION = '''
options:
become_user:
description: User you 'become' to execute the task
default: ''
ini:
- section: privilege_escalation
key: become_user
@ -80,7 +81,8 @@ class BecomeModule(BecomeBase):
if not cmd:
return cmd
become = self.get_option('become_exe') or self.name
flags = self.get_option('become_flags') or ''
user = self.get_option('become_user') or ''
become = self.get_option('become_exe')
flags = self.get_option('become_flags')
user = self.get_option('become_user')
return '%s -q shell %s %s@ %s' % (become, flags, user, cmd)

View file

@ -41,6 +41,7 @@ DOCUMENTATION = '''
- name: ANSIBLE_PBRUN_EXE
become_flags:
description: Options to pass to pbrun
default: ''
ini:
- section: privilege_escalation
key: become_flags
@ -93,9 +94,10 @@ class BecomeModule(BecomeBase):
if not cmd:
return cmd
become_exe = self.get_option('become_exe') or self.name
flags = self.get_option('become_flags') or ''
user = self.get_option('become_user') or ''
become_exe = self.get_option('become_exe')
flags = self.get_option('become_flags')
user = self.get_option('become_user')
if user:
user = '-u %s' % (user)
noexe = not self.get_option('wrap_exe')

View file

@ -97,7 +97,8 @@ class BecomeModule(BecomeBase):
if not cmd:
return cmd
exe = self.get_option('become_exe') or self.name
exe = self.get_option('become_exe')
flags = self.get_option('become_flags')
noexe = not self.get_option('wrap_exe')
return '%s %s "%s"' % (exe, flags, self._build_success_command(cmd, shell, noexe=noexe))

View file

@ -27,6 +27,7 @@ DOCUMENTATION = '''
- name: ANSIBLE_PMRUN_EXE
become_flags:
description: Options to pass to pmrun
default: ''
ini:
- section: privilege_escalation
key: become_flags
@ -70,6 +71,7 @@ class BecomeModule(BecomeBase):
if not cmd:
return cmd
become = self.get_option('become_exe') or self.name
flags = self.get_option('become_flags') or ''
become = self.get_option('become_exe')
flags = self.get_option('become_flags')
return '%s %s %s' % (become, flags, shlex_quote(self._build_success_command(cmd, shell)))

View file

@ -13,6 +13,7 @@ DOCUMENTATION = '''
options:
become_user:
description: User you 'become' to execute the task
default: ''
ini:
- section: privilege_escalation
key: become_user
@ -83,7 +84,8 @@ class BecomeModule(BecomeBase):
if not cmd:
return cmd
become = self.get_option('become_exe') or self.name
flags = self.get_option('become_flags') or ''
user = self.get_option('become_user') or ''
become = self.get_option('become_exe')
flags = self.get_option('become_flags')
user = self.get_option('become_user')
return '%s %s %s -c %s' % (become, flags, user, self._build_success_command(cmd, shell))