# test code for the synchronize module # (c) 2014, James Tanner # This file is part of Ansible # # Ansible is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Ansible is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Ansible. If not, see . # FIXME: tags should auto-apply to role dependencies - 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\n')" - 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\n')" - 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\n')" - 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\n')" - "sync_result.results[1].msg.endswith('+ bar.txt\n')" - 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\n')"