# issue #76, #370: ensure context state is forgotten on disconnect, including
# state of dependent contexts (e.g. sudo, connection delegation, ..).

- name: integration/context_service/disconnect_cleanup.yml
  hosts: test-targets[0]
  tasks:
  - include_tasks: ../_mitogen_only.yml

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

  # Start with a clean slate.
  - mitogen_shutdown_all:

  # TODO: https://github.com/dw/mitogen/issues/695
  # # Connect a few users.
  # - shell: "true"
  #   become: true
  #   become_user: "mitogen__user{{item}}"
  #   with_items: [1, 2, 3]

  # # Verify current state.
  # - mitogen_action_script:
  #     script: |
  #       self._connection._connect()
  #       result['dump'] = self._connection.get_binding().get_service_context().call_service(
  #         service_name='ansible_mitogen.services.ContextService',
  #         method_name='dump'
  #       )
  #   register: out

  # - assert:
  #     that: out.dump|length == (play_hosts|length) * 4 # ssh account + 3 sudo accounts

  # - meta: reset_connection

  # # Verify current state.
  # - mitogen_action_script:
  #     script: |
  #       self._connection._connect()
  #       result['dump'] = self._connection.get_binding().get_service_context().call_service(
  #         service_name='ansible_mitogen.services.ContextService',
  #         method_name='dump'
  #       )
  #   register: out

  # - assert:
  #     that: out.dump|length == play_hosts|length # just the ssh account
  tags:
    - disconnect_cleanup
    - mitogen_only
