diff --git a/defaults/main.yml b/defaults/main.yml index 0b3e530a..c9e0544c 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -364,6 +364,21 @@ s3: payload_signing: false chunked_encoding: true +swift: + enabled: false + is_default: false + label: swift + defaultEndpoint: endpoint1 + authType: + authUrl: + tenant: + username: + endpoint: + password: + folderPathSeparator: '-' + hashKey: + temporaryUrlExpiryTime: 3600 + schemaspy: enabled: false jarurl: https://github.com/schemaspy/schemaspy/releases/download/v6.1.0/schemaspy-6.1.0.jar diff --git a/tasks/main.yml b/tasks/main.yml index 366f25b2..bfbd4a0a 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -85,6 +85,11 @@ tags: - s3 +- ansible.builtin.import_tasks: swift.yml + when: swift.enabled == true + tags: + - swift + - ansible.builtin.import_tasks: localstack_create.yml when: localstack.enabled == true tags: diff --git a/tasks/swift.yml b/tasks/swift.yml new file mode 100644 index 00000000..7eb7e283 --- /dev/null +++ b/tasks/swift.yml @@ -0,0 +1,43 @@ +--- + +- name: define swift storage type + shell: 'asadmin-create-or-replace-option.sh "dataverse.files.{{ swift.label }}.type" "swift"' + register: output + changed_when: "'Command create-jvm-options executed successfully.' in output.stdout" + +- name: set default swift parameters for {{ swift.label }} + shell: 'asadmin-create-or-replace-option.sh "dataverse.files.{{ swift.label }}.{{ item }}" "{{ swift[item] }}"' + register: output + changed_when: "'Command create-jvm-options executed successfully.' in output.stdout" + with_items: + - label + - defaultEndpoint + - folderPathSeparator + - temporaryUrlExpiryTime + +- name: set swift parameters for default endpoint + shell: 'asadmin-create-or-replace-option.sh "dataverse.files.{{ swift.label }}.{{ item }}.{{ swift.defaultEndpoint }}" "{{ swift[item] }}"' + register: output + changed_when: "'Command create-jvm-options executed successfully.' in output.stdout" + when: item != '' + with_items: + - authType + - authUrl + - tenant + - username + - endpoint + - hashKey + +- name: set default storage driver id, if applicable + shell: 'asadmin-create-or-replace-option.sh "dataverse.files.storage-driver-id" "{{ swift.label }}"' + register: output + changed_when: "'Command create-jvm-options executed successfully.' in output.stdout" + when: swift.is_default + +- name: set password alias name + shell: "asadmin-create-or-replace-option.sh \"dataverse.files.{{ swift.label }}.password.{{ swift.defaultEndpoint }}\" \"'\\${ALIAS=swiftpassword-alias}'\"" + register: output + changed_when: "'Command create-jvm-options executed successfully.' in output.stdout" + +- name: set password alias -- we cannot determine if the password has changed or not since the last run, so we always change it -- this is due to asadmin + shell: 'asadmin-create-or-replace-password-alias.sh "swiftpassword-alias" "{{ swift.password }}"'