- name: install rsync package: name: rsync when: ansible_distribution != "MacOSX" - name: cleanup old files shell: rm -rf {{output_dir}}/* - name: create test new files copy: dest={{output_dir}}/{{item}} mode=0644 content="hello world" with_items: - foo.txt - bar.txt - name: synchronize file to new filename synchronize: src={{output_dir}}/foo.txt dest={{output_dir}}/foo.result register: sync_result - assert: that: - '''changed'' in sync_result' - sync_result.changed == true - '''cmd'' in sync_result' - '''rsync'' in sync_result.cmd' - '''msg'' in sync_result' - sync_result.msg.startswith('>f+') - 'sync_result.msg.endswith(''+ foo.txt '')' - name: test that the file was really copied over stat: path: '{{ output_dir }}/foo.result' register: stat_result - assert: that: - stat_result.stat.exists == True - stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed' - name: test that the file is not copied a second time synchronize: src={{output_dir}}/foo.txt dest={{output_dir}}/foo.result register: sync_result - assert: that: - sync_result.changed == False - name: Cleanup file: state: absent path: '{{output_dir}}/{{item}}' with_items: - foo.result - bar.result - name: Synchronize using the mode=push param synchronize: src: '{{output_dir}}/foo.txt' dest: '{{output_dir}}/foo.result' mode: push register: sync_result - assert: that: - '''changed'' in sync_result' - sync_result.changed == true - '''cmd'' in sync_result' - '''rsync'' in sync_result.cmd' - '''msg'' in sync_result' - sync_result.msg.startswith('>f+') - 'sync_result.msg.endswith(''+ foo.txt '')' - name: test that the file was really copied over stat: path: '{{ output_dir }}/foo.result' register: stat_result - assert: that: - stat_result.stat.exists == True - stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed' - name: test that the file is not copied a second time synchronize: src: '{{output_dir}}/foo.txt' dest: '{{output_dir}}/foo.result' mode: push register: sync_result - assert: that: - sync_result.changed == False - name: Cleanup file: state: absent path: '{{output_dir}}/{{item}}' with_items: - foo.result - bar.result - name: Synchronize using the mode=pull param synchronize: src: '{{output_dir}}/foo.txt' dest: '{{output_dir}}/foo.result' mode: pull register: sync_result - assert: that: - '''changed'' in sync_result' - sync_result.changed == true - '''cmd'' in sync_result' - '''rsync'' in sync_result.cmd' - '''msg'' in sync_result' - sync_result.msg.startswith('>f+') - 'sync_result.msg.endswith(''+ foo.txt '')' - name: test that the file was really copied over stat: path: '{{ output_dir }}/foo.result' register: stat_result - assert: that: - stat_result.stat.exists == True - stat_result.stat.checksum == '2aae6c35c94fcfb415dbe95f408b9ce91ee846ed' - name: test that the file is not copied a second time synchronize: src: '{{output_dir}}/foo.txt' dest: '{{output_dir}}/foo.result' mode: pull register: sync_result - assert: that: - sync_result.changed == False - name: Cleanup file: state: absent path: '{{output_dir}}/{{item}}' with_items: - foo.result - bar.result - name: synchronize files using with_items (issue#5965) synchronize: src={{output_dir}}/{{item}} dest={{output_dir}}/{{item}}.result with_items: - foo.txt - bar.txt register: sync_result - assert: that: - sync_result.changed - sync_result.msg == 'All items completed' - '''results'' in sync_result' - sync_result.results|length == 2 - 'sync_result.results[0].msg.endswith(''+ foo.txt '')' - 'sync_result.results[1].msg.endswith(''+ bar.txt '')' - name: Cleanup file: state: absent path: '{{output_dir}}/{{item}}.result' with_items: - foo.txt - bar.txt - name: synchronize files using rsync_path (issue#7182) synchronize: src={{output_dir}}/foo.txt dest={{output_dir}}/foo.rsync_path rsync_path="sudo rsync" register: sync_result - assert: that: - '''changed'' in sync_result' - sync_result.changed == true - '''cmd'' in sync_result' - '''rsync'' in sync_result.cmd' - '''rsync_path'' in sync_result.cmd' - '''msg'' in sync_result' - sync_result.msg.startswith('>f+') - 'sync_result.msg.endswith(''+ foo.txt '')' - name: Cleanup file: state: absent path: '{{output_dir}}/{{item}}' with_items: - foo.rsync_path - name: add subdirectories for link-dest test file: path: '{{output_dir}}/{{item}}/' state: directory mode: '0755' with_items: - directory_a - directory_b - name: copy foo.txt into the first directory synchronize: src: '{{output_dir}}/foo.txt' dest: '{{output_dir}}/{{item}}/foo.txt' with_items: - directory_a - name: synchronize files using link_dest synchronize: src: '{{output_dir}}/directory_a/foo.txt' dest: '{{output_dir}}/directory_b/foo.txt' link_dest: - '{{output_dir}}/directory_a' register: sync_result - name: get stat information for directory_a stat: path: '{{ output_dir }}/directory_a/foo.txt' register: stat_result_a - name: get stat information for directory_b stat: path: '{{ output_dir }}/directory_b/foo.txt' register: stat_result_b - assert: that: - '''changed'' in sync_result' - sync_result.changed == true - stat_result_a.stat.inode == stat_result_b.stat.inode - name: synchronize files using link_dest that would be recursive synchronize: src: '{{output_dir}}/foo.txt' dest: '{{output_dir}}/foo.result' link_dest: - '{{output_dir}}' register: sync_result ignore_errors: true - assert: that: - sync_result is not changed - sync_result is failed - name: Cleanup file: state: absent path: '{{output_dir}}/{{item}}' with_items: - directory_b/foo.txt - directory_a/foo.txt - directory_a - directory_b