|
1 | 1 | # SPDX-License-Identifier: Apache-2.0 |
2 | 2 | --- |
3 | 3 |
|
| 4 | +# Load variables while maintaining backwards compatibility when variable is empty string. |
| 5 | +# Check if variable is defined and non-empty before using it, otherwise fall back to backwards |
| 6 | +# compatible variable or default empty string that will fail asserts afterwards. |
4 | 7 | - name: Rename some variables used by hdblcm configfile |
5 | 8 | ansible.builtin.set_fact: |
6 | | - sap_hana_install_sid: "{{ sap_hana_sid | d(sap_hana_install_sid) | d('') }}" |
7 | | - sap_hana_install_number: "{{ sap_hana_instance_number | d(sap_hana_install_instance_nr) | d(sap_hana_install_instance_number) | d(sap_hana_install_number) | d('') }}" |
8 | | - sap_hana_install_master_password: "{{ sap_hana_install_common_master_password | d(sap_hana_install_master_password) }}" |
9 | | - sap_hana_install_system_usage: "{{ sap_hana_install_env_type | d(sap_hana_install_system_usage) }}" |
10 | | - sap_hana_install_restrict_max_mem: "{{ sap_hana_install_mem_restrict | d(sap_hana_install_restrict_max_mem) }}" |
| 9 | + sap_hana_install_sid: |
| 10 | + "{{ sap_hana_sid | d('') |
| 11 | + if sap_hana_install_sid | string | length == 0 |
| 12 | + else sap_hana_install_sid }}" |
| 13 | + sap_hana_install_number: |
| 14 | + "{{ sap_hana_instance_number | d(sap_hana_install_instance_nr) | d(sap_hana_install_instance_number) | d('') |
| 15 | + if sap_hana_install_number | string | length == 0 |
| 16 | + else sap_hana_install_number }}" |
| 17 | + sap_hana_install_system_usage: "{{ sap_hana_install_env_type | d(sap_hana_install_system_usage) | d('custom') }}" |
| 18 | + sap_hana_install_restrict_max_mem: "{{ sap_hana_install_mem_restrict | d(sap_hana_install_restrict_max_mem) | d('n') }}" |
11 | 19 | tags: |
12 | 20 | - sap_hana_install_check_hana_exists |
13 | 21 | - sap_hana_install_check_installation |
14 | 22 | - sap_hana_install_preinstall |
15 | 23 | - sap_hana_install_set_log_mode |
16 | 24 | - sap_hana_install_configure_firewall |
17 | 25 |
|
18 | | -- name: Fail if necessary variable 'sap_hana_install_sid' is not defined |
19 | | - ansible.builtin.fail: |
20 | | - msg: "The variable 'sap_hana_install_sid' is not defined." |
21 | | - when: sap_hana_install_sid | length == 0 |
| 26 | +# Separate task for password with no_log |
| 27 | +- name: Rename some variables used by hdblcm configfile - passwords |
| 28 | + ansible.builtin.set_fact: |
| 29 | + sap_hana_install_master_password: |
| 30 | + "{{ sap_hana_install_common_master_password | d('') |
| 31 | + if sap_hana_install_master_password is not defined or sap_hana_install_master_password | string | length == 0 |
| 32 | + else sap_hana_install_master_password }}" |
| 33 | + no_log: true # Required for password handling |
22 | 34 | tags: |
23 | 35 | - sap_hana_install_check_hana_exists |
| 36 | + - sap_hana_install_check_installation |
24 | 37 | - sap_hana_install_preinstall |
| 38 | + - sap_hana_install_set_log_mode |
| 39 | + - sap_hana_install_configure_firewall |
| 40 | + |
25 | 41 |
|
26 | | -- name: Validate SAP HANA System ID - 'sap_hana_install_sid' consists of 3 characters |
| 42 | +- name: Validate SAP HANA System ID - 'sap_hana_install_sid' is defined as String consisting of 3 characters |
27 | 43 | ansible.builtin.assert: |
28 | | - that: sap_hana_install_sid | length == 3 |
29 | | - success_msg: "PASS: The length of the SAP System ID '{{ sap_hana_install_sid }}' is 3 characters." |
30 | | - fail_msg: "FAIL: The length of the SAP HANA System ID '{{ sap_hana_install_sid }}' is not 3 characters!" |
| 44 | + that: |
| 45 | + - sap_hana_install_sid is defined |
| 46 | + - sap_hana_install_sid is string |
| 47 | + - sap_hana_install_sid | length == 3 |
| 48 | + success_msg: | |
| 49 | + PASS: The length of the SAP HANA System ID '{{ sap_hana_install_sid }}' is 3 characters. |
| 50 | + fail_msg: | |
| 51 | + {% if sap_hana_install_sid is not string %} |
| 52 | + FAIL: The variable 'sap_hana_install_sid' is not String. Value: {{ sap_hana_install_sid }} |
| 53 | + {% elif sap_hana_install_sid | length == 0 %} |
| 54 | + FAIL: The variable 'sap_hana_install_sid' is empty. |
| 55 | + {% else %} |
| 56 | + FAIL: The length of the SAP HANA System ID '{{ sap_hana_install_sid }}' is not 3 characters! |
| 57 | + {% endif %} |
31 | 58 | tags: |
32 | 59 | - sap_hana_install_check_hana_exists |
33 | 60 | - sap_hana_install_preinstall |
34 | 61 |
|
35 | 62 | - name: Validate SAP HANA System ID - 'sap_hana_install_sid' is not in the list of reserved SAP SIDs |
36 | 63 | ansible.builtin.assert: |
37 | 64 | that: sap_hana_install_sid not in __sap_hana_install_sid_prohibited |
38 | | - success_msg: "PASS: The SAP HANA System ID '{{ sap_hana_install_sid }}' is not in the list of reserved SAP SIDs in SAP note 1979280 v.20." |
39 | | - fail_msg: "FAIL: The SAP HANA System ID '{{ sap_hana_install_sid }}' is in the list of reserved SAP SIDs in SAP note 1979280 v.20!" |
| 65 | + success_msg: | |
| 66 | + PASS: The SAP HANA System ID '{{ sap_hana_install_sid }}' is not in the list of reserved SAP SIDs in SAP note 1979280 v.20. |
| 67 | + fail_msg: | |
| 68 | + FAIL: The SAP HANA System ID '{{ sap_hana_install_sid }}' is in the list of reserved SAP SIDs in SAP note 1979280 v.20! |
| 69 | + tags: |
| 70 | + - sap_hana_install_check_hana_exists |
| 71 | + - sap_hana_install_preinstall |
| 72 | + |
| 73 | +- name: Validate SAP HANA Instance Number - 'sap_hana_install_number' is defined as String consisting of 2 characters |
| 74 | + ansible.builtin.assert: |
| 75 | + that: |
| 76 | + - sap_hana_install_number is defined |
| 77 | + - sap_hana_install_number is string |
| 78 | + - sap_hana_install_number | length == 2 |
| 79 | + success_msg: | |
| 80 | + PASS: The length of the SAP HANA Instance Number '{{ sap_hana_install_number }}' is 2 characters. |
| 81 | + fail_msg: | |
| 82 | + {% if sap_hana_install_number is not string %} |
| 83 | + FAIL: The variable 'sap_hana_install_number' is not String. Value: {{ sap_hana_install_number }} |
| 84 | + {% elif sap_hana_install_number | length == 0 %} |
| 85 | + FAIL: The variable 'sap_hana_install_number' is empty. |
| 86 | + {% else %} |
| 87 | + FAIL: The length of the SAP HANA Instance Number '{{ sap_hana_install_number }}' is not 2 characters! |
| 88 | + {% endif %} |
40 | 89 | tags: |
41 | 90 | - sap_hana_install_check_hana_exists |
42 | 91 | - sap_hana_install_preinstall |
43 | 92 |
|
44 | | -- name: Fail if necessary variable 'sap_hana_install_number' is not defined |
45 | | - ansible.builtin.fail: |
46 | | - msg: "The variable 'sap_hana_install_number' is not defined." |
47 | | - when: sap_hana_install_number | length == 0 |
| 93 | +- name: Validate SAP HANA Master Password - 'sap_hana_install_master_password' is defined as String and not empty |
| 94 | + ansible.builtin.assert: |
| 95 | + that: |
| 96 | + - sap_hana_install_master_password is defined |
| 97 | + - sap_hana_install_master_password is string |
| 98 | + - sap_hana_install_master_password | length > 0 |
| 99 | + fail_msg: | |
| 100 | + {% if sap_hana_install_master_password is not defined %} |
| 101 | + FAIL: The variable 'sap_hana_install_master_password' is not defined. |
| 102 | + {% elif sap_hana_install_master_password is not string %} |
| 103 | + FAIL: The variable 'sap_hana_install_master_password' is not String. |
| 104 | + {% else %} |
| 105 | + FAIL: The variable 'sap_hana_install_master_password' is empty. |
| 106 | + {% endif %} |
48 | 107 | tags: |
49 | 108 | - sap_hana_install_check_hana_exists |
50 | 109 | - sap_hana_install_preinstall |
51 | 110 |
|
| 111 | + |
52 | 112 | - name: SAP HANA existence checking |
53 | 113 | ansible.builtin.import_tasks: hana_exists.yml |
54 | 114 | when: |
|
0 commit comments