# Verify action plugins still set file modes correctly even though # fixup_perms2() avoids setting execute bit despite being asked to. # As of Ansible 2.10.0, default perms vary based on OS. On debian systems it's 0644 and on centos it's 0664 based on test output # regardless, we're testing that no execute bit is set here so either check is ok - name: integration/action/fixup_perms2__copy.yml hosts: test-targets tasks: - name: "Copy files (no mode)" copy: content: "" dest: /tmp/copy-no-mode - stat: path=/tmp/copy-no-mode register: out - assert: that: - out.stat.mode in ("0644", "0664") fail_msg: | out={{ out }} - name: "Copy files from content: arg" copy: content: "" mode: 0400 dest: /tmp/copy-with-mode - stat: path=/tmp/copy-with-mode register: out - assert: that: - out.stat.mode == "0400" fail_msg: | out={{ out }} - name: Cleanup local weird mode file file: path: /tmp/weird-mode.out state: absent - name: Create local weird mode file delegate_to: localhost run_once: true copy: content: "weird mode" dest: "/tmp/weird-mode" mode: "1462" - name: Copy file with weird mode copy: src: "/tmp/weird-mode" dest: "/tmp/weird-mode.out" - stat: path: "/tmp/weird-mode.out" register: out - assert: that: - out.stat.mode in ("0644", "0664") fail_msg: | out={{ out }} - name: Copy file with weird mode, preserving mode copy: src: "/tmp/weird-mode" dest: "/tmp/weird-mode" mode: preserve - stat: path: "/tmp/weird-mode" register: out - assert: that: - out.stat.mode == "1462" fail_msg: | out={{ out }} - name: Copy file with weird mode, explicit mode copy: src: "/tmp/weird-mode" dest: "/tmp/weird-mode" mode: "1461" - stat: path: "/tmp/weird-mode" register: out - assert: that: - out.stat.mode == "1461" fail_msg: | out={{ out }} - name: Cleanup file: state: absent path: "{{item}}" with_items: - /tmp/weird-mode - /tmp/weird-mode.out - /tmp/copy-no-mode - /tmp/copy-no-mode.out - /tmp/copy-with-mode - /tmp/copy-with-mode.out # end of cleaning out files tags: - fixup_perms2__copy