You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitogen/tests/ansible/integration/action/copy.yml

95 lines
2.6 KiB
YAML

# Verify copy module for small and large files, and inline content.
# To exercise https://github.com/mitogen-hq/mitogen/pull/1110 destination
# files must have extensions and loops must use `with_items:`.
- name: integration/action/copy.yml
hosts: test-targets
vars:
sourced_files:
- src: /tmp/copy-tiny-file
dest: /tmp/copy-tiny-file.out
content: this is a tiny file.
expected_checksum: f29faa9a6f19a700a941bf2aa5b281643c4ec8a0
- src: /tmp/copy-large-file
dest: /tmp/copy-large-file.out
content: "{{ 'x' * 200000 }}"
expected_checksum: 62951f943c41cdd326e5ce2b53a779e7916a820d
inline_files:
- dest: /tmp/copy-tiny-inline-file.out
content: tiny inline content
expected_checksum: b26dd6444595e2bdb342aa0a91721b57478b5029
- dest: /tmp/copy-large-inline-file.out
content: |
{{ 'y' * 200000 }}
expected_checksum: d675f47e467eae19e49032a2cc39118e12a6ee72
files: "{{ sourced_files + inline_files }}"
tasks:
- name: Create sourced files
copy:
dest: "{{ item.src }}"
content: "{{ item.content }}"
mode: u=rw,go=r
with_items: "{{ sourced_files }}"
loop_control:
label: "{{ item.src }}"
delegate_to: localhost
run_once: true
- name: Cleanup lingering destination files
file:
path: "{{ item.dest }}"
state: absent
with_items: "{{ files }}"
loop_control:
label: "{{ item.dest }}"
- name: Copy sourced files
copy:
src: "{{ item.src }}"
dest: "{{ item.dest }}"
mode: u=rw,go=r
with_items: "{{ sourced_files }}"
loop_control:
label: "{{ item.dest }}"
- name: Copy inline files
copy:
dest: "{{ item.dest }}"
content: "{{ item.content }}"
mode: u=rw,go=r
with_items: "{{ inline_files }}"
loop_control:
label: "{{ item.dest }}"
# stat results
- name: Stat copied files
stat:
path: "{{ item.dest }}"
with_items: "{{ files }}"
loop_control:
label: "{{ item.dest }}"
register: stat
- assert:
that:
- item.stat.checksum == item.item.expected_checksum
quiet: true # Avoid spamming stdout with 400 kB of item.item.content
fail_msg: item={{ item }}
with_items: "{{ stat.results }}"
loop_control:
label: "{{ item.stat.path }}"
- name: Cleanup destination files
file:
path: "{{ item.dest }}"
state: absent
with_items: "{{ files }}"
loop_control:
label: "{{ item.dest }}"
tags:
- copy
- issue_1110