summaryrefslogtreecommitdiffstats
path: root/ansible/roles/resource-data/tasks/unarchive-resource.yml
blob: 9eafc22084ba1d95226bc99eb529f8a7d4db1e6c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
---
#
# Wrapper to pass through following variables
#   resources_source_host
#   resources_dir
#   resource_source_filename
#   resource_destination_directory
# And handling target directory creation and possible removal on failure.
# Idempotence is also handled here as nothing is done if resource_destination_directory
# was already created.
#
# Logically also tranport method selection belongs to here but left it to caller
# as this is called in a loop causing "package_facts" called many times
# (not sure if it would matter).
#
- name: "Create {{ resource_destination_directory }} directory"
  file:
    path: "{{ resource_destination_directory }}"
    state: directory
  register: create_destination_dir

- name: "Handle transport of one archive file"
  block:
    - name: Re-set upload_failed
      set_fact:
        upload_failed: false

    - name: "Unarchive resource {{ resource_source_filename }} from host {{ resources_source_host }}, transport is {{ transport }}"
      include_tasks: "unarchive-{{ transport }}-resource.yml"

    - name: "Remove the destination directory {{ resource_destination_directory }} on error"
      file:
        path: "{{ resource_destination_directory }}"
        state: absent
      when: upload_failed
  when: create_destination_dir.changed