diff --git a/changelogs/fragments/39_fixing_sid_selection.yaml b/changelogs/fragments/39_fixing_sid_selection.yaml new file mode 100644 index 0000000..17a40e3 --- /dev/null +++ b/changelogs/fragments/39_fixing_sid_selection.yaml @@ -0,0 +1,3 @@ +bugfixes: + - roles/sap_control - fixing sap_sid parameter ignored in sap_control role + (https://github.com/sap-linuxlab/community.sap_operations/issues/38). \ No newline at end of file diff --git a/roles/sap_control/tasks/main.yml b/roles/sap_control/tasks/main.yml index 880eec9..0204f63 100644 --- a/roles/sap_control/tasks/main.yml +++ b/roles/sap_control/tasks/main.yml @@ -53,29 +53,37 @@ # - stop_sap_hana # - start_sap_hana -- name: Set function list facts - ansible.builtin.set_fact: - sap_control_act_type: "{{ sap_control_function.split('_')[0] | lower }}" - sap_control_get_type: "{{ sap_control_function.split('_')[1] | lower }}" - sap_control_sap_type: "{{ sap_control_function.split('_')[2] | lower }}" - -- name: Set sap_facts_param - ansible.builtin.set_fact: - sap_facts_param: "{{ sap_control_get_type }}" +# These facts were only used for the sap_system_facts module, but it doesn't accept sap_facts_param anymore. +# - name: Set function list facts +# ansible.builtin.set_fact: +# sap_control_act_type: "{{ sap_control_function.split('_')[0] | lower }}" +# sap_control_get_type: "{{ sap_control_function.split('_')[1] | lower }}" +# sap_control_sap_type: "{{ sap_control_function.split('_')[2] | lower }}" + +# - name: Set sap_facts_param +# ansible.builtin.set_fact: +# sap_facts_param: "{{ sap_control_get_type }}" + +# - name: Set sap_facts_param +# ansible.builtin.set_fact: +# sap_facts_param: "{{ sap_control_sap_type }}" +# when: +# - "'all' in sap_control_function" +# - "'sap' not in sap_control_sap_type" -- name: Set sap_facts_param - ansible.builtin.set_fact: - sap_facts_param: "{{ sap_control_sap_type }}" - when: - - "'all' in sap_control_function" - - "'sap' not in sap_control_sap_type" +# # When not all +# - name: Set sap_facts_param +# ansible.builtin.set_fact: +# sap_facts_param: "{{ sap_sid }}" +# when: +# - "'all' not in sap_control_function" -# When not all -- name: Set sap_facts_param - ansible.builtin.set_fact: - sap_facts_param: "{{ sap_sid }}" - when: - - "'all' not in sap_control_function" +# # Get SAP Info +# - name: Get SAP Info +# vars: +# sap_info_get_function: "get_{{ sap_control_get_type }}_{{ sap_control_sap_type }}" +# ansible.builtin.include_role: +# name: roles/sap_info # # Get SAP Info # - name: Get SAP Info diff --git a/roles/sap_control/tasks/prepare.yml b/roles/sap_control/tasks/prepare.yml index 0949987..91d718a 100644 --- a/roles/sap_control/tasks/prepare.yml +++ b/roles/sap_control/tasks/prepare.yml @@ -11,13 +11,21 @@ - name: Prepare - Sort sap_facts_register by sap_control_instance_type_sortorder ansible.builtin.set_fact: - sorted_sap_facts: "{{ (sorted_sap_facts | default([]) | unique) + ( __type_list | difference(sorted_sap_facts | default([]))) }}" + sorted_sap_facts: "{{ (sorted_sap_facts | default([]) | unique) + (__type_list | difference(sorted_sap_facts | default([]))) }}" loop: "{{ sap_control_instance_type_sortorder | reverse if funct_type == 'stop' else sap_control_instance_type_sortorder }}" vars: __type_list: "{{ sap_facts_register.ansible_facts.sap | selectattr('TYPE', 'equalto', item) | list }}" - when: + when: - __type_list | length > 0 - + +- name: Prepare - Filter sorted_sap_facts by sap_sid + ansible.builtin.set_fact: + sorted_sap_facts: "{{ sorted_sap_facts | default([]) + | selectattr('SID', 'eq', sap_sid | upper) + | list }}" + when: + - not 'all' in sap_control_function + - name: Prepare - SAP Control vars: sap_control_execute_sid: "{{ item.SID }}" @@ -28,4 +36,3 @@ loop: "{{ sorted_sap_facts }}" when: - item.InstanceType | lower == sap_type | lower -...