3 # Wrapper to pass through following variables
4 # resources_source_host
6 # resource_source_filename
7 # resource_destination_directory
8 # And handling target directory creation and possible removal on failure.
9 # Idempotence is also handled here as nothing is done if resource_destination_directory
10 # was already created.
12 # Logically also tranport method selection belongs to here but left it to caller
13 # as this is called in a loop causing "package_facts" called many times
14 # (not sure if it would matter).
16 - name: "Create {{ resource_destination_directory }} directory"
18 path: "{{ resource_destination_directory }}"
21 - name: Check if resources are uploaded
23 path: "{{ resource_destination_directory }}/{{ resource_source_filename }}-uploaded"
26 - name: "Handle transport of one archive file"
27 when: not uploaded.stat.exists
29 - name: "Get list of destination directory files"
31 path: "{{ resource_destination_directory }}"
33 register: original_files
35 - name: "Unarchive resource {{ resource_source_filename }} from host {{ resources_source_host }}, transport is {{ transport }}"
36 include_tasks: "unarchive-{{ transport }}-resource.yml"
38 path: "{{ resource_destination_directory }}/{{ resource_source_filename }}-uploaded"
41 - name: "Get list of destination directory files"
43 path: "{{ resource_destination_directory }}"
45 register: files_after_fail
47 - name: "Cleanup the destination directory {{ resource_destination_directory }} on error"
49 path: "{{ item.path }}"
51 with_items: "{{ files_after_fail.files | difference(original_files.files) }}"
52 when: files_after_fail is defined
55 msg: "Upload of {{ resource_source_filename }} failed"