From 3302e823c68a4f901e82a7d45aecff1ce1979d5e Mon Sep 17 00:00:00 2001 From: CRW Date: Mon, 12 May 2025 15:57:10 +0200 Subject: [PATCH 1/2] my fix to issue#30 --- roles/sap_control/defaults/main.yml | 10 ++++++++++ roles/sap_control/tasks/prepare.yml | 16 ++++++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/roles/sap_control/defaults/main.yml b/roles/sap_control/defaults/main.yml index c1c65f3..3d390b1 100644 --- a/roles/sap_control/defaults/main.yml +++ b/roles/sap_control/defaults/main.yml @@ -10,6 +10,16 @@ sap_control_stop: "StopWait 180 2" # get_all_sap_sid_dir_nw: "/sapmnt" # get_all_sap_sid_dir_hana: "/hana/shared" +# Sort Order to start SAP instances defined by SAP and recommended by SAP Basis Administrators +sap_control_instance_type_sortorder: + - "HDB" + - "ERS" + - "ASCS" + - "SCS" + - "PAS" + - "Java" + - "WebDisp" + # Functions sap_control_functions_list: diff --git a/roles/sap_control/tasks/prepare.yml b/roles/sap_control/tasks/prepare.yml index a15777f..e296be8 100644 --- a/roles/sap_control/tasks/prepare.yml +++ b/roles/sap_control/tasks/prepare.yml @@ -9,13 +9,21 @@ ansible.builtin.set_fact: sap_control_name_header: "{{ sap_type | upper }} {{ funct_type | capitalize }}" -- name: SAP Control +- name: Prepare - Sort sap_facts_register by sap_control_instance_type_sortorder + ansible.builtin.set_fact: + sorted_sap_facts: "{{ (sorted_sap_facts | default([]) | unique) + (sap_facts_register.ansible_facts.sap | selectattr('TYPE', 'equalto', item) | list | difference(sorted_sap_facts | default([]))) }}" + loop: "{{ sap_control_instance_type_sortorder | reverse if funct_type == 'stop' else sap_control_instance_type_sortorder }}" + when: + - sap_facts_register.ansible_facts.sap | selectattr('TYPE', 'equalto', item) | list | length > 0 + +- name: Prepare - SAP Control vars: sap_control_execute_sid: "{{ item.SID }}" - sap_control_execute_type: "{{ item.Type }}" + sap_control_execute_type: "{{ item.TYPE }}" sap_control_execute_instance_nr: "{{ item.NR }}" sap_control_execute_instance_type: "{{ item.InstanceType }}" ansible.builtin.include_tasks: "sapcontrol.yml" - loop: "{{ sap_facts_register.ansible_facts.sap }}" + loop: "{{ sorted_sap_facts }}" when: - - "item.InstanceType | lower == sap_type | lower" + - item.InstanceType | lower == sap_type | lower +... From 366b6dd5244fdcd95ebeba78cb12e8dffad5bafa Mon Sep 17 00:00:00 2001 From: CRW Date: Mon, 19 May 2025 17:02:18 +0200 Subject: [PATCH 2/2] prepare.yml: shorten ong line --- roles/sap_control/defaults/main.yml | 1 - roles/sap_control/tasks/prepare.yml | 8 +++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/roles/sap_control/defaults/main.yml b/roles/sap_control/defaults/main.yml index 3d390b1..07065d5 100644 --- a/roles/sap_control/defaults/main.yml +++ b/roles/sap_control/defaults/main.yml @@ -21,7 +21,6 @@ sap_control_instance_type_sortorder: - "WebDisp" # Functions - sap_control_functions_list: - restart_all_sap - stop_all_sap diff --git a/roles/sap_control/tasks/prepare.yml b/roles/sap_control/tasks/prepare.yml index e296be8..0949987 100644 --- a/roles/sap_control/tasks/prepare.yml +++ b/roles/sap_control/tasks/prepare.yml @@ -11,11 +11,13 @@ - name: Prepare - Sort sap_facts_register by sap_control_instance_type_sortorder ansible.builtin.set_fact: - sorted_sap_facts: "{{ (sorted_sap_facts | default([]) | unique) + (sap_facts_register.ansible_facts.sap | selectattr('TYPE', 'equalto', item) | 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: - - sap_facts_register.ansible_facts.sap | selectattr('TYPE', 'equalto', item) | list | length > 0 - + - __type_list | length > 0 + - name: Prepare - SAP Control vars: sap_control_execute_sid: "{{ item.SID }}"