# issue #633: Connection.reset() should ignore "become", and apply to the login
# account.

- name: integration/connection/reset_become.yml
  hosts: test-targets
  become: true
  gather_facts: false
  tasks:
  - debug: msg="reset_become.yml skipped on Ansible<2.5.6"
    when:
      - ansible_version_major_minor_patch is version('2.5.6', '<', strict=True)

  - meta: end_play
    when:
      - ansible_version_major_minor_patch is version('2.5.6', '<', strict=True)

  - name: save pid of the become acct
    custom_python_detect_environment:
    register: become_acct

  - name: save pid of the login acct
    become: false
    custom_python_detect_environment:
    register: login_acct

  - name: ensure login != become
    assert:
      that:
      - become_acct.pid != login_acct.pid
      fail_msg: |
        become_acct={{ become_acct }}
        login_acct={{ login_acct }}

  - name: reset the connection
    meta: reset_connection

  - name: save new pid of the become acct
    custom_python_detect_environment:
    register: new_become_acct

  - name: ensure become_acct != new_become_acct
    assert:
      that:
      - become_acct.pid != new_become_acct.pid
      fail_msg: |
        become_acct={{ become_acct }}
        new_become_acct={{ new_become_acct }}

  - name: save new pid of login acct
    become: false
    custom_python_detect_environment:
    register: new_login_acct

  - name: ensure login_acct != new_login_acct
    assert:
      that:
      - login_acct.pid != new_login_acct.pid
      fail_msg: |
        login_acct={{ login_acct }}
        new_login_acct={{ new_login_acct }}
  tags:
    - reset_become
