1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

set correct become mehotds for plugin

fixed mixup with remote password vs become_password
This commit is contained in:
Brian Coca 2015-06-14 23:49:10 -04:00
parent ff443d4534
commit bac35ae773

View file

@ -40,6 +40,8 @@ from ansible.plugins.connections import ConnectionBase
class Connection(ConnectionBase):
''' ssh based connections '''
become_methods = frozenset(C.BECOME_METHODS).difference(['runas'])
def __init__(self, *args, **kwargs):
# SSH connection specific init stuff
self._common_args = []
@ -261,7 +263,7 @@ class Connection(ConnectionBase):
def exec_command(self, cmd, tmp_path, executable='/bin/sh', in_data=None, sudoable=True):
''' run a command on the remote host '''
super(Connection, self).exec_command(cmd, tmp_path, executable=executable, in_data=in_data, sudoable=False)
super(Connection, self).exec_command(cmd, tmp_path, executable=executable, in_data=in_data, sudoable=sudoable)
host = self._connection_info.remote_addr
@ -303,13 +305,11 @@ class Connection(ConnectionBase):
# create process
(p, stdin) = self._run(ssh_cmd, in_data)
if prompt:
self._send_password()
no_prompt_out = ''
no_prompt_err = ''
q(self._connection_info.password)
if self._connection_info.become and sudoable and self._connection_info.password:
if self._connection_info.become and sudoable and self._connection_info.become_pass:
# several cases are handled for sudo privileges with password
# * NOPASSWD (tty & no-tty): detect success_key on stdout
# * without NOPASSWD:
@ -349,7 +349,7 @@ class Connection(ConnectionBase):
if not self._connection_info.check_become_success(become_output, success_key):
if sudoable:
stdin.write(self._connection_info.password + '\n')
stdin.write(self._connection_info.become_pass + '\n')
else:
no_prompt_out += become_output
no_prompt_err += become_errput