From 21ed93f5400ebd9e9e7c7b620a70edc844a73932 Mon Sep 17 00:00:00 2001 From: schlosstom Date: Thu, 14 Apr 2022 10:44:39 +0200 Subject: [PATCH 1/2] change static value of msgwait to 2 times of watchdog --- .../ansible/roles/checks/1.3.6/tasks/main.yml | 38 +++++++++++++------ 1 file changed, 26 insertions(+), 12 deletions(-) diff --git a/runner/ansible/roles/checks/1.3.6/tasks/main.yml b/runner/ansible/roles/checks/1.3.6/tasks/main.yml index 5746e7f..3a31a2c 100644 --- a/runner/ansible/roles/checks/1.3.6/tasks/main.yml +++ b/runner/ansible/roles/checks/1.3.6/tasks/main.yml @@ -2,21 +2,32 @@ - name: "{{ name }}.check" shell: | - DEF_MSGWAIT={{ expected[name] }} - result_msgwait=${DEF_MSGWAIT} - sbdarray=$(grep -E '^SBD_DEVICE=' /etc/sysconfig/sbd | grep -oP 'SBD_DEVICE=\K[^.]+' | sed 's/\"//g') - IFS=';' sbdarray=( $sbdarray ) + if [ -f /etc/sysconfig/sbd ]; then + source /etc/sysconfig/sbd + else + exit 1 + fi + + IFS=';' sbdarray=( $SBD_DEVICE ) + for i in "${sbdarray[@]}" - do - msgwait=$(/usr/sbin/sbd -d ${i} dump | grep -oP 'Timeout \(msgwait\) *: \K\d+')|| echo "" - if [[ "${msgwait}" -ne "${DEF_MSGWAIT}" ]]; then - result_msgwait="${msgwait}" - fi - done - echo $result_msgwait + do + device="${i//[[:space:]]/}" + msgwait=$(/usr/sbin/sbd -d ${device} dump | grep -oP 'Timeout \(msgwait\) *: \K\d+')|| echo "" + watchdog=$(/usr/sbin/sbd -d ${device} dump | grep -oP 'Timeout \(watchdog\) *: \K\d+')|| echo "" + declare -i msgwait + declare -i watchdog + let watchdog*=2 + if [ $msgwait -lt $watchdog ]; then + exit 1 + fi + done + exit 0 + register: config_updated check_mode: false - changed_when: config_updated.stdout != expected[name] + changed_when: config_updated.rc != 0 + failed_when: config_updated.rc > 1 - block: - name: Post results @@ -26,3 +37,6 @@ - ansible_check_mode vars: status: "{{ config_updated is not changed }}" + + + From ed16554e455d03f3782ca2d9007973547721d50b Mon Sep 17 00:00:00 2001 From: schlosstom Date: Thu, 14 Apr 2022 13:19:19 +0200 Subject: [PATCH 2/2] sourcing the file instead of grep --- runner/ansible/roles/checks/1.3.5/tasks/main.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/runner/ansible/roles/checks/1.3.5/tasks/main.yml b/runner/ansible/roles/checks/1.3.5/tasks/main.yml index 55e54e8..865f379 100644 --- a/runner/ansible/roles/checks/1.3.5/tasks/main.yml +++ b/runner/ansible/roles/checks/1.3.5/tasks/main.yml @@ -4,16 +4,25 @@ shell: | DEF_WDTIMEOUT={{ expected[name] }} result_wdtimeout=${DEF_WDTIMEOUT} - sbdarray=$(grep -E '^SBD_DEVICE=' /etc/sysconfig/sbd | grep -oP 'SBD_DEVICE=\K[^.]+' | sed 's/\"//g') - IFS=';' sbdarray=( $sbdarray ) + + if [ -f /etc/sysconfig/sbd ]; then + source /etc/sysconfig/sbd + else + exit 1 + fi + + IFS=';' sbdarray=( $SBD_DEVICE ) + for i in "${sbdarray[@]}" do - wdtimeout=$(/usr/sbin/sbd -d ${i} dump | grep -oP 'Timeout \(watchdog\) *: \K\d+')|| echo "" + device="${i//[[:space:]]/}" + wdtimeout=$(/usr/sbin/sbd -d ${device} dump | grep -oP 'Timeout \(watchdog\) *: \K\d+')|| echo "" if [[ "${wdtimeout}" -ne "${DEF_WDTIMEOUT}" ]]; then result_wdtimeout="${wdtimeout}" fi done echo "${result_wdtimeout}" + check_mode: false register: config_updated changed_when: config_updated.stdout != expected[name] @@ -26,3 +35,4 @@ - ansible_check_mode vars: status: "{{ config_updated is not changed }}" +