ensure local exposes correct user (#72543)

* ensure local exposes correct user

  avoid corner case in which delegation relied on
  playcontext fallback which was removed

  fixes #72541
This commit is contained in:
Brian Coca 2020-11-09 16:21:17 -05:00 committed by GitHub
parent de5858f48d
commit aa4d53ccdf
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 2 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- ensure 'local' connection always has the correct default user for actions to consume.

View file

@ -44,13 +44,14 @@ class Connection(ConnectionBase):
super(Connection, self).__init__(*args, **kwargs) super(Connection, self).__init__(*args, **kwargs)
self.cwd = None self.cwd = None
self.default_user = getpass.getuser()
def _connect(self): def _connect(self):
''' connect to the local host; nothing to do here ''' ''' connect to the local host; nothing to do here '''
# Because we haven't made any remote connection we're running as # Because we haven't made any remote connection we're running as
# the local user, rather than as whatever is configured in remote_user. # the local user, rather than as whatever is configured in remote_user.
self._play_context.remote_user = getpass.getuser() self._play_context.remote_user = self.default_user
if not self._connected: if not self._connected:
display.vvv(u"ESTABLISH LOCAL CONNECTION FOR USER: {0}".format(self._play_context.remote_user), host=self._play_context.remote_addr) display.vvv(u"ESTABLISH LOCAL CONNECTION FOR USER: {0}".format(self._play_context.remote_user), host=self._play_context.remote_addr)

View file

@ -0,0 +1,10 @@
- name: handle case from issue 72541
hosts: testhost
gather_facts: false
remote_user: root
tasks:
- name: ensure we copy w/o errors due to remote user not being overriden
copy:
src: testfile
dest: "{{ playbook_dir }}"
delegate_to: localhost

View file

@ -0,0 +1 @@
nothing special

View file

@ -72,4 +72,5 @@ ln -s python secondpython
ansible-playbook verify_interpreter.yml -i inventory_interpreters -v "$@" ansible-playbook verify_interpreter.yml -i inventory_interpreters -v "$@"
ansible-playbook discovery_applied.yml -i inventory -v "$@" ansible-playbook discovery_applied.yml -i inventory -v "$@"
ansible-playbook resolve_vars.yml -i inventory -v "$@" ansible-playbook resolve_vars.yml -i inventory -v "$@"
ansible-playbook test_delegate_to_lookup_context.yml -i inventory -v "$@" ansible-playbook test_delegate_to_lookup_context.yml -i inventory -v "$@"
ansible-playbook delegate_local_from_root.yml -i inventory -v "$@" -e 'ansible_user=root'