- name: integration/playbook_semantics/delegate_to.yml
  hosts: test-targets
  any_errors_fatal: true
  tasks:
    #
    # delegate_to, no sudo
    #
    - name: "delegate_to, no sudo"
      copy:
        dest: /tmp/delegate_to.yml.txt
        content: "Hello, world."
      register: out
      delegate_to: localhost

    - name: "delegate_to, no sudo"
      assert:
        that: "lookup('file', '/tmp/delegate_to.yml.txt') == 'Hello, world.'"

    - name: "delegate_to, no sudo"
      file:
        path: /tmp/delegate_to.yml.txt
        state: absent
      delegate_to: localhost


    #
    # connection:local, no sudo
    #
    - name: "connection:local, no sudo"
      copy:
        dest: /tmp/delegate_to.yml.txt
        content: "Hello, world."
      register: out
      connection: local

    - name: "connection:local, no sudo"
      assert:
        that: "lookup('file', '/tmp/delegate_to.yml.txt') == 'Hello, world.'"

    - name: "connection:local, no sudo"
      file:
        path: /tmp/delegate_to.yml.txt
        state: absent
      connection: local


    #
    # delegate_to, sudo
    #
    - name: "delegate_to, sudo"
      shell: whoami > /tmp/delegate_to.yml.txt
      delegate_to: localhost
      become: true

    - name: "delegate_to, sudo"
      assert:
        that: "lookup('file', '/tmp/delegate_to.yml.txt') == 'root'"

    - name: "delegate_to, sudo"
      file:
        path: /tmp/delegate_to.yml.txt
        state: absent
      delegate_to: localhost
      become: true


    #
    # connection:local, sudo
    #
    - name: "connection:local, sudo"
      shell: whoami > /tmp/delegate_to.yml.txt
      connection: local
      become: true

    - name: "connection:local, sudo"
      assert:
        that: "lookup('file', '/tmp/delegate_to.yml.txt') == 'root'"

    - name: "connection:local, sudo"
      file:
        path: /tmp/delegate_to.yml.txt
        state: absent
      connection: local
      become: true
