From b957401c4822b73a3e848985ec43f04d97fe3eba Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Mon, 8 Jul 2024 14:55:46 +0200 Subject: [PATCH 001/414] test version a1.2.8-test - fencing alert agent included --- test/{ => tester}/SaphanasrTestClass.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/{ => tester}/SaphanasrTestClass.txt (100%) diff --git a/test/SaphanasrTestClass.txt b/test/tester/SaphanasrTestClass.txt similarity index 100% rename from test/SaphanasrTestClass.txt rename to test/tester/SaphanasrTestClass.txt From 9e4f7f9c778364fecb6ffd8ecd7a4cda7073c740 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Mon, 8 Jul 2024 16:00:53 +0200 Subject: [PATCH 002/414] tester: packaging - cleaned up base directoy needs changes in the spec file --- SAPHanaSR-tester.spec | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/SAPHanaSR-tester.spec b/SAPHanaSR-tester.spec index eb042cd1..c3e7f30e 100644 --- a/SAPHanaSR-tester.spec +++ b/SAPHanaSR-tester.spec @@ -73,13 +73,13 @@ mkdir -p %{buildroot}%{_mandir}/man8 # test engine itself mkdir -p %{buildroot}/usr/lib/%{name} -install -m 0755 test/SAPHanaSR-* %{buildroot}/usr/bin -install -m 0644 test/saphana_sr_test.py %{buildroot}/usr/lib/%{name} +install -m 0755 test/tester/SAPHanaSR-* %{buildroot}/usr/bin +install -m 0644 test/tester/saphana_sr_test.py %{buildroot}/usr/lib/%{name} # test help programs, test loops and test calls -install -m 0755 test/cs_* %{buildroot}/usr/bin -install -m 0755 test/callTest* %{buildroot}/usr/bin -install -m 0755 test/loopTests* %{buildroot}/usr/bin +install -m 0755 test/bin/cs_* %{buildroot}/usr/bin +install -m 0755 test/bin/callTest* %{buildroot}/usr/bin +install -m 0755 test/bin/loopTests* %{buildroot}/usr/bin install -m 0755 test/bin/sct_* %{buildroot}/usr/bin # client files From 38757b6753461383f3be6e55c5349404f1a02c2a Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Tue, 9 Jul 2024 07:31:18 +0200 Subject: [PATCH 003/414] tester: json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json - tuning --- .../angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 8c3fa794..890d2498 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -50,7 +50,7 @@ "step": "step30", "name": "pmaster fenced", "next": "step40", - "loop": 120, + "loop": 240, "wait": 2, "pHost": [ "clone_state is None", @@ -62,7 +62,7 @@ "step": "step40", "name": "pworker fenced", "next": "step50", - "loop": 120, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", From 541483a00976af9b5e5992ba0d5e5767fdf52ec6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 9 Jul 2024 10:23:59 +0200 Subject: [PATCH 004/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7: details --- ...HanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 43 +++++-------------- ...PHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 17 +++----- 2 files changed, 17 insertions(+), 43 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index b38ee3e6..573bf677 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -10,12 +10,12 @@ SAPHanaSR-tests-angi-ScaleOut_on-fail-fence \- Functional tests for SAPHanaSR Sc .PP Functional test are shipped for the scale-out ERP scenario when configured for immediate fencing. See manual page ocf_suse_SAPHanaController(7), susChkSrv.py(7) -nd SAPHanaSR-alert-fencing(8) for the respective configuration details. This +and SAPHanaSR-alert-fencing(8) for the respective configuration details. This tests could be run out-of-the-box. The test cases are defined in dedicated files. See manual page SAPHanaSR-tests-syntax(5) for syntax details. Details like performed steps or expected behaviour of cluster and HANA are explained in SAPHanaSR-tests-description(7). - +.PP Each test can be executed by running the command SAPHanaSR-testCluster with appropriate parameters. See manual page SAPHanaSR-testCluster(8). .PP @@ -24,44 +24,23 @@ Predefined functional tests specific for scale-out ERP with immediate fencing ov \fBfreeze_prim_master_nfs_fencing_alert\fP Freeze HANA NFS on primary master node. .TP -\fBkill_prim_indexserver_on_fail_fence\fP -Kill primary master indexserver, for susChkSrv.py. +\fBkill_prim_indexserver_fencing_alert\fP +Kill primary master indexserver, for susChkSrv.py (fencing alert agent configured). .TP -\fBkill_prim_inst\fP -Kill primary master instance. +\fBkill_prim_inst_fencing_alert\fP +Kill primary master instance (fencing alert agent configured). .TP \fBkill_prim_node_fencing_alert\fP Kill primary master node (fencing alert agent configured). .TP -\fBkill_prim_worker_indexserver_on_fail_fence\fP -Kill primary worker indexserver, for susChkSrv.py. -.TP -\fBkill_prim_worker_inst\fP -Kill primary worker instance. +\fBkill_prim_worker_indexserver_fencing_alert\fP +Kill primary worker indexserver, for susChkSrv.py (fencing alert agent configured). .TP -\fBkill_prim_worker_node\fP -Kill primary worker node (no fencing alert agent configured). +\fBkill_prim_worker_inst_fencing_alert\fP +Kill primary worker instance (fencing alert agent configured). .TP \fBkill_prim_worker_node_fencing_alert\fP Kill primary master node (fencing alert agent configured). -.TP -\fBkill_secn_indexserver\fP -Kill secondary master indexserver, for susChkSrv.py. -.TP -\fBkill_secn_inst\fP -Kill secondary master instance. -.TP -\fBkill_secn_node\fP -Kill secondary master node. -.TP -\fBkill_secn_worker_inst\fP -Kill secondary worker instance. -.TP -\fBkill_secn_worker_node\fP -Kill secondary worker node. -.TP -\fBkill_secn_site\fP -Kill secondary site nodes. Not yet implemented. .PP .\" .SH EXAMPLES @@ -86,7 +65,7 @@ shell scripts for un-easy tasks on the cluster nodes. .PP See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). See also ocf_suse_SAPHanaController(7), susChkSrv.py(7) and -SAPHanaSR-alert-fencing(8) for configuration. +SAPHanaSR-alert-fencing(8) for configuration of immediate fencing. Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .\" diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index f6e2eb43..26b57c3c 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -18,17 +18,11 @@ SAPHanaSR-tests-description(7). .PP Predefined functional tests specific for scale-up with immediate fencing overview: .TP -\fBkill_prim_indexserver_onfail_fence\fP -Kill primary indexserver, for susChkSrv.py. +\fBkill_prim_indexserver_fencing_alert\fP +Kill primary indexserver, for susChkSrv.py (immediate fencing configured). .TP -\fBkill_prim_inst_onfail_fence\fP -Kill primary instance. -.TP -\fBkill_secn_indexserver_onfail_fence\fP -Kill secondary indexserver, for susChkSrv.py. -.TP -\fBkill_secn_inst_onfail_fence\fP -Kill secondary instance. +\fBkill_prim_inst_fencing_alert\fP +Kill primary instance (immediate fencing configured). .PP .\" .SH EXAMPLES @@ -53,7 +47,8 @@ shell scripts for un-easy tasks on the cluster nodes. .SH REQUIREMENTS .\" See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). -See also ocf_suse_SAPHanaController(7) and susChkSrv.py(7) for configuration. +See also ocf_suse_SAPHanaController(7) and susChkSrv.py(7) for configuration of +immediate fencing. Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .PP From 5eb754111219055426a11d0d5d27d721323df9a9 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 9 Jul 2024 17:24:37 +0200 Subject: [PATCH 005/414] susHanaSrMultiTarget.py.7: un-/re-register secondary on nameserver.ini change --- man/susHanaSrMultiTarget.py.7 | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/man/susHanaSrMultiTarget.py.7 b/man/susHanaSrMultiTarget.py.7 index 0bbbcb02..e2eb38fd 100644 --- a/man/susHanaSrMultiTarget.py.7 +++ b/man/susHanaSrMultiTarget.py.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH susHanaSrMultiTarget.py 7 "18 Apr 2023" "" "SAPHanaSR-ScaleOut" +.TH susHanaSrMultiTarget.py 7 "09 Jul 2024" "" "SAPHanaSR-ScaleOut" .\" .SH NAME susHanaSrMultiTarget.py \- Provider for multi-target aware SAP HANA srHook @@ -167,8 +167,11 @@ register_secondaries_on_takeover = true /hana/shared/$SID/global/hdb/custom/config/nameserver.ini for two-node scale-out HANA without standby nodes. .br This entry is needed at both sites that are managed by the Linux cluster. -The HANA has to be stopped before the files can be edited. -Do not copy the file between nodes. Please check SAP HANA documentation for details. In this example the master node is suse11, the worker is suse12. +The HANA has to be stopped before the files can be edited. Do not copy the file +between nodes. It might be necessary to un-register and re-register the secondary +to make the change effective on the secondary site. +Please check SAP HANA documentation for details. In this example the master node +is suse11, the worker is suse12. .PP .RS 2 [landscape] @@ -357,7 +360,7 @@ A.Briel, F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT -(c) 2020-2023 SUSE LLC +(c) 2020-2024 SUSE LLC .br susHanaSrMultiTarget.py comes with ABSOLUTELY NO WARRANTY. .br From f535d050a2fcedef4879a7cc6b73141604601044 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 9 Jul 2024 17:30:19 +0200 Subject: [PATCH 006/414] SAPHanaSR-showAttr.8: typo --- man/SAPHanaSR-showAttr.8 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/SAPHanaSR-showAttr.8 b/man/SAPHanaSR-showAttr.8 index 438db263..cb023bd9 100644 --- a/man/SAPHanaSR-showAttr.8 +++ b/man/SAPHanaSR-showAttr.8 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-showAttr 8 "24 Jan 2024" "" "SAPHanaSR" +.TH SAPHanaSR-showAttr 8 "09 Jul 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR-showAttr \- Shows Linux cluster attributes for SAP HANA system replication. @@ -532,7 +532,7 @@ show version. .TP 4 \fB --select\fR \fISELECT\fR .\" TODO explain meaning of values -show selected information only. Allowed values: [ all | default | minimal | sr | cluster | cluster2 | cluster3 | skitelist ]. Default is default. +show selected information only. Allowed values: [ all | default | minimal | sr | cluster | cluster2 | cluster3 | sitelist ]. Default is default. .TP 4 \fB --sid\fR \fISID\fR use SAP system ID \fISID\fR. Should be autodetected, if there is only one SAP HANA instance installed on the local cluster node. The SAP system ID is a 3 alphanum string with a valid SAP system name like SLE, HAE, FH1, C11, or P42. From 8b5e49dba721ec273fe3e9ff8b742986651631aa Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 10 Jul 2024 10:27:15 +0200 Subject: [PATCH 007/414] tester: kill_prim_worker_indexserver_fencing_alert.json added --- ...prim_worker_indexserver_fencing_alert.json | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json new file mode 100644 index 00000000..a309cb05 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -0,0 +1,121 @@ +{ + "test": "kill_prim_worker_indexserver_fencing_alert", + "name": "Kill primary worker indexserver with fencing alert agent implemented", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "kill_prim_worker_indexserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": [ + "lss ~ (1|2)", + "srr == P", + "lpt >~ 1000000000:20", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == PRIM" + ], + "sSite": [ + "lpt >~ 1000000000:30", + "lss == 4", + "srr == S", + "srHook ~ (PRIM|SOK)", + "srPoll ~ (SOK|SFAIL)" + ], + "pHost": [ + ], + "sHost": [ + "clone_state ~ (PROMOTED|DEMOTED)", + "roles == master1:master:worker:master", + "score ~ (100|145)" + ] + }, + { + "step": "step30", + "name": "pworker fenced", + "next": "step40", + "loop": 120, + "wait": 2, + "pWorker": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "pmaster fenced", + "next": "step50", + "loop": 120, + "wait": 2, + "pHost": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step50", + "name": "begin recover", + "next": "final60", + "loop": 120, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "todo2": "why do we need SFAIL for srHook?", + "pSite": [ + "lss == 1", + "srr == P", + "lpt >~ 1000000000:(30|20|10)", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == PRIM" + ], + "sSite": [ + "lpt >~ 1000000000:30", + "lss == 4", + "srr ~ (S|P)", + "srHook ~ (PRIM|SFAIL)", + "srPoll ~ (SOK|SFAIL)" + ], + "pHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "score ~ (90|70|5)" + ], + "sHost": [ + "clone_state ~ (DEMOTED|PROMOTED)", + "roles == master1:master:worker:master", + "score ~ (100|145)", + "srah == T" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 360, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp", + "pWorker": "sWorkerUp", + "sWorker": "pWorkerUp" + } + ] +} From d5804b18338be7b479265c606b08c7e1182734d4 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 10 Jul 2024 10:28:23 +0200 Subject: [PATCH 008/414] angi: SAPHanaSR-alert-fencing - logging improved --- alert/SAPHanaSR-alert-fencing | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/alert/SAPHanaSR-alert-fencing b/alert/SAPHanaSR-alert-fencing index 6005e254..162d1d3f 100755 --- a/alert/SAPHanaSR-alert-fencing +++ b/alert/SAPHanaSR-alert-fencing @@ -20,13 +20,12 @@ crm_alert_kind="${CRM_alert_kind:-manual call}" crm_alert_node="${CRM_alert_node:-$HOSTNAME}" crm_alert_desc="${CRM_alert_desc:-no description provided}" -$logger -t "$logger_tag" "AH: begin event '$crm_alert_kind'" cache_file="/run/crm/SAPHanaSR_site_cache" alert_uptime_threshold="${alert_uptime_threshold:-300}" IFS=. read -r sys_uptime REST Date: Wed, 10 Jul 2024 10:29:12 +0200 Subject: [PATCH 009/414] tester: kill_prim_worker_node_fencing_alert.json aliged to other test file ti minimize diffs --- .../kill_prim_worker_node_fencing_alert.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 4115211f..381c3310 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -1,6 +1,6 @@ { - "test": "kill_prim_worker_node fencing alert", - "name": "Kill primary worker node with fencing agent implemented", + "test": "kill_prim_worker_node fencing_alert", + "name": "Kill primary worker node with fencing alert agent implemented", "start": "prereq10", "steps": [ { @@ -14,8 +14,8 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "sWorker": "sWorkerUp", - "pWorker": "pWorkerUp" + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "step20", From 1055b645afbbbd54b3bc0969fb97e934ff0beeb6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 10 Jul 2024 10:31:16 +0200 Subject: [PATCH 010/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7: detals --- .../SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index 573bf677..21785bfa 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -22,25 +22,25 @@ appropriate parameters. See manual page SAPHanaSR-testCluster(8). Predefined functional tests specific for scale-out ERP with immediate fencing overwiev: .TP \fBfreeze_prim_master_nfs_fencing_alert\fP -Freeze HANA NFS on primary master node. +Freeze HANA NFS on primary master node (fencing alert agent configured). .TP \fBkill_prim_indexserver_fencing_alert\fP -Kill primary master indexserver, for susChkSrv.py (fencing alert agent configured). +Kill primary master indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .TP \fBkill_prim_inst_fencing_alert\fP -Kill primary master instance (fencing alert agent configured). +Kill primary master instance (ON_FAIL_ACTION=fence and fencing alert agent configured). .TP \fBkill_prim_node_fencing_alert\fP Kill primary master node (fencing alert agent configured). .TP \fBkill_prim_worker_indexserver_fencing_alert\fP -Kill primary worker indexserver, for susChkSrv.py (fencing alert agent configured). +Kill primary worker indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .TP \fBkill_prim_worker_inst_fencing_alert\fP -Kill primary worker instance (fencing alert agent configured). +Kill primary worker instance (ON_FAIL_ACTION=fence and fencing alert agent configured). .TP \fBkill_prim_worker_node_fencing_alert\fP -Kill primary master node (fencing alert agent configured). +Kill primary worker node (fencing alert agent configured). .PP .\" .SH EXAMPLES From edcab9aa19fba3d0878779d9846c92cb5537d08f Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 10 Jul 2024 22:54:44 +0200 Subject: [PATCH 011/414] tester: angi-ScaleOut/kill_prim_indexserver_fencing_alert.json - fix step50 --- .../kill_prim_indexserver_fencing_alert.json | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 890d2498..aafb074f 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -6,7 +6,7 @@ { "step": "prereq10", "name": "test prerequitsites", - "next": "step20", + "next": "step30", "loop": 1, "wait": 1, "post": "kill_prim_indexserver", @@ -72,9 +72,9 @@ }, { "step": "step50", - "name": "begin recover", + "name": "begin recover new secondary", "next": "final60", - "loop": 120, + "loop": 480, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -82,25 +82,24 @@ "srr == P", "lpt >~ 1000000000:(30|20|10)", "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" + "srPoll == SFAIL" ], "sSite": [ - "lpt >~ 1000000000:30", + "lpt > 1000000000", "lss == 4", - "srr ~ (S|P)", + "srr == P", "srHook == PRIM", - "srPoll ~ (SOK|SFAIL)" + "srPoll == PRIM" ], "pHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", - "score ~ (90|70|5)" + "score ~ (0|90|70|5)" ], "sHost": [ - "clone_state ~ (DEMOTED|PROMOTED)", + "clone_state == PROMOTED", "roles == master1:master:worker:master", - "score ~ (100|145)", - "srah == T" + "score == 150" ] }, { From 9c3996ac1d15e9763dbc50e38053d5f533b949eb Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 10 Jul 2024 23:00:54 +0200 Subject: [PATCH 012/414] tester: tester/saphana_sr_test.py - version 1.2.14 --- test/tester/saphana_sr_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index 971e3f3a..5ca77375 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -25,7 +25,7 @@ class SaphanasrTest: """ class to check SAP HANA cluster during tests """ - version = "1.2.13" + version = "1.2.14" def message(self, msg, **kwargs): """ From 9bdd9c480a459e1f65e24803f62e130e9fc6f258 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 12:27:43 +0200 Subject: [PATCH 013/414] tester: freeze_prim_master_nfs_fencing_alert.json - added --- .../freeze_prim_master_nfs_fencing_alert.json | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json new file mode 100644 index 00000000..6bcdb605 --- /dev/null +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -0,0 +1,120 @@ +{ + "test": "freeze_prim_master_nfs_fencing_alert", + "name": "freeze sap hana nfs on primary master node with fencing alert agent implemented", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step30", + "loop": 1, + "wait": 1, + "post": "shell sct_test_freeze_prim_master_nfs", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 180, + "wait": 2, + "comment2": "currently we skip this step - so still needs to be done", + "pSite": [ + "srr == P", + "lpt >~ 1000000000:(20|10)", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == PRIM" + ], + "sSite": [ + "lpt >~ 1000000000:30", + "lss == 4", + "srr ~ (S|P)", + "srHook ~ (PRIM|SOK)", + "srPoll ~ (SOK|SFAIL)" + ], + "pHost": [ + ], + "sHost": [ + "clone_state ~ (PROMOTED|DEMOTED)", + "roles == master1:master:worker:master", + "score ~ (100|145)" + ] + }, + { + "step": "step30", + "name": "pworker fenced", + "next": "step40", + "loop": 140, + "wait": 2, + "pWorker": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "pmaster fenced", + "next": "step50", + "loop": 240, + "wait": 2, + "pHost": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step50", + "name": "begin recover new secondary", + "next": "final60", + "loop": 480, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": [ + "lss == 1", + "srr == P", + "lpt >~ 1000000000:(30|20|10)", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == SFAIL" + ], + "sSite": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "pHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (0|90|70|5)" + ], + "sHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 360, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp", + "pWorker": "sWorkerUp", + "sWorker": "pWorkerUp" + } + ] +} From 4b2d1daa26cdf844e17ef031d466fc9a430410a4 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 12:28:32 +0200 Subject: [PATCH 014/414] tester: kill_prim_indexserver_fencing_alert.json - added comment 'skip step20' --- test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index aafb074f..27bc8809 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -24,6 +24,7 @@ "loop": 180, "wait": 2, "comment": "sSite: srPoll could get SFAIL on scale-out", + "comment2": "currently we skip this step - so still needs to be done", "pSite": [ "lss ~ (1|2)", "srr == P", From f89f07822603121305e2c392d4ce2b9ecc6cbe42 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 12:29:24 +0200 Subject: [PATCH 015/414] tester: kill_prim_worker_indexserver_fencing_alert.json - fixed step50 --- ...prim_worker_indexserver_fencing_alert.json | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index a309cb05..be6b55f5 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -6,7 +6,7 @@ { "step": "prereq10", "name": "test prerequitsites", - "next": "step20", + "next": "step30", "loop": 1, "wait": 1, "post": "kill_prim_worker_indexserver", @@ -21,8 +21,9 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 120, + "loop": 180, "wait": 2, + "comment2": "currently we skip this step - so still needs to be done", "pSite": [ "lss ~ (1|2)", "srr == P", @@ -49,7 +50,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 120, + "loop": 140, "wait": 2, "pWorker": [ "clone_state is None", @@ -61,45 +62,44 @@ "step": "step40", "name": "pmaster fenced", "next": "step50", - "loop": 120, + "loop": 240, "wait": 2, "pHost": [ "clone_state is None", "role is None", "score is None" - ] - }, - { - "step": "step50", - "name": "begin recover", + ] + }, + { + "step": "step50", + "name": "begin recover new secondary", "next": "final60", - "loop": 120, + "loop": 480, "wait": 2, "todo": "pHost+sHost to check site-name", - "todo2": "why do we need SFAIL for srHook?", "pSite": [ "lss == 1", "srr == P", "lpt >~ 1000000000:(30|20|10)", "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" + "srPoll == SFAIL" ], - "sSite": [ - "lpt >~ 1000000000:30", + "sSite": 6 + "lpt > 1000000000", "lss == 4", - "srr ~ (S|P)", - "srHook ~ (PRIM|SFAIL)", - "srPoll ~ (SOK|SFAIL)" + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" ], "pHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", - "score ~ (90|70|5)" + "roles == master1::worker:", + "score ~ (0|90|70|5)" ], "sHost": [ - "clone_state ~ (DEMOTED|PROMOTED)", + "clone_state == PROMOTED", "roles == master1:master:worker:master", - "score ~ (100|145)", - "srah == T" + "score == 150" ] }, { From 26021c6f89859e0c9856b0bcc7e7da95d1e2587a Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 12:57:49 +0200 Subject: [PATCH 016/414] tester: kill_prim_inst.json - begin to add purposes --- test/json/angi-ScaleOut/kill_prim_inst.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_inst.json b/test/json/angi-ScaleOut/kill_prim_inst.json index 3443c7cc..9f0daff2 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_inst.json @@ -1,6 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary master instance", + "purpose": [ "kill", "prim", "inst" ], "start": "prereq10", "steps": [ { From 4e698e5c7e0e7b21a2da67fda0e1b1542fa95fe7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:01:38 +0200 Subject: [PATCH 017/414] angi-ScaleOut/maintenance_cluster_hana_running.json angi-ScaleUp/maintenance_cluster_hana_running.json angi-ScaleUp/restart_cluster_hana_running.json classic-ScaleOut/restart_cluster_hana_running.json: typo in name: --- test/json/angi-ScaleOut/maintenance_cluster_hana_running.json | 2 +- test/json/angi-ScaleUp/maintenance_cluster_hana_running.json | 2 +- test/json/angi-ScaleUp/restart_cluster_hana_running.json | 2 +- test/json/classic-ScaleOut/restart_cluster_hana_running.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json index 28341f5f..00c44e38 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json @@ -1,6 +1,6 @@ { "test": "maintenance_cluster_hana_running", - "name": "stop and restart cluster, keep hana_running", + "name": "stop and restart cluster, keep hana running", "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json b/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json index 28341f5f..00c44e38 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json @@ -1,6 +1,6 @@ { "test": "maintenance_cluster_hana_running", - "name": "stop and restart cluster, keep hana_running", + "name": "stop and restart cluster, keep hana running", "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/restart_cluster_hana_running.json b/test/json/angi-ScaleUp/restart_cluster_hana_running.json index bd543890..0d0c156e 100644 --- a/test/json/angi-ScaleUp/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/restart_cluster_hana_running.json @@ -1,6 +1,6 @@ { "test": "restart_cluster_hana_running", - "name": "stop and restart cluster, keep hana_running", + "name": "stop and restart cluster, keep hana running", "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleOut/restart_cluster_hana_running.json b/test/json/classic-ScaleOut/restart_cluster_hana_running.json index 891b2122..f9b14eb7 100644 --- a/test/json/classic-ScaleOut/restart_cluster_hana_running.json +++ b/test/json/classic-ScaleOut/restart_cluster_hana_running.json @@ -1,6 +1,6 @@ { "test": "restart_cluster_hana_running", - "name": "restart_cluster_hana_running", + "name": "restart cluster, keep hana running", "start": "prereq10", "steps": [ { From 3d8db4adf9c9ef554ced97c6626f4de46a7071df Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 13:03:40 +0200 Subject: [PATCH 018/414] tester: maintenance_cluster_hana_running.json - fixed name --- test/json/angi-ScaleOut/maintenance_cluster_hana_running.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json index 28341f5f..00c44e38 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json @@ -1,6 +1,6 @@ { "test": "maintenance_cluster_hana_running", - "name": "stop and restart cluster, keep hana_running", + "name": "stop and restart cluster, keep hana running", "start": "prereq10", "steps": [ { From fbb0d6b7defeef553d3a7a729ebe6607f0cb9413 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 13:05:27 +0200 Subject: [PATCH 019/414] tester: kill_prim_worker_indexserver_fencing_alert.json - fixed typo --- .../kill_prim_worker_indexserver_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index be6b55f5..01ddcd00 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -84,7 +84,7 @@ "srHook ~ (PRIM|SWAIT|SREG)", "srPoll == SFAIL" ], - "sSite": 6 + "sSite": [ "lpt > 1000000000", "lss == 4", "srr == P", From aa09c1af27c6d5d772e99a551ed5f79a245e8e13 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:13:21 +0200 Subject: [PATCH 020/414] kill_prim_inst_fencing_alert.json: initial checkin, copied from kill_prim_indexserver_fencing_alert.json --- .../kill_prim_inst_fencing_alert.json | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json new file mode 100644 index 00000000..eaa4aaeb --- /dev/null +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -0,0 +1,122 @@ +{ + "test": "kill_prim_instance_fencing_alert", + "name": "Kill primary master instance with fencing alert agent implemented", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step30", + "loop": 1, + "wait": 1, + "post": "kill_prim_indexserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 180, + "wait": 2, + "comment": "sSite: srPoll could get SFAIL on scale-out", + "comment2": "currently we skip this step - so still needs to be done", + "pSite": [ + "lss ~ (1|2)", + "srr == P", + "lpt >~ 1000000000:20", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == PRIM" + ], + "sSite": [ + "lpt >~ 1000000000:30", + "lss == 4", + "srr == S", + "srHook ~ (PRIM|SOK)", + "srPoll ~ (SOK|SFAIL)" + ], + "pHost": [ + ], + "sHost": [ + "clone_state ~ (PROMOTED|DEMOTED)", + "roles == master1:master:worker:master", + "score ~ (100|145)" + ] + }, + { + "step": "step30", + "name": "pmaster fenced", + "next": "step40", + "loop": 240, + "wait": 2, + "pHost": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "pworker fenced", + "next": "step50", + "loop": 240, + "wait": 2, + "pWorker": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step50", + "name": "begin recover new secondary", + "next": "final60", + "loop": 480, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": [ + "lss == 1", + "srr == P", + "lpt >~ 1000000000:(30|20|10)", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == SFAIL" + ], + "sSite": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "pHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (0|90|70|5)" + ], + "sHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 360, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp", + "pWorker": "sWorkerUp", + "sWorker": "pWorkerUp" + } + ] +} From 1572fa99cc18276f4ec56b33fde1d59aceecbf15 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:19:22 +0200 Subject: [PATCH 021/414] kill_prim_indexserver_fencing.json: initial checkin --- .../kill_prim_indexserver_fencing.json | 122 ++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json new file mode 100644 index 00000000..27bc8809 --- /dev/null +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -0,0 +1,122 @@ +{ + "test": "kill_prim_indexserver_fencing_alert", + "name": "Kill primary master indexserver with fencing alert agent implemented", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step30", + "loop": 1, + "wait": 1, + "post": "kill_prim_indexserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 180, + "wait": 2, + "comment": "sSite: srPoll could get SFAIL on scale-out", + "comment2": "currently we skip this step - so still needs to be done", + "pSite": [ + "lss ~ (1|2)", + "srr == P", + "lpt >~ 1000000000:20", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == PRIM" + ], + "sSite": [ + "lpt >~ 1000000000:30", + "lss == 4", + "srr == S", + "srHook ~ (PRIM|SOK)", + "srPoll ~ (SOK|SFAIL)" + ], + "pHost": [ + ], + "sHost": [ + "clone_state ~ (PROMOTED|DEMOTED)", + "roles == master1:master:worker:master", + "score ~ (100|145)" + ] + }, + { + "step": "step30", + "name": "pmaster fenced", + "next": "step40", + "loop": 240, + "wait": 2, + "pHost": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "pworker fenced", + "next": "step50", + "loop": 240, + "wait": 2, + "pWorker": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step50", + "name": "begin recover new secondary", + "next": "final60", + "loop": 480, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": [ + "lss == 1", + "srr == P", + "lpt >~ 1000000000:(30|20|10)", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == SFAIL" + ], + "sSite": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "pHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (0|90|70|5)" + ], + "sHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 360, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp", + "pWorker": "sWorkerUp", + "sWorker": "pWorkerUp" + } + ] +} From 75029e40d32d8b9d234014622e74946a22131f7d Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:20:50 +0200 Subject: [PATCH 022/414] kill_prim_indexserver_fencing.json: initial checkin --- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 27bc8809..aba30619 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -1,6 +1,6 @@ { - "test": "kill_prim_indexserver_fencing_alert", - "name": "Kill primary master indexserver with fencing alert agent implemented", + "test": "kill_prim_indexserver_fencing", + "name": "Kill primary master indexserver with on-fail fencing", "start": "prereq10", "steps": [ { @@ -23,8 +23,6 @@ "next": "step30", "loop": 180, "wait": 2, - "comment": "sSite: srPoll could get SFAIL on scale-out", - "comment2": "currently we skip this step - so still needs to be done", "pSite": [ "lss ~ (1|2)", "srr == P", From 652f9e3224b7b481a61d07551c775a783d4da43e Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:22:26 +0200 Subject: [PATCH 023/414] SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7: descr --- man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index 26b57c3c..e861fb96 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -18,10 +18,10 @@ SAPHanaSR-tests-description(7). .PP Predefined functional tests specific for scale-up with immediate fencing overview: .TP -\fBkill_prim_indexserver_fencing_alert\fP +\fBkill_prim_indexserver_fencing\fP Kill primary indexserver, for susChkSrv.py (immediate fencing configured). .TP -\fBkill_prim_inst_fencing_alert\fP +\fBkill_prim_inst_fencing\fP Kill primary instance (immediate fencing configured). .PP .\" From ca25ccd30c9dac62b14f6c4975b1681e9e2f0bdc Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:29:15 +0200 Subject: [PATCH 024/414] SAPHanaSR-tests-angi-ScaleOut.7: removed fencing-alert cases --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index efce76f9..2dc0314e 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleOut 7 "20 Dec 2023" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleOut 7 "11 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleOut \- Functional tests for SAPHanaSR Scale-Out. @@ -47,10 +47,7 @@ Kill primary master indexserver, for susChkSrv.py. Kill primary master instance. .TP \fBkill_prim_node\fP -Kill primary master node (no fencing alert agent configured). -.TP -\fBkill_prim_node_fencing_alert\fP -Kill primary master node (fencing alert agent configured). +Kill primary master node. .TP \fBkill_prim_worker_indexserver\fP Kill primary worker indexserver, for susChkSrv.py. @@ -59,10 +56,7 @@ Kill primary worker indexserver, for susChkSrv.py. Kill primary worker instance. .TP \fBkill_prim_worker_node\fP -Kill primary worker node (no fencing alert agent configured). -.TP -\fBkill_prim_worker_node_fencing_alert\fP -Kill primary master node (fencing alert agent configured). +Kill primary worker node. .TP \fBkill_prim_site\fP Kill primary site nodes. Not yet implemented. @@ -159,6 +153,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .SH SEE ALSO \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , \fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , +\fBSAPHanaSR-tests-angi-ScaleOut_on-fail-fence\fP(7) , \fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) .PP @@ -168,7 +163,7 @@ F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT -(c) 2023 SUSE LLC +(c) 2023-2024 SUSE LLC .br The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. .br From dab09fea82d18746eec8e2f4caad5d07add4b905 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:52:55 +0200 Subject: [PATCH 025/414] kill_prim_inst_fencing.json: initial checkin --- .../angi-ScaleUp/kill_prim_inst_fencing.json | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 test/json/angi-ScaleUp/kill_prim_inst_fencing.json diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json new file mode 100644 index 00000000..5dbcba7f --- /dev/null +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -0,0 +1,120 @@ +{ + "test": "kill_prim_inst_fencing", + "name": "Kill primary master instance with on-fail fencing", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step30", + "loop": 1, + "wait": 1, + "post": "kill_prim_inst_fencing", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 180, + "wait": 2, + "pSite": [ + "lss ~ (1|2)", + "srr == P", + "lpt >~ 1000000000:20", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == PRIM" + ], + "sSite": [ + "lpt >~ 1000000000:30", + "lss == 4", + "srr == S", + "srHook ~ (PRIM|SOK)", + "srPoll ~ (SOK|SFAIL)" + ], + "pHost": [ + ], + "sHost": [ + "clone_state ~ (PROMOTED|DEMOTED)", + "roles == master1:master:worker:master", + "score ~ (100|145)" + ] + }, + { + "step": "step30", + "name": "pmaster fenced", + "next": "step40", + "loop": 240, + "wait": 2, + "pHost": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "pworker fenced", + "next": "step50", + "loop": 240, + "wait": 2, + "pWorker": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step50", + "name": "begin recover new secondary", + "next": "final60", + "loop": 480, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": [ + "lss == 1", + "srr == P", + "lpt >~ 1000000000:(30|20|10)", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == SFAIL" + ], + "sSite": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "pHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (0|90|70|5)" + ], + "sHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 360, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp", + "pWorker": "sWorkerUp", + "sWorker": "pWorkerUp" + } + ] +} From e3b13b4861c5ff0e7b189bfd01f974b365701045 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:55:57 +0200 Subject: [PATCH 026/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json: removed worker --- .../angi-ScaleUp/kill_prim_indexserver_fencing.json | 10 +++------- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 8 ++------ 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index aba30619..1fe04112 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -9,14 +9,12 @@ "next": "step30", "loop": 1, "wait": 1, - "post": "kill_prim_indexserver", + "post": "kill_prim_indexserver_fencing", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", - "sWorker": "sWorkerUp" - }, + , { "step": "step20", "name": "failure detected", @@ -112,9 +110,7 @@ "pSite": "sSiteUp", "sSite": "pSiteUp", "pHost": "sHostUp", - "sHost": "pHostUp", - "pWorker": "sWorkerUp", - "sWorker": "pWorkerUp" + "sHost": "pHostUp" } ] } diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index 5dbcba7f..dcd5d193 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -13,9 +13,7 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp", - "pWorker": "pWorkerUp", - "sWorker": "sWorkerUp" + "sHost": "sHostUp" }, { "step": "step20", @@ -112,9 +110,7 @@ "pSite": "sSiteUp", "sSite": "pSiteUp", "pHost": "sHostUp", - "sHost": "pHostUp", - "pWorker": "sWorkerUp", - "sWorker": "pWorkerUp" + "sHost": "pHostUp" } ] } From f0f22b4361498461b3c4efd53bd4fa6c5c97fd9e Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 13:57:43 +0200 Subject: [PATCH 027/414] kill_prim_inst_fencing_alert.json: fixed post: --- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index eaa4aaeb..390eeac8 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -9,7 +9,7 @@ "next": "step30", "loop": 1, "wait": 1, - "post": "kill_prim_indexserver", + "post": "kill_prim_instance", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", From 44c6f9861628dfa97ccfb7d80a4d3d0c74ba8d20 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 14:01:28 +0200 Subject: [PATCH 028/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json --- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 1fe04112..4a8bbe3c 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -9,7 +9,7 @@ "next": "step30", "loop": 1, "wait": 1, - "post": "kill_prim_indexserver_fencing", + "post": "kill_prim_indexserver", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index dcd5d193..df176f3e 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -9,7 +9,7 @@ "next": "step30", "loop": 1, "wait": 1, - "post": "kill_prim_inst_fencing", + "post": "kill_prim_inst", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", From ac28e500567a12805921e5aa4ce036494f4c6ee9 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 14:31:37 +0200 Subject: [PATCH 029/414] kill_prim_worker_inst_fencing_alert.json: initial checkin --- .../kill_prim_worker_inst_fencing_alert.json | 121 ++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json new file mode 100644 index 00000000..3f2397a4 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -0,0 +1,121 @@ +{ + "test": "kill_prim_worker_inst_fencing_alert", + "name": "Kill primary worker instance with fencing alert agent implemented", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step30", + "loop": 1, + "wait": 1, + "post": "kill_prim_worker_inst", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 180, + "wait": 2, + "comment2": "currently we skip this step - so still needs to be done", + "pSite": [ + "lss ~ (1|2)", + "srr == P", + "lpt >~ 1000000000:20", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == PRIM" + ], + "sSite": [ + "lpt >~ 1000000000:30", + "lss == 4", + "srr == S", + "srHook ~ (PRIM|SOK)", + "srPoll ~ (SOK|SFAIL)" + ], + "pHost": [ + ], + "sHost": [ + "clone_state ~ (PROMOTED|DEMOTED)", + "roles == master1:master:worker:master", + "score ~ (100|145)" + ] + }, + { + "step": "step30", + "name": "pworker fenced", + "next": "step40", + "loop": 140, + "wait": 2, + "pWorker": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "pmaster fenced", + "next": "step50", + "loop": 240, + "wait": 2, + "pHost": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step50", + "name": "begin recover new secondary", + "next": "final60", + "loop": 480, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": [ + "lss == 1", + "srr == P", + "lpt >~ 1000000000:(30|20|10)", + "srHook ~ (PRIM|SWAIT|SREG)", + "srPoll == SFAIL" + ], + "sSite": 6 + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "pHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (0|90|70|5)" + ], + "sHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 360, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp", + "pWorker": "sWorkerUp", + "sWorker": "pWorkerUp" + } + ] +} From 3aa7223e08dd88df4b0f2af9cff087b9adfec161 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 14:35:59 +0200 Subject: [PATCH 030/414] kill_prim_inst_fencing_alert.json: fixed post: --- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 390eeac8..0a38a276 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -1,5 +1,5 @@ { - "test": "kill_prim_instance_fencing_alert", + "test": "kill_prim_inst_fencing_alert", "name": "Kill primary master instance with fencing alert agent implemented", "start": "prereq10", "steps": [ @@ -9,7 +9,7 @@ "next": "step30", "loop": 1, "wait": 1, - "post": "kill_prim_instance", + "post": "kill_prim_inst", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", From fe880ae0e9f5b1f91abbc396d36fdf60e716a010 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 14:48:00 +0200 Subject: [PATCH 031/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json: loop: 300 --- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 4 ++-- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 4a8bbe3c..86aa5a7c 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -71,7 +71,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 480, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -103,7 +103,7 @@ "step": "final60", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index df176f3e..29038ae0 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -71,7 +71,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 480, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -103,7 +103,7 @@ "step": "final60", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", From 0a8ca587df70223fd3bf47175f4a67f1c665d794 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 15:09:56 +0200 Subject: [PATCH 032/414] tester: json/angi-ScaleOut/*json; added some purpse - definitions --- test/json/angi-ScaleOut/kill_prim_indexserver.json | 1 + .../json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 1 + test/json/angi-ScaleOut/kill_prim_node.json | 1 + test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 1 + .../json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 2 +- .../json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json | 2 +- 6 files changed, 6 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver.json b/test/json/angi-ScaleOut/kill_prim_indexserver.json index 81f4e021..51251b90 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver.json @@ -1,6 +1,7 @@ { "test": "kill_prim_indexserver", "name": "Kill primary master indexserver", + "purpose": [ "kill", "prim", "indexserver" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 27bc8809..a99ff3f1 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -1,6 +1,7 @@ { "test": "kill_prim_indexserver_fencing_alert", "name": "Kill primary master indexserver with fencing alert agent implemented", + "purpose": [ "kill", "prim", "indexserver", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_node.json b/test/json/angi-ScaleOut/kill_prim_node.json index d0ce73b2..d020b21a 100644 --- a/test/json/angi-ScaleOut/kill_prim_node.json +++ b/test/json/angi-ScaleOut/kill_prim_node.json @@ -1,6 +1,7 @@ { "test": "kill_prim_node", "name": "Kill primary master node", + "purpose": [ "kill", "prim", "node", "master" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index d106bb76..8a59cf9f 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -1,6 +1,7 @@ { "test": "kill_prim_node fencing alert", "name": "Kill primary master node with fencing alert agent implemented", + "purpose": [ "kill", "prim", "node", "master", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index 3f2397a4..c56cd2a4 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -84,7 +84,7 @@ "srHook ~ (PRIM|SWAIT|SREG)", "srPoll == SFAIL" ], - "sSite": 6 + "sSite": [ "lpt > 1000000000", "lss == 4", "srr == P", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 381c3310..0b91436f 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -1,5 +1,5 @@ { - "test": "kill_prim_worker_node fencing_alert", + "test": "kill_prim_worker_node_fencing_alert", "name": "Kill primary worker node with fencing alert agent implemented", "start": "prereq10", "steps": [ From 3e6e8c142ac4cf74525ff7049ecdfadfe3ce01aa Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 15:43:40 +0200 Subject: [PATCH 033/414] SAPHanaSR-tests-angi-ScaleOut.7: freeze_secn_site_nfs --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 2dc0314e..511f643d 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -38,7 +38,7 @@ Freeze HANA NFS on primary master node. Freeze HANA NFS on primary site. .TP \fBfreeze_secn_site_nfs\fP -Freeze HANA NFS on secondary site. Not yet implemented. +Freeze HANA NFS on secondary site. .TP \fBkill_prim_indexserver\fP Kill primary master indexserver, for susChkSrv.py. From 2f50cb4e2c2f1a359947d67eee430e8ed703bad7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 16:07:11 +0200 Subject: [PATCH 034/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7: details --- man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index 21785bfa..2e974d44 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -22,13 +22,13 @@ appropriate parameters. See manual page SAPHanaSR-testCluster(8). Predefined functional tests specific for scale-out ERP with immediate fencing overwiev: .TP \fBfreeze_prim_master_nfs_fencing_alert\fP -Freeze HANA NFS on primary master node (fencing alert agent configured). +Freeze HANA NFS on primary master node, for SAPHanaFilesystem (fencing alert agent configured). .TP \fBkill_prim_indexserver_fencing_alert\fP Kill primary master indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .TP \fBkill_prim_inst_fencing_alert\fP -Kill primary master instance (ON_FAIL_ACTION=fence and fencing alert agent configured). +Kill primary master instance, for SAPHanaController (ON_FAIL_ACTION=fence and fencing alert agent configured). .TP \fBkill_prim_node_fencing_alert\fP Kill primary master node (fencing alert agent configured). @@ -37,7 +37,7 @@ Kill primary master node (fencing alert agent configured). Kill primary worker indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .TP \fBkill_prim_worker_inst_fencing_alert\fP -Kill primary worker instance (ON_FAIL_ACTION=fence and fencing alert agent configured). +Kill primary worker instance, for SAPHanaController (ON_FAIL_ACTION=fence and fencing alert agent configured). .TP \fBkill_prim_worker_node_fencing_alert\fP Kill primary worker node (fencing alert agent configured). From 8cea4647d01837476754fbaf4872aec705f108d6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 16:15:26 +0200 Subject: [PATCH 035/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7: details --- man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index 2e974d44..d426d65c 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -19,7 +19,7 @@ SAPHanaSR-tests-description(7). Each test can be executed by running the command SAPHanaSR-testCluster with appropriate parameters. See manual page SAPHanaSR-testCluster(8). .PP -Predefined functional tests specific for scale-out ERP with immediate fencing overwiev: +Overview on predefined functional tests specific for scale-out ERP with immediate fencing: .TP \fBfreeze_prim_master_nfs_fencing_alert\fP Freeze HANA NFS on primary master node, for SAPHanaFilesystem (fencing alert agent configured). @@ -42,6 +42,9 @@ Kill primary worker instance, for SAPHanaController (ON_FAIL_ACTION=fence and fe \fBkill_prim_worker_node_fencing_alert\fP Kill primary worker node (fencing alert agent configured). .PP +More recommended tests, but not specific to immediate fencing, are listed in +manual page SAPHanaSR-tests-angi-ScaleOut(7). +.PP .\" .SH EXAMPLES .PP @@ -78,7 +81,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .SH SEE ALSO \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , \fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , -\fBSAPHanaSR-tests-angi-ScaleOu\fP(7) , +\fBSAPHanaSR-tests-angi-ScaleOut\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , \fBocf_suse_SAPHanaController\fP(7) , \fBsusChkSrv.py\fP(7) , \fBSAPHanaSR-alert-fencing\fP(8) From 5ccdfbca42d2e455a1bc00c2465f690e6130dafb Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 16:21:06 +0200 Subject: [PATCH 036/414] SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7: details --- man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index e861fb96..caa60b39 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -16,13 +16,16 @@ See manual page SAPHanaSR-tests-syntax(5) for syntax details. Details like performed steps or expected behaviour of cluster and HANA are explained in SAPHanaSR-tests-description(7). .PP -Predefined functional tests specific for scale-up with immediate fencing overview: +Overview on predefined functional tests specific for scale-up with immediate fencing: .TP \fBkill_prim_indexserver_fencing\fP Kill primary indexserver, for susChkSrv.py (immediate fencing configured). .TP \fBkill_prim_inst_fencing\fP -Kill primary instance (immediate fencing configured). +Kill primary instance, for SAPHanaController (immediate fencing configured). +.PP +More recommended tests, but not specific to immediate fencing, are listed in +manual page SAPHanaSR-tests-angi-ScaleUp(7). .PP .\" .SH EXAMPLES From 2070f02cc55bca09bd86a3d31fee83eedbb377fe Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 16:25:39 +0200 Subject: [PATCH 037/414] kill_prim_node_fencing_alert.json: fixed test: --- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 8a59cf9f..6f1a613e 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -1,5 +1,5 @@ { - "test": "kill_prim_node fencing alert", + "test": "kill_prim_node_fencing_alert", "name": "Kill primary master node with fencing alert agent implemented", "purpose": [ "kill", "prim", "node", "master", "fencing_alert" ], "start": "prereq10", From 403669dd9aa6da5812bfff3f1f07723bc3d4fb75 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:39:15 +0200 Subject: [PATCH 038/414] tester: iblock_manual_takeover.json - purposes added --- test/json/angi-ScaleOut/block_manual_takeover.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/block_manual_takeover.json b/test/json/angi-ScaleOut/block_manual_takeover.json index a166fe2d..dc302d28 100644 --- a/test/json/angi-ScaleOut/block_manual_takeover.json +++ b/test/json/angi-ScaleOut/block_manual_takeover.json @@ -1,6 +1,7 @@ { "test": "block_manual_takeover", "name": "block manual takeover, using susTkOver.py", + "purpose": [ "maintenace", "admin", "block", "susTkOver" ], "start": "prereq10", "steps": [ { From 0ba6361505acab3e2960a3e58627e1082af9ec0f Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:39:30 +0200 Subject: [PATCH 039/414] tester: idefaults.json - purposes added --- test/json/angi-ScaleOut/defaults.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/defaults.json b/test/json/angi-ScaleOut/defaults.json index 0f9de39c..f3c477b6 100644 --- a/test/json/angi-ScaleOut/defaults.json +++ b/test/json/angi-ScaleOut/defaults.json @@ -1,6 +1,7 @@ { "opMode": "logreplay", "srMode": "sync", + "purpose": [ "defaults" ], "checkPtr": { "globalUp": [ "topology == ScaleOut" From 326a503a29df4dcf956659aa83731934c81e75c3 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:39:45 +0200 Subject: [PATCH 040/414] tester: iflap.json - purposes added --- test/json/angi-ScaleOut/flap.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/flap.json b/test/json/angi-ScaleOut/flap.json index f15e2308..4ccb2289 100644 --- a/test/json/angi-ScaleOut/flap.json +++ b/test/json/angi-ScaleOut/flap.json @@ -1,6 +1,7 @@ { "test": "flap", "name": "flap - test the new test parser", + "purpose!: "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { From 2c381b388d259b28f406a1e3c9fe1dac9df1662f Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:40:00 +0200 Subject: [PATCH 041/414] tester: iflop.json - purposes added --- test/json/angi-ScaleOut/flop.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/flop.json b/test/json/angi-ScaleOut/flop.json index 8d46d927..28b6f01d 100644 --- a/test/json/angi-ScaleOut/flop.json +++ b/test/json/angi-ScaleOut/flop.json @@ -1,6 +1,7 @@ { "test": "flop", "name": "flop - this test should NOT pass successfully", + "purpose": [ "fail", "parser", "sleep", "tester" ], "start": "prereq10", "steps": [ { From 0791c21f1edad2d2088f2751a54209d61ce29b99 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:40:15 +0200 Subject: [PATCH 042/414] tester: iflup.json - purposes added --- test/json/angi-ScaleOut/flup.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/flup.json b/test/json/angi-ScaleOut/flup.json index f5bc3936..7c3717f3 100644 --- a/test/json/angi-ScaleOut/flup.json +++ b/test/json/angi-ScaleOut/flup.json @@ -1,6 +1,7 @@ { "test": "flup", "name": "flup - like nop but very short sleep only - only for checking the test engine", + "purpose": [ "ok", "parser", "tester", "sleep" ], "start": "prereq10", "steps": [ { From afb023bb209b0e7210a4aa9bdd8d92c87577dbed Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:40:30 +0200 Subject: [PATCH 043/414] tester: ifree_log_area.json - purposes added --- test/json/angi-ScaleOut/free_log_area.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/free_log_area.json b/test/json/angi-ScaleOut/free_log_area.json index a5ceb60e..8a81e992 100644 --- a/test/json/angi-ScaleOut/free_log_area.json +++ b/test/json/angi-ScaleOut/free_log_area.json @@ -1,6 +1,7 @@ { "test": "free_log_area", "name": "free hana log area on primary site", + "purpose": [ "maintenance", "primary", "logarea", "stability" ], "start": "prereq10", "steps": [ { From 4411af32cc40c95207129db430753a5c2e709183 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:40:45 +0200 Subject: [PATCH 044/414] tester: ifreeze_prim_master_nfs_fencing_alert.json - purposes added --- .../json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 6bcdb605..e9623467 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -1,6 +1,7 @@ { "test": "freeze_prim_master_nfs_fencing_alert", "name": "freeze sap hana nfs on primary master node with fencing alert agent implemented", + "purpose": [ "fs", "nfs", "freeze", "primary", "master", "node", "fencing_alert" ], "start": "prereq10", "steps": [ { From 893e124461f02e7b594a08f3be22f9bd987f9c9c Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:41:00 +0200 Subject: [PATCH 045/414] tester: ifreeze_prim_master_nfs.json - purposes added --- test/json/angi-ScaleOut/freeze_prim_master_nfs.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json index c2fa374e..5337df3a 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json @@ -1,6 +1,7 @@ { "test": "freeze_prim_master_nfs", "name": "freeze sap hana nfs on primary master node", + "purpose": [ "fs", "nfs", "freeze", "primary", "master", "node" ], "start": "prereq10", "steps": [ { From 898eacc4337afe67c8ad1a9ed8c43aa2498772e1 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:41:16 +0200 Subject: [PATCH 046/414] tester: ifreeze_prim_site_nfs.json - purposes added --- test/json/angi-ScaleOut/freeze_prim_site_nfs.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json index 2e0a1585..6ac7848a 100644 --- a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json @@ -1,6 +1,7 @@ { "test": "freeze_prim_site_nfs", "name": "freeze sap hana nfs on primary site", + "purpose": [ "fs", "nfs", "freeze", "primary", "site" ], "start": "prereq10", "steps": [ { From 8c08e0c02098431f5946cad0a246a8de634690b4 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:41:31 +0200 Subject: [PATCH 047/414] tester: ifreeze_secn_site_nfs.json - purposes added --- test/json/angi-ScaleOut/freeze_secn_site_nfs.json | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json index 8f6fb90e..0d07fe6c 100644 --- a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json @@ -1,7 +1,8 @@ -{ - "test": "freeze_secn_site_nfs", - "name": "freeze sap hana nfs on secondary site", - "todo": "please correct this file", + { + "test": "freeze_secn_site_nfs", + "name": "freeze sap hana nfs on secondary site", + "purpose": [ "fs", "nfs", "freeze", "secondary", "site" ], + "todo": "please correct this file", "start": "prereq10", "steps": [ { From 24b55483cac146d28af436f7d1c56c62798901d3 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:42:16 +0200 Subject: [PATCH 048/414] tester: ikill_prim_inst_fencing_alert.json - purposes added --- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 0a38a276..033fd097 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -1,6 +1,7 @@ { "test": "kill_prim_inst_fencing_alert", "name": "Kill primary master instance with fencing alert agent implemented", + "purpose": [ "kill", "inst", "primary", "fencing_alert" ], "start": "prereq10", "steps": [ { From ab4f90bf776f4c67f0d93bdef5eb87209a3e6af0 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:42:31 +0200 Subject: [PATCH 049/414] tester: ikill_prim_inst.json - purposes added --- test/json/angi-ScaleOut/kill_prim_inst.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/kill_prim_inst.json b/test/json/angi-ScaleOut/kill_prim_inst.json index 9f0daff2..43b2f5e2 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_inst.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary master instance", - "purpose": [ "kill", "prim", "inst" ], + "purpose": [ "kill", "primary", "instance", "master" ], "start": "prereq10", "steps": [ { From 6f21cde00cc7a63ac3bee7e1292b94c485e0934a Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:43:01 +0200 Subject: [PATCH 050/414] tester: ikill_prim_node.json - purposes added --- test/json/angi-ScaleOut/kill_prim_node.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/kill_prim_node.json b/test/json/angi-ScaleOut/kill_prim_node.json index d020b21a..4add8f08 100644 --- a/test/json/angi-ScaleOut/kill_prim_node.json +++ b/test/json/angi-ScaleOut/kill_prim_node.json @@ -1,7 +1,7 @@ { "test": "kill_prim_node", "name": "Kill primary master node", - "purpose": [ "kill", "prim", "node", "master" ], + "purpose": [ "kill", "primary", "node", "master" ], "start": "prereq10", "steps": [ { From 92291479af7cabf023d0cbe4b10919e8c1632d6e Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:43:16 +0200 Subject: [PATCH 051/414] tester: ikill_prim_worker_indexserver_fencing_alert.json - purposes added --- .../kill_prim_worker_indexserver_fencing_alert.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index 01ddcd00..24b80c6d 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -1,6 +1,7 @@ { "test": "kill_prim_worker_indexserver_fencing_alert", "name": "Kill primary worker indexserver with fencing alert agent implemented", + "purpose": [ "kill", "indexserver", "primary", "worker", "fencing_alert" ], "start": "prereq10", "steps": [ { From be7e38042b69c63ca06e9bec587709cd57d0e1ac Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:43:31 +0200 Subject: [PATCH 052/414] tester: ikill_prim_worker_indexserver.json - purposes added --- test/json/angi-ScaleOut/kill_prim_worker_indexserver.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json index cedcf2b5..24ad9baa 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json @@ -1,6 +1,7 @@ { "test": "kill_prim_worker_indexserver", "name": "Kill primary worker indexserver", + "purpose": [ "kill", "indexserver", "primary", "worker" ], "start": "prereq10", "steps": [ { From 3345249fc4cb553a06eeb445864ece64169e0711 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:43:46 +0200 Subject: [PATCH 053/414] tester: ikill_prim_worker_inst_fencing_alert.json - purposes added --- test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index c56cd2a4..827fdd5c 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -1,6 +1,7 @@ { "test": "kill_prim_worker_inst_fencing_alert", "name": "Kill primary worker instance with fencing alert agent implemented", + "purpose": [ "kill", "inst", "primary", "worker", "fencing_alert" ], "start": "prereq10", "steps": [ { From c512c4f3fb980b01db8600c76bd59eae4b94ca36 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:44:01 +0200 Subject: [PATCH 054/414] tester: ikill_prim_worker_inst.json - purposes added --- test/json/angi-ScaleOut/kill_prim_worker_inst.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst.json b/test/json/angi-ScaleOut/kill_prim_worker_inst.json index a28116b5..cd6b5a08 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst.json @@ -1,6 +1,7 @@ { "test": "kill_prim_worker_inst", "name": "Kill primary worker instance", + "purpose": [ "kill", "primary", "instance", "worker" ], "start": "prereq10", "steps": [ { From 1967cbbdf14c91e12b67b17217cd958ac0d301be Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:44:16 +0200 Subject: [PATCH 055/414] tester: ikill_prim_worker_node_fencing_alert.json - purposes added --- test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 0b91436f..f28507fc 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -1,6 +1,7 @@ { "test": "kill_prim_worker_node_fencing_alert", "name": "Kill primary worker node with fencing alert agent implemented", + "purpose": [ "kill", "node", "primary", "worker", "fencing_alert" ], "start": "prereq10", "steps": [ { From 2122ec5c36c98b4f06f64b0ad4bad20a66a2b8f6 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:44:31 +0200 Subject: [PATCH 056/414] tester: ikill_prim_worker_node.json - purposes added --- test/json/angi-ScaleOut/kill_prim_worker_node.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node.json b/test/json/angi-ScaleOut/kill_prim_worker_node.json index ceb77410..1ca8af40 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node.json @@ -1,6 +1,7 @@ { "test": "kill_prim_worker_node", "name": "Kill primary worker node", + "purpose": [ "kill", "primary", "node", "worker" ], "start": "prereq10", "steps": [ { From 7e5604b7604e2efa1a260819d2b192d12dddc73d Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:44:46 +0200 Subject: [PATCH 057/414] tester: ikill_secn_indexserver.json - purposes added --- test/json/angi-ScaleOut/kill_secn_indexserver.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver.json b/test/json/angi-ScaleOut/kill_secn_indexserver.json index cff8cd91..8640df47 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver.json @@ -1,6 +1,7 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary master indexserver", + "purpose": [ "kill", "indexserver", "secondary", "master" ], "start": "prereq10", "steps": [ { From 56a810798fadc35bc08c3b99379da4038f5a3049 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:45:01 +0200 Subject: [PATCH 058/414] tester: ikill_secn_inst.json - purposes added --- test/json/angi-ScaleOut/kill_secn_inst.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_secn_inst.json b/test/json/angi-ScaleOut/kill_secn_inst.json index 5369a591..33385689 100644 --- a/test/json/angi-ScaleOut/kill_secn_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_inst.json @@ -1,6 +1,7 @@ { "test": "kill_secn_inst", "name": "Kill secondary master instance", + "purpose": [ "kill", "secondary", "instance", "master" ], "start": "prereq10", "steps": [ { From 1b3cee0a3dd82d677b0f2a036f3b48c71b3707a5 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:45:16 +0200 Subject: [PATCH 059/414] tester: ikill_secn_node.json - purposes added --- test/json/angi-ScaleOut/kill_secn_node.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_secn_node.json b/test/json/angi-ScaleOut/kill_secn_node.json index 5d532953..3ca6063e 100644 --- a/test/json/angi-ScaleOut/kill_secn_node.json +++ b/test/json/angi-ScaleOut/kill_secn_node.json @@ -1,6 +1,7 @@ { "test": "kill_secn_node", "name": "Kill secondary master node", + "purpose": [ "kill", "secondary", "node", "master" ], "start": "prereq10", "steps": [ { From f0580b8a0eb04a3db4219de0d2b914a1aecc75f2 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:45:31 +0200 Subject: [PATCH 060/414] tester: ikill_secn_worker_inst.json - purposes added --- test/json/angi-ScaleOut/kill_secn_worker_inst.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_secn_worker_inst.json b/test/json/angi-ScaleOut/kill_secn_worker_inst.json index 8daa3df4..4aad807f 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_inst.json @@ -1,6 +1,7 @@ { "test": "kill_secn_worker_inst", "name": "Kill secondary worker instance", + "purpose": [ "kill", "secondary", "instance", "worker" ], "start": "prereq10", "steps": [ { From 4b90320015338d57caa013e55768a2260444f67d Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:45:46 +0200 Subject: [PATCH 061/414] tester: ikill_secn_worker_node.json - purposes added --- test/json/angi-ScaleOut/kill_secn_worker_node.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node.json b/test/json/angi-ScaleOut/kill_secn_worker_node.json index 1b32417c..9f0a8a3f 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node.json @@ -1,6 +1,7 @@ { "test": "kill_secn_worker_node", "name": "Kill secondary worker node", + "purpose": [ "kill", "secondary", "node", "worker" ], "start": "prereq10", "steps": [ { From 58fbe9bec6cd7aff7de09191e0f4d52046859ac2 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:48:31 +0200 Subject: [PATCH 062/414] tester: istandby_prim_node.json - purposes added --- test/json/angi-ScaleOut/standby_prim_node.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/standby_prim_node.json b/test/json/angi-ScaleOut/standby_prim_node.json index b438e700..6e6b2fd0 100644 --- a/test/json/angi-ScaleOut/standby_prim_node.json +++ b/test/json/angi-ScaleOut/standby_prim_node.json @@ -1,6 +1,7 @@ { "test": "standby_prim_node", "name": "standby primary master node (and online again)", + "purpose": [ "standby", "maintenance", "primary", "node", "master" ], "start": "prereq10", "steps": [ { From ef8a66dd69f6623ae935180ad5eb267464c0ca0a Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:48:46 +0200 Subject: [PATCH 063/414] tester: istandby_secn_node.json - purposes added --- test/json/angi-ScaleOut/standby_secn_node.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/standby_secn_node.json b/test/json/angi-ScaleOut/standby_secn_node.json index d76426c3..e68ba9ed 100644 --- a/test/json/angi-ScaleOut/standby_secn_node.json +++ b/test/json/angi-ScaleOut/standby_secn_node.json @@ -1,6 +1,7 @@ { "test": "standby_secn_node", "name": "standby secondary master node (and online again)", + "purpose": [ "standby", "maintenance", "secondary", "node", "master" ], "start": "prereq10", "steps": [ { From 221ac4b6ddbb3d12993680716c54b10f3c40671a Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 16:49:01 +0200 Subject: [PATCH 064/414] tester: istandby_secn_worker_node.json - purposes added --- test/json/angi-ScaleOut/standby_secn_worker_node.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/standby_secn_worker_node.json b/test/json/angi-ScaleOut/standby_secn_worker_node.json index 301a062d..9f1423e8 100644 --- a/test/json/angi-ScaleOut/standby_secn_worker_node.json +++ b/test/json/angi-ScaleOut/standby_secn_worker_node.json @@ -1,6 +1,7 @@ { "test": "standby_secn_worker_node", "name": "standby secondary worker node (and online again)", + "purpose": [ "standby", "maintenance", "secondary", "node", "worker" ], "start": "prereq10", "steps": [ { From 70c7723fc71fcbc5c4b89aabc2beb91b7874feba Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 17:08:26 +0200 Subject: [PATCH 065/414] freeze_prim_fs.json kill_prim_indexserver.json kill_prim_indexserver_fencing.json kill_prim_inst.json kill_prim_inst_fencing.json kill_prim_node.json kill_secn_indexserver.json kill_secn_inst.json kill_secn_node.json: typos, purpose --- test/json/angi-ScaleUp/freeze_prim_fs.json | 2 +- .../angi-ScaleUp/kill_prim_indexserver.json | 1 + .../kill_prim_indexserver_fencing.json | 21 +++++-------------- test/json/angi-ScaleUp/kill_prim_inst.json | 1 + .../angi-ScaleUp/kill_prim_inst_fencing.json | 17 +++------------ test/json/angi-ScaleUp/kill_prim_node.json | 3 ++- .../angi-ScaleUp/kill_secn_indexserver.json | 1 + test/json/angi-ScaleUp/kill_secn_inst.json | 1 + test/json/angi-ScaleUp/kill_secn_node.json | 3 ++- 9 files changed, 17 insertions(+), 33 deletions(-) diff --git a/test/json/angi-ScaleUp/freeze_prim_fs.json b/test/json/angi-ScaleUp/freeze_prim_fs.json index 507d1b3e..7a79452c 100644 --- a/test/json/angi-ScaleUp/freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/freeze_prim_fs.json @@ -1,6 +1,6 @@ { "test": "freeze_prim_fs", - "name": "freeze sap hana fs on primary master node", + "name": "freeze sap hana fs on primary node", "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver.json b/test/json/angi-ScaleUp/kill_prim_indexserver.json index b2339179..e78a4609 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver.json @@ -1,6 +1,7 @@ { "test": "kill_prim_indexserver", "name": "Kill primary indexserver", + "purpose": [ "kill", "prim", "indexserver" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 86aa5a7c..0925b956 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -1,6 +1,7 @@ { "test": "kill_prim_indexserver_fencing", - "name": "Kill primary master indexserver with on-fail fencing", + "name": "Kill primary indexserver with on-fail fencing", + "purpose": [ "kill", "prim", "indexserver", "fencing_on-fail" ], "start": "prereq10", "steps": [ { @@ -13,8 +14,8 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp", - , + "sHost": "sHostUp" + }, { "step": "step20", "name": "failure detected", @@ -56,19 +57,7 @@ ] }, { - "step": "step40", - "name": "pworker fenced", - "next": "step50", - "loop": 240, - "wait": 2, - "pWorker": [ - "clone_state is None", - "role is None", - "score is None" - ] - }, - { - "step": "step50", + "step": "step50", "name": "begin recover new secondary", "next": "final60", "loop": 300, diff --git a/test/json/angi-ScaleUp/kill_prim_inst.json b/test/json/angi-ScaleUp/kill_prim_inst.json index bb503552..3bd840e5 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst.json +++ b/test/json/angi-ScaleUp/kill_prim_inst.json @@ -1,6 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", + "purpose": [ "kill", "prim", "inst" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index 29038ae0..92890427 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -1,6 +1,7 @@ { "test": "kill_prim_inst_fencing", - "name": "Kill primary master instance with on-fail fencing", + "name": "Kill primary instance with on-fail fencing", + "purpose": [ "kill", "prim", "inst", "fencing_on-fail" ], "start": "prereq10", "steps": [ { @@ -56,19 +57,7 @@ ] }, { - "step": "step40", - "name": "pworker fenced", - "next": "step50", - "loop": 240, - "wait": 2, - "pWorker": [ - "clone_state is None", - "role is None", - "score is None" - ] - }, - { - "step": "step50", + "step": "step50", "name": "begin recover new secondary", "next": "final60", "loop": 300, diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index 5fc9f8e1..b7791e0f 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -1,6 +1,7 @@ { "test": "kill_prim_node", - "name": "Kill primary master node", + "name": "Kill primary node", + "purpose": [ "kill", "prim", "node" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver.json b/test/json/angi-ScaleUp/kill_secn_indexserver.json index 893ce0f4..83e94cb1 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver.json @@ -1,6 +1,7 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary indexserver", + "purpose": [ "kill", "prim", "indexserver" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_inst.json b/test/json/angi-ScaleUp/kill_secn_inst.json index 0435374b..bf3ba52c 100644 --- a/test/json/angi-ScaleUp/kill_secn_inst.json +++ b/test/json/angi-ScaleUp/kill_secn_inst.json @@ -1,6 +1,7 @@ { "test": "kill_secn_inst", "name": "Kill secondary instance", + "purpose": [ "kill", "prim", "inst" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_node.json b/test/json/angi-ScaleUp/kill_secn_node.json index c39f8857..3a1948b2 100644 --- a/test/json/angi-ScaleUp/kill_secn_node.json +++ b/test/json/angi-ScaleUp/kill_secn_node.json @@ -1,6 +1,7 @@ { "test": "kill_secn_node", - "name": "Kill secondary master node", + "name": "Kill secondary node", + "purpose": [ "kill", "secn", "node" ], "start": "prereq10", "steps": [ { From 692723456d9ce76dc3f8887be81b1818303d467c Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 11 Jul 2024 17:15:46 +0200 Subject: [PATCH 066/414] restart_cluster.json restart_cluster_hana_running.json restart_cluster_turn_hana.json standby_prim_node.json standby_secn_node.json: purpose --- test/json/angi-ScaleUp/restart_cluster.json | 1 + test/json/angi-ScaleUp/restart_cluster_hana_running.json | 1 + test/json/angi-ScaleUp/restart_cluster_turn_hana.json | 1 + test/json/angi-ScaleUp/standby_prim_node.json | 1 + test/json/angi-ScaleUp/standby_secn_node.json | 1 + 5 files changed, 5 insertions(+) diff --git a/test/json/angi-ScaleUp/restart_cluster.json b/test/json/angi-ScaleUp/restart_cluster.json index 43885d60..42be2178 100644 --- a/test/json/angi-ScaleUp/restart_cluster.json +++ b/test/json/angi-ScaleUp/restart_cluster.json @@ -1,6 +1,7 @@ { "test": "restart_cluster", "name": "stop and restart cluster and hana", + "purpose": [ "restart", "cluster", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/restart_cluster_hana_running.json b/test/json/angi-ScaleUp/restart_cluster_hana_running.json index 0d0c156e..216e4e0a 100644 --- a/test/json/angi-ScaleUp/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/restart_cluster_hana_running.json @@ -1,6 +1,7 @@ { "test": "restart_cluster_hana_running", "name": "stop and restart cluster, keep hana running", + "purpose": [ "restart", "cluster", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/restart_cluster_turn_hana.json b/test/json/angi-ScaleUp/restart_cluster_turn_hana.json index cf719a26..29d4293b 100644 --- a/test/json/angi-ScaleUp/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleUp/restart_cluster_turn_hana.json @@ -1,6 +1,7 @@ { "test": "restart_cluster_turn_hana", "name": "stop cluster, turn hana, start cluster", + "purpose": [ "restart", "cluster", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/standby_prim_node.json b/test/json/angi-ScaleUp/standby_prim_node.json index 268d82c8..09ad925b 100644 --- a/test/json/angi-ScaleUp/standby_prim_node.json +++ b/test/json/angi-ScaleUp/standby_prim_node.json @@ -1,6 +1,7 @@ { "test": "standby_primary_node", "name": "standby primary node (and online again)", + "purpose": [ "standby", "prim", "node", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/standby_secn_node.json b/test/json/angi-ScaleUp/standby_secn_node.json index dfad5c47..c12b927d 100644 --- a/test/json/angi-ScaleUp/standby_secn_node.json +++ b/test/json/angi-ScaleUp/standby_secn_node.json @@ -1,6 +1,7 @@ { "test": "standby_secondary_node", "name": "standby secondary node (and online again)", + "purpose": [ "standby", "secn", "node", "maintenance" ], "start": "prereq10", "steps": [ { From 9cb7a9c940f4b1ba7dfcd339c97a07f8ed13180c Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:40:57 +0200 Subject: [PATCH 067/414] tester: imaintenance_cluster_hana_running.json - purposes added --- test/json/angi-ScaleOut/maintenance_cluster_hana_running.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json index 00c44e38..ff540c1b 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json @@ -1,6 +1,7 @@ { "test": "maintenance_cluster_hana_running", "name": "stop and restart cluster, keep hana running", + "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster" ], "start": "prereq10", "steps": [ { From 6c3109c286163b85e5db49d0b2856b64333eaa65 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:41:12 +0200 Subject: [PATCH 068/414] tester: imaintenance_cluster_turn_hana.json - purposes added --- test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json index 7f4409b1..4eeb7aed 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json @@ -1,6 +1,7 @@ { "test": "maintenance_cluster_turn_hana", "name": "maintenance cluster turn hana", + "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster" ], "start": "prereq10", "steps": [ { From 368c9eac601b709f386207cbd126e7c485516109 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:41:27 +0200 Subject: [PATCH 069/414] tester: imaintenance_with_standby_nodes.json - purposes added --- test/json/angi-ScaleOut/maintenance_with_standby_nodes.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json b/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json index 0722acf8..153c4075 100644 --- a/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json @@ -1,6 +1,7 @@ { "test": "maintenance_with_standby_nodes", "name": "standby+online secondary then standby+online primary", + "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster" ], "start": "prereq10", "todo": "expectations needs to be fixed - e.g. step20 sHostDown is wrong, because topology will also be stopped. roles will be ::: not master1:...", "steps": [ From 7bfaf93fa47880a8e6cb477f0a25b4ea297545c1 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:41:42 +0200 Subject: [PATCH 070/414] tester: inop-false.json - purposes added --- test/json/angi-ScaleOut/nop-false.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/nop-false.json b/test/json/angi-ScaleOut/nop-false.json index 620e0d86..515b6c87 100644 --- a/test/json/angi-ScaleOut/nop-false.json +++ b/test/json/angi-ScaleOut/nop-false.json @@ -1,6 +1,7 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", + "purpose": [ "fail", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { From 422abf84de13d12f2e03d8c7ed864c06af8b3707 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:41:57 +0200 Subject: [PATCH 071/414] tester: inop.json - purposes added --- test/json/angi-ScaleOut/nop.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/nop.json b/test/json/angi-ScaleOut/nop.json index a87d22f6..dc2c2ebd 100644 --- a/test/json/angi-ScaleOut/nop.json +++ b/test/json/angi-ScaleOut/nop.json @@ -1,6 +1,7 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", + "purpose": [ "ok", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { From bbed8c6d38c06fdd86f4a58c8a5a1c958f68e495 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:42:12 +0200 Subject: [PATCH 072/414] tester: iproperties_ha1_hdb10.json - purposes added --- test/json/angi-ScaleOut/properties_ha1_hdb10.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/properties_ha1_hdb10.json b/test/json/angi-ScaleOut/properties_ha1_hdb10.json index 8da3b39e..bba93a39 100644 --- a/test/json/angi-ScaleOut/properties_ha1_hdb10.json +++ b/test/json/angi-ScaleOut/properties_ha1_hdb10.json @@ -1,4 +1,5 @@ { + "purpose": [ "properties" ], "sid": "HA1", "mstResource": "mst_SAPHanaCon_HA1_HDB10", "clnResource": "cln_SAPHanaTop_HA1_HDB10" From b66a82b0aac7e329e7d94d17132b09e3f97e94c1 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:42:27 +0200 Subject: [PATCH 073/414] tester: iproperties.json - purposes added --- test/json/angi-ScaleOut/properties.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/properties.json b/test/json/angi-ScaleOut/properties.json index 7f71d029..362675cb 100644 --- a/test/json/angi-ScaleOut/properties.json +++ b/test/json/angi-ScaleOut/properties.json @@ -1,4 +1,5 @@ { + "purpose": [ "properties" ], "sid": "HA1", "instNo": "10", "mstResource": "mst_SAPHanaCon_HA1_HDB10", From cdc62478d72634aa19bcf3db94e97e8105b5b9be Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:42:42 +0200 Subject: [PATCH 074/414] tester: irestart_cluster_hana_running.json - purposes added --- test/json/angi-ScaleOut/restart_cluster_hana_running.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/restart_cluster_hana_running.json b/test/json/angi-ScaleOut/restart_cluster_hana_running.json index f48f0584..a998c6f4 100644 --- a/test/json/angi-ScaleOut/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/restart_cluster_hana_running.json @@ -1,6 +1,7 @@ { "test": "restart_cluster_hana_running", "name": "stop and restart cluster, keep hana running", + "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], "start": "prereq10", "steps": [ { From 13d27d42a47889f4e44505188be9fa99ae492887 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:42:57 +0200 Subject: [PATCH 075/414] tester: irestart_cluster.json - purposes added --- test/json/angi-ScaleOut/restart_cluster.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/restart_cluster.json b/test/json/angi-ScaleOut/restart_cluster.json index 71e78328..51176d7c 100644 --- a/test/json/angi-ScaleOut/restart_cluster.json +++ b/test/json/angi-ScaleOut/restart_cluster.json @@ -1,6 +1,7 @@ { "test": "restart_cluster", "name": "stop and restart cluster and hana", + "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], "start": "prereq10", "steps": [ { From 89bcd6e5058e743f0e65de7ce57432a923f6b6a5 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 11 Jul 2024 17:43:12 +0200 Subject: [PATCH 076/414] tester: irestart_cluster_turn_hana.json - purposes added --- test/json/angi-ScaleOut/restart_cluster_turn_hana.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleOut/restart_cluster_turn_hana.json b/test/json/angi-ScaleOut/restart_cluster_turn_hana.json index 9bec9239..a1db4106 100644 --- a/test/json/angi-ScaleOut/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut/restart_cluster_turn_hana.json @@ -1,6 +1,7 @@ { "test": "restart_cluster_turn_hana", "name": "stop cluster, turn hana, start cluster", + "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], "start": "prereq10", "steps": [ { From e0716be4a3ba70cefa17507c7f327216a9e5bebe Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:19:09 +0200 Subject: [PATCH 077/414] tester: angi-ScaleOut - normalize purpose key words (instance) --- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 2 +- .../json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 033fd097..8a6ce257 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst_fencing_alert", "name": "Kill primary master instance with fencing alert agent implemented", - "purpose": [ "kill", "inst", "primary", "fencing_alert" ], + "purpose": [ "kill", "instance", "primary", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index 827fdd5c..3f619bfc 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_inst_fencing_alert", "name": "Kill primary worker instance with fencing alert agent implemented", - "purpose": [ "kill", "inst", "primary", "worker", "fencing_alert" ], + "purpose": [ "kill", "instance", "primary", "worker", "fencing_alert" ], "start": "prereq10", "steps": [ { From 3fb7736d285db688e8f27521ab4719e533c14427 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:20:33 +0200 Subject: [PATCH 078/414] tester: angi-ScaleOut - normalize purpose key words (primary) --- test/json/angi-ScaleOut/kill_prim_indexserver.json | 2 +- .../json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver.json b/test/json/angi-ScaleOut/kill_prim_indexserver.json index 51251b90..27d19b34 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver", "name": "Kill primary master indexserver", - "purpose": [ "kill", "prim", "indexserver" ], + "purpose": [ "kill", "primary", "indexserver" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index a99ff3f1..d912b128 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver_fencing_alert", "name": "Kill primary master indexserver with fencing alert agent implemented", - "purpose": [ "kill", "prim", "indexserver", "fencing_alert" ], + "purpose": [ "kill", "primary", "indexserver", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 6f1a613e..4665e834 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_node_fencing_alert", "name": "Kill primary master node with fencing alert agent implemented", - "purpose": [ "kill", "prim", "node", "master", "fencing_alert" ], + "purpose": [ "kill", "primary", "node", "master", "fencing_alert" ], "start": "prereq10", "steps": [ { From 9f2c6fa88dfa5e7d646947d0235ae7057e501bfe Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:30:50 +0200 Subject: [PATCH 079/414] tester: angi-ScaleOut - block_sr added --- test/json/angi-ScaleOut/block_sr.json | 46 +++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 test/json/angi-ScaleOut/block_sr.json diff --git a/test/json/angi-ScaleOut/block_sr.json b/test/json/angi-ScaleOut/block_sr.json new file mode 100644 index 00000000..469ef4a8 --- /dev/null +++ b/test/json/angi-ScaleOut/block_sr.json @@ -0,0 +1,46 @@ +{ + "test": "block_sr", + "name": "block sr and check SFAIL attribute; unblock to recover", + "purpose": [ "block", "primary", "secondary", "sr", "hadr", "susHanaSR" ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_block_sap_hana_sr", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "check SFAIL", + "next": "final40", + "loop": 30, + "wait": 2, + "post": "shell sct_test_unblock_sap_hana_sr", + "pSite": "pSiteUp", + "sSite": [ + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "pHost": "pHostUp" + }, + { + "step": "final40", + "name": "still running", + "next": "END", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From a37e5835839acda42b0abfccee0abd4d96e03eb0 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:32:10 +0200 Subject: [PATCH 080/414] tester: angi-ScaleOut - mark purposes for hadr providers --- test/json/angi-ScaleOut/block_manual_takeover.json | 2 +- test/json/angi-ScaleOut/kill_prim_indexserver.json | 2 +- .../json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_worker_indexserver.json | 2 +- .../kill_prim_worker_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_secn_indexserver.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/json/angi-ScaleOut/block_manual_takeover.json b/test/json/angi-ScaleOut/block_manual_takeover.json index dc302d28..72c18123 100644 --- a/test/json/angi-ScaleOut/block_manual_takeover.json +++ b/test/json/angi-ScaleOut/block_manual_takeover.json @@ -1,7 +1,7 @@ { "test": "block_manual_takeover", "name": "block manual takeover, using susTkOver.py", - "purpose": [ "maintenace", "admin", "block", "susTkOver" ], + "purpose": [ "maintenace", "admin", "block", "susTkOver", "hadr" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver.json b/test/json/angi-ScaleOut/kill_prim_indexserver.json index 27d19b34..9425ebcb 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver", "name": "Kill primary master indexserver", - "purpose": [ "kill", "primary", "indexserver" ], + "purpose": [ "kill", "primary", "indexserver", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index d912b128..0b6350c3 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver_fencing_alert", "name": "Kill primary master indexserver with fencing alert agent implemented", - "purpose": [ "kill", "primary", "indexserver", "fencing_alert" ], + "purpose": [ "kill", "primary", "indexserver", "fencing_alert", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json index 24ad9baa..65e87d4c 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_indexserver", "name": "Kill primary worker indexserver", - "purpose": [ "kill", "indexserver", "primary", "worker" ], + "purpose": [ "kill", "indexserver", "primary", "worker", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index 24b80c6d..fb0fdc5d 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_indexserver_fencing_alert", "name": "Kill primary worker indexserver with fencing alert agent implemented", - "purpose": [ "kill", "indexserver", "primary", "worker", "fencing_alert" ], + "purpose": [ "kill", "indexserver", "primary", "worker", "fencing_alert", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver.json b/test/json/angi-ScaleOut/kill_secn_indexserver.json index 8640df47..26390925 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary master indexserver", - "purpose": [ "kill", "indexserver", "secondary", "master" ], + "purpose": [ "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { From 9cd61533e4b8dabde6ef7492d1de1514f8c7410a Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:37:28 +0200 Subject: [PATCH 081/414] tester: angi-ScaleUp - normalize purpose key words (primary, secondary) --- test/json/angi-ScaleUp/kill_prim_indexserver.json | 2 +- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_node.json | 2 +- test/json/angi-ScaleUp/kill_secn_indexserver.json | 2 +- test/json/angi-ScaleUp/kill_secn_inst.json | 2 +- test/json/angi-ScaleUp/kill_secn_node.json | 2 +- test/json/angi-ScaleUp/standby_prim_node.json | 2 +- test/json/angi-ScaleUp/standby_secn_node.json | 2 +- 10 files changed, 10 insertions(+), 10 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver.json b/test/json/angi-ScaleUp/kill_prim_indexserver.json index e78a4609..d07caf84 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver", "name": "Kill primary indexserver", - "purpose": [ "kill", "prim", "indexserver" ], + "purpose": [ "kill", "primary", "indexserver" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 0925b956..c4c2acc1 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver_fencing", "name": "Kill primary indexserver with on-fail fencing", - "purpose": [ "kill", "prim", "indexserver", "fencing_on-fail" ], + "purpose": [ "kill", "primary", "indexserver", "fencing_on-fail" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_inst.json b/test/json/angi-ScaleUp/kill_prim_inst.json index 3bd840e5..f25276fe 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst.json +++ b/test/json/angi-ScaleUp/kill_prim_inst.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", - "purpose": [ "kill", "prim", "inst" ], + "purpose": [ "kill", "primary", "inst" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index 92890427..e081335b 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst_fencing", "name": "Kill primary instance with on-fail fencing", - "purpose": [ "kill", "prim", "inst", "fencing_on-fail" ], + "purpose": [ "kill", "primary", "inst", "fencing_on-fail" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index b7791e0f..71573a73 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -1,7 +1,7 @@ { "test": "kill_prim_node", "name": "Kill primary node", - "purpose": [ "kill", "prim", "node" ], + "purpose": [ "kill", "primary", "node" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver.json b/test/json/angi-ScaleUp/kill_secn_indexserver.json index 83e94cb1..ca7ececf 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary indexserver", - "purpose": [ "kill", "prim", "indexserver" ], + "purpose": [ "kill", "primary", "indexserver" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_inst.json b/test/json/angi-ScaleUp/kill_secn_inst.json index bf3ba52c..7152d77b 100644 --- a/test/json/angi-ScaleUp/kill_secn_inst.json +++ b/test/json/angi-ScaleUp/kill_secn_inst.json @@ -1,7 +1,7 @@ { "test": "kill_secn_inst", "name": "Kill secondary instance", - "purpose": [ "kill", "prim", "inst" ], + "purpose": [ "kill", "primary", "inst" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_node.json b/test/json/angi-ScaleUp/kill_secn_node.json index 3a1948b2..2c8b918c 100644 --- a/test/json/angi-ScaleUp/kill_secn_node.json +++ b/test/json/angi-ScaleUp/kill_secn_node.json @@ -1,7 +1,7 @@ { "test": "kill_secn_node", "name": "Kill secondary node", - "purpose": [ "kill", "secn", "node" ], + "purpose": [ "kill", "secondary", "node" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/standby_prim_node.json b/test/json/angi-ScaleUp/standby_prim_node.json index 09ad925b..c7d5d7d1 100644 --- a/test/json/angi-ScaleUp/standby_prim_node.json +++ b/test/json/angi-ScaleUp/standby_prim_node.json @@ -1,7 +1,7 @@ { "test": "standby_primary_node", "name": "standby primary node (and online again)", - "purpose": [ "standby", "prim", "node", "maintenance" ], + "purpose": [ "standby", "primary", "node", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/standby_secn_node.json b/test/json/angi-ScaleUp/standby_secn_node.json index c12b927d..0af4db76 100644 --- a/test/json/angi-ScaleUp/standby_secn_node.json +++ b/test/json/angi-ScaleUp/standby_secn_node.json @@ -1,7 +1,7 @@ { "test": "standby_secondary_node", "name": "standby secondary node (and online again)", - "purpose": [ "standby", "secn", "node", "maintenance" ], + "purpose": [ "standby", "secondary", "node", "maintenance" ], "start": "prereq10", "steps": [ { From e11b8c5c480b2afbb8bed818c7c8704d407b2b8d Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:38:58 +0200 Subject: [PATCH 082/414] tester: angi-ScaleUp - normalize purpose key words (instance) --- test/json/angi-ScaleUp/kill_prim_inst.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- test/json/angi-ScaleUp/kill_secn_inst.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_inst.json b/test/json/angi-ScaleUp/kill_prim_inst.json index f25276fe..a315e9b7 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst.json +++ b/test/json/angi-ScaleUp/kill_prim_inst.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", - "purpose": [ "kill", "primary", "inst" ], + "purpose": [ "kill", "primary", "instance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index e081335b..85c88faf 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst_fencing", "name": "Kill primary instance with on-fail fencing", - "purpose": [ "kill", "primary", "inst", "fencing_on-fail" ], + "purpose": [ "kill", "primary", "instance", "fencing_on-fail" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_inst.json b/test/json/angi-ScaleUp/kill_secn_inst.json index 7152d77b..bb524cee 100644 --- a/test/json/angi-ScaleUp/kill_secn_inst.json +++ b/test/json/angi-ScaleUp/kill_secn_inst.json @@ -1,7 +1,7 @@ { "test": "kill_secn_inst", "name": "Kill secondary instance", - "purpose": [ "kill", "primary", "inst" ], + "purpose": [ "kill", "primary", "instance" ], "start": "prereq10", "steps": [ { From 08f0d7acb9aef3537224ecc05a65f17d215ce718 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:47:46 +0200 Subject: [PATCH 083/414] tester: angi-ScaleUp - block* mark purposes for hadr providers --- test/json/angi-ScaleUp/block_manual_takeover.json | 1 + test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json | 1 + 2 files changed, 2 insertions(+) diff --git a/test/json/angi-ScaleUp/block_manual_takeover.json b/test/json/angi-ScaleUp/block_manual_takeover.json index 41863d25..33d2b403 100644 --- a/test/json/angi-ScaleUp/block_manual_takeover.json +++ b/test/json/angi-ScaleUp/block_manual_takeover.json @@ -1,6 +1,7 @@ { "test": "block_manual_takeover", "name": "blocked manual takeover", + "purpose": [ "maintenace", "admin", "block", "susTkOver", "hadr" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json index 3175e217..d76bf79b 100644 --- a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json @@ -1,6 +1,7 @@ { "test": "block_sr_and_freeze_prim_fs", "name": "block_sr_and_freeze_prim_fs", + "purpose": [ "maintenace", "admin", "block", "fs", "susHanaSR", "hadr" ], "start": "prereq10", "steps": [ { From 250d99fd155a89bbeb8c5a3c70e5426b60a662a2 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:49:17 +0200 Subject: [PATCH 084/414] tester: angi-ScaleUp - block* mark purposes for hadr providers (2) --- test/json/angi-ScaleUp/block_sr.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleUp/block_sr.json b/test/json/angi-ScaleUp/block_sr.json index 25b448be..469ef4a8 100644 --- a/test/json/angi-ScaleUp/block_sr.json +++ b/test/json/angi-ScaleUp/block_sr.json @@ -1,6 +1,7 @@ { "test": "block_sr", "name": "block sr and check SFAIL attribute; unblock to recover", + "purpose": [ "block", "primary", "secondary", "sr", "hadr", "susHanaSR" ], "start": "prereq10", "steps": [ { From 1e2c143ff99b965e9e1ed20843ad307e272a4543 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:51:42 +0200 Subject: [PATCH 085/414] tester: angi-ScaleUp - default+properties mark purposes --- test/json/angi-ScaleUp/defaults.json | 1 + test/json/angi-ScaleUp/properties.json | 1 + 2 files changed, 2 insertions(+) diff --git a/test/json/angi-ScaleUp/defaults.json b/test/json/angi-ScaleUp/defaults.json index 1c1d4bee..2cd4399e 100644 --- a/test/json/angi-ScaleUp/defaults.json +++ b/test/json/angi-ScaleUp/defaults.json @@ -1,6 +1,7 @@ { "opMode": "logreplay", "srMode": "sync", + "purpose": [ "defaults" ], "checkPtr": { "globalUp": [ "topology == ScaleUp" diff --git a/test/json/angi-ScaleUp/properties.json b/test/json/angi-ScaleUp/properties.json index 37d8a8ba..da0036b0 100644 --- a/test/json/angi-ScaleUp/properties.json +++ b/test/json/angi-ScaleUp/properties.json @@ -1,4 +1,5 @@ { + "purpose": [ "properties" ], "sid": "HA1", "instNo": "00", "mstResource": "mst_SAPHanaCon_HA1_HDB00", From b1a4591527bcf62c2314059a2be88557a0401efc Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:55:04 +0200 Subject: [PATCH 086/414] tester: angi-ScaleUp - nops+flups mark purposes --- test/json/angi-ScaleUp/flap.json | 1 + test/json/angi-ScaleUp/flop.json | 1 + test/json/angi-ScaleUp/flup.json | 1 + test/json/angi-ScaleUp/nop.json | 1 + test/json/angi-ScaleUp/one_stable_hour.json | 1 + 5 files changed, 5 insertions(+) diff --git a/test/json/angi-ScaleUp/flap.json b/test/json/angi-ScaleUp/flap.json index e2bfeac5..830a46c5 100644 --- a/test/json/angi-ScaleUp/flap.json +++ b/test/json/angi-ScaleUp/flap.json @@ -1,6 +1,7 @@ { "test": "flap", "name": "flap - test the new test parser", + "purpose": "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/flop.json b/test/json/angi-ScaleUp/flop.json index 5a5a5442..7acb7738 100644 --- a/test/json/angi-ScaleUp/flop.json +++ b/test/json/angi-ScaleUp/flop.json @@ -1,6 +1,7 @@ { "test": "flop", "name": "flop - this test should NOT pass successfully", + "purpose": [ "fail", "parser", "sleep", "tester" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/flup.json b/test/json/angi-ScaleUp/flup.json index 30fb9374..b169c78f 100644 --- a/test/json/angi-ScaleUp/flup.json +++ b/test/json/angi-ScaleUp/flup.json @@ -1,6 +1,7 @@ { "test": "flup", "name": "flup - like nop but very short sleep only - only for checking the test engine", + "purpose": [ "ok", "parser", "tester", "sleep" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/nop.json b/test/json/angi-ScaleUp/nop.json index 6403c51e..b6d9daff 100644 --- a/test/json/angi-ScaleUp/nop.json +++ b/test/json/angi-ScaleUp/nop.json @@ -1,6 +1,7 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", + "purpose": [ "ok", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/one_stable_hour.json b/test/json/angi-ScaleUp/one_stable_hour.json index 5e1940f3..815d4eab 100644 --- a/test/json/angi-ScaleUp/one_stable_hour.json +++ b/test/json/angi-ScaleUp/one_stable_hour.json @@ -1,6 +1,7 @@ { "test": "one_stable_hour", "name": "one_stable_hour - like nop check regulary for one hour that there is no fault", + "purpose": [ "ok", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { From e5e41f5a1d08d004968c3e01e445df947c57bece Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 08:59:11 +0200 Subject: [PATCH 087/414] tester: angiSacleOut - fix flap --- test/json/angi-ScaleOut/flap.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/flap.json b/test/json/angi-ScaleOut/flap.json index 4ccb2289..843e8dcb 100644 --- a/test/json/angi-ScaleOut/flap.json +++ b/test/json/angi-ScaleOut/flap.json @@ -1,7 +1,7 @@ { "test": "flap", "name": "flap - test the new test parser", - "purpose!: "parser", "tester", "sleep", "stability" ], + "purpose": [ "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { From b8932df46688e02d78f6caba3de153ef5a9437f1 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 09:06:17 +0200 Subject: [PATCH 088/414] tester: all-scenarios - fix json syntax --- .../defaults+newComparators.json | 66 ------------------- test/json/angi-ScaleUp/flap.json | 2 +- .../angi-ScaleUp/register_prim_cold_hana.json | 2 + .../defaults+newComparators.json | 66 ------------------- 4 files changed, 3 insertions(+), 133 deletions(-) delete mode 100644 test/json/angi-ScaleOut-BW/defaults+newComparators.json delete mode 100644 test/json/classic-ScaleOut-BW/defaults+newComparators.json diff --git a/test/json/angi-ScaleOut-BW/defaults+newComparators.json b/test/json/angi-ScaleOut-BW/defaults+newComparators.json deleted file mode 100644 index 1287f744..00000000 --- a/test/json/angi-ScaleOut-BW/defaults+newComparators.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "checkPtr": { - "comparartorinline": [ - "alfa!=dassollungleichsein", - "lpa_@@sid@@_lpt > 160000", - "beta=dassollgleichsein" - ], - "comparatortuple": [ - ("noty", "alfa=ungleich"), - () - ], - "globalUp": [ - "topology=ScaleOut" - ], - "pHostUp": [ - "clone_state=PROMOTED", - "roles=master1:master:worker:master", - "score=150" - ], - "pSiteUp": [ - "lpt=1[6-9]........", - "lss=4", - "srr=P", - "srHook=PRIM", - "srPoll=PRIM" - ], - "sSiteUp": [ - "lpt=30", - "lss=4", - "srr=S", - "srHook=SOK", - "srPoll=SOK" - ], - "sHostUp": [ - "clone_state=DEMOTED", - "roles=master1:master:worker:master", - "score=100" - ], - "pHostDown": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , - "standby=on" - ], - "pSiteDown": [ - "lpt=1[6-9]........" , - "lss=1" , - "srr=P" , - "srHook=PRIM" , - "srPoll=PRIM" - ], - "sSiteDown": [ - "lpt=10", - "lss=1", - "srr=S", - "srHook=SFAIL", - "srPoll=SFAIL" - ], - "sHostDown": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=100" , - "standby=on" - ] - } -} diff --git a/test/json/angi-ScaleUp/flap.json b/test/json/angi-ScaleUp/flap.json index 830a46c5..4fcb630e 100644 --- a/test/json/angi-ScaleUp/flap.json +++ b/test/json/angi-ScaleUp/flap.json @@ -1,7 +1,7 @@ { "test": "flap", "name": "flap - test the new test parser", - "purpose": "parser", "tester", "sleep", "stability" ], + "purpose": [ "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/register_prim_cold_hana.json b/test/json/angi-ScaleUp/register_prim_cold_hana.json index e69de29b..2c63c085 100644 --- a/test/json/angi-ScaleUp/register_prim_cold_hana.json +++ b/test/json/angi-ScaleUp/register_prim_cold_hana.json @@ -0,0 +1,2 @@ +{ +} diff --git a/test/json/classic-ScaleOut-BW/defaults+newComparators.json b/test/json/classic-ScaleOut-BW/defaults+newComparators.json deleted file mode 100644 index 1287f744..00000000 --- a/test/json/classic-ScaleOut-BW/defaults+newComparators.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "checkPtr": { - "comparartorinline": [ - "alfa!=dassollungleichsein", - "lpa_@@sid@@_lpt > 160000", - "beta=dassollgleichsein" - ], - "comparatortuple": [ - ("noty", "alfa=ungleich"), - () - ], - "globalUp": [ - "topology=ScaleOut" - ], - "pHostUp": [ - "clone_state=PROMOTED", - "roles=master1:master:worker:master", - "score=150" - ], - "pSiteUp": [ - "lpt=1[6-9]........", - "lss=4", - "srr=P", - "srHook=PRIM", - "srPoll=PRIM" - ], - "sSiteUp": [ - "lpt=30", - "lss=4", - "srr=S", - "srHook=SOK", - "srPoll=SOK" - ], - "sHostUp": [ - "clone_state=DEMOTED", - "roles=master1:master:worker:master", - "score=100" - ], - "pHostDown": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , - "standby=on" - ], - "pSiteDown": [ - "lpt=1[6-9]........" , - "lss=1" , - "srr=P" , - "srHook=PRIM" , - "srPoll=PRIM" - ], - "sSiteDown": [ - "lpt=10", - "lss=1", - "srr=S", - "srHook=SFAIL", - "srPoll=SFAIL" - ], - "sHostDown": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=100" , - "standby=on" - ] - } -} From f15a9f8a5c2f934965c761c03c54cbda85f5861a Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 09:11:44 +0200 Subject: [PATCH 089/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7: typos, details --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 7 +++++-- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 7 +++++-- man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 4 ++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 511f643d..e677cd72 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -13,15 +13,18 @@ be run out-of-the-box. The test cases are defined in dedicated files. See manual page SAPHanaSR-tests-syntax(5) for syntax details. Details like performed steps or expected behaviour of cluster and HANA are explained in SAPHanaSR-tests-description(7). - +.PP Each test can be executed by running the command SAPHanaSR-testCluster with appropriate parameters. See manual page SAPHanaSR-testCluster(8). .PP -Predefined functional tests for scale-out ERP overwiev: +Overview on predefined functional tests for scale-out ERP: .TP \fBblock_manual_takeover\fP Blocked manual takeover, for susTkOver.py. .TP +\fBblock_sr\fP +Block HANA SR and check SFAIL attribute, unblock to recover, for susHanaSR.py and SAPHanaSR.py. +.TP \fBblock_sr_and_freeze_prim_master_nfs\fP Block HANA SR and freeze HANA NFS on primary master node. Not yet implemented. .TP diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 067bc91b..6d61e65d 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -14,13 +14,16 @@ See manual page SAPHanaSR-tests-syntax(5) for syntax details. Details like performed steps or expected behaviour of cluster and HANA are explained in SAPHanaSR-tests-description(7). .PP -Predefined functional tests for scale-up overview: +Each test can be executed by running the command SAPHanaSR-testCluster with +appropriate parameters. See manual page SAPHanaSR-testCluster(8). +.PP +Overview on predefined functional tests for scale-up: .TP \fBblock_manual_takeover\fP Blocked manual takeover, for susTkOver.py. .TP \fBblock_sr\fP -Block HANA SR and check SFAIL attribute; unblock to recover, for SAPHanaSR.py. +Block HANA SR and check SFAIL attribute, unblock to recover, for susHanaSR.py and SAPHanaSR.py. .TP \fBblock_sr_and_freeze_prim_fs\fP Block HANA SR and freeze HANA FS on primary master node. diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index caa60b39..12c37ca8 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -16,6 +16,10 @@ See manual page SAPHanaSR-tests-syntax(5) for syntax details. Details like performed steps or expected behaviour of cluster and HANA are explained in SAPHanaSR-tests-description(7). .PP +.PP +Each test can be executed by running the command SAPHanaSR-testCluster with +appropriate parameters. See manual page SAPHanaSR-testCluster(8). +.PP Overview on predefined functional tests specific for scale-up with immediate fencing: .TP \fBkill_prim_indexserver_fencing\fP From 169f96d3ab25b676bbac6ccb911f3277b67538ce Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 09:17:06 +0200 Subject: [PATCH 090/414] block_sr.json: on master --- test/json/angi-ScaleOut/block_sr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/block_sr.json b/test/json/angi-ScaleOut/block_sr.json index 469ef4a8..2c9bfad9 100644 --- a/test/json/angi-ScaleOut/block_sr.json +++ b/test/json/angi-ScaleOut/block_sr.json @@ -1,6 +1,6 @@ { "test": "block_sr", - "name": "block sr and check SFAIL attribute; unblock to recover", + "name": "block sr on master and check SFAIL attribute; unblock to recover", "purpose": [ "block", "primary", "secondary", "sr", "hadr", "susHanaSR" ], "start": "prereq10", "steps": [ From 85daaf57d0cf15a7c9765de9e1c3b5f9be00e819 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 09:19:46 +0200 Subject: [PATCH 091/414] SAPHanaSR-tests-angi-ScaleOut.7: block sr on master --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index e677cd72..75895c4e 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleOut 7 "11 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleOut 7 "12 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleOut \- Functional tests for SAPHanaSR Scale-Out. @@ -23,7 +23,7 @@ Overview on predefined functional tests for scale-out ERP: Blocked manual takeover, for susTkOver.py. .TP \fBblock_sr\fP -Block HANA SR and check SFAIL attribute, unblock to recover, for susHanaSR.py and SAPHanaSR.py. +Block HANA SR between master nodes and check SFAIL attribute, unblock to recover, for susHanaSR.py and SAPHanaSR.py. .TP \fBblock_sr_and_freeze_prim_master_nfs\fP Block HANA SR and freeze HANA NFS on primary master node. Not yet implemented. From fa1955303ae9d93d6abf5f93c5caab19a38a94d4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 09:35:44 +0200 Subject: [PATCH 092/414] block_sr_and_freeze_prim_master_nfs.json: initial checkin, copied from block_sr_and_freeze_prim_fs.json --- .../block_sr_and_freeze_prim_master_nfs.json | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json diff --git a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json new file mode 100644 index 00000000..fa5a3df5 --- /dev/null +++ b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json @@ -0,0 +1,91 @@ +{ + "test": "block_sr_and_freeze_prim_master_nfs", + "name": "block sr and freeze sap hana nfs on primary master node", + "purpose": [ "block", "freeze", "primary", "master", "node", "fs", "nfs", "susHanaSR", "hadr" ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_block_sap_hana_sr", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "check SFAIL", + "next": "step30", + "loop": 30, + "wait": 2, + "post": "shell sct_test_freeze_prim_master_nfs", + "pSite": "pSiteUp", + "sSite": [ + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "pHost": "pHostUp" + }, + { + "step": "step30", + "name": "wait with frozen nfs", + "next": "step35", + "loop": 30, + "wait": 2, + "post": "sleep 120", + "pSite": "pSiteUp", + "sSite": [ + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "pHost": "pHostUp" + }, + { + "step": "step35", + "name": "unfreeze nfs", + "next": "step37", + "loop": 30, + "wait": 2, + "post": "shell sct_test_unfreeze_prim_master_nfs", + "pSite": "pSiteUp", + "sSite": [ + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "pHost": "pHostUp" + }, + { + "step": "step37", + "name": "unblock sr", + "next": "final40", + "loop": 30, + "wait": 2, + "post": "shell sct_test_unblock_sap_hana_sr", + "pSite": "pSiteUp", + "sSite": [ + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "pHost": "pHostUp" + }, + { + "step": "final40", + "name": "recovery", + "next": "END", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 17115e82fa08dabc952c09c5c78990edd4074308 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 09:37:17 +0200 Subject: [PATCH 093/414] SAPHanaSR-tests-angi-ScaleOut.7: fBblock_sr_and_freeze_prim_master_nfs --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 75895c4e..3205c377 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -26,7 +26,7 @@ Blocked manual takeover, for susTkOver.py. Block HANA SR between master nodes and check SFAIL attribute, unblock to recover, for susHanaSR.py and SAPHanaSR.py. .TP \fBblock_sr_and_freeze_prim_master_nfs\fP -Block HANA SR and freeze HANA NFS on primary master node. Not yet implemented. +Block HANA SR and freeze HANA NFS on primary master node. .TP \fBblock_sr_and_freeze_prim_site_nfs\fP Block HANA SR and freeze HANA NFS on primary site. Not yet implemented. From 61b6904c39f1167b12964ce938053648044a3575 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 10:12:53 +0200 Subject: [PATCH 094/414] angi-ScaleOut/block_sr.json --- test/json/angi-ScaleOut/block_sr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/block_sr.json b/test/json/angi-ScaleOut/block_sr.json index 2c9bfad9..dfc21cfe 100644 --- a/test/json/angi-ScaleOut/block_sr.json +++ b/test/json/angi-ScaleOut/block_sr.json @@ -1,7 +1,7 @@ { "test": "block_sr", "name": "block sr on master and check SFAIL attribute; unblock to recover", - "purpose": [ "block", "primary", "secondary", "sr", "hadr", "susHanaSR" ], + "purpose": [ "block", "primary", "secondary", "sr", "hadr", "susHanaSR", "master" ], "start": "prereq10", "steps": [ { From db49f78844e45640128fe90437185dd6e9298424 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 10:13:45 +0200 Subject: [PATCH 095/414] SAPHanaSR-tests-description.7 SAPHanaSR-tests-description_on-fail-fence.7: added description_on-fail-fence --- man-tester/SAPHanaSR-tests-description.7 | 50 +--- ...APHanaSR-tests-description_on-fail-fence.7 | 220 ++++++++++++++++++ 2 files changed, 226 insertions(+), 44 deletions(-) create mode 100644 man-tester/SAPHanaSR-tests-description_on-fail-fence.7 diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index ab4e9d28..8779d08d 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-description 7 "04 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-description 7 "12 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-description \- Functional tests for SAPHanaSR. @@ -13,16 +13,16 @@ out-of-the-box. The test cases are defined in dedicated files. See manual page SAPHanaSR-tests-syntax(5) for syntax details. Tests for SAPHanaSR-angi scale-up scenarios are listed in SAPHanaSR-tests-angi-ScaleUp(7), for SAPHanaSR-angi scale-out ERP scenarios in SAPHanaSR-tests-angi-ScaleOut(7). - +.PP Entry point for all predefined tests is a clean and idle Linux cluster and a clean HANA pair in sync. Same is true for the final state. See manual page SAPHanaSR_maintenance_examples(7) for detecting the correct status and watching changes near real-time. - +.PP Each test can be executed by running the command SAPHanaSR-testCluster with appropriate parameters. See manual page SAPHanaSR-testCluster(8). .PP -Predefined functional tests: +Predefined functional tests without immediate fencing: .PP \fBblock_manual_takeover\fP .RS 2 @@ -264,7 +264,7 @@ Comment: Application failure, main cluster case. .PP \fBkill_prim_node\fP .RS 2 -Descr: Kill primary node (no fencing alert agent configured). +Descr: Kill primary node. On scale-out, kill primary master node. .br Topology: ScaleUp, ScaleOut. @@ -282,26 +282,6 @@ One takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP -\fBkill_prim_node_fencing_alert\fP -.RS 2 -Descr: Kill primary node (fencing alert agent configured). -On scale-out, kill primary master node. -.br -Topology: ScaleOut. -.br -Prereq: Cluster and HANA are up and running, all good. -.br -Test: systemctl reboot --force -.br -Expect: All primary nodes fenced and finally started as secondary. -HANA primary stopped and finally started as secondary. -HANA secondary becomes finally primary. -SR SFAIL and finally SOK. -One takeover. One fencing for each primary node. -.br -Comment: Node failure, main cluster case. -.RE -.PP \fBkill_prim_worker_indexserver\fP .RS 2 Descr: Kill primary worker indexserver, for susChkSrv.py. @@ -357,25 +337,6 @@ One takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP -\fBkill_prim_worker_node_fencing_alert\fP -.RS 2 -Descr: Kill primary worker node (fencing alert agent configured).. -.br -Topology: ScaleOut. -.br -Prereq: Cluster and HANA are up and running, all good. -.br -Test: systemctl reboot --force -.br -Expect: All primary nodes fenced. -HANA primary stopped and finally started as secondary. -HANA secondary becomes finally primary. -SR SFAIL and finally SOK. -One takeover. One fencing for each primary node. -.br -Comment: Node failure, main cluster case. -.RE -.PP \fBkill_secn_indexserver\fP .RS 2 Descr: Kill secondary indexserver, for susChkSrv.py. @@ -793,6 +754,7 @@ Please report any other feedback and suggestions to feedback@suse.com. \fBSAPHanaSR-tests-syntax\fP(5) , \fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-tests-angi-ScaleOut\fP(7) , \fBSAPHanaSR-tests-classic-ScaleUp\fP(7) , +\fBSAPHanaSR-tests-description_on-fail-fence\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) .PP .\" diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 new file mode 100644 index 00000000..0fd611bc --- /dev/null +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -0,0 +1,220 @@ +.\" Version: 1.001 +.\" +.TH SAPHanaSR-tests-description_on-fail-fence 7 "12 Jul 2024" "" "SAPHanaSR-angi" +.\" +.SH NAME +SAPHanaSR-tests-description \- Functional tests for SAPHanaSR with immediate fencing. +.PP +.\" +.SH DESCRIPTION +.PP +Functional test are shipped for different scenarios. This tests could be run +out-of-the-box. The test cases are defined in dedicated files. +See manual page SAPHanaSR-tests-syntax(5) for syntax details. Tests for +SAPHanaSR-angi scale-up scenarios are listed in +SAPHanaSR-tests-angi-ScaleUp_on-fail-fence(7), for SAPHanaSR-angi scale-out ERP +scenarios in SAPHanaSR-tests-angi-ScaleOut_on-fail-fence(7). +.PP +Entry point for all predefined tests is a clean and idle Linux cluster and a +clean HANA pair in sync. Same is true for the final state. +See manual page SAPHanaSR_maintenance_examples(7) for detecting the correct +status and watching changes near real-time. +.PP +Each test can be executed by running the command SAPHanaSR-testCluster with +appropriate parameters. See manual page SAPHanaSR-testCluster(8). +.PP +Predefined functional tests with immediate fencing: +.PP +\fBfreeze_prim_master_nfs_fencing_alert\fP +.RS 2 +Descr: Freeze HANA NFS on primary master node. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: See ocf_suse_SAPHanaFilesystem(7). +.br +Expect: Primary nodes fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. One fence TODO. +.br +Comment: Infrastructure failure, main cluster case. +.RE +.PP +\fBkill_prim_indexserver_fencing_alert\fP +.RS 2 +Descr: Kill primary indexserver, for susChkSrv.py. +On scale-out, kill primary master indexserver. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: See susChkSrv.py(7). +.br +Expect: All primary nodes fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. TODO fencing (for action_on_lost=fence). +.br +Comment: Application failure, main cluster case. +.RE +.PP +\fBkill_prim_inst_fencing_alert\fP +.RS 2 +Descr: Kill primary instance. +On scale-out, kill primary master instance. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: HDB kill +.br +Expect: All primary nodes fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. TODO fencing. +.br +Comment: Application failure, main cluster case. +.RE +.PP +\fBkill_prim_node_fencing_alert\fP +.RS 2 +Descr: Kill primary master node. (fencing alert agent configured). +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: systemctl reboot --force +.br +Expect: All primary nodes fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. One fencing for each primary node. +.br +Comment: Node failure, main cluster case. +.RE +.PP +\fBkill_prim_worker_indexserver_fencing_alert\fP +.RS 2 +Descr: Kill primary worker indexserver, for susChkSrv.py. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: See susChkSrv.py(7). +.br +Expect: All primary nodes fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. TODO fencing (for action_on_lost=fence). +.br +Comment: Application failure, main cluster case. +.RE +.PP +\fBkill_prim_worker_inst_fencing_alert\fP +.RS 2 +Descr: Kill primary worker instance. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: HDB kill +.br +Expect: All primary nodes fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. TODO fencing. +.br +Comment: Application failure, main cluster case. +.RE +.PP +\fBkill_prim_worker_node_fencing_alert\fP +.RS 2 +Descr: Kill primary worker node. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: systemctl reboot --force +.br +Expect: All primary nodes fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. TODO fencing. +.br +Comment: Node failure, main cluster case. +.RE +.PP +.\" +.SH EXAMPLES +.PP +* List all shipped tests for immediate fencing +.PP +.RS 2 +# find /usr/share/SAPHanaSR-tester/json/ -name "*fenc*.json" -exec basename {} \\; | sort -u +.RE +.PP +.\" +.SH FILES +.\" +.TP +/usr/share/SAPHanaSR-tester/json/angi-ScaleUp/ +functional tests for SAPHanaSR-angi scale-up scenarios. +.TP +/usr/share/SAPHanaSR-tester/json/angi-ScaleOut/ +functional tests for SAPHanaSR-angi scale-out ERP scenarios. +.TP +/usr/bin/sct_test_* +shell scripts for un-easy tasks on the cluster nodes. +.PP +.\" +.SH REQUIREMENTS +.\" +See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). +See also ocf_suse_SAPHanaController(7), susChkSrv.py(7) and +SAPHanaSR-alert-fencing(8) for configuration of immediate fencing. +Of course, HANA database and Linux cluster also have certain requirements. +Please refer to the product documentation. +.PP +.\" +.SH BUGS +In case of any problem, please use your favourite SAP support process to open +a request for the component BC-OP-LNX-SUSE. +Please report any other feedback and suggestions to feedback@suse.com. +.PP +.\" +.SH SEE ALSO +\fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , +\fBSAPHanaSR-tests-syntax\fP(5) , \fBSAPHanaSR-tests-description\fP(7) , +\fBSAPHanaSR-tests-angi-ScaleOut_on-fail-fence\fP(7) , +\fBSAPHanaSR-tests-angi-ScaleUp_on-fail-fence\fP(7) , +\fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) +.PP +.\" +.SH AUTHORS +F.Herschel, L.Pinne. +.PP +.\" +.SH COPYRIGHT +(c) 2024 SUSE LLC +.br +The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. +.br +For details see the GNU General Public License at +http://www.gnu.org/licenses/gpl.html +.\" From 5b804cc974cce5e181af11e0b24b7e10d24b6fa8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 10:17:22 +0200 Subject: [PATCH 096/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7: see also --- man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 1 + man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index d426d65c..82428710 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -80,6 +80,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .\" .SH SEE ALSO \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , +\fBSAPHanaSR-tests-description_on-fail-fence\fP(7) , \fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , \fBSAPHanaSR-tests-angi-ScaleOut\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index 12c37ca8..a78cf528 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -16,7 +16,6 @@ See manual page SAPHanaSR-tests-syntax(5) for syntax details. Details like performed steps or expected behaviour of cluster and HANA are explained in SAPHanaSR-tests-description(7). .PP -.PP Each test can be executed by running the command SAPHanaSR-testCluster with appropriate parameters. See manual page SAPHanaSR-testCluster(8). .PP @@ -68,6 +67,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .\" .SH SEE ALSO \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , +\fBSAPHanaSR-tests-description_on-fail-fence\fP(7) , \fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , \fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , From d4ca87b53b0fac1b9df1028b61d1b184fbcbbc99 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 10:18:47 +0200 Subject: [PATCH 097/414] tester: angi-ScaleUp - removed old TODOs --- test/json/angi-ScaleUp/demo_kill_prim_inst.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/test/json/angi-ScaleUp/demo_kill_prim_inst.json b/test/json/angi-ScaleUp/demo_kill_prim_inst.json index d0f2c00b..7b39b22f 100644 --- a/test/json/angi-ScaleUp/demo_kill_prim_inst.json +++ b/test/json/angi-ScaleUp/demo_kill_prim_inst.json @@ -1,6 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", + "purpose": [ "demo", "kill", "primary", "instance" ], "start": "prereq10", "steps": [ { @@ -11,7 +12,6 @@ "wait": 1, "post": "kill_prim_inst", "todo": "allow something like pSite == @@pSite@@ or pSite == %pSite", - "todo1": "allow something like lss>2, lpt>10000, score! == 123", "pSite": "pSiteUpDemo", "sSite": "sSiteUpDemo", "pHost": "pHostUp", diff --git a/test/json/angi-ScaleUp/kill_prim_inst.json b/test/json/angi-ScaleUp/kill_prim_inst.json index a315e9b7..2939aca8 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst.json +++ b/test/json/angi-ScaleUp/kill_prim_inst.json @@ -12,7 +12,6 @@ "wait": 1, "post": "kill_prim_inst", "todo": "allow something like pSite=@@pSite@@ or pSite=%pSite", - "todo1": "allow something like lss>2, lpt>10000, score!=123", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", From a4700367fd08ce2f9860fbb94d2fab78b72c1945 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 10:22:04 +0200 Subject: [PATCH 098/414] SAPHanaSR-tests-description_on-fail-fence.7 --- ...APHanaSR-tests-description_on-fail-fence.7 | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 index 0fd611bc..cbb31532 100644 --- a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -44,10 +44,28 @@ One takeover. One fence TODO. Comment: Infrastructure failure, main cluster case. .RE .PP -\fBkill_prim_indexserver_fencing_alert\fP +\fBkill_prim_indexserver_fencing\fP .RS 2 Descr: Kill primary indexserver, for susChkSrv.py. -On scale-out, kill primary master indexserver. +.br +Topology: ScaleUp (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: See susChkSrv.py(7). +.br +Expect: Primary node fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. One fencing (for action_on_lost=fence). +.br +Comment: Application failure, main cluster case +.RE +.PP +\fBkill_prim_indexserver_fencing_alert\fP +.RS 2 +Descr: Kill primary master indexserver, for susChkSrv.py. .br Topology: ScaleOut (angi only). .br From b0f3d9aeab87185c4eb31ee5ea4bf91512b07f1c Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 10:38:57 +0200 Subject: [PATCH 099/414] SAPHanaSR-tests-description_on-fail-fence.7: kill_prim_inst_fencing --- ...APHanaSR-tests-description_on-fail-fence.7 | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 index cbb31532..6a017243 100644 --- a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -82,10 +82,28 @@ One takeover. TODO fencing (for action_on_lost=fence). Comment: Application failure, main cluster case. .RE .PP -\fBkill_prim_inst_fencing_alert\fP +\fBkill_prim_inst_fencing\fP .RS 2 Descr: Kill primary instance. -On scale-out, kill primary master instance. +.br +Topology: ScaleUp (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: HDB kill +.br +Expect: Primary node fenced. +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. One fencing. +.br +Comment: Application failure, main cluster case. +.RE +.PP +\fBkill_prim_inst_fencing_alert\fP +.RS 2 +Descr: Kill primary master instance. .br Topology: ScaleOut (angi only). .br From c87c0e625646ee19c8ab4553884a564200cc4858 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 10:45:35 +0200 Subject: [PATCH 100/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 SAPHanaSR-tests-description_on-fail-fence.7: title --- man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 2 +- man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 2 +- man-tester/SAPHanaSR-tests-description_on-fail-fence.7 | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index 82428710..ad510955 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleOut 7 "06 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleOut_on-fail-fence 7 "06 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleOut_on-fail-fence \- Functional tests for SAPHanaSR Scale-Out with immediate fencing. diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index a78cf528..1a43829e 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleUp 7 "06 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleUp_on-fail-fence 7 "06 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleUp_on-fail-fence \- Functional tests for SAPHanaSR Scale-Up with immediate fencing. diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 index 6a017243..15b2cbdd 100644 --- a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -3,7 +3,7 @@ .TH SAPHanaSR-tests-description_on-fail-fence 7 "12 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME -SAPHanaSR-tests-description \- Functional tests for SAPHanaSR with immediate fencing. +SAPHanaSR-tests-description_on-fail-fence \- Functional tests for SAPHanaSR with immediate fencing. .PP .\" .SH DESCRIPTION From bed55dc84beebbc2a91e88d43a611f42362a7c0b Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 11:14:38 +0200 Subject: [PATCH 101/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 SAPHanaSR-tests-description.7 SAPHanaSR-tests-description_on-fail-fence.7: requirements --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 3 +++ man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 9 ++++++--- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 7 +++++-- man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 9 ++++++--- man-tester/SAPHanaSR-tests-description.7 | 4 ++++ man-tester/SAPHanaSR-tests-description_on-fail-fence.7 | 7 +++++-- 6 files changed, 29 insertions(+), 10 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 3205c377..2cdd2d8b 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -144,6 +144,9 @@ shell scripts for un-easy tasks on the cluster nodes. .SH REQUIREMENTS .PP See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). +Further, HANA database and Linux cluster are configured according to the SUSE +setup guide for the scale-out ERP style scenario (two nodes per site, no standby). +No immediate fencing is configured, except for the SAPHanaFilesystem RA. Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .\" diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index ad510955..42a362e3 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleOut_on-fail-fence 7 "06 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleOut_on-fail-fence 7 "12 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleOut_on-fail-fence \- Functional tests for SAPHanaSR Scale-Out with immediate fencing. @@ -67,8 +67,11 @@ shell scripts for un-easy tasks on the cluster nodes. .SH REQUIREMENTS .PP See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). -See also ocf_suse_SAPHanaController(7), susChkSrv.py(7) and -SAPHanaSR-alert-fencing(8) for configuration of immediate fencing. +Further, HANA database and Linux cluster are configured almost according to the +SUSE setup guide for the scale-out ERP style scenario (two nodes per site, no +standby). In opposite to that guide, immediate fencing is configured. +See ocf_suse_SAPHanaController(7), susChkSrv.py(7) and +SAPHanaSR-alert-fencing(8). Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .\" diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 6d61e65d..002797b2 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleUp 7 "20 Dec 2023" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleUp 7 "12 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleUp \- Functional tests for SAPHanaSR Scale-Up. @@ -117,6 +117,9 @@ shell scripts for un-easy tasks on the cluster nodes. .SH REQUIREMENTS .\" See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). +Further, HANA database and Linux cluster are configured according to the SUSE +setup guide for the scale-up performance-optimised scenario. +No immediate fencing is configured, except for the SAPHanaFilesystem RA. Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .PP @@ -139,7 +142,7 @@ F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT -(c) 2023 SUSE LLC +(c) 2023-2024 SUSE LLC .br The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. .br diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index 1a43829e..df5334d2 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleUp_on-fail-fence 7 "06 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleUp_on-fail-fence 7 "12 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleUp_on-fail-fence \- Functional tests for SAPHanaSR Scale-Up with immediate fencing. @@ -53,8 +53,11 @@ shell scripts for un-easy tasks on the cluster nodes. .SH REQUIREMENTS .\" See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). -See also ocf_suse_SAPHanaController(7) and susChkSrv.py(7) for configuration of -immediate fencing. +Further, HANA database and Linux cluster are configured almost according to the +SUSE setup guide for the scale-up performance-optimised scenario. +In opposite to that guide, immediate fencing is configured. +See ocf_suse_SAPHanaController(7), susChkSrv.py(7) and +SAPHanaSR-alert-fencing(8). Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .PP diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 8779d08d..485d0937 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -739,6 +739,10 @@ shell scripts for un-easy tasks on the cluster nodes. .SH REQUIREMENTS .\" See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). +Further, HANA database and Linux cluster are configured according to the SUSE +setup guide for the scale-up performance-optimised scenario or the +scale-out ERP style scenario (two nodes per site, no standby). +No immediate fencing is configured, except for the SAPHanaFilesystem RA. Of course, HANA database and Linux cluster also have certain requirements. Please refer to the product documentation. .PP diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 index 15b2cbdd..8d18a0a0 100644 --- a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -222,8 +222,11 @@ shell scripts for un-easy tasks on the cluster nodes. .SH REQUIREMENTS .\" See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). -See also ocf_suse_SAPHanaController(7), susChkSrv.py(7) and -SAPHanaSR-alert-fencing(8) for configuration of immediate fencing. +Further, HANA database and Linux cluster are configured almost according to the +SUSE setup guide for the scale-up performance-optimised scenario or the scale-out +ERP style scenario (two nodes per site, no standby). +In opposite to that guide, immediate fencing is configured. +See ocf_suse_SAPHanaController(7), susChkSrv.py(7) and SAPHanaSR-alert-fencing(8). Of course, HANA database and Linux cluster also have certain requirements. Please refer to the product documentation. .PP From 4922ec81c768683677e6fa48503febad3b8e05ba Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 11:21:29 +0200 Subject: [PATCH 102/414] tester: angi-ScaleUp - tagging --- test/json/angi-ScaleUp/free_log_area.json | 1 + 1 file changed, 1 insertion(+) diff --git a/test/json/angi-ScaleUp/free_log_area.json b/test/json/angi-ScaleUp/free_log_area.json index ab2ceb68..8038604e 100644 --- a/test/json/angi-ScaleUp/free_log_area.json +++ b/test/json/angi-ScaleUp/free_log_area.json @@ -1,6 +1,7 @@ { "test": "free_log_area", "name": "free hana log area on primary site", + "purpose": [ "maintenance", "primary", "logarea", "stability" ], "start": "prereq10", "steps": [ { From b2ec30abefc1febc3dfb288a3cdbac4199faec86 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 11:30:51 +0200 Subject: [PATCH 103/414] SAPHanaSR-tests-classic-ScaleUp.7: requirements --- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 5787fb75..1aa853c7 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -109,6 +109,9 @@ script SAPHanaSR-showAttr from SAPHanaSR-angi. .PP * See also the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR(7). .PP +* HANA database and Linux cluster are configureded according to the SUSE setup +guide for scale-up performance-optimised scenario (classical SAPHanaSR). +.PP * Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .PP From 13052df9efe1d191af58ed3255b068621e661cd6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 11:32:31 +0200 Subject: [PATCH 104/414] SAPHanaSR-tests-classic-ScaleUp.7: requirements --- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 1aa853c7..4d28ed50 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -14,7 +14,7 @@ See manual page SAPHanaSR-tests-syntax(5) for syntax details. Details like performed steps or expected behaviour of cluster and HANA are explained in SAPHanaSR-tests-description(7). .PP -Predefined functional tests for SAPHanaSR scale-up overview: +Overview on predefined functional tests for classical SAPHanaSR scale-up: .TP \fBblock_manual_takeover\fP Blocked manual takeover, for susTkOver.py. From 8bf625860f78696a8f49aef636a3ad060c05a2c3 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 11:32:56 +0200 Subject: [PATCH 105/414] tester: angi-ScaleOut - tags 'angi' and 'ScaleOut' --- test/json/angi-ScaleOut/block_manual_takeover.json | 2 +- test/json/angi-ScaleOut/block_sr.json | 2 +- .../json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json | 2 +- test/json/angi-ScaleOut/defaults.json | 2 +- test/json/angi-ScaleOut/flap.json | 2 +- test/json/angi-ScaleOut/flop.json | 2 +- test/json/angi-ScaleOut/flup.json | 2 +- test/json/angi-ScaleOut/free_log_area.json | 2 +- test/json/angi-ScaleOut/freeze_prim_master_nfs.json | 2 +- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- test/json/angi-ScaleOut/freeze_prim_site_nfs.json | 2 +- test/json/angi-ScaleOut/freeze_secn_site_nfs.json | 2 +- test/json/angi-ScaleOut/kill_prim_indexserver.json | 2 +- .../json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_inst.json | 2 +- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_node.json | 2 +- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_worker_indexserver.json | 2 +- .../kill_prim_worker_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_worker_inst.json | 2 +- .../json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_worker_node.json | 2 +- .../json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_secn_indexserver.json | 2 +- test/json/angi-ScaleOut/kill_secn_inst.json | 2 +- test/json/angi-ScaleOut/kill_secn_node.json | 2 +- test/json/angi-ScaleOut/kill_secn_worker_inst.json | 2 +- test/json/angi-ScaleOut/kill_secn_worker_node.json | 2 +- test/json/angi-ScaleOut/maintenance_cluster_hana_running.json | 2 +- test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json | 2 +- test/json/angi-ScaleOut/maintenance_with_standby_nodes.json | 2 +- test/json/angi-ScaleOut/nop-false.json | 2 +- test/json/angi-ScaleOut/nop.json | 2 +- test/json/angi-ScaleOut/properties.json | 2 +- test/json/angi-ScaleOut/properties_ha1_hdb10.json | 2 +- test/json/angi-ScaleOut/restart_cluster.json | 2 +- test/json/angi-ScaleOut/restart_cluster_hana_running.json | 2 +- test/json/angi-ScaleOut/restart_cluster_turn_hana.json | 2 +- test/json/angi-ScaleOut/standby_prim_node.json | 2 +- test/json/angi-ScaleOut/standby_secn_node.json | 2 +- test/json/angi-ScaleOut/standby_secn_worker_node.json | 2 +- 42 files changed, 42 insertions(+), 42 deletions(-) diff --git a/test/json/angi-ScaleOut/block_manual_takeover.json b/test/json/angi-ScaleOut/block_manual_takeover.json index 72c18123..f7f0fcc2 100644 --- a/test/json/angi-ScaleOut/block_manual_takeover.json +++ b/test/json/angi-ScaleOut/block_manual_takeover.json @@ -1,7 +1,7 @@ { "test": "block_manual_takeover", "name": "block manual takeover, using susTkOver.py", - "purpose": [ "maintenace", "admin", "block", "susTkOver", "hadr" ], + "purpose": [ "angi", "ScaleOut", "maintenace", "admin", "block", "susTkOver", "hadr" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/block_sr.json b/test/json/angi-ScaleOut/block_sr.json index dfc21cfe..05bf7721 100644 --- a/test/json/angi-ScaleOut/block_sr.json +++ b/test/json/angi-ScaleOut/block_sr.json @@ -1,7 +1,7 @@ { "test": "block_sr", "name": "block sr on master and check SFAIL attribute; unblock to recover", - "purpose": [ "block", "primary", "secondary", "sr", "hadr", "susHanaSR", "master" ], + "purpose": [ "angi", "ScaleOut", "block", "primary", "secondary", "sr", "hadr", "susHanaSR", "master" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json index fa5a3df5..98210431 100644 --- a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json @@ -1,7 +1,7 @@ { "test": "block_sr_and_freeze_prim_master_nfs", "name": "block sr and freeze sap hana nfs on primary master node", - "purpose": [ "block", "freeze", "primary", "master", "node", "fs", "nfs", "susHanaSR", "hadr" ], + "purpose": [ "angi", "ScaleOut", "block", "freeze", "primary", "master", "node", "fs", "nfs", "susHanaSR", "hadr" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/defaults.json b/test/json/angi-ScaleOut/defaults.json index f3c477b6..130998b5 100644 --- a/test/json/angi-ScaleOut/defaults.json +++ b/test/json/angi-ScaleOut/defaults.json @@ -1,7 +1,7 @@ { "opMode": "logreplay", "srMode": "sync", - "purpose": [ "defaults" ], + "purpose": [ "angi", "ScaleOut", "defaults" ], "checkPtr": { "globalUp": [ "topology == ScaleOut" diff --git a/test/json/angi-ScaleOut/flap.json b/test/json/angi-ScaleOut/flap.json index 843e8dcb..8e828733 100644 --- a/test/json/angi-ScaleOut/flap.json +++ b/test/json/angi-ScaleOut/flap.json @@ -1,7 +1,7 @@ { "test": "flap", "name": "flap - test the new test parser", - "purpose": [ "parser", "tester", "sleep", "stability" ], + "purpose": [ "angi", "ScaleOut", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/flop.json b/test/json/angi-ScaleOut/flop.json index 28b6f01d..72845f87 100644 --- a/test/json/angi-ScaleOut/flop.json +++ b/test/json/angi-ScaleOut/flop.json @@ -1,7 +1,7 @@ { "test": "flop", "name": "flop - this test should NOT pass successfully", - "purpose": [ "fail", "parser", "sleep", "tester" ], + "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/flup.json b/test/json/angi-ScaleOut/flup.json index 7c3717f3..f9d7986b 100644 --- a/test/json/angi-ScaleOut/flup.json +++ b/test/json/angi-ScaleOut/flup.json @@ -1,7 +1,7 @@ { "test": "flup", "name": "flup - like nop but very short sleep only - only for checking the test engine", - "purpose": [ "ok", "parser", "tester", "sleep" ], + "purpose": [ "angi", "ScaleOut", "ok", "parser", "tester", "sleep" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/free_log_area.json b/test/json/angi-ScaleOut/free_log_area.json index 8a81e992..ab2d6f03 100644 --- a/test/json/angi-ScaleOut/free_log_area.json +++ b/test/json/angi-ScaleOut/free_log_area.json @@ -1,7 +1,7 @@ { "test": "free_log_area", "name": "free hana log area on primary site", - "purpose": [ "maintenance", "primary", "logarea", "stability" ], + "purpose": [ "angi", "ScaleOut", "maintenance", "primary", "logarea", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json index 5337df3a..f2ece494 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json @@ -1,7 +1,7 @@ { "test": "freeze_prim_master_nfs", "name": "freeze sap hana nfs on primary master node", - "purpose": [ "fs", "nfs", "freeze", "primary", "master", "node" ], + "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "primary", "master", "node" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index e9623467..2e435b9d 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "freeze_prim_master_nfs_fencing_alert", "name": "freeze sap hana nfs on primary master node with fencing alert agent implemented", - "purpose": [ "fs", "nfs", "freeze", "primary", "master", "node", "fencing_alert" ], + "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "primary", "master", "node", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json index 6ac7848a..301b6dd0 100644 --- a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json @@ -1,7 +1,7 @@ { "test": "freeze_prim_site_nfs", "name": "freeze sap hana nfs on primary site", - "purpose": [ "fs", "nfs", "freeze", "primary", "site" ], + "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "primary", "site" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json index 0d07fe6c..5ab7a1a6 100644 --- a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json @@ -1,7 +1,7 @@ { "test": "freeze_secn_site_nfs", "name": "freeze sap hana nfs on secondary site", - "purpose": [ "fs", "nfs", "freeze", "secondary", "site" ], + "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "secondary", "site" ], "todo": "please correct this file", "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver.json b/test/json/angi-ScaleOut/kill_prim_indexserver.json index 9425ebcb..06d29876 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver", "name": "Kill primary master indexserver", - "purpose": [ "kill", "primary", "indexserver", "hadr", "susChkSrv" ], + "purpose": [ "angi", "ScaleOut", "kill", "primary", "indexserver", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 0b6350c3..c892d71d 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver_fencing_alert", "name": "Kill primary master indexserver with fencing alert agent implemented", - "purpose": [ "kill", "primary", "indexserver", "fencing_alert", "hadr", "susChkSrv" ], + "purpose": [ "angi", "ScaleOut", "kill", "primary", "indexserver", "fencing_alert", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_inst.json b/test/json/angi-ScaleOut/kill_prim_inst.json index 43b2f5e2..d4de4823 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_inst.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary master instance", - "purpose": [ "kill", "primary", "instance", "master" ], + "purpose": [ "angi", "ScaleOut", "kill", "primary", "instance", "master" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 8a6ce257..42f1bcac 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst_fencing_alert", "name": "Kill primary master instance with fencing alert agent implemented", - "purpose": [ "kill", "instance", "primary", "fencing_alert" ], + "purpose": [ "angi", "ScaleOut", "kill", "instance", "primary", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_node.json b/test/json/angi-ScaleOut/kill_prim_node.json index 4add8f08..7458e05e 100644 --- a/test/json/angi-ScaleOut/kill_prim_node.json +++ b/test/json/angi-ScaleOut/kill_prim_node.json @@ -1,7 +1,7 @@ { "test": "kill_prim_node", "name": "Kill primary master node", - "purpose": [ "kill", "primary", "node", "master" ], + "purpose": [ "angi", "ScaleOut", "kill", "primary", "node", "master" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 4665e834..82cd0c25 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_node_fencing_alert", "name": "Kill primary master node with fencing alert agent implemented", - "purpose": [ "kill", "primary", "node", "master", "fencing_alert" ], + "purpose": [ "angi", "ScaleOut", "kill", "primary", "node", "master", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json index 65e87d4c..6f26699e 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_indexserver", "name": "Kill primary worker indexserver", - "purpose": [ "kill", "indexserver", "primary", "worker", "hadr", "susChkSrv" ], + "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "primary", "worker", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index fb0fdc5d..eb3ecb9d 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_indexserver_fencing_alert", "name": "Kill primary worker indexserver with fencing alert agent implemented", - "purpose": [ "kill", "indexserver", "primary", "worker", "fencing_alert", "hadr", "susChkSrv" ], + "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "primary", "worker", "fencing_alert", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst.json b/test/json/angi-ScaleOut/kill_prim_worker_inst.json index cd6b5a08..40a6e70a 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_inst", "name": "Kill primary worker instance", - "purpose": [ "kill", "primary", "instance", "worker" ], + "purpose": [ "angi", "ScaleOut", "kill", "primary", "instance", "worker" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index 3f619bfc..37a894f9 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_inst_fencing_alert", "name": "Kill primary worker instance with fencing alert agent implemented", - "purpose": [ "kill", "instance", "primary", "worker", "fencing_alert" ], + "purpose": [ "angi", "ScaleOut", "kill", "instance", "primary", "worker", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node.json b/test/json/angi-ScaleOut/kill_prim_worker_node.json index 1ca8af40..93b79dc1 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_node", "name": "Kill primary worker node", - "purpose": [ "kill", "primary", "node", "worker" ], + "purpose": [ "angi", "ScaleOut", "kill", "primary", "node", "worker" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index f28507fc..4051b3a2 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_node_fencing_alert", "name": "Kill primary worker node with fencing alert agent implemented", - "purpose": [ "kill", "node", "primary", "worker", "fencing_alert" ], + "purpose": [ "angi", "ScaleOut", "kill", "node", "primary", "worker", "fencing_alert" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver.json b/test/json/angi-ScaleOut/kill_secn_indexserver.json index 26390925..1b6b9d7d 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary master indexserver", - "purpose": [ "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv" ], + "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_inst.json b/test/json/angi-ScaleOut/kill_secn_inst.json index 33385689..88a9ac11 100644 --- a/test/json/angi-ScaleOut/kill_secn_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_inst.json @@ -1,7 +1,7 @@ { "test": "kill_secn_inst", "name": "Kill secondary master instance", - "purpose": [ "kill", "secondary", "instance", "master" ], + "purpose": [ "angi", "ScaleOut", "kill", "secondary", "instance", "master" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_node.json b/test/json/angi-ScaleOut/kill_secn_node.json index 3ca6063e..0e7a893c 100644 --- a/test/json/angi-ScaleOut/kill_secn_node.json +++ b/test/json/angi-ScaleOut/kill_secn_node.json @@ -1,7 +1,7 @@ { "test": "kill_secn_node", "name": "Kill secondary master node", - "purpose": [ "kill", "secondary", "node", "master" ], + "purpose": [ "angi", "ScaleOut", "kill", "secondary", "node", "master" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_worker_inst.json b/test/json/angi-ScaleOut/kill_secn_worker_inst.json index 4aad807f..3e793e38 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_inst.json @@ -1,7 +1,7 @@ { "test": "kill_secn_worker_inst", "name": "Kill secondary worker instance", - "purpose": [ "kill", "secondary", "instance", "worker" ], + "purpose": [ "angi", "ScaleOut", "kill", "secondary", "instance", "worker" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node.json b/test/json/angi-ScaleOut/kill_secn_worker_node.json index 9f0a8a3f..7d67905a 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node.json @@ -1,7 +1,7 @@ { "test": "kill_secn_worker_node", "name": "Kill secondary worker node", - "purpose": [ "kill", "secondary", "node", "worker" ], + "purpose": [ "angi", "ScaleOut", "kill", "secondary", "node", "worker" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json index ff540c1b..fd55a7e2 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json @@ -1,7 +1,7 @@ { "test": "maintenance_cluster_hana_running", "name": "stop and restart cluster, keep hana running", - "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster" ], + "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json index 4eeb7aed..9bf256d0 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json @@ -1,7 +1,7 @@ { "test": "maintenance_cluster_turn_hana", "name": "maintenance cluster turn hana", - "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster" ], + "purpose": [ "angi", "ScaleOut", "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json b/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json index 153c4075..82a389a5 100644 --- a/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json @@ -1,7 +1,7 @@ { "test": "maintenance_with_standby_nodes", "name": "standby+online secondary then standby+online primary", - "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster" ], + "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster" ], "start": "prereq10", "todo": "expectations needs to be fixed - e.g. step20 sHostDown is wrong, because topology will also be stopped. roles will be ::: not master1:...", "steps": [ diff --git a/test/json/angi-ScaleOut/nop-false.json b/test/json/angi-ScaleOut/nop-false.json index 515b6c87..10f7ab65 100644 --- a/test/json/angi-ScaleOut/nop-false.json +++ b/test/json/angi-ScaleOut/nop-false.json @@ -1,7 +1,7 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", - "purpose": [ "fail", "parser", "tester", "sleep", "stability" ], + "purpose": [ "angi", "ScaleOut", "fail", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/nop.json b/test/json/angi-ScaleOut/nop.json index dc2c2ebd..80afc8fe 100644 --- a/test/json/angi-ScaleOut/nop.json +++ b/test/json/angi-ScaleOut/nop.json @@ -1,7 +1,7 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", - "purpose": [ "ok", "parser", "tester", "sleep", "stability" ], + "purpose": [ "angi", "ScaleOut", "ok", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/properties.json b/test/json/angi-ScaleOut/properties.json index 362675cb..dd92cece 100644 --- a/test/json/angi-ScaleOut/properties.json +++ b/test/json/angi-ScaleOut/properties.json @@ -1,5 +1,5 @@ { - "purpose": [ "properties" ], + "purpose": [ "angi", "ScaleOut", "properties" ], "sid": "HA1", "instNo": "10", "mstResource": "mst_SAPHanaCon_HA1_HDB10", diff --git a/test/json/angi-ScaleOut/properties_ha1_hdb10.json b/test/json/angi-ScaleOut/properties_ha1_hdb10.json index bba93a39..8770b10a 100644 --- a/test/json/angi-ScaleOut/properties_ha1_hdb10.json +++ b/test/json/angi-ScaleOut/properties_ha1_hdb10.json @@ -1,5 +1,5 @@ { - "purpose": [ "properties" ], + "purpose": [ "angi", "ScaleOut", "properties" ], "sid": "HA1", "mstResource": "mst_SAPHanaCon_HA1_HDB10", "clnResource": "cln_SAPHanaTop_HA1_HDB10" diff --git a/test/json/angi-ScaleOut/restart_cluster.json b/test/json/angi-ScaleOut/restart_cluster.json index 51176d7c..44419c0a 100644 --- a/test/json/angi-ScaleOut/restart_cluster.json +++ b/test/json/angi-ScaleOut/restart_cluster.json @@ -1,7 +1,7 @@ { "test": "restart_cluster", "name": "stop and restart cluster and hana", - "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], + "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/restart_cluster_hana_running.json b/test/json/angi-ScaleOut/restart_cluster_hana_running.json index a998c6f4..c9562f3f 100644 --- a/test/json/angi-ScaleOut/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/restart_cluster_hana_running.json @@ -1,7 +1,7 @@ { "test": "restart_cluster_hana_running", "name": "stop and restart cluster, keep hana running", - "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], + "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/restart_cluster_turn_hana.json b/test/json/angi-ScaleOut/restart_cluster_turn_hana.json index a1db4106..985f57cf 100644 --- a/test/json/angi-ScaleOut/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut/restart_cluster_turn_hana.json @@ -1,7 +1,7 @@ { "test": "restart_cluster_turn_hana", "name": "stop cluster, turn hana, start cluster", - "purpose": [ "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], + "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/standby_prim_node.json b/test/json/angi-ScaleOut/standby_prim_node.json index 6e6b2fd0..1962aaef 100644 --- a/test/json/angi-ScaleOut/standby_prim_node.json +++ b/test/json/angi-ScaleOut/standby_prim_node.json @@ -1,7 +1,7 @@ { "test": "standby_prim_node", "name": "standby primary master node (and online again)", - "purpose": [ "standby", "maintenance", "primary", "node", "master" ], + "purpose": [ "angi", "ScaleOut", "standby", "maintenance", "primary", "node", "master" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/standby_secn_node.json b/test/json/angi-ScaleOut/standby_secn_node.json index e68ba9ed..28f1b1a1 100644 --- a/test/json/angi-ScaleOut/standby_secn_node.json +++ b/test/json/angi-ScaleOut/standby_secn_node.json @@ -1,7 +1,7 @@ { "test": "standby_secn_node", "name": "standby secondary master node (and online again)", - "purpose": [ "standby", "maintenance", "secondary", "node", "master" ], + "purpose": [ "angi", "ScaleOut", "standby", "maintenance", "secondary", "node", "master" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/standby_secn_worker_node.json b/test/json/angi-ScaleOut/standby_secn_worker_node.json index 9f1423e8..44b69776 100644 --- a/test/json/angi-ScaleOut/standby_secn_worker_node.json +++ b/test/json/angi-ScaleOut/standby_secn_worker_node.json @@ -1,7 +1,7 @@ { "test": "standby_secn_worker_node", "name": "standby secondary worker node (and online again)", - "purpose": [ "standby", "maintenance", "secondary", "node", "worker" ], + "purpose": [ "angi", "ScaleOut", "standby", "maintenance", "secondary", "node", "worker" ], "start": "prereq10", "steps": [ { From 3d298b5aa9e669df1f28dc3cd9f303a5d82c1718 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 11:39:05 +0200 Subject: [PATCH 106/414] tester: angi-ScaleOut - tags 'angi' and 'ScaleUp' --- test/json/angi-ScaleUp/block_manual_takeover.json | 2 +- test/json/angi-ScaleUp/block_sr.json | 2 +- test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json | 2 +- test/json/angi-ScaleUp/defaults.json | 2 +- test/json/angi-ScaleUp/demo_kill_prim_inst.json | 2 +- test/json/angi-ScaleUp/flap.json | 2 +- test/json/angi-ScaleUp/flop.json | 2 +- test/json/angi-ScaleUp/flup.json | 2 +- test/json/angi-ScaleUp/free_log_area.json | 2 +- test/json/angi-ScaleUp/kill_prim_indexserver.json | 2 +- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_node.json | 2 +- test/json/angi-ScaleUp/kill_secn_indexserver.json | 2 +- test/json/angi-ScaleUp/kill_secn_inst.json | 2 +- test/json/angi-ScaleUp/kill_secn_node.json | 2 +- test/json/angi-ScaleUp/nop.json | 2 +- test/json/angi-ScaleUp/one_stable_hour.json | 2 +- test/json/angi-ScaleUp/properties.json | 2 +- test/json/angi-ScaleUp/restart_cluster.json | 2 +- test/json/angi-ScaleUp/restart_cluster_hana_running.json | 2 +- test/json/angi-ScaleUp/restart_cluster_turn_hana.json | 2 +- test/json/angi-ScaleUp/standby_prim_node.json | 2 +- test/json/angi-ScaleUp/standby_secn_node.json | 2 +- 25 files changed, 25 insertions(+), 25 deletions(-) diff --git a/test/json/angi-ScaleUp/block_manual_takeover.json b/test/json/angi-ScaleUp/block_manual_takeover.json index 33d2b403..e84cb056 100644 --- a/test/json/angi-ScaleUp/block_manual_takeover.json +++ b/test/json/angi-ScaleUp/block_manual_takeover.json @@ -1,7 +1,7 @@ { "test": "block_manual_takeover", "name": "blocked manual takeover", - "purpose": [ "maintenace", "admin", "block", "susTkOver", "hadr" ], + "purpose": [ "angi", "ScaleUp", "maintenace", "admin", "block", "susTkOver", "hadr" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/block_sr.json b/test/json/angi-ScaleUp/block_sr.json index 469ef4a8..a8aaebc4 100644 --- a/test/json/angi-ScaleUp/block_sr.json +++ b/test/json/angi-ScaleUp/block_sr.json @@ -1,7 +1,7 @@ { "test": "block_sr", "name": "block sr and check SFAIL attribute; unblock to recover", - "purpose": [ "block", "primary", "secondary", "sr", "hadr", "susHanaSR" ], + "purpose": [ "angi", "ScaleUp", "block", "primary", "secondary", "sr", "hadr", "susHanaSR" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json index d76bf79b..4bb28d38 100644 --- a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json @@ -1,7 +1,7 @@ { "test": "block_sr_and_freeze_prim_fs", "name": "block_sr_and_freeze_prim_fs", - "purpose": [ "maintenace", "admin", "block", "fs", "susHanaSR", "hadr" ], + "purpose": [ "angi", "ScaleUp", "maintenace", "admin", "block", "fs", "susHanaSR", "hadr" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/defaults.json b/test/json/angi-ScaleUp/defaults.json index 2cd4399e..027ed8d8 100644 --- a/test/json/angi-ScaleUp/defaults.json +++ b/test/json/angi-ScaleUp/defaults.json @@ -1,7 +1,7 @@ { "opMode": "logreplay", "srMode": "sync", - "purpose": [ "defaults" ], + "purpose": [ "angi", "ScaleUp", "defaults" ], "checkPtr": { "globalUp": [ "topology == ScaleUp" diff --git a/test/json/angi-ScaleUp/demo_kill_prim_inst.json b/test/json/angi-ScaleUp/demo_kill_prim_inst.json index 7b39b22f..914ad178 100644 --- a/test/json/angi-ScaleUp/demo_kill_prim_inst.json +++ b/test/json/angi-ScaleUp/demo_kill_prim_inst.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", - "purpose": [ "demo", "kill", "primary", "instance" ], + "purpose": [ "angi", "ScaleUp", "demo", "kill", "primary", "instance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/flap.json b/test/json/angi-ScaleUp/flap.json index 4fcb630e..63505db0 100644 --- a/test/json/angi-ScaleUp/flap.json +++ b/test/json/angi-ScaleUp/flap.json @@ -1,7 +1,7 @@ { "test": "flap", "name": "flap - test the new test parser", - "purpose": [ "parser", "tester", "sleep", "stability" ], + "purpose": [ "angi", "ScaleUp", "angi", "ScaleUp", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/flop.json b/test/json/angi-ScaleUp/flop.json index 7acb7738..509c9da8 100644 --- a/test/json/angi-ScaleUp/flop.json +++ b/test/json/angi-ScaleUp/flop.json @@ -1,7 +1,7 @@ { "test": "flop", "name": "flop - this test should NOT pass successfully", - "purpose": [ "fail", "parser", "sleep", "tester" ], + "purpose": [ "angi", "ScaleUp", "fail", "parser", "sleep", "tester" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/flup.json b/test/json/angi-ScaleUp/flup.json index b169c78f..c7c6760d 100644 --- a/test/json/angi-ScaleUp/flup.json +++ b/test/json/angi-ScaleUp/flup.json @@ -1,7 +1,7 @@ { "test": "flup", "name": "flup - like nop but very short sleep only - only for checking the test engine", - "purpose": [ "ok", "parser", "tester", "sleep" ], + "purpose": [ "angi", "ScaleUp", "ok", "parser", "tester", "sleep" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/free_log_area.json b/test/json/angi-ScaleUp/free_log_area.json index 8038604e..50f4836c 100644 --- a/test/json/angi-ScaleUp/free_log_area.json +++ b/test/json/angi-ScaleUp/free_log_area.json @@ -1,7 +1,7 @@ { "test": "free_log_area", "name": "free hana log area on primary site", - "purpose": [ "maintenance", "primary", "logarea", "stability" ], + "purpose": [ "angi", "ScaleUp", "maintenance", "primary", "logarea", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver.json b/test/json/angi-ScaleUp/kill_prim_indexserver.json index d07caf84..e045eaa8 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver", "name": "Kill primary indexserver", - "purpose": [ "kill", "primary", "indexserver" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index c4c2acc1..14ac3368 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver_fencing", "name": "Kill primary indexserver with on-fail fencing", - "purpose": [ "kill", "primary", "indexserver", "fencing_on-fail" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver", "fencing_on-fail" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_inst.json b/test/json/angi-ScaleUp/kill_prim_inst.json index 2939aca8..d063e85e 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst.json +++ b/test/json/angi-ScaleUp/kill_prim_inst.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", - "purpose": [ "kill", "primary", "instance" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index 85c88faf..d71ec621 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst_fencing", "name": "Kill primary instance with on-fail fencing", - "purpose": [ "kill", "primary", "instance", "fencing_on-fail" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance", "fencing_on-fail" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index 71573a73..c46ab116 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -1,7 +1,7 @@ { "test": "kill_prim_node", "name": "Kill primary node", - "purpose": [ "kill", "primary", "node" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "node" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver.json b/test/json/angi-ScaleUp/kill_secn_indexserver.json index ca7ececf..2b72f4c4 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary indexserver", - "purpose": [ "kill", "primary", "indexserver" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_inst.json b/test/json/angi-ScaleUp/kill_secn_inst.json index bb524cee..075641ee 100644 --- a/test/json/angi-ScaleUp/kill_secn_inst.json +++ b/test/json/angi-ScaleUp/kill_secn_inst.json @@ -1,7 +1,7 @@ { "test": "kill_secn_inst", "name": "Kill secondary instance", - "purpose": [ "kill", "primary", "instance" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_node.json b/test/json/angi-ScaleUp/kill_secn_node.json index 2c8b918c..64095535 100644 --- a/test/json/angi-ScaleUp/kill_secn_node.json +++ b/test/json/angi-ScaleUp/kill_secn_node.json @@ -1,7 +1,7 @@ { "test": "kill_secn_node", "name": "Kill secondary node", - "purpose": [ "kill", "secondary", "node" ], + "purpose": [ "angi", "ScaleUp", "kill", "secondary", "node" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/nop.json b/test/json/angi-ScaleUp/nop.json index b6d9daff..31c09216 100644 --- a/test/json/angi-ScaleUp/nop.json +++ b/test/json/angi-ScaleUp/nop.json @@ -1,7 +1,7 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", - "purpose": [ "ok", "parser", "tester", "sleep", "stability" ], + "purpose": [ "angi", "ScaleUp", "ok", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/one_stable_hour.json b/test/json/angi-ScaleUp/one_stable_hour.json index 815d4eab..69763fb0 100644 --- a/test/json/angi-ScaleUp/one_stable_hour.json +++ b/test/json/angi-ScaleUp/one_stable_hour.json @@ -1,7 +1,7 @@ { "test": "one_stable_hour", "name": "one_stable_hour - like nop check regulary for one hour that there is no fault", - "purpose": [ "ok", "parser", "tester", "sleep", "stability" ], + "purpose": [ "angi", "ScaleUp", "ok", "parser", "tester", "sleep", "stability" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/properties.json b/test/json/angi-ScaleUp/properties.json index da0036b0..87ab9c69 100644 --- a/test/json/angi-ScaleUp/properties.json +++ b/test/json/angi-ScaleUp/properties.json @@ -1,5 +1,5 @@ { - "purpose": [ "properties" ], + "purpose": [ "angi", "ScaleUp", "properties" ], "sid": "HA1", "instNo": "00", "mstResource": "mst_SAPHanaCon_HA1_HDB00", diff --git a/test/json/angi-ScaleUp/restart_cluster.json b/test/json/angi-ScaleUp/restart_cluster.json index 42be2178..28267fdb 100644 --- a/test/json/angi-ScaleUp/restart_cluster.json +++ b/test/json/angi-ScaleUp/restart_cluster.json @@ -1,7 +1,7 @@ { "test": "restart_cluster", "name": "stop and restart cluster and hana", - "purpose": [ "restart", "cluster", "maintenance" ], + "purpose": [ "angi", "ScaleUp", "restart", "cluster", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/restart_cluster_hana_running.json b/test/json/angi-ScaleUp/restart_cluster_hana_running.json index 216e4e0a..692b8a23 100644 --- a/test/json/angi-ScaleUp/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/restart_cluster_hana_running.json @@ -1,7 +1,7 @@ { "test": "restart_cluster_hana_running", "name": "stop and restart cluster, keep hana running", - "purpose": [ "restart", "cluster", "maintenance" ], + "purpose": [ "angi", "ScaleUp", "restart", "cluster", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/restart_cluster_turn_hana.json b/test/json/angi-ScaleUp/restart_cluster_turn_hana.json index 29d4293b..1d6d7335 100644 --- a/test/json/angi-ScaleUp/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleUp/restart_cluster_turn_hana.json @@ -1,7 +1,7 @@ { "test": "restart_cluster_turn_hana", "name": "stop cluster, turn hana, start cluster", - "purpose": [ "restart", "cluster", "maintenance" ], + "purpose": [ "angi", "ScaleUp", "restart", "cluster", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/standby_prim_node.json b/test/json/angi-ScaleUp/standby_prim_node.json index c7d5d7d1..f1c38ff3 100644 --- a/test/json/angi-ScaleUp/standby_prim_node.json +++ b/test/json/angi-ScaleUp/standby_prim_node.json @@ -1,7 +1,7 @@ { "test": "standby_primary_node", "name": "standby primary node (and online again)", - "purpose": [ "standby", "primary", "node", "maintenance" ], + "purpose": [ "angi", "ScaleUp", "standby", "primary", "node", "maintenance" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/standby_secn_node.json b/test/json/angi-ScaleUp/standby_secn_node.json index 0af4db76..139ceb6a 100644 --- a/test/json/angi-ScaleUp/standby_secn_node.json +++ b/test/json/angi-ScaleUp/standby_secn_node.json @@ -1,7 +1,7 @@ { "test": "standby_secondary_node", "name": "standby secondary node (and online again)", - "purpose": [ "standby", "secondary", "node", "maintenance" ], + "purpose": [ "angi", "ScaleUp", "standby", "secondary", "node", "maintenance" ], "start": "prereq10", "steps": [ { From 593b8e53ad53a00a0a3ddb69073a524c47a99924 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 11:48:17 +0200 Subject: [PATCH 107/414] SAPHanaSR-tester.7: description --- man-tester/SAPHanaSR-tester.7 | 40 ++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/man-tester/SAPHanaSR-tester.7 b/man-tester/SAPHanaSR-tester.7 index c933b477..7c715952 100644 --- a/man-tester/SAPHanaSR-tester.7 +++ b/man-tester/SAPHanaSR-tester.7 @@ -10,40 +10,41 @@ SAPHanaSR-tester \- Functional testing for SAPHanaSR clusters. .\" SAPHanaSR-tester is a suite of tools for automating functional tests of SAP HANA system replication HA clusters. - +.PP .B SAPHanaSR-tester is shipped as technology preview. - +.PP The package is focussing on functional tests for the SAPHanaSR resource agents, -the related configuration of the Linux cluster and the SAP HANA database pair. +alert agents, HA/DR provider hook scripts, the related configuration of the Linux +cluster and the SAP HANA database pair. In addition to this functional tests, specific tests for the underlying infrastructure, Linux OS and cluster as well as the database need to be done. See manual page SAPHanaSR-tests-basic-cluster(7). - +.PP SAPHanaSR-tester provides predefined functional tests for scale-up and scale-out scenarios. This tests could be run out-of-the-box. The predefined tests also can be used for creating new test definitions. So parameters for timing and expected attributes can be customised. - +.PP The test cases are defined in dedicated files. Each test is separated into steps. For each step there is an expectation for SAPHanaSR attributes, which need to match. Additionally each step defines the 'next' step and an optional action to be triggered if the step status has been reached (all expectations match). - +.PP The tests usually are self-contained and can run in any order. Entry point always is a clean and idle Linux cluster and a clean HANA pair in sync. Same is true for the final state. Of course the HANA sites may change during the test. Consequently, each predefined test starts and ends with checking the clean status of the HANA pair. - +.PP For tests involving complex actions on the cluster nodes, predefined shell scripts are executed remotely. - +.PP Input - Processing - Output .\" TODO - +.PP \fB*\fP Input: Test cases and test system properties - +.PP a. Test cases are defined in JSON files. Each case is described in one file. It also can reference to defaults.json for common status definitions. Each step contains an expectation for SAPHanaSR attributes, which need to @@ -52,23 +53,23 @@ Each test step status is described by one or more conditions. Each condition is described by one comparision. See manual page SAPHanaSR-tests-syntax(5) for details, see also the EXAMPLES section in SAPHanaSR-tests-angi-ScaleUp(7) and SAPHanaSR-tests-angi-ScaleOut(7). - +.PP b. Test system properties are defined in JSON files. This properties are decribing the test system. The properties are separated from the test cases, because they need to be adapted for each system. The values are static during test run and common for all test on one system. The test cases on the other hand are mostly similar for all test systems. See manual page SAPHanaSR-tests-syntax(5) for details, see also example below. - +.PP \fB*\fP Processing: - +.PP .\" TODO SAPHanaSR-testCluster .\" TODO shell scripts shiped with SAPhanaSR-tester, e.g. sct_test_ .\" TODO custom scripts and test automation frameworks See manual page SAPHanaSR-testCluster(8) and SAPHanaSR-tests-description(7). - +.PP \fB*\fP Output: Test results - +.PP .\" TODO output of SAPHanaSR-testCluster See manual page SAPHanaSR-testCluster(8) and SAPHanaSR-tests-description(7). .PP @@ -166,13 +167,13 @@ while read; do echo $REPLY; grep "name" $REPLY | head -1; done functional tests for SAPHanaSR-angi scale-up scenarios. .TP /usr/share/SAPHanaSR-tester/json/angi-ScaleOut/ -functional tests for SAPHanaSR-angi scale-out ERP scenarios, without HANA host auto-autofailover. +functional tests for SAPHanaSR-angi scale-out ERP scenarios, without HANA host auto-failover. .TP /usr/share/SAPHanaSR-tester/json/angi-ScaleOut-BW/ -functional tests for SAPHanaSR-angi scale-out BW scenarios, with HANA host auto-autofailover. Not yet implemented. +functional tests for SAPHanaSR-angi scale-out BW scenarios, with HANA host auto-failover. Not yet implemented. .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleUp/ -not yet implemented. +functional tests for SAPHanaSR scale-up scenarios. .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleOut/ not yet implemented. @@ -248,7 +249,8 @@ Please report any other feedback and suggestions to feedback@suse.com. .\" .SH SEE ALSO \fBSAPHanaSR-testCluster\fP(8) , \fBSAPHanaSR-tests-syntax\fP(5) , -\fBSAPHanaSR-tests-description\fP(7) , +\fBSAPHanaSR-tests-description\fP(7) , +\fBSAPHanaSR-tests-description_on-fail-fence\fP(7) , \fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-tests-angi-ScaleOut\fP(7) , \fBSAPHanaSR-tests-classic-ScaleUp\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , \fBcrm_mon\fP(8) , From 802583af0e3d97ccca88871e87440cce760a94b0 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 11:48:51 +0200 Subject: [PATCH 108/414] tester: angi-ScaleUp - purpose tags added for remaining json files --- test/json/angi-ScaleUp/freeze_prim_fs.json | 1 + test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json | 1 + test/json/angi-ScaleUp/maintenance_cluster_hana_running.json | 1 + test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json | 1 + test/json/angi-ScaleUp/maintenance_with_standby_nodes.json | 1 + test/json/angi-ScaleUp/split_brain_prio.json | 1 + 6 files changed, 6 insertions(+) diff --git a/test/json/angi-ScaleUp/freeze_prim_fs.json b/test/json/angi-ScaleUp/freeze_prim_fs.json index 7a79452c..ea330081 100644 --- a/test/json/angi-ScaleUp/freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/freeze_prim_fs.json @@ -1,6 +1,7 @@ { "test": "freeze_prim_fs", "name": "freeze sap hana fs on primary node", + "purpose": [ "angi", "ScaleUp", "fs", "freeze", "primary", "master", "node" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json b/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json index c65f7e69..ea118670 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json @@ -1,6 +1,7 @@ { "test": "maintenance_cluster_bootstrap", "name": "delete cluster config and begin from scratch", + "purpose": [ "angi", "ScaleUp", "maintenance", "config", "primary", "secondary", "cluster" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json b/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json index 00c44e38..5a088200 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json @@ -1,6 +1,7 @@ { "test": "maintenance_cluster_hana_running", "name": "stop and restart cluster, keep hana running", + "purpose": [ "angi", "ScaleUp", "maintenance", "restart", "primary", "secondary", "cluster", "hana" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json index 2c821542..9f35086c 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json @@ -1,6 +1,7 @@ { "test": "maintenance_cluster_turn_hana", "name": "maintenance_cluster_turn_hana", + "purpose": [ "angi", "ScaleUp", "maintenance", "restart", "primary", "secondary", "cluster", "hana" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json b/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json index 8d4175ec..a79c08bd 100644 --- a/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json @@ -1,6 +1,7 @@ { "test": "maintenance_with_standby_nodes", "name": "standby+online secondary then standby+online primary", + "purpose": [ "angi", "ScaleUp", "maintenance", "standby", "primary", "secondary", "cluster" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/split_brain_prio.json b/test/json/angi-ScaleUp/split_brain_prio.json index 0f3beff7..ed99ece7 100644 --- a/test/json/angi-ScaleUp/split_brain_prio.json +++ b/test/json/angi-ScaleUp/split_brain_prio.json @@ -1,6 +1,7 @@ { "test": "split_brain_prio", "name": "split brain with prio fencing to simulate fence of secondary", + "purpose": [ "angi", "ScaleUp", "split-brain", "primary", "secondary", "cluster", "hana" ], "start": "prereq10", "steps": [ { From 2a0bc2ec88cfe11e0397773e67b2be8d163f5d88 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 11:54:27 +0200 Subject: [PATCH 109/414] SAPHanaSR-testCluster.8 SAPHanaSR-tester.7 SAPHanaSR-tests-syntax.5: typos, details --- man-tester/SAPHanaSR-testCluster.8 | 4 +-- man-tester/SAPHanaSR-tester.7 | 2 +- man-tester/SAPHanaSR-tests-syntax.5 | 38 +++++++++++++++-------------- 3 files changed, 23 insertions(+), 21 deletions(-) diff --git a/man-tester/SAPHanaSR-testCluster.8 b/man-tester/SAPHanaSR-testCluster.8 index 385ac46d..48716bbd 100644 --- a/man-tester/SAPHanaSR-testCluster.8 +++ b/man-tester/SAPHanaSR-testCluster.8 @@ -127,10 +127,10 @@ the program itself. functional tests for SAPHanaSR-angi scale-up scenarios. .TP /usr/share/SAPHanaSR-tester/json/angi-ScaleOut/ -functional tests for SAPHanaSR-angi scale-out ERP scenarios, without HANA host auto-autofailover. +functional tests for SAPHanaSR-angi scale-out ERP scenarios, without HANA host auto-failover. .TP /usr/share/SAPHanaSR-tester/json/angi-ScaleOut-BW/ -functional tests for SAPHanaSR-angi scale-out BW scenarios, with HANA host auto-autofailover. Not yet implemented. +functional tests for SAPHanaSR-angi scale-out BW scenarios, with HANA host auto-failover. Not yet implemented. .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleUp/ functional tests for SAPHanaSR classic scale-up scenarios. diff --git a/man-tester/SAPHanaSR-tester.7 b/man-tester/SAPHanaSR-tester.7 index 7c715952..fd124d2b 100644 --- a/man-tester/SAPHanaSR-tester.7 +++ b/man-tester/SAPHanaSR-tester.7 @@ -173,7 +173,7 @@ functional tests for SAPHanaSR-angi scale-out ERP scenarios, without HANA host a functional tests for SAPHanaSR-angi scale-out BW scenarios, with HANA host auto-failover. Not yet implemented. .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleUp/ -functional tests for SAPHanaSR scale-up scenarios. +functional tests for SAPHanaSR classic scale-up scenarios. .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleOut/ not yet implemented. diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index 0e84e27a..00051f62 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -10,17 +10,17 @@ SAPHanaSR-tests-syntax \- Syntax for SAPHanaSR test cases and properties. .\" SAPHanaSR-tester is a suite of tools for automating functional tests of SAP HANA system replication HA clusters. - +.PP Test cases are defined in dedicated files. Each test is separated into steps. For each step there is an expectation for SAPHanaSR attributes, which need to match. Additionally each step defines the 'next' step and an optional action to be triggered if the step status has been reached (all expectations match). See section SYNTAX below for comparators and other details. - +.PP For tests involving complex actions on the cluster nodes, predefined shell scripts are executed remotely. .\" TODO state machine. - +.PP See manual pages SAPHanaSR-tests-angi-ScaleUp(7) and SAPHanaSR-tests-angi-ScaleOut(7) for predefined test cases. .PP @@ -29,11 +29,11 @@ SAPHanaSR-tests-angi-ScaleOut(7) for predefined test cases. .\" Test cases are defined in JSON files. Each test case is described in one file. It also can reference to defaults.json for common status definitions. - +.PP TODO on first level [ test | name | start | comment | steps ] .\" TODO comment or remark? - +.PP .TP \fBtest\fP test identifier, unique @@ -51,10 +51,10 @@ comment, just a string test steps, see below .PP \fBsteps\fP - +.PP TODO [ step | name | next | loop | wait | post | comment | ] - +.PP .TP \fBstep\fP step identifier, unique @@ -76,16 +76,16 @@ comment, just a string .TP \fBstatus\fP status definition, see below - +.PP .PP \fB*\fP Test step status .PP Each step contains an expectation for SAPHanaSR attributes, which need to match. The attributes are arranged along the CIB and SAPHanaSR-showAttr sections. The - +.PP [ pHost | sHost | pWorker | sWorker | pSite | sSite | pGlobal | sGlobal ] - +.PP .TP pHost, sHost, pWorker, sWorker node attributes @@ -286,7 +286,7 @@ This properties are decribing the test system. The properties are separated from the test cases, because they need to be adapted for each system. The values are static during test run and common for all test on one system. The test cases on the other hand are mostly similar for all test systems. - +.PP TODO .br { @@ -304,11 +304,11 @@ TODO "userKey": "\fISTRING\fP" .br } - +.PP See also EXAMPLES section in manual page SAPHanaSR-tester(7). - +.PP \fB*\fP Test results - +.PP See manual page SAPHanaSR-testCluster(8) for TODO .PP .\" @@ -324,13 +324,13 @@ TODO functional tests for SAPHanaSR-angi scale-up scenarios. .TP /usr/share/SAPHanaSR-tester/json/angi-ScaleOut/ -functional tests for SAPHanaSR-angi scale-out ERP scenarios, without HANA host auto-autofailover. +functional tests for SAPHanaSR-angi scale-out ERP scenarios, without HANA host auto-failover. .TP /usr/share/SAPHanaSR-tester/json/angi-ScaleOut-BW/ -functional tests for SAPHanaSR-angi scale-out BW scenarios, with HANA host auto-autofailover. Not yet implemented. +functional tests for SAPHanaSR-angi scale-out BW scenarios, with HANA host auto-failover. Not yet implemented. .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleUp/ -not yet implemented. +functional tests for SAPHanaSR classic scale-up scenarios. .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleOut/ not yet implemented. @@ -359,7 +359,9 @@ Please report any other feedback and suggestions to feedback@suse.com. .SH SEE ALSO \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , \fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-tests-angi-ScaleOut\fP(7) , -\fBSAPHanaSR-tests-definition\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , +\fBSAPHanaSR-tests-definition\fP(7) , +\fBSAPHanaSR-tests-definition_on-fail-fence\fP(7) , +\fBSAPHanaSR-showAttr\fP(8) , .br https://documentation.suse.com/sbp/sap/ , .br From 712c1df7a47e17b4041b13821b8d3d3fbb916f6e Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 11:59:37 +0200 Subject: [PATCH 110/414] SAPHanaSR-tests-syntax.5: purpose --- man-tester/SAPHanaSR-tests-syntax.5 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index 00051f62..af34c51c 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-syntax 5 "20 Nov 2023" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-syntax 5 "12 Jul 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-syntax \- Syntax for SAPHanaSR test cases and properties. @@ -31,7 +31,7 @@ Test cases are defined in JSON files. Each test case is described in one file. It also can reference to defaults.json for common status definitions. .PP TODO on first level -[ test | name | start | comment | steps ] +[ test | name | purpose | start | comment | steps ] .\" TODO comment or remark? .PP .TP @@ -41,6 +41,9 @@ test identifier, unique \fBname\fP test description .TP +\fBpurpose\fB +list of keywords, indicating which components and cases are tested +.TP \fBstart\fP name of step to start the test with .TP @@ -375,7 +378,7 @@ F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT -(c) 2023 SUSE LLC +(c) 2023-2024 SUSE LLC .br The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. .br From eaff080f6c4ddbd86363fd89e5e8b7615dd105b9 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 12:18:10 +0200 Subject: [PATCH 111/414] SAPHanaSR-testCluster.8: details --- man-tester/SAPHanaSR-testCluster.8 | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-testCluster.8 b/man-tester/SAPHanaSR-testCluster.8 index 48716bbd..62057925 100644 --- a/man-tester/SAPHanaSR-testCluster.8 +++ b/man-tester/SAPHanaSR-testCluster.8 @@ -144,8 +144,11 @@ not yet implemented. $PWD/.test_properties auto-generated properties file for called shell scripts. No need to touch. .TP -/usr/bin/ -TODO +/usr/bin/SAPHanaSR-showAttr +script SAPHanaSR-showAttr from SAPHanaSR-angi. +.TP +/usr/bin/sct_test_* +shell scripts for un-easy tasks on the cluster nodes. .PP .\" .SH REQUIREMENTS From 0a0d75fff1a0f7606542105646b6e4b4fb4adf55 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 12:26:18 +0200 Subject: [PATCH 112/414] SAPHanaSR-tests-classic-ScaleUp.7: files --- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 4d28ed50..ad5529f1 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -94,7 +94,7 @@ Set secondary node standby and online again. .\" .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleUp/ -functional tests for SAPHanaSR scale-up scenarios. +functional tests for SAPHanaSR classic scale-up scenarios. .TP /usr/bin/sct_test_* shell scripts for un-easy tasks on the cluster nodes. From 025c4f8352f0610ead96b1982f7ba0797157b5f2 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 15:31:16 +0200 Subject: [PATCH 113/414] freeze_prim_master_nfs_fencing_alert.json: adapted timeouts --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 2e435b9d..036de896 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -50,7 +50,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 140, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", @@ -74,7 +74,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 480, + "loop": 360, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -106,7 +106,7 @@ "step": "final60", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", From a432a7e1c433a3697dce37a9920d2d33c39909cb Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 15:37:35 +0200 Subject: [PATCH 114/414] freeze_prim_master_nfs_fencing_alert.json: adapted timeouts --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 036de896..0019f8a6 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -50,7 +50,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 240, + "loop": 300, "wait": 2, "pWorker": [ "clone_state is None", @@ -62,7 +62,7 @@ "step": "step40", "name": "pmaster fenced", "next": "step50", - "loop": 240, + "loop": 300, "wait": 2, "pHost": [ "clone_state is None", From c62799291d6b77066a0423c8caf85481d6e995bc Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 15:51:15 +0200 Subject: [PATCH 115/414] kill_prim_worker_indexserver_fencing_alert.json kill_prim_worker_inst_fencing_alert.json: timeouts --- .../kill_prim_worker_indexserver_fencing_alert.json | 2 +- .../angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index eb3ecb9d..640ef56e 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -51,7 +51,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 140, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index 37a894f9..e2010bc0 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -51,7 +51,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 140, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", @@ -75,7 +75,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 480, + "loop": 360, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ From 6d93d9045b9442d8c25d48064c3bc1fffc71400c Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 12 Jul 2024 16:30:07 +0200 Subject: [PATCH 116/414] tester: SAPHanaSR-testSelect - test selector added --- test/tester/SAPHanaSR-testSelect | 104 +++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100755 test/tester/SAPHanaSR-testSelect diff --git a/test/tester/SAPHanaSR-testSelect b/test/tester/SAPHanaSR-testSelect new file mode 100755 index 00000000..b691a2b6 --- /dev/null +++ b/test/tester/SAPHanaSR-testSelect @@ -0,0 +1,104 @@ +#!/usr/bin/python3 +# pylint: disable=consider-using-f-string +# pylint: disable=fixme +""" + SAPHanaSR-testSelect + Author: Fabian Herschel, July 2024 + License: GNU General Public License (GPL) + Copyright: (c) 2024 SUSE LLC +""" + +# pylint: disable=unused-import +import json +import argparse +#sys.path.insert(1, '/usr/lib/SAPHanaSR-tester') +#from saphana_sr_test import SaphanasrTest + +parser = argparse.ArgumentParser() +parser.add_argument("--file", nargs="*", help="specify the json file (s)") +parser.add_argument("--select", nargs="*", help="selection by purpose key words") +# +# --file : one or multiple occurences +# --select : one or more occurences +# +# proposal for a purpose-selection +# --select='primary cluster' : selects a test, if purposes contains primary AND cluster" +# --select='primary '!cluster' : selects a test, if purposes contains primary BUT NOT cluster +# --select='primary' "cluster' : selects a test, if purposes contains primary (first select) OR cluster (second select) +# --select='hugo' '!hugo' : selects a test, if purposes contains hugo or not (means that matches all tests purpose definition) +# +args = parser.parse_args() +json_file = None +quiet = False + +if args.file: + #print("PARAM: files: {}\n".format(args.file)) + pass + +if args.select: + # print("PARAM: select: {}\n".format(args.select)) + pass + +if args.file is None: + print(f"file not specified") + exit(1) + +if args.select is None: + print(f"select not specified") + exit(1) + +for json_file in args.file: + json_data = None + try: + with open(json_file, encoding="utf-8") as json_fh: + try: + json_data = (json.load(json_fh)) + except json.decoder.JSONDecodeError as e_jerr: + print(f"json error n file {json_file}: ({e_jerr})") + exit(1) + except FileNotFoundError as e_ferr: + print(f"file not found ({e_ferr})") + exit(1) + except PermissionError as e_ferr: + print(f"permisson error ({e_ferr})") + exit(1) + match = False + if json_data: + # print(f"file {json_file} loaded)") + if "purpose" in json_data: + # print(f"purpose: <<{json_data['purpose']}>>") + for m_select in args.select: + s_match=True + for single_expression in m_select.split(): + a_match = False + if single_expression[0] == "!": + if single_expression[1:] in json_data['purpose']: + s_match=False + else: + a_match = True + else: + if single_expression not in json_data['purpose']: + s_match=False + else: + a_match = True + + #if a_match: + # print(f"file {json_file} matches single_expression '{single_expression}'") + #else: + # print(f"file {json_file} does not match single_expression '{single_expression}'") + if s_match: + #print(f"file {json_file} matches select '{m_select}'") + match = True + else: + #print(f"file {json_file} does not match select '{m_select}'") + pass + if match: + #print(f"file {json_file} finally selected") + print(json_file) + else: + # print(f"file {json_file} finally not selected") + pass + +exit(0) + + From d734622174239b7b6777a3b1a8529a0ab088fe32 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 12 Jul 2024 16:34:20 +0200 Subject: [PATCH 117/414] kill_prim_indexserver_fencing_alert.json kill_prim_inst_fencing_alert.json kill_prim_node_fencing_alert.json kill_prim_worker_indexserver_fencing_alert.json kill_prim_worker_node_fencing_alert.json: aligned timeouts --- .../angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 4 ++-- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 6 +++--- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 4 ++-- .../kill_prim_worker_indexserver_fencing_alert.json | 4 ++-- .../angi-ScaleOut/kill_prim_worker_node_fencing_alert.json | 4 ++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index c892d71d..5bfa8574 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -52,7 +52,7 @@ "step": "step30", "name": "pmaster fenced", "next": "step40", - "loop": 240, + "loop": 300, "wait": 2, "pHost": [ "clone_state is None", @@ -64,7 +64,7 @@ "step": "step40", "name": "pworker fenced", "next": "step50", - "loop": 240, + "loop": 300, "wait": 2, "pWorker": [ "clone_state is None", diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 42f1bcac..ba6629ea 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -52,7 +52,7 @@ "step": "step30", "name": "pmaster fenced", "next": "step40", - "loop": 240, + "loop": 300, "wait": 2, "pHost": [ "clone_state is None", @@ -64,7 +64,7 @@ "step": "step40", "name": "pworker fenced", "next": "step50", - "loop": 240, + "loop": 300, "wait": 2, "pWorker": [ "clone_state is None", @@ -76,7 +76,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 480, + "loop": 360, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 82cd0c25..75253359 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -50,7 +50,7 @@ "step": "step30", "name": "pmaster fenced", "next": "step40", - "loop": 120, + "loop": 300, "wait": 2, "pHost": [ "clone_state is None", @@ -62,7 +62,7 @@ "step": "step40", "name": "pworker fenced", "next": "step50", - "loop": 120, + "loop": 300, "wait": 2, "pWorker": [ "clone_state is None", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index 640ef56e..ddd72ee5 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -51,7 +51,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 240, + "loop": 300, "wait": 2, "pWorker": [ "clone_state is None", @@ -63,7 +63,7 @@ "step": "step40", "name": "pmaster fenced", "next": "step50", - "loop": 240, + "loop": 300, "wait": 2, "pHost": [ "clone_state is None", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 4051b3a2..9533d774 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -50,7 +50,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 120, + "loop": 300, "wait": 2, "pWorker": [ "clone_state is None", @@ -62,7 +62,7 @@ "step": "step40", "name": "pmaster fenced", "next": "step50", - "loop": 120, + "loop": 300, "wait": 2, "pHost": [ "clone_state is None", From 191e131d0a8a6e5a011c24888fe964836b993f03 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Tue, 16 Jul 2024 20:50:36 +0200 Subject: [PATCH 118/414] angi: tester: saphana_sr_test.py - first step to implement fatal-condition (what never should happen during a step) --- test/tester/saphana_sr_test.py | 96 ++++++++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 10 deletions(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index 5ca77375..503df01a 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -25,7 +25,7 @@ class SaphanasrTest: """ class to check SAP HANA cluster during tests """ - version = "1.2.14" + version = "1.2.99.0-beta" def message(self, msg, **kwargs): """ @@ -79,6 +79,7 @@ def __init__(self, *args, **kwargs): self.dict_sr = {} self.test_data = {} self.topolo = { 'pSite': None, 'sSite': None, 'pHost': None, 'sHost': None } + self.topo_translate = { 'global': 'Global', 'pSite': 'Site', 'sSite': 'Site', 'pHost': 'Host', 'sHost': 'Host' } self.debug("INIT: tester version: {}".format(self.version)) if cmdparse: self.debug("DEBUG: lib parses cmdline") @@ -330,15 +331,26 @@ def write_test_properties(self, topology): test_prop_fh.write(f"userkey={self.test_data.get('userKey','')}\n") test_prop_fh.flush() - def __add_failed__(self, area_object, key_val_reg): + def __add_failed__(self, area_object, key_val_reg, **kwargs): """ document failed checks """ + fatal_check = False + fatal_name = "" + if 'fatal_check' in kwargs: + fatal_check = kwargs["fatal_check"] + if 'fatal_name' in kwargs: + fatal_name = kwargs["fatal_name"] + ( _area, _obj ) = area_object if 'failed' in self.run: _l_failed = self.run['failed'] + if fatal_check: + _l_header = f"{_area}={_obj}: " + else: + _l_header = "" else: - ( _area, _obj ) = area_object - _l_failed = f"{_area}={_obj}: " + _l_failed = "" + _l_header = f"{fatal_name}{_area}={_obj}: " ( _key, _val, _reg, _comp ) = key_val_reg - _l_failed += f'expect "{_key} {_comp} {_reg}", have "{_val}"; ' + _l_failed += f'{_l_header} expect "{_key} {_comp} {_reg}", have "{_val}"; ' self.run['failed'] = _l_failed self.debug("DEBUG: add-failed: " + self.__get_failed__(), stdout=False) @@ -353,7 +365,7 @@ def __get_failed__(self): return self.run['failed'] return None - def run_checks(self, checks, area_name, object_name, step_step ): + def run_checks(self, checks, area_name, object_name, step_step, **kwargs ): """ run all checks for area and object params: checks: list of checks to be run @@ -361,9 +373,17 @@ def run_checks(self, checks, area_name, object_name, step_step ): object_name: aobject inside area to be checked (ROT, WDF, pizbuin01) step_step: TBD """ + fatal_check = False + fatal_name = "" + fail_msg = "MISSED" + if 'fatal_check' in kwargs: + fatal_check = kwargs["fatal_check"] + if 'fatal_name' in kwargs: + fatal_name = kwargs["fatal_name"] l_sr = self.dict_sr check_result = -1 - self.__reset_failed__() + if fatal_check == False: + self.__reset_failed__() for single_check in checks: # match # TODO: maybe allow flexible whitespace @@ -450,7 +470,7 @@ def run_checks(self, checks, area_name, object_name, step_step ): if c_err == 1: if not found: l_val = None - self.__add_failed__((area_name, object_name), (c_key, l_val, c_reg_exp, c_comp)) + self.__add_failed__((area_name, object_name), (c_key, l_val, c_reg_exp, c_comp), fatal_check=fatal_check, fatal_name=fatal_name) check_result = max(check_result, 1) self.debug(f"DEBUG: FAILED: ckey:{c_key} c_comp:{c_comp} c_reg_exp:{c_reg_exp} c_reg_exp_a:{c_reg_exp_a} c_reg_exp_b:{c_reg_exp_b}") else: @@ -463,8 +483,9 @@ def run_checks(self, checks, area_name, object_name, step_step ): check_result = max(check_result, 0) if (found == 0) and (check_result < 2): check_result = 2 - if self.config['dump_failures'] and 'failed' in self.run: - self.message(f"MISSED: step={step_step} {self.__get_failed__()}", stdout=False) + if fatal_check == False: + if self.config['dump_failures'] and 'failed' in self.run: + self.message(f"{fail_msg}: step={step_step} {self.__get_failed__()}", stdout=False) return check_result def process_topology_object(self, step, topology_object_name, area_name): @@ -482,6 +503,53 @@ def process_topology_object(self, step, topology_object_name, area_name): rc_checks = self.run_checks(checks, area_name, object_name, step.get('step','')) return rc_checks + def process_fatal_condition(self, step): + """ process_fatal_conditions + rc == 0 : no fatal condition matched + rc != 0 : at least one of the fatal packages (childs) mathed + """ + rc_condition = 0 + fail_msg = "FATAL" + step_step = step['step'] + if "fatalCondition" in step: + fc = step["fatalCondition"] + topolo = self.topolo + self.debug(f"DEBUG: TOPOLO {topolo}") + # + # process all fatalCondition childs + # + for child in fc: + self.__reset_failed__() + rc_child = 1 + # + # process only childs which are not reserved + # + if child not in ['next','comment','name']: + fc_child = fc[child] + self.message(f"DEBUG: fatalConditions: {child} dump {fc_child}") + # + # process all check-rules ( "name": [ "condition1" {,...} ] ) + # + rc_child = 0 + for top_obj_name in fc_child: + obj_name = topolo[top_obj_name] + if top_obj_name in self.topo_translate: + area_name = self.topo_translate[top_obj_name] + checks = fc_child[top_obj_name] + self.message(f"DEBUG: fatalConditions: area_name {area_name}, top_obj_name {top_obj_name}, obj_name {obj_name}, checks {checks}") + rc_checks = self.run_checks(checks, area_name, obj_name, step.get('step',''), fatal_check = True, fatal_name=child) + self.message(f"DEBUG: fatalConditions: {child} rc {rc_checks}") + rc_child = max(rc_child, rc_checks) + if rc_child == 0: + self.message(f"DEBUG: fatalConditions: {child} BREAK") + break + rc_condition = min(rc_condition, rc_child) + if rc_condition == 0: + if self.config['dump_failures'] and 'failed' in self.run: + self.message(f"{fail_msg}: step={step_step} {self.__get_failed__()}", stdout=False) + return rc_condition + + def process_step(self, step): """ process a single step including optional loops """ step_id = step['step'] @@ -515,6 +583,14 @@ def process_step(self, step): print(".", end='', flush=True) process_result = -1 self.read_saphana_sr() + if "fatalCondition" in step: + # self.message("STATUS: step {} to process fatalCondition".format(step_id)) + process_result = self.process_fatal_condition(step) + self.message("STATUS: step {} to processed fatalCondition with process_result {}".format(step_id, process_result)) + if process_result == 0: + self.message("STATUS: step {} failed with fatalCondition".format(step_id)) + process_result = 2 + break process_result = max ( self.process_topology_object(step, 'global', 'Global'), self.process_topology_object(step, 'pSite', 'Site'), From d57d8eefa866408fd6f3dbcb2bf9faf4d368034c Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 07:57:19 +0200 Subject: [PATCH 119/414] tester: package now also includes SAPHanaSR-testSelect --- SAPHanaSR-tester.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/SAPHanaSR-tester.spec b/SAPHanaSR-tester.spec index c3e7f30e..787325e2 100644 --- a/SAPHanaSR-tester.spec +++ b/SAPHanaSR-tester.spec @@ -109,6 +109,7 @@ install -m 0444 man-tester-client/*.7.gz %{buildroot}%{_mandir}/man7 /usr/lib/%{name}/saphana_sr_*.py /usr/bin/SAPHanaSR-testCluster /usr/bin/SAPHanaSR-checkJson +/usr/bin/SAPHanaSR-testSelect /usr/bin/sct_* /usr/bin/callTest* /usr/bin/loopTests* From 7a33e6863f34e1eaea3edde584948b6772569fb1 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 08:16:00 +0200 Subject: [PATCH 120/414] tester - beta package including fataCondition checks --- SAPHanaSR-tester.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SAPHanaSR-tester.spec b/SAPHanaSR-tester.spec index 787325e2..e6f1d5f6 100644 --- a/SAPHanaSR-tester.spec +++ b/SAPHanaSR-tester.spec @@ -20,8 +20,8 @@ License: GPL-2.0 Group: Productivity/Clustering/HA AutoReqProv: on Summary: Test suite for SAPHanaSR clusters -Version: 1.2.14 -Release: 0 +Version: 1.2.99 +Release: 0-beta Url: https://www.suse.com/c/fail-safe-operation-of-sap-hana-suse-extends-its-high-availability-solution/ BuildArch: noarch From 5a7a3c336985d31750ed975ac0217017bc98352a Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 08:18:26 +0200 Subject: [PATCH 121/414] tester: new fatalCondition test cases --- test/json/angi-ScaleOut/fatal1.json | 63 +++++++++++++++++++++++++++ test/json/angi-ScaleOut/fatal2.json | 66 +++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 test/json/angi-ScaleOut/fatal1.json create mode 100644 test/json/angi-ScaleOut/fatal2.json diff --git a/test/json/angi-ScaleOut/fatal1.json b/test/json/angi-ScaleOut/fatal1.json new file mode 100644 index 00000000..803cce9a --- /dev/null +++ b/test/json/angi-ScaleOut/fatal1.json @@ -0,0 +1,63 @@ +{ + "test": "flop", + "name": "flop - this test should NOT pass successfully", + "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester" ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "final40", + "loop": 1, + "wait": 1, + "post": "sleep 4", + "pSite": [ + "lpt >~ 2000000000:^(20|30|1.........)$", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp", + "fatalCondition": { + "comment": "fata01 (all conditons) OR fatal02 (all conditions) OR fatal_dual_P (all conditions)", + "next": "end", + "fatal01" : { + "pHost": [ + "score is None", + "roles is None" + ] + }, + "fatal02" : { + "sHost": [ + "score is None", + "roles is None" + ] + }, + "fatal_dual_P" : { + "pSite": [ "lss == 4", "srr == P" ], + "sSite": [ "lss == 4", "srr == P" ] + } + } + }, + { + "step": "final40", + "name": "still running", + "next": "END", + "loop": 1, + "wait": 1, + "pSite": [ + "lpt is None" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} diff --git a/test/json/angi-ScaleOut/fatal2.json b/test/json/angi-ScaleOut/fatal2.json new file mode 100644 index 00000000..9ae32534 --- /dev/null +++ b/test/json/angi-ScaleOut/fatal2.json @@ -0,0 +1,66 @@ +{ + "test": "flop", + "name": "flop - this test should NOT pass successfully", + "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester" ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "final40", + "loop": 1, + "wait": 1, + "post": "sleep 4", + "pSite": [ + "lpt >~ 2000000000:^(20|30|1.........)$", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp", + "fatalCondition": { + "comment": "fata01 (all conditons) OR fatal02 (all conditions) OR fatal_dual_P (all conditions)", + "next": "end", + "false_fatal_P" : { + "pSite": [ "lss == 4", "srr == P" ] + }, + "fatal01" : { + "pHost": [ + "score is None", + "roles is None" + ] + }, + "fatal02" : { + "sHost": [ + "score is None", + "roles is None" + ] + }, + "fatal_dual_P" : { + "pSite": [ "lss == 4", "srr == P" ], + "sSite": [ "lss == 4", "srr == P" ] + } + } + }, + { + "step": "final40", + "name": "still running", + "next": "END", + "loop": 1, + "wait": 1, + "pSite": [ + "lpt is None" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From 74f53e4b319016f6ab0ad0c67b22ca7e16a19bf1 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 08:29:15 +0200 Subject: [PATCH 122/414] tester: saphana_sr_test.py - tuned message calls (less messages for normal sessions) --- test/tester/saphana_sr_test.py | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index 503df01a..9b711488 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -526,7 +526,7 @@ def process_fatal_condition(self, step): # if child not in ['next','comment','name']: fc_child = fc[child] - self.message(f"DEBUG: fatalConditions: {child} dump {fc_child}") + self.debug(f"DEBUG: fatalConditions: {child} dump {fc_child}") # # process all check-rules ( "name": [ "condition1" {,...} ] ) # @@ -536,17 +536,14 @@ def process_fatal_condition(self, step): if top_obj_name in self.topo_translate: area_name = self.topo_translate[top_obj_name] checks = fc_child[top_obj_name] - self.message(f"DEBUG: fatalConditions: area_name {area_name}, top_obj_name {top_obj_name}, obj_name {obj_name}, checks {checks}") + self.debug(f"DEBUG: fatalConditions: area_name {area_name}, top_obj_name {top_obj_name}, obj_name {obj_name}, checks {checks}") rc_checks = self.run_checks(checks, area_name, obj_name, step.get('step',''), fatal_check = True, fatal_name=child) - self.message(f"DEBUG: fatalConditions: {child} rc {rc_checks}") + self.debug(f"DEBUG: fatalConditions: {child} rc {rc_checks}") rc_child = max(rc_child, rc_checks) if rc_child == 0: - self.message(f"DEBUG: fatalConditions: {child} BREAK") + self.message(f"STATUS: fatalConditions: FAILED {child} {fc_child} - BREAK") break rc_condition = min(rc_condition, rc_child) - if rc_condition == 0: - if self.config['dump_failures'] and 'failed' in self.run: - self.message(f"{fail_msg}: step={step_step} {self.__get_failed__()}", stdout=False) return rc_condition From 4c824d90e47c6b61bb7bcec92484caebbb0f0580 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 10:05:09 +0200 Subject: [PATCH 123/414] tester: saphana_sr_test.py - tuned message calls --- test/tester/saphana_sr_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index 9b711488..f8cc052d 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -583,7 +583,7 @@ def process_step(self, step): if "fatalCondition" in step: # self.message("STATUS: step {} to process fatalCondition".format(step_id)) process_result = self.process_fatal_condition(step) - self.message("STATUS: step {} to processed fatalCondition with process_result {}".format(step_id, process_result)) + self.debug("DEBUG: step {} to processed fatalCondition with process_result {}".format(step_id, process_result)) if process_result == 0: self.message("STATUS: step {} failed with fatalCondition".format(step_id)) process_result = 2 From fe1358647d068d60d58d2f1386ce1845b2a40519 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 10:07:24 +0200 Subject: [PATCH 124/414] git to ignore *.backup.* in test --- test/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/test/.gitignore b/test/.gitignore index 44c980a5..6eb7d951 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -9,3 +9,4 @@ python_examples tmux testLog*.txt .test_properties +*.backup.* From 0518ae936b7650e367922da7d97fca04348ddaa9 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 11:55:37 +0200 Subject: [PATCH 125/414] tester: output of dump-failures optimized for case of failedCondition --- test/tester/saphana_sr_test.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index f8cc052d..a753cfd4 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -32,6 +32,7 @@ def message(self, msg, **kwargs): message with formatted timestamp """ stdout = kwargs.get('stdout', True) + pre_cr = kwargs.get('pre_cr', False) # TODO: specify, if message should be written to stdout, stderr and/or log file date_time = time.strftime("%Y-%m-%d %H:%M:%S") if self.run['r_id']: @@ -40,6 +41,8 @@ def message(self, msg, **kwargs): r_id = "" msg_arr = msg.split(" ") if stdout: + if pre_cr: + print() print("{}{} {:<9s} {}".format(date_time, r_id, msg_arr[0], " ".join(msg_arr[1:])), flush=True) try: if self.run['log_file_handle']: @@ -541,7 +544,7 @@ def process_fatal_condition(self, step): self.debug(f"DEBUG: fatalConditions: {child} rc {rc_checks}") rc_child = max(rc_child, rc_checks) if rc_child == 0: - self.message(f"STATUS: fatalConditions: FAILED {child} {fc_child} - BREAK") + self.message(f"STATUS: fatalConditions: FAILED {child} {fc_child} - BREAK", pre_cr=True) break rc_condition = min(rc_condition, rc_child) return rc_condition @@ -574,6 +577,7 @@ def process_step(self, step): f" max_loops='{max_loops}'" ) self.message(_l_msg) + fatal = False while loops < max_loops: loops = loops + 1 if self.config['dump_failures']: @@ -587,6 +591,7 @@ def process_step(self, step): if process_result == 0: self.message("STATUS: step {} failed with fatalCondition".format(step_id)) process_result = 2 + fatal = True break process_result = max ( self.process_topology_object(step, 'global', 'Global'), @@ -600,7 +605,7 @@ def process_step(self, step): if process_result == 0: break time.sleep(wait) - if self.config['dump_failures']: + if self.config['dump_failures'] and fatal == False: print("") self.message("STATUS: step {} checked in {} loop(s)".format(step_id, loops)) if process_result == 0: From 5f93f629c4d153fb8080f98450ad2956c798a263 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 12:06:37 +0200 Subject: [PATCH 126/414] tester: switch to version 1.3.0 --- SAPHanaSR-tester.spec | 4 ++-- test/tester/saphana_sr_test.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/SAPHanaSR-tester.spec b/SAPHanaSR-tester.spec index e6f1d5f6..7c1652d3 100644 --- a/SAPHanaSR-tester.spec +++ b/SAPHanaSR-tester.spec @@ -20,8 +20,8 @@ License: GPL-2.0 Group: Productivity/Clustering/HA AutoReqProv: on Summary: Test suite for SAPHanaSR clusters -Version: 1.2.99 -Release: 0-beta +Version: 1.3.0 +Release: 0 Url: https://www.suse.com/c/fail-safe-operation-of-sap-hana-suse-extends-its-high-availability-solution/ BuildArch: noarch diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index a753cfd4..a6d59380 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -25,7 +25,7 @@ class SaphanasrTest: """ class to check SAP HANA cluster during tests """ - version = "1.2.99.0-beta" + version = "1.3.0" def message(self, msg, **kwargs): """ From e2f0534fda793b64ac2d83fa7d02b86111b91047 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 12:07:31 +0200 Subject: [PATCH 127/414] tester: header and purpose of fatal test descriptions --- test/json/angi-ScaleOut/fatal1.json | 6 +++--- test/json/angi-ScaleOut/fatal2.json | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/json/angi-ScaleOut/fatal1.json b/test/json/angi-ScaleOut/fatal1.json index 803cce9a..fefff8c2 100644 --- a/test/json/angi-ScaleOut/fatal1.json +++ b/test/json/angi-ScaleOut/fatal1.json @@ -1,7 +1,7 @@ { - "test": "flop", - "name": "flop - this test should NOT pass successfully", - "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester" ], + "test": "fatal1", + "name": "fatal1 - example for fatalConditions", + "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester", "fatal" ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/fatal2.json b/test/json/angi-ScaleOut/fatal2.json index 9ae32534..9ed85a5e 100644 --- a/test/json/angi-ScaleOut/fatal2.json +++ b/test/json/angi-ScaleOut/fatal2.json @@ -1,7 +1,7 @@ { - "test": "flop", - "name": "flop - this test should NOT pass successfully", - "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester" ], + "test": "fatal2", + "name": "fatal2 - this test should NOT pass successfully - fails on fatalCondition", + "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester", "fatal" ], "start": "prereq10", "steps": [ { From ea9f176a46ca20cc1c77f543cca345450ee24968 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 17 Jul 2024 12:26:18 +0200 Subject: [PATCH 128/414] tester: fix for test cases where no fatalCondition matches --- test/tester/saphana_sr_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index a6d59380..cb77a503 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -511,7 +511,7 @@ def process_fatal_condition(self, step): rc == 0 : no fatal condition matched rc != 0 : at least one of the fatal packages (childs) mathed """ - rc_condition = 0 + rc_condition = 1 fail_msg = "FATAL" step_step = step['step'] if "fatalCondition" in step: From c223a9eec9dc9bad01dda4be4589c1e786d5b317 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 15:42:03 +0200 Subject: [PATCH 129/414] kill_secn_indexserver_fencing_alert.json: initial checkin, copied from kill_prim_indexserver_fencing_alert.json --- .../kill_secn_indexserver_fencing_alert.json | 92 +++++++++++++++++++ 1 file changed, 92 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json new file mode 100644 index 00000000..4eb2874d --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -0,0 +1,92 @@ +{ + "test": "kill_secn_indexserver_fencing_alert", + "name": "Kill secondary master indexserver with fencing alert implemented", + "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv" , "alert" ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "kill_secn_indexserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": [ + "lss == 4", + "srr == P", + "lpt > 1000000000", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSite": [ + "lpt ~ (10|30)", + "lss ~ (1|2)", + "srr == S", + "srHook == SFAIL", + "srPoll ~ (SFAIL|SOK)" + ], + "pHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ], + "sHost": [ + "clone_state == DEMOTED", + "roles == master1::worker:", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "step30", + "name": "smaster fenced", + "next": "step40", + "loop": 300, + "wait": 2, + "sSite": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "sworker fenced", + "next": "final60", + "loop": 300, + "wait": 2, + "sSite": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 360, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sCCC to be the same as at test begin", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From 3cbe524c9df469097856b3960c168affa4bf7a3a Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 15:42:22 +0200 Subject: [PATCH 130/414] kill_prim_indexserver_fencing_alert.json kill_prim_worker_indexserver_fencing_alert.json: purpose --- .../angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 3 ++- .../kill_prim_worker_indexserver_fencing_alert.json | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 5bfa8574..2aaa37f1 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver_fencing_alert", "name": "Kill primary master indexserver with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "kill", "primary", "indexserver", "fencing_alert", "hadr", "susChkSrv" ], + "purpose": [ "angi", "ScaleOut", "kill", "primary", "indexserver", "fencing_alert", "hadr", "susChkSrv", "alert" ], "start": "prereq10", "steps": [ { @@ -105,6 +105,7 @@ ] }, { + "step": "final60", "name": "end recover", "next": "END", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index ddd72ee5..a0c710f5 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_prim_worker_indexserver_fencing_alert", "name": "Kill primary worker indexserver with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "primary", "worker", "fencing_alert", "hadr", "susChkSrv" ], + "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "primary", "worker", "fencing_alert", "hadr", "susChkSrv" , "alert" ], "start": "prereq10", "steps": [ { From cd91672bfc0f536add465452acefa5155834b32d Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 16:01:57 +0200 Subject: [PATCH 131/414] kill_secn_indexserver_fencing.json: initial checkin --- .../kill_secn_indexserver_fencing.json | 108 ++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json new file mode 100644 index 00000000..3d91e774 --- /dev/null +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -0,0 +1,108 @@ +{ + "test": "kill_secn_indexserver_fencing", + "name": "Kill secondary indexserver with on-fail fencing", + "purpose": [ "angi", "ScaleUp", "kill", "secondary", "indexserver", "fencing" ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "kill_secn_indexserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": [ + "lss == 4", + "srr == P", + "lpt > 1000000000", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSite": [ + "lpt ~ (10|30)", + "lss ~ (1|2)", + "srr == S", + "srHook == SFAIL", + "srPoll ~ (SFAIL|SOK)" + ], + "pHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ], + "sHost": [ + "clone_state == DEMOTED", + "roles == master1::worker:", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "step30", + "name": "pmaster fenced", + "next": "step40", + "loop": 300, + "wait": 2, + "pHost": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "begin recover", + "next": "final50", + "loop": 150, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": [ + "lss == 4", + "srr == P", + "lpt > 1000000000", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSite": [ + "lpt == 10", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll ~ (SFAIL|SOK)" + ], + "pHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ], + "sHost": [ + "clone_state == UNDEFINED", + "roles == master1::worker:", + "score ~ (-INFINITY|0|-1)" + ] + }, + { + "step": "final50", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sCCC to be the same as at test begin", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 02c1bf84032f3404d3d2d2f2ce0491b52b012e7b Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 16:03:10 +0200 Subject: [PATCH 132/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json: purpose --- .../angi-ScaleUp/kill_prim_indexserver_fencing.json | 10 +++++----- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 14ac3368..848cbe35 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -1,7 +1,7 @@ { "test": "kill_prim_indexserver_fencing", "name": "Kill primary indexserver with on-fail fencing", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver", "fencing_on-fail" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver", "fencing" ], "start": "prereq10", "steps": [ { @@ -48,7 +48,7 @@ "step": "step30", "name": "pmaster fenced", "next": "step40", - "loop": 240, + "loop": 300, "wait": 2, "pHost": [ "clone_state is None", @@ -57,9 +57,9 @@ ] }, { - "step": "step50", + "step": "step40", "name": "begin recover new secondary", - "next": "final60", + "next": "final50", "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", @@ -89,7 +89,7 @@ ] }, { - "step": "final60", + "step": "final50", "name": "end recover", "next": "END", "loop": 300, diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index d71ec621..d51fcae6 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -1,7 +1,7 @@ { "test": "kill_prim_inst_fencing", "name": "Kill primary instance with on-fail fencing", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance", "fencing_on-fail" ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance", "fencing" ], "start": "prereq10", "steps": [ { From b286d7c6e7e2a6dfce824f7489bc7d46a6b7a8dc Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 16:04:02 +0200 Subject: [PATCH 133/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 SAPHanaSR-tests-description_on-fail-fence.7: new fencing cases --- ...PHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 3 +++ ...APHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 3 +++ ...SAPHanaSR-tests-description_on-fail-fence.7 | 18 ++++++++++++++++++ 3 files changed, 24 insertions(+) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index 42a362e3..5a12fbdc 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -41,6 +41,9 @@ Kill primary worker instance, for SAPHanaController (ON_FAIL_ACTION=fence and fe .TP \fBkill_prim_worker_node_fencing_alert\fP Kill primary worker node (fencing alert agent configured). +.TP +\fBkill_secn_indexserver_fencing_alert\fP +Kill secondary master indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .PP More recommended tests, but not specific to immediate fencing, are listed in manual page SAPHanaSR-tests-angi-ScaleOut(7). diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index df5334d2..cd4d44e4 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -26,6 +26,9 @@ Kill primary indexserver, for susChkSrv.py (immediate fencing configured). .TP \fBkill_prim_inst_fencing\fP Kill primary instance, for SAPHanaController (immediate fencing configured). +.TP +\fBkill_secn_indexserver_fencing\fP +Kill secondary indexserver, for susChkSrv.py (immediate fencing configured). .PP More recommended tests, but not specific to immediate fencing, are listed in manual page SAPHanaSR-tests-angi-ScaleUp(7). diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 index 8d18a0a0..023c4003 100644 --- a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -196,6 +196,24 @@ One takeover. TODO fencing. Comment: Node failure, main cluster case. .RE .PP +\fBkill_secn_indexserver_fencing\fP +.RS 2 +Descr: Kill secondary indexserver, for susChkSrv.py. +.br +Topology: ScaleUp (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: See susChkSrv.py(7). +.br +Expect: Secondary node fenced. +HANA secondary killed and finally restarted. +SR SFAIL and finally SOK. +No takeover. One fencing (for action_on_lost=fence). +.br +Comment: Application failure, main cluster case +.RE +.PP .\" .SH EXAMPLES .PP From fae11e0545bd6f0a66833a9959791d7aaec67990 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 17:02:45 +0200 Subject: [PATCH 134/414] kill_secn_worker_node.json: fixed comparators --- .../angi-ScaleOut/kill_secn_worker_node.json | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node.json b/test/json/angi-ScaleOut/kill_secn_worker_node.json index 7d67905a..e0cc36b0 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node.json @@ -15,7 +15,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { @@ -26,15 +26,15 @@ "wait": 2, "pSite": "pSiteUp", "sSite": [ - "lpt=10", - "lss=1", - "srr=S", - "srHook=SFAIL", - "srPoll=SFAIL" + "lpt == 10", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" ], "pHost": "pHostUp", "sHost": [ - "clone_state=WAITING4NODES" + "clone_state == WAITING4NODES" ] }, { @@ -46,17 +46,17 @@ "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "sSite": [ - "lpt=10", - "lss=(1|2)", - "srr=S", - "srHook=(SFAIL|SWAIT)", - "srPoll=(SFAIL|SOK)" + "lpt == 10", + "lss ~ (1|2)", + "srr == S", + "srHook ~ (SFAIL|SWAIT)", + "srPoll ~ (SFAIL|SOK)" ], "pHost": "pHostUp", "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)", - "roles=master1::worker:", - "score=(-INFINITY|0|-1)" + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (-INFINITY|0|-1)" ] }, { From 373f2d88edfe81b862b52efa6d06e04e21631994 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 17:30:39 +0200 Subject: [PATCH 135/414] kill_secn_indexserver.json kill_secn_indexserver_fencing.json kill_secn_inst.json kill_secn_node.json standby_secn_node.json: pSiteUp, pHostUp --- .../angi-ScaleUp/kill_secn_indexserver.json | 30 +++---------- .../kill_secn_indexserver_fencing.json | 42 +++++-------------- test/json/angi-ScaleUp/kill_secn_inst.json | 32 +++----------- test/json/angi-ScaleUp/kill_secn_node.json | 28 ++----------- test/json/angi-ScaleUp/standby_secn_node.json | 30 +++---------- 5 files changed, 31 insertions(+), 131 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver.json b/test/json/angi-ScaleUp/kill_secn_indexserver.json index 2b72f4c4..8e15ebae 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver.json @@ -1,7 +1,7 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary indexserver", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver" ], + "purpose": [ "angi", "ScaleUp", "kill", "secondary", "indexserver" ], "start": "prereq10", "steps": [ { @@ -22,13 +22,8 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt ~ (10|30)", "lss ~ (1|2)", @@ -36,11 +31,6 @@ "srHook == SFAIL", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == DEMOTED", "roles == master1::worker:", @@ -54,13 +44,8 @@ "loop": 150, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt == 10", "lss == 1", @@ -68,11 +53,6 @@ "srHook == SFAIL", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == UNDEFINED", "roles == master1::worker:", diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index 3d91e774..13abd281 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -22,38 +22,28 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt ~ (10|30)", "lss ~ (1|2)", "srr == S", "srHook == SFAIL", "srPoll ~ (SFAIL|SOK)" - ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], - "sHost": [ - "clone_state == DEMOTED", - "roles == master1::worker:", - "score ~ (-INFINITY|0)" ] }, { "step": "step30", - "name": "pmaster fenced", + "name": "smaster fenced", "next": "step40", "loop": 300, "wait": 2, - "pHost": [ + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "srHook == SFAIL" + ], + "sHost": [ "clone_state is None", "role is None", "score is None" @@ -66,13 +56,8 @@ "loop": 150, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt == 10", "lss == 1", @@ -80,11 +65,6 @@ "srHook == SFAIL", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == UNDEFINED", "roles == master1::worker:", diff --git a/test/json/angi-ScaleUp/kill_secn_inst.json b/test/json/angi-ScaleUp/kill_secn_inst.json index 075641ee..b9c6dc8a 100644 --- a/test/json/angi-ScaleUp/kill_secn_inst.json +++ b/test/json/angi-ScaleUp/kill_secn_inst.json @@ -1,7 +1,7 @@ { "test": "kill_secn_inst", "name": "Kill secondary instance", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance" ], + "purpose": [ "angi", "ScaleUp", "kill", "secondary", "instance" ], "start": "prereq10", "steps": [ { @@ -12,7 +12,7 @@ "wait": 1, "post": "kill_secn_inst", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -22,13 +22,8 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt ~ (10|30)", "lss ~ (1|2)", @@ -36,11 +31,6 @@ "srHook ~ (SFAIL|SWAIT)", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == DEMOTED", "roles == master1::worker:", @@ -54,13 +44,8 @@ "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt == 10", "lss ~ (1|2)", @@ -68,11 +53,6 @@ "srHook ~ (SFAIL|SWAIT)", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", diff --git a/test/json/angi-ScaleUp/kill_secn_node.json b/test/json/angi-ScaleUp/kill_secn_node.json index 64095535..8216fb31 100644 --- a/test/json/angi-ScaleUp/kill_secn_node.json +++ b/test/json/angi-ScaleUp/kill_secn_node.json @@ -22,24 +22,14 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt == 10", "srr == S", "srHook == SFAIL", "srPoll == SFAIL" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state is None", "roles is None", @@ -53,13 +43,8 @@ "loop": 180, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt == 10", "lss ~ (1|2)", @@ -67,11 +52,6 @@ "srHook ~ (SFAIL|SWAIT)", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", diff --git a/test/json/angi-ScaleUp/standby_secn_node.json b/test/json/angi-ScaleUp/standby_secn_node.json index 139ceb6a..330bf8aa 100644 --- a/test/json/angi-ScaleUp/standby_secn_node.json +++ b/test/json/angi-ScaleUp/standby_secn_node.json @@ -23,13 +23,8 @@ "loop": 120, "wait": 2, "post": "osn", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt == 10", "lss == 1", @@ -37,11 +32,6 @@ "srHook == SFAIL", "srPoll == SFAIL" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == UNDEFINED", "roles == master1::worker:", @@ -56,25 +46,15 @@ "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], - "sSite": [ + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ "lpt == 10", "lss == 1", "srr == S", "srHook == SWAIT", "srPoll == SFAIL" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == DEMOTED", "roles == master1::worker:", From 7f36686b83c2781f27017fbd469ed0b4d482816e Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 17:31:05 +0200 Subject: [PATCH 136/414] kill_secn_indexserver_fencing_alert.json: fixed --- .../kill_secn_indexserver_fencing_alert.json | 57 +++++++++---------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index 4eb2874d..5cc050a2 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_secn_indexserver_fencing_alert", "name": "Kill secondary master indexserver with fencing alert implemented", - "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv" , "alert" ], + "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv" , "alert" , "fencing" ], "start": "prereq10", "steps": [ { @@ -15,47 +15,40 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { "step": "step20", "name": "failure detected", "next": "step30", - "loop": 120, + "loop": 240, "wait": 2, - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ - "lpt ~ (10|30)", - "lss ~ (1|2)", - "srr == S", - "srHook == SFAIL", - "srPoll ~ (SFAIL|SOK)" - ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" + "srHook == SFAIL" ], "sHost": [ - "clone_state == DEMOTED", - "roles == master1::worker:", - "score ~ (-INFINITY|0)" + "clone_state is None", + "roles is None", + "score is None" ] }, { "step": "step30", - "name": "smaster fenced", + "name": "sworker fenced", "next": "step40", "loop": 300, "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ + "srHook == SFAIL" + ], + "sWorker": [ "clone_state is None", "role is None", "score is None" @@ -63,18 +56,22 @@ }, { "step": "step40", - "name": "sworker fenced", - "next": "final60", + "name": "begin recover", + "next": "final50", "loop": 300, "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ - "clone_state is None", - "role is None", - "score is None" + "lpt == 10", + "lss ~ (1|2)", + "srr == S", + "srHook ~ (SFAIL|SWAIT)" ] }, { - "step": "final60", + "step": "final50", "name": "end recover", "next": "END", "loop": 360, From 74afb623799448b76113c27b46284ce05f71d1c2 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 18:53:11 +0200 Subject: [PATCH 137/414] kill_secn_indexserver_fencing_alert.json: formatting --- .../angi-ScaleOut/kill_secn_indexserver_fencing_alert.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index 5cc050a2..3af458de 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -1,7 +1,7 @@ { "test": "kill_secn_indexserver_fencing_alert", "name": "Kill secondary master indexserver with fencing alert implemented", - "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv" , "alert" , "fencing" ], + "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv", "alert", "fencing" ], "start": "prereq10", "steps": [ { @@ -15,7 +15,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { From b77cd1ceb672fed776f0aee68d97ed7922e38c36 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 19:06:37 +0200 Subject: [PATCH 138/414] freeze_secn_site_nfs.json kill_secn_indexserver.json kill_secn_inst.json kill_secn_worker_inst.json kill_secn_worker_node.json standby_secn_node.json standby_secn_worker_node.json: formatting, pHostUp, pSiteUp --- .../angi-ScaleOut/freeze_secn_site_nfs.json | 37 +++++-------------- .../angi-ScaleOut/kill_secn_indexserver.json | 32 ++++------------ test/json/angi-ScaleOut/kill_secn_inst.json | 32 ++++------------ .../angi-ScaleOut/kill_secn_worker_inst.json | 10 +++-- .../angi-ScaleOut/kill_secn_worker_node.json | 8 ++-- .../json/angi-ScaleOut/standby_secn_node.json | 35 ++++-------------- .../standby_secn_worker_node.json | 10 +++-- 7 files changed, 49 insertions(+), 115 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json index 5ab7a1a6..a9809bfb 100644 --- a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json @@ -1,10 +1,10 @@ - { +{ "test": "freeze_secn_site_nfs", "name": "freeze sap hana nfs on secondary site", "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "secondary", "site" ], "todo": "please correct this file", - "start": "prereq10", - "steps": [ + "start": "prereq10", + "steps": [ { "step": "prereq10", "name": "test prerequitsites", @@ -16,7 +16,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { @@ -25,12 +25,9 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": [ - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt ~ (20|10)", "lss == 1", @@ -38,11 +35,6 @@ "srHook == SFAIL", "srPoll == SFAIL" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ ] }, @@ -53,13 +45,9 @@ "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt ~ (20|10)", "lss == 4", @@ -67,11 +55,6 @@ "srHook ~ (SOK|SWAIT)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state ~ (DEMOTED|UNDEFINED)", "roles == master1::worker:", diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver.json b/test/json/angi-ScaleOut/kill_secn_indexserver.json index 1b6b9d7d..1c52f993 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver.json @@ -15,7 +15,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { @@ -24,13 +24,9 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt ~ (10|30)", "lss ~ (1|2)", @@ -38,11 +34,6 @@ "srHook == SFAIL", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == DEMOTED", "roles == master1::worker:", @@ -56,13 +47,9 @@ "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss == 1", @@ -70,11 +57,6 @@ "srHook == SFAIL", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == UNDEFINED", "roles == master1::worker:", diff --git a/test/json/angi-ScaleOut/kill_secn_inst.json b/test/json/angi-ScaleOut/kill_secn_inst.json index 88a9ac11..85663329 100644 --- a/test/json/angi-ScaleOut/kill_secn_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_inst.json @@ -24,13 +24,9 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt ~ (10|30)", "lss ~ (1|2)", @@ -38,11 +34,6 @@ "srHook == SFAIL", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == DEMOTED", "roles == master1::worker:", @@ -56,13 +47,9 @@ "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss ~ (1|2)", @@ -70,11 +57,6 @@ "srHook ~ (SFAIL|SWAIT)", "srPoll ~ (SFAIL|SOK)" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", @@ -92,7 +74,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/kill_secn_worker_inst.json b/test/json/angi-ScaleOut/kill_secn_worker_inst.json index 3e793e38..e9cc54a5 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_inst.json @@ -15,7 +15,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { @@ -25,6 +25,8 @@ "loop": 120, "wait": 2, "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt ~ (10|30)", "lss ~ (1|2)", @@ -32,7 +34,6 @@ "srHook ~ (SFAIL|SWAIT)", "srPoll ~ (SFAIL|SOK)" ], - "pHost": "pHostUp", "sHost": [ "clone_state ~ (DEMOTED|UNDEFINED)", "roles == master1::worker:", @@ -47,6 +48,8 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss ~ (1|2)", @@ -54,7 +57,6 @@ "srHook ~ (SFAIL|SWAIT)", "srPoll ~ (SFAIL|SOK)" ], - "pHost": "pHostUp", "sHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", @@ -72,7 +74,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node.json b/test/json/angi-ScaleOut/kill_secn_worker_node.json index e0cc36b0..76154a1e 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node.json @@ -25,6 +25,8 @@ "loop": 120, "wait": 2, "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss == 1", @@ -32,7 +34,6 @@ "srHook == SFAIL", "srPoll == SFAIL" ], - "pHost": "pHostUp", "sHost": [ "clone_state == WAITING4NODES" ] @@ -45,6 +46,8 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss ~ (1|2)", @@ -52,7 +55,6 @@ "srHook ~ (SFAIL|SWAIT)", "srPoll ~ (SFAIL|SOK)" ], - "pHost": "pHostUp", "sHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", @@ -70,7 +72,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/standby_secn_node.json b/test/json/angi-ScaleOut/standby_secn_node.json index 28f1b1a1..66399a73 100644 --- a/test/json/angi-ScaleOut/standby_secn_node.json +++ b/test/json/angi-ScaleOut/standby_secn_node.json @@ -15,9 +15,8 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "sWorker": "sWorkerUp", - "pWorker": "pWorkerUp" - + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "step20", @@ -26,13 +25,9 @@ "loop": 120, "wait": 2, "post": "osn", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss == 1", @@ -40,11 +35,6 @@ "srHook == SFAIL", "srPoll == SFAIL" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == UNDEFINED", "roles == master1::worker:", @@ -59,13 +49,9 @@ "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "lss == 4", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss == 1", @@ -73,11 +59,6 @@ "srHook == SWAIT", "srPoll == SFAIL" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost": [ "clone_state == DEMOTED", "roles == master1::worker:", diff --git a/test/json/angi-ScaleOut/standby_secn_worker_node.json b/test/json/angi-ScaleOut/standby_secn_worker_node.json index 44b69776..0951a49f 100644 --- a/test/json/angi-ScaleOut/standby_secn_worker_node.json +++ b/test/json/angi-ScaleOut/standby_secn_worker_node.json @@ -21,13 +21,14 @@ { "step": "step20", "name": "node is standby", - "next": "step30", + "next": "step30", "loop": 120, "wait": 2, "post": "online_secn_worker_node", "pSite": "pSiteUp", - "sSite": "sSiteUp", "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": "sSiteUp", "sHost": "sHostUp", "sWorker": [ "clone_state == UNDEFINED", @@ -44,10 +45,11 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", - "sSite": "sSiteUp", "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": "sSiteUp", "sHost": "sHostUp", - "sWorker": [ + "sWorker": [ "clone_state == DEMOTED", "roles == slave:slave:worker:slave", "score == -12200", From e3ff61ada10c7a17f3a85fe279399fc447a01c43 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 19:16:37 +0200 Subject: [PATCH 139/414] block_sr.json block_sr_and_freeze_prim_master_nfs.json restart_cluster_hana_running.json free_log_area.json: formatting, pHostUp, pSiteUp --- test/json/angi-ScaleOut/block_sr.json | 13 ++++++--- .../block_sr_and_freeze_prim_master_nfs.json | 28 ++++++++++++------- test/json/angi-ScaleOut/free_log_area.json | 4 ++- .../restart_cluster_hana_running.json | 2 +- 4 files changed, 31 insertions(+), 16 deletions(-) diff --git a/test/json/angi-ScaleOut/block_sr.json b/test/json/angi-ScaleOut/block_sr.json index 05bf7721..940231ce 100644 --- a/test/json/angi-ScaleOut/block_sr.json +++ b/test/json/angi-ScaleOut/block_sr.json @@ -14,7 +14,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "step20", @@ -24,12 +26,13 @@ "wait": 2, "post": "shell sct_test_unblock_sap_hana_sr", "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "pHost": "pHostUp" + ] }, { "step": "final40", @@ -40,7 +43,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" } ] } diff --git a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json index 98210431..a5623969 100644 --- a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json @@ -13,8 +13,10 @@ "post": "shell sct_test_block_sap_hana_sr", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "step20", @@ -24,12 +26,13 @@ "wait": 2, "post": "shell sct_test_freeze_prim_master_nfs", "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "pHost": "pHostUp" + ] }, { "step": "step30", @@ -39,12 +42,13 @@ "wait": 2, "post": "sleep 120", "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "pHost": "pHostUp" + ] }, { "step": "step35", @@ -54,12 +58,13 @@ "wait": 2, "post": "shell sct_test_unfreeze_prim_master_nfs", "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "pHost": "pHostUp" + ] }, { "step": "step37", @@ -69,12 +74,13 @@ "wait": 2, "post": "shell sct_test_unblock_sap_hana_sr", "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "pHost": "pHostUp" + ] }, { "step": "final40", @@ -86,6 +92,8 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" } ] } diff --git a/test/json/angi-ScaleOut/free_log_area.json b/test/json/angi-ScaleOut/free_log_area.json index ab2d6f03..e8ca372f 100644 --- a/test/json/angi-ScaleOut/free_log_area.json +++ b/test/json/angi-ScaleOut/free_log_area.json @@ -29,7 +29,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "final40", diff --git a/test/json/angi-ScaleOut/restart_cluster_hana_running.json b/test/json/angi-ScaleOut/restart_cluster_hana_running.json index c9562f3f..f0eef82c 100644 --- a/test/json/angi-ScaleOut/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/restart_cluster_hana_running.json @@ -30,7 +30,7 @@ "pHost": "pHostUp", "sHost": "sHostUp", "pWorker": "pWorkerUp", - "sWorker": "sWorkerUp" + "sWorker": "sWorkerUp" } ] } From 3ed05a2576f7ccd9cb07967f42e1d50e84d4bafc Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 17 Jul 2024 19:27:37 +0200 Subject: [PATCH 140/414] block_sr_and_freeze_prim_fs.json maintenance_cluster_bootstrap.json maintenance_with_standby_nodes.json standby_prim_node.json: pHostUp, pSiteUp --- .../block_sr_and_freeze_prim_fs.json | 14 ++++----- .../maintenance_cluster_bootstrap.json | 26 +++-------------- .../maintenance_with_standby_nodes.json | 6 ++-- test/json/angi-ScaleUp/standby_prim_node.json | 29 +++---------------- 4 files changed, 18 insertions(+), 57 deletions(-) diff --git a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json index 4bb28d38..e032d325 100644 --- a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json @@ -1,6 +1,6 @@ { "test": "block_sr_and_freeze_prim_fs", - "name": "block_sr_and_freeze_prim_fs", + "name": "block sr and freeze prim fs", "purpose": [ "angi", "ScaleUp", "maintenace", "admin", "block", "fs", "susHanaSR", "hadr" ], "start": "prereq10", "steps": [ @@ -24,12 +24,12 @@ "wait": 2, "post": "shell sct_test_freeze_prim_fs", "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "pHost": "pHostUp" + ] }, { "step": "step30", @@ -39,12 +39,12 @@ "wait": 2, "post": "sleep 120", "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "pHost": "pHostUp" + ] }, { "step": "step35", @@ -69,12 +69,12 @@ "wait": 2, "post": "shell sct_test_unblock_sap_hana_sr", "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "pHost": "pHostUp" + ] }, { "step": "final40", diff --git a/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json b/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json index ea118670..f9ffaf12 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json @@ -49,23 +49,14 @@ "loop": 100, "wait": 2, "post": "shell sct_test_block_sap_hana_sr", - "pSite": [ - "srr == P", - "lss == 4", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srr == S", "lss == 4", "srHook is None", "srPoll == SOK" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost":[ "clone_state == DEMOTED", "roles == master1:master:worker:master" @@ -78,23 +69,14 @@ "loop": 60, "wait": 2, "post": "shell sct_test_unblock_sap_hana_sr", - "pSite": [ - "srr == P", - "lss == 4", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srr == S", "lss == 4", "srHook == SFAIL", "srPoll == SFAIL" ], - "pHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], "sHost":[ "clone_state == DEMOTED", "roles == master1:master:worker:master" diff --git a/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json b/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json index a79c08bd..98f6e89c 100644 --- a/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json @@ -36,6 +36,7 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt == 10", "lss == 1", @@ -43,7 +44,6 @@ "srHook == SWAIT", "srPoll == SFAIL" ], - "pHost": "pHostUp", "sHost": [ "clone_state == DEMOTED", "roles == master1::worker:", @@ -80,6 +80,7 @@ "loop": 120, "wait": 2, "pSite": "pSiteDown", + "pHost": "pHostDown", "sSite": [ "lpt ~ (30|1[6-9]........)", "lss == 4", @@ -87,7 +88,6 @@ "srHook ~ (PRIM|SOK)", "srPoll == SOK" ], - "pHost": "pHostDown", "sHost": [ "clone_state == PROMOTED", "roles == master1:master:worker:master", @@ -108,13 +108,13 @@ "srHook ~ (SWAIT|SFAIL)", "srPoll == SFAIL" ], - "sSite": "pSiteUp", "pHost": [ "clone_state == UNDEFINED", "roles == master1::worker:", "score == 150", "standby == on" ], + "sSite": "pSiteUp", "sHost": "pHostUp" }, { diff --git a/test/json/angi-ScaleUp/standby_prim_node.json b/test/json/angi-ScaleUp/standby_prim_node.json index f1c38ff3..556b7f10 100644 --- a/test/json/angi-ScaleUp/standby_prim_node.json +++ b/test/json/angi-ScaleUp/standby_prim_node.json @@ -22,13 +22,8 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": [ - "lss == 1", - "srr == P", - "lpt > 1000000000", - "srHook == PRIM", - "srPoll == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "lpt ~ (30|1[6-9]........)", "lss == 4", @@ -36,12 +31,6 @@ "srHook ~ (PRIM|SOK)", "srPoll == SOK" ], - "pHost": [ - "clone_state == UNDEFINED", - "roles == master1::worker:", - "score == 150", - "standby == on" - ], "sHost": [ "clone_state == PROMOTED", "roles == master1:master:worker:master", @@ -62,24 +51,14 @@ "srHook == SWAIT", "srPoll == SFAIL" ], - "sSite": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], "pHost": [ "clone_state == UNDEFINED", "roles == master1::worker:", "score == 150", "standby == on" ], - "sHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ] + "sSite": "pSiteUp", + "sHost": "pHostUp" }, { "step": "final40", From d8bba33707a1282e7c8bcf05bc09924a882a698d Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 08:06:11 +0200 Subject: [PATCH 141/414] tester: follow pylint hints --- test/tester/saphana_sr_test.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index cb77a503..e34ce4a0 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -338,8 +338,8 @@ def __add_failed__(self, area_object, key_val_reg, **kwargs): """ document failed checks """ fatal_check = False fatal_name = "" - if 'fatal_check' in kwargs: - fatal_check = kwargs["fatal_check"] + fatal_check = kwargs.get("fatal_check", False) + fatal_name = kwargs.get("fatal_name", "") if 'fatal_name' in kwargs: fatal_name = kwargs["fatal_name"] ( _area, _obj ) = area_object @@ -385,7 +385,7 @@ def run_checks(self, checks, area_name, object_name, step_step, **kwargs ): fatal_name = kwargs["fatal_name"] l_sr = self.dict_sr check_result = -1 - if fatal_check == False: + if fatal_check is False: self.__reset_failed__() for single_check in checks: # match @@ -486,7 +486,7 @@ def run_checks(self, checks, area_name, object_name, step_step, **kwargs ): check_result = max(check_result, 0) if (found == 0) and (check_result < 2): check_result = 2 - if fatal_check == False: + if fatal_check is False: if self.config['dump_failures'] and 'failed' in self.run: self.message(f"{fail_msg}: step={step_step} {self.__get_failed__()}", stdout=False) return check_result @@ -506,14 +506,12 @@ def process_topology_object(self, step, topology_object_name, area_name): rc_checks = self.run_checks(checks, area_name, object_name, step.get('step','')) return rc_checks - def process_fatal_condition(self, step): - """ process_fatal_conditions + def __process_fatal_condition(self, step): + """ __process_fatal_conditions rc == 0 : no fatal condition matched rc != 0 : at least one of the fatal packages (childs) mathed """ rc_condition = 1 - fail_msg = "FATAL" - step_step = step['step'] if "fatalCondition" in step: fc = step["fatalCondition"] topolo = self.topolo @@ -548,7 +546,7 @@ def process_fatal_condition(self, step): break rc_condition = min(rc_condition, rc_child) return rc_condition - + def process_step(self, step): """ process a single step including optional loops """ @@ -586,7 +584,7 @@ def process_step(self, step): self.read_saphana_sr() if "fatalCondition" in step: # self.message("STATUS: step {} to process fatalCondition".format(step_id)) - process_result = self.process_fatal_condition(step) + process_result = self.__process_fatal_condition(step) self.debug("DEBUG: step {} to processed fatalCondition with process_result {}".format(step_id, process_result)) if process_result == 0: self.message("STATUS: step {} failed with fatalCondition".format(step_id)) @@ -605,7 +603,7 @@ def process_step(self, step): if process_result == 0: break time.sleep(wait) - if self.config['dump_failures'] and fatal == False: + if self.config['dump_failures'] and fatal is False: print("") self.message("STATUS: step {} checked in {} loop(s)".format(step_id, loops)) if process_result == 0: From 2c30551ff3cf18c536d353fa59fbfa8c201a6881 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 14:24:38 +0200 Subject: [PATCH 142/414] tester: block_sr_and_freeze_prim_master_nfs.json - fixed json syntax --- .../json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json index a5623969..93bf66d1 100644 --- a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json @@ -91,7 +91,7 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" } From 5d00407cab6d47ffdb2049e6dfcc6bd0d06ddedc Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 14:28:44 +0200 Subject: [PATCH 143/414] tester: used SAPHanaSR-checkJson to 'pretty-print' json files in angi-ScaleOut --- .../angi-ScaleOut/block_manual_takeover.json | 12 +- test/json/angi-ScaleOut/block_sr.json | 16 ++- .../block_sr_and_freeze_prim_master_nfs.json | 16 ++- test/json/angi-ScaleOut/defaults.json | 134 +++++++++--------- test/json/angi-ScaleOut/fatal1.json | 58 +++++--- test/json/angi-ScaleOut/fatal2.json | 67 +++++---- test/json/angi-ScaleOut/flap.json | 9 +- test/json/angi-ScaleOut/flop.json | 13 +- test/json/angi-ScaleOut/flup.json | 9 +- test/json/angi-ScaleOut/free_log_area.json | 10 +- .../angi-ScaleOut/freeze_prim_master_nfs.json | 14 +- .../freeze_prim_master_nfs_fencing_alert.json | 15 +- .../angi-ScaleOut/freeze_prim_site_nfs.json | 15 +- .../angi-ScaleOut/freeze_secn_site_nfs.json | 25 ++-- .../angi-ScaleOut/kill_prim_indexserver.json | 12 +- .../kill_prim_indexserver_fencing_alert.json | 24 ++-- test/json/angi-ScaleOut/kill_prim_inst.json | 9 +- .../kill_prim_inst_fencing_alert.json | 20 ++- test/json/angi-ScaleOut/kill_prim_node.json | 12 +- .../kill_prim_node_fencing_alert.json | 21 ++- .../kill_prim_worker_indexserver.json | 11 +- ...prim_worker_indexserver_fencing_alert.json | 16 ++- .../angi-ScaleOut/kill_prim_worker_inst.json | 9 +- .../kill_prim_worker_inst_fencing_alert.json | 13 +- .../angi-ScaleOut/kill_prim_worker_node.json | 9 +- .../kill_prim_worker_node_fencing_alert.json | 21 ++- .../angi-ScaleOut/kill_secn_indexserver.json | 11 +- .../kill_secn_indexserver_fencing_alert.json | 13 +- test/json/angi-ScaleOut/kill_secn_inst.json | 9 +- test/json/angi-ScaleOut/kill_secn_node.json | 13 +- .../angi-ScaleOut/kill_secn_worker_inst.json | 9 +- .../angi-ScaleOut/kill_secn_worker_node.json | 15 +- .../maintenance_cluster_hana_running.json | 12 +- .../maintenance_cluster_turn_hana.json | 12 +- .../maintenance_with_standby_nodes.json | 14 +- test/json/angi-ScaleOut/nop-false.json | 10 +- test/json/angi-ScaleOut/nop.json | 10 +- test/json/angi-ScaleOut/properties.json | 6 +- .../angi-ScaleOut/properties_ha1_hdb10.json | 6 +- test/json/angi-ScaleOut/restart_cluster.json | 11 +- .../restart_cluster_hana_running.json | 11 +- .../restart_cluster_turn_hana.json | 11 +- .../json/angi-ScaleOut/standby_prim_node.json | 12 +- .../json/angi-ScaleOut/standby_secn_node.json | 10 +- .../standby_secn_worker_node.json | 10 +- 45 files changed, 578 insertions(+), 217 deletions(-) diff --git a/test/json/angi-ScaleOut/block_manual_takeover.json b/test/json/angi-ScaleOut/block_manual_takeover.json index f7f0fcc2..ee476dc5 100644 --- a/test/json/angi-ScaleOut/block_manual_takeover.json +++ b/test/json/angi-ScaleOut/block_manual_takeover.json @@ -1,7 +1,15 @@ { "test": "block_manual_takeover", "name": "block manual takeover, using susTkOver.py", - "purpose": [ "angi", "ScaleOut", "maintenace", "admin", "block", "susTkOver", "hadr" ], + "purpose": [ + "angi", + "ScaleOut", + "maintenace", + "admin", + "block", + "susTkOver", + "hadr" + ], "start": "prereq10", "steps": [ { @@ -14,7 +22,7 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp", + "sHost": "sHostUp", "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, diff --git a/test/json/angi-ScaleOut/block_sr.json b/test/json/angi-ScaleOut/block_sr.json index 940231ce..9f972f3e 100644 --- a/test/json/angi-ScaleOut/block_sr.json +++ b/test/json/angi-ScaleOut/block_sr.json @@ -1,7 +1,17 @@ { "test": "block_sr", "name": "block sr on master and check SFAIL attribute; unblock to recover", - "purpose": [ "angi", "ScaleOut", "block", "primary", "secondary", "sr", "hadr", "susHanaSR", "master" ], + "purpose": [ + "angi", + "ScaleOut", + "block", + "primary", + "secondary", + "sr", + "hadr", + "susHanaSR", + "master" + ], "start": "prereq10", "steps": [ { @@ -13,7 +23,7 @@ "post": "shell sct_test_block_sap_hana_sr", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp", "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" @@ -42,7 +52,7 @@ "wait": 2, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp", "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" diff --git a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json index 93bf66d1..efb93e4a 100644 --- a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json @@ -1,7 +1,19 @@ { "test": "block_sr_and_freeze_prim_master_nfs", "name": "block sr and freeze sap hana nfs on primary master node", - "purpose": [ "angi", "ScaleOut", "block", "freeze", "primary", "master", "node", "fs", "nfs", "susHanaSR", "hadr" ], + "purpose": [ + "angi", + "ScaleOut", + "block", + "freeze", + "primary", + "master", + "node", + "fs", + "nfs", + "susHanaSR", + "hadr" + ], "start": "prereq10", "steps": [ { @@ -90,7 +102,7 @@ "wait": 2, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp", "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" diff --git a/test/json/angi-ScaleOut/defaults.json b/test/json/angi-ScaleOut/defaults.json index 130998b5..d1543edf 100644 --- a/test/json/angi-ScaleOut/defaults.json +++ b/test/json/angi-ScaleOut/defaults.json @@ -1,70 +1,74 @@ { "opMode": "logreplay", "srMode": "sync", - "purpose": [ "angi", "ScaleOut", "defaults" ], + "purpose": [ + "angi", + "ScaleOut", + "defaults" + ], "checkPtr": { - "globalUp": [ - "topology == ScaleOut" - ], - "pHostUp": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], - "pSiteUp": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], - "sSiteUp": [ - "lpt == 30", - "lss == 4", - "srr == S", - "srHook == SOK", - "srPoll == SOK" - ], - "sHostUp": [ - "clone_state == DEMOTED", - "roles == master1:master:worker:master", - "score == 100" - ], - "pHostDown": [ - "clone_state == UNDEFINED", - "roles == master1::worker:", - "score == 150", - "standby == on" - ], - "pSiteDown": [ - "lpt > 1000000000", - "lss == 1", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], - "sSiteDown": [ - "lpt == 10", - "lss == 1", - "srr == S", - "srHook == SFAIL", - "srPoll == SFAIL" - ], - "sHostDown": [ - "clone_state == UNDEFINED", - "roles == master1::worker:", - "score == 100", - "standby == on" - ], - "pWorkerUp": [ - "clone_state == DEMOTED", - "roles == slave:slave:worker:slave", - "score == -10000" - ], - "sWorkerUp": [ - "clone_state == DEMOTED", - "roles == slave:slave:worker:slave", - "score == -12200" - ] - } + "globalUp": [ + "topology == ScaleOut" + ], + "pHostUp": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ], + "pSiteUp": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSiteUp": [ + "lpt == 30", + "lss == 4", + "srr == S", + "srHook == SOK", + "srPoll == SOK" + ], + "sHostUp": [ + "clone_state == DEMOTED", + "roles == master1:master:worker:master", + "score == 100" + ], + "pHostDown": [ + "clone_state == UNDEFINED", + "roles == master1::worker:", + "score == 150", + "standby == on" + ], + "pSiteDown": [ + "lpt > 1000000000", + "lss == 1", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSiteDown": [ + "lpt == 10", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "sHostDown": [ + "clone_state == UNDEFINED", + "roles == master1::worker:", + "score == 100", + "standby == on" + ], + "pWorkerUp": [ + "clone_state == DEMOTED", + "roles == slave:slave:worker:slave", + "score == -10000" + ], + "sWorkerUp": [ + "clone_state == DEMOTED", + "roles == slave:slave:worker:slave", + "score == -12200" + ] + } } diff --git a/test/json/angi-ScaleOut/fatal1.json b/test/json/angi-ScaleOut/fatal1.json index fefff8c2..a6b820b2 100644 --- a/test/json/angi-ScaleOut/fatal1.json +++ b/test/json/angi-ScaleOut/fatal1.json @@ -1,7 +1,15 @@ { "test": "fatal1", "name": "fatal1 - example for fatalConditions", - "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester", "fatal" ], + "purpose": [ + "angi", + "ScaleOut", + "fail", + "parser", + "sleep", + "tester", + "fatal" + ], "start": "prereq10", "steps": [ { @@ -21,28 +29,34 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp", "fatalCondition": { - "comment": "fata01 (all conditons) OR fatal02 (all conditions) OR fatal_dual_P (all conditions)", - "next": "end", - "fatal01" : { - "pHost": [ - "score is None", - "roles is None" - ] - }, - "fatal02" : { - "sHost": [ - "score is None", - "roles is None" - ] - }, - "fatal_dual_P" : { - "pSite": [ "lss == 4", "srr == P" ], - "sSite": [ "lss == 4", "srr == P" ] - } - } + "comment": "fata01 (all conditons) OR fatal02 (all conditions) OR fatal_dual_P (all conditions)", + "next": "end", + "fatal01": { + "pHost": [ + "score is None", + "roles is None" + ] + }, + "fatal02": { + "sHost": [ + "score is None", + "roles is None" + ] + }, + "fatal_dual_P": { + "pSite": [ + "lss == 4", + "srr == P" + ], + "sSite": [ + "lss == 4", + "srr == P" + ] + } + } }, { "step": "final40", @@ -56,7 +70,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/fatal2.json b/test/json/angi-ScaleOut/fatal2.json index 9ed85a5e..9413f3fd 100644 --- a/test/json/angi-ScaleOut/fatal2.json +++ b/test/json/angi-ScaleOut/fatal2.json @@ -1,7 +1,15 @@ { "test": "fatal2", "name": "fatal2 - this test should NOT pass successfully - fails on fatalCondition", - "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester", "fatal" ], + "purpose": [ + "angi", + "ScaleOut", + "fail", + "parser", + "sleep", + "tester", + "fatal" + ], "start": "prereq10", "steps": [ { @@ -21,31 +29,40 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp", "fatalCondition": { - "comment": "fata01 (all conditons) OR fatal02 (all conditions) OR fatal_dual_P (all conditions)", - "next": "end", - "false_fatal_P" : { - "pSite": [ "lss == 4", "srr == P" ] - }, - "fatal01" : { - "pHost": [ - "score is None", - "roles is None" - ] - }, - "fatal02" : { - "sHost": [ - "score is None", - "roles is None" - ] - }, - "fatal_dual_P" : { - "pSite": [ "lss == 4", "srr == P" ], - "sSite": [ "lss == 4", "srr == P" ] - } - } + "comment": "fata01 (all conditons) OR fatal02 (all conditions) OR fatal_dual_P (all conditions)", + "next": "end", + "false_fatal_P": { + "pSite": [ + "lss == 4", + "srr == P" + ] + }, + "fatal01": { + "pHost": [ + "score is None", + "roles is None" + ] + }, + "fatal02": { + "sHost": [ + "score is None", + "roles is None" + ] + }, + "fatal_dual_P": { + "pSite": [ + "lss == 4", + "srr == P" + ], + "sSite": [ + "lss == 4", + "srr == P" + ] + } + } }, { "step": "final40", @@ -59,7 +76,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/flap.json b/test/json/angi-ScaleOut/flap.json index 8e828733..4ff19181 100644 --- a/test/json/angi-ScaleOut/flap.json +++ b/test/json/angi-ScaleOut/flap.json @@ -1,7 +1,14 @@ { "test": "flap", "name": "flap - test the new test parser", - "purpose": [ "angi", "ScaleOut", "parser", "tester", "sleep", "stability" ], + "purpose": [ + "angi", + "ScaleOut", + "parser", + "tester", + "sleep", + "stability" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/flop.json b/test/json/angi-ScaleOut/flop.json index 72845f87..fd396dcb 100644 --- a/test/json/angi-ScaleOut/flop.json +++ b/test/json/angi-ScaleOut/flop.json @@ -1,7 +1,14 @@ { "test": "flop", "name": "flop - this test should NOT pass successfully", - "purpose": [ "angi", "ScaleOut", "fail", "parser", "sleep", "tester" ], + "purpose": [ + "angi", + "ScaleOut", + "fail", + "parser", + "sleep", + "tester" + ], "start": "prereq10", "steps": [ { @@ -21,7 +28,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { @@ -36,7 +43,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/flup.json b/test/json/angi-ScaleOut/flup.json index f9d7986b..68814bb4 100644 --- a/test/json/angi-ScaleOut/flup.json +++ b/test/json/angi-ScaleOut/flup.json @@ -1,7 +1,14 @@ { "test": "flup", "name": "flup - like nop but very short sleep only - only for checking the test engine", - "purpose": [ "angi", "ScaleOut", "ok", "parser", "tester", "sleep" ], + "purpose": [ + "angi", + "ScaleOut", + "ok", + "parser", + "tester", + "sleep" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/free_log_area.json b/test/json/angi-ScaleOut/free_log_area.json index e8ca372f..6fe7553e 100644 --- a/test/json/angi-ScaleOut/free_log_area.json +++ b/test/json/angi-ScaleOut/free_log_area.json @@ -1,7 +1,14 @@ { "test": "free_log_area", "name": "free hana log area on primary site", - "purpose": [ "angi", "ScaleOut", "maintenance", "primary", "logarea", "stability" ], + "purpose": [ + "angi", + "ScaleOut", + "maintenance", + "primary", + "logarea", + "stability" + ], "start": "prereq10", "steps": [ { @@ -17,7 +24,6 @@ "sHost": "sHostUp", "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" - }, { "step": "step20", diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json index f2ece494..ae021c76 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json @@ -1,7 +1,16 @@ { "test": "freeze_prim_master_nfs", "name": "freeze sap hana nfs on primary master node", - "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "primary", "master", "node" ], + "purpose": [ + "angi", + "ScaleOut", + "fs", + "nfs", + "freeze", + "primary", + "master", + "node" + ], "start": "prereq10", "steps": [ { @@ -37,8 +46,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 0019f8a6..319679f7 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -1,7 +1,17 @@ { "test": "freeze_prim_master_nfs_fencing_alert", "name": "freeze sap hana nfs on primary master node with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "primary", "master", "node", "fencing_alert" ], + "purpose": [ + "angi", + "ScaleOut", + "fs", + "nfs", + "freeze", + "primary", + "master", + "node", + "fencing_alert" + ], "start": "prereq10", "steps": [ { @@ -38,8 +48,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json index 301b6dd0..ff53b3a8 100644 --- a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json @@ -1,7 +1,15 @@ { "test": "freeze_prim_site_nfs", "name": "freeze sap hana nfs on primary site", - "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "primary", "site" ], + "purpose": [ + "angi", + "ScaleOut", + "fs", + "nfs", + "freeze", + "primary", + "site" + ], "start": "prereq10", "steps": [ { @@ -37,8 +45,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", @@ -88,7 +95,7 @@ "sSite": "pSiteUp", "pHost": "sHostUp", "sHost": "pHostUp", - "sWorker": "pWorkerUp", + "sWorker": "pWorkerUp", "pWorker": "sWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json index a9809bfb..f3a32819 100644 --- a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json @@ -1,10 +1,18 @@ { - "test": "freeze_secn_site_nfs", - "name": "freeze sap hana nfs on secondary site", - "purpose": [ "angi", "ScaleOut", "fs", "nfs", "freeze", "secondary", "site" ], - "todo": "please correct this file", - "start": "prereq10", - "steps": [ + "test": "freeze_secn_site_nfs", + "name": "freeze sap hana nfs on secondary site", + "purpose": [ + "angi", + "ScaleOut", + "fs", + "nfs", + "freeze", + "secondary", + "site" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ { "step": "prereq10", "name": "test prerequitsites", @@ -35,8 +43,7 @@ "srHook == SFAIL", "srPoll == SFAIL" ], - "sHost": [ - ] + "sHost": [] }, { "step": "step30", @@ -73,7 +80,7 @@ "sSite": "pSiteUp", "pHost": "sHostUp", "sHost": "pHostUp", - "pWorker": "sWorkerUp", + "pWorker": "sWorkerUp", "sWorker": "pWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver.json b/test/json/angi-ScaleOut/kill_prim_indexserver.json index 06d29876..2b509429 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver.json @@ -1,7 +1,15 @@ { "test": "kill_prim_indexserver", "name": "Kill primary master indexserver", - "purpose": [ "angi", "ScaleOut", "kill", "primary", "indexserver", "hadr", "susChkSrv" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "primary", + "indexserver", + "hadr", + "susChkSrv" + ], "start": "prereq10", "steps": [ { @@ -95,7 +103,7 @@ "sSite": "pSiteUp", "pHost": "sHostUp", "sHost": "pHostUp", - "pWorker": "sWorkerUp", + "pWorker": "sWorkerUp", "sWorker": "pWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 2aaa37f1..95466b6c 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -1,7 +1,17 @@ { "test": "kill_prim_indexserver_fencing_alert", "name": "Kill primary master indexserver with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "kill", "primary", "indexserver", "fencing_alert", "hadr", "susChkSrv", "alert" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "primary", + "indexserver", + "fencing_alert", + "hadr", + "susChkSrv", + "alert" + ], "start": "prereq10", "steps": [ { @@ -40,8 +50,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", @@ -70,10 +79,10 @@ "clone_state is None", "role is None", "score is None" - ] - }, - { - "step": "step50", + ] + }, + { + "step": "step50", "name": "begin recover new secondary", "next": "final60", "loop": 480, @@ -105,7 +114,6 @@ ] }, { - "step": "final60", "name": "end recover", "next": "END", diff --git a/test/json/angi-ScaleOut/kill_prim_inst.json b/test/json/angi-ScaleOut/kill_prim_inst.json index d4de4823..10e4b832 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_inst.json @@ -1,7 +1,14 @@ { "test": "kill_prim_inst", "name": "Kill primary master instance", - "purpose": [ "angi", "ScaleOut", "kill", "primary", "instance", "master" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "primary", + "instance", + "master" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index ba6629ea..14d1ffa5 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -1,7 +1,14 @@ { "test": "kill_prim_inst_fencing_alert", "name": "Kill primary master instance with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "kill", "instance", "primary", "fencing_alert" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "instance", + "primary", + "fencing_alert" + ], "start": "prereq10", "steps": [ { @@ -40,8 +47,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", @@ -70,10 +76,10 @@ "clone_state is None", "role is None", "score is None" - ] - }, - { - "step": "step50", + ] + }, + { + "step": "step50", "name": "begin recover new secondary", "next": "final60", "loop": 360, diff --git a/test/json/angi-ScaleOut/kill_prim_node.json b/test/json/angi-ScaleOut/kill_prim_node.json index 7458e05e..9ec298f4 100644 --- a/test/json/angi-ScaleOut/kill_prim_node.json +++ b/test/json/angi-ScaleOut/kill_prim_node.json @@ -1,7 +1,14 @@ { "test": "kill_prim_node", "name": "Kill primary master node", - "purpose": [ "angi", "ScaleOut", "kill", "primary", "node", "master" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "primary", + "node", + "master" + ], "start": "prereq10", "steps": [ { @@ -38,8 +45,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 75253359..e9930d77 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -1,7 +1,15 @@ { "test": "kill_prim_node_fencing_alert", "name": "Kill primary master node with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "kill", "primary", "node", "master", "fencing_alert" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "primary", + "node", + "master", + "fencing_alert" + ], "start": "prereq10", "steps": [ { @@ -38,8 +46,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", @@ -68,10 +75,10 @@ "clone_state is None", "role is None", "score is None" - ] - }, - { - "step": "step50", + ] + }, + { + "step": "step50", "name": "begin recover", "next": "final60", "loop": 300, diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json index 6f26699e..dbb6355e 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json @@ -1,7 +1,16 @@ { "test": "kill_prim_worker_indexserver", "name": "Kill primary worker indexserver", - "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "primary", "worker", "hadr", "susChkSrv" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "indexserver", + "primary", + "worker", + "hadr", + "susChkSrv" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index a0c710f5..5610f261 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -1,7 +1,18 @@ { "test": "kill_prim_worker_indexserver_fencing_alert", "name": "Kill primary worker indexserver with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "primary", "worker", "fencing_alert", "hadr", "susChkSrv" , "alert" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "indexserver", + "primary", + "worker", + "fencing_alert", + "hadr", + "susChkSrv", + "alert" + ], "start": "prereq10", "steps": [ { @@ -39,8 +50,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst.json b/test/json/angi-ScaleOut/kill_prim_worker_inst.json index 40a6e70a..5727b2ed 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst.json @@ -1,7 +1,14 @@ { "test": "kill_prim_worker_inst", "name": "Kill primary worker instance", - "purpose": [ "angi", "ScaleOut", "kill", "primary", "instance", "worker" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "primary", + "instance", + "worker" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index e2010bc0..54b720c5 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -1,7 +1,15 @@ { "test": "kill_prim_worker_inst_fencing_alert", "name": "Kill primary worker instance with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "kill", "instance", "primary", "worker", "fencing_alert" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "instance", + "primary", + "worker", + "fencing_alert" + ], "start": "prereq10", "steps": [ { @@ -39,8 +47,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node.json b/test/json/angi-ScaleOut/kill_prim_worker_node.json index 93b79dc1..552c4e56 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node.json @@ -1,7 +1,14 @@ { "test": "kill_prim_worker_node", "name": "Kill primary worker node", - "purpose": [ "angi", "ScaleOut", "kill", "primary", "node", "worker" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "primary", + "node", + "worker" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 9533d774..3ff3b475 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -1,7 +1,15 @@ { "test": "kill_prim_worker_node_fencing_alert", "name": "Kill primary worker node with fencing alert agent implemented", - "purpose": [ "angi", "ScaleOut", "kill", "node", "primary", "worker", "fencing_alert" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "node", + "primary", + "worker", + "fencing_alert" + ], "start": "prereq10", "steps": [ { @@ -38,8 +46,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", @@ -68,10 +75,10 @@ "clone_state is None", "role is None", "score is None" - ] - }, - { - "step": "step50", + ] + }, + { + "step": "step50", "name": "begin recover", "next": "final60", "loop": 300, diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver.json b/test/json/angi-ScaleOut/kill_secn_indexserver.json index 1c52f993..a339d664 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver.json @@ -1,7 +1,16 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary master indexserver", - "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "indexserver", + "secondary", + "master", + "hadr", + "susChkSrv" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index 3af458de..eb327f8a 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -1,7 +1,18 @@ { "test": "kill_secn_indexserver_fencing_alert", "name": "Kill secondary master indexserver with fencing alert implemented", - "purpose": [ "angi", "ScaleOut", "kill", "indexserver", "secondary", "master", "hadr", "susChkSrv", "alert", "fencing" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "indexserver", + "secondary", + "master", + "hadr", + "susChkSrv", + "alert", + "fencing" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_inst.json b/test/json/angi-ScaleOut/kill_secn_inst.json index 85663329..478385b8 100644 --- a/test/json/angi-ScaleOut/kill_secn_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_inst.json @@ -1,7 +1,14 @@ { "test": "kill_secn_inst", "name": "Kill secondary master instance", - "purpose": [ "angi", "ScaleOut", "kill", "secondary", "instance", "master" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "secondary", + "instance", + "master" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_node.json b/test/json/angi-ScaleOut/kill_secn_node.json index 0e7a893c..2e6a4994 100644 --- a/test/json/angi-ScaleOut/kill_secn_node.json +++ b/test/json/angi-ScaleOut/kill_secn_node.json @@ -1,7 +1,14 @@ { "test": "kill_secn_node", "name": "Kill secondary master node", - "purpose": [ "angi", "ScaleOut", "kill", "secondary", "node", "master" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "secondary", + "node", + "master" + ], "start": "prereq10", "steps": [ { @@ -15,7 +22,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { @@ -87,7 +94,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/kill_secn_worker_inst.json b/test/json/angi-ScaleOut/kill_secn_worker_inst.json index e9cc54a5..d5b039f3 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_inst.json @@ -1,7 +1,14 @@ { "test": "kill_secn_worker_inst", "name": "Kill secondary worker instance", - "purpose": [ "angi", "ScaleOut", "kill", "secondary", "instance", "worker" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "secondary", + "instance", + "worker" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node.json b/test/json/angi-ScaleOut/kill_secn_worker_node.json index 76154a1e..9dcff7fe 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node.json @@ -1,7 +1,14 @@ { "test": "kill_secn_worker_node", "name": "Kill secondary worker node", - "purpose": [ "angi", "ScaleOut", "kill", "secondary", "node", "worker" ], + "purpose": [ + "angi", + "ScaleOut", + "kill", + "secondary", + "node", + "worker" + ], "start": "prereq10", "steps": [ { @@ -15,7 +22,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { @@ -26,7 +33,7 @@ "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss == 1", @@ -47,7 +54,7 @@ "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sSite": [ "lpt == 10", "lss ~ (1|2)", diff --git a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json index fd55a7e2..cf7bec0b 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json @@ -1,7 +1,15 @@ { "test": "maintenance_cluster_hana_running", "name": "stop and restart cluster, keep hana running", - "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster" ], + "purpose": [ + "angi", + "ScaleOut", + "maintenance", + "hana", + "primary", + "secondary", + "cluster" + ], "start": "prereq10", "steps": [ { @@ -13,7 +21,7 @@ "post": "shell sct_test_maintenance_cluster_hana_running", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json index 9bf256d0..3d8ae115 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json @@ -1,7 +1,17 @@ { "test": "maintenance_cluster_turn_hana", "name": "maintenance cluster turn hana", - "purpose": [ "angi", "ScaleOut", "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster" ], + "purpose": [ + "angi", + "ScaleOut", + "angi", + "ScaleOut", + "maintenance", + "hana", + "primary", + "secondary", + "cluster" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json b/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json index 82a389a5..65cd4e6c 100644 --- a/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json @@ -1,7 +1,15 @@ { "test": "maintenance_with_standby_nodes", "name": "standby+online secondary then standby+online primary", - "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster" ], + "purpose": [ + "angi", + "ScaleOut", + "maintenance", + "hana", + "primary", + "secondary", + "cluster" + ], "start": "prereq10", "todo": "expectations needs to be fixed - e.g. step20 sHostDown is wrong, because topology will also be stopped. roles will be ::: not master1:...", "steps": [ @@ -16,7 +24,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { @@ -132,7 +140,7 @@ "sSite": "pSiteUp", "pHost": "sHostUp", "sHost": "pHostUp", - "pWorker": "sWorkerUp", + "pWorker": "sWorkerUp", "sWorker": "pWorkerUp" } ] diff --git a/test/json/angi-ScaleOut/nop-false.json b/test/json/angi-ScaleOut/nop-false.json index 10f7ab65..4735c43f 100644 --- a/test/json/angi-ScaleOut/nop-false.json +++ b/test/json/angi-ScaleOut/nop-false.json @@ -1,7 +1,15 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", - "purpose": [ "angi", "ScaleOut", "fail", "parser", "tester", "sleep", "stability" ], + "purpose": [ + "angi", + "ScaleOut", + "fail", + "parser", + "tester", + "sleep", + "stability" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/nop.json b/test/json/angi-ScaleOut/nop.json index 80afc8fe..9e846b85 100644 --- a/test/json/angi-ScaleOut/nop.json +++ b/test/json/angi-ScaleOut/nop.json @@ -1,7 +1,15 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", - "purpose": [ "angi", "ScaleOut", "ok", "parser", "tester", "sleep", "stability" ], + "purpose": [ + "angi", + "ScaleOut", + "ok", + "parser", + "tester", + "sleep", + "stability" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/properties.json b/test/json/angi-ScaleOut/properties.json index dd92cece..2441c9a8 100644 --- a/test/json/angi-ScaleOut/properties.json +++ b/test/json/angi-ScaleOut/properties.json @@ -1,5 +1,9 @@ { - "purpose": [ "angi", "ScaleOut", "properties" ], + "purpose": [ + "angi", + "ScaleOut", + "properties" + ], "sid": "HA1", "instNo": "10", "mstResource": "mst_SAPHanaCon_HA1_HDB10", diff --git a/test/json/angi-ScaleOut/properties_ha1_hdb10.json b/test/json/angi-ScaleOut/properties_ha1_hdb10.json index 8770b10a..bcb32f3d 100644 --- a/test/json/angi-ScaleOut/properties_ha1_hdb10.json +++ b/test/json/angi-ScaleOut/properties_ha1_hdb10.json @@ -1,5 +1,9 @@ { - "purpose": [ "angi", "ScaleOut", "properties" ], + "purpose": [ + "angi", + "ScaleOut", + "properties" + ], "sid": "HA1", "mstResource": "mst_SAPHanaCon_HA1_HDB10", "clnResource": "cln_SAPHanaTop_HA1_HDB10" diff --git a/test/json/angi-ScaleOut/restart_cluster.json b/test/json/angi-ScaleOut/restart_cluster.json index 44419c0a..87d6f26a 100644 --- a/test/json/angi-ScaleOut/restart_cluster.json +++ b/test/json/angi-ScaleOut/restart_cluster.json @@ -1,7 +1,16 @@ { "test": "restart_cluster", "name": "stop and restart cluster and hana", - "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], + "purpose": [ + "angi", + "ScaleOut", + "maintenance", + "hana", + "primary", + "secondary", + "cluster", + "restart" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/restart_cluster_hana_running.json b/test/json/angi-ScaleOut/restart_cluster_hana_running.json index f0eef82c..dac951d9 100644 --- a/test/json/angi-ScaleOut/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/restart_cluster_hana_running.json @@ -1,7 +1,16 @@ { "test": "restart_cluster_hana_running", "name": "stop and restart cluster, keep hana running", - "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], + "purpose": [ + "angi", + "ScaleOut", + "maintenance", + "hana", + "primary", + "secondary", + "cluster", + "restart" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/restart_cluster_turn_hana.json b/test/json/angi-ScaleOut/restart_cluster_turn_hana.json index 985f57cf..d6fdbf95 100644 --- a/test/json/angi-ScaleOut/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut/restart_cluster_turn_hana.json @@ -1,7 +1,16 @@ { "test": "restart_cluster_turn_hana", "name": "stop cluster, turn hana, start cluster", - "purpose": [ "angi", "ScaleOut", "maintenance", "hana", "primary", "secondary", "cluster", "restart" ], + "purpose": [ + "angi", + "ScaleOut", + "maintenance", + "hana", + "primary", + "secondary", + "cluster", + "restart" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/standby_prim_node.json b/test/json/angi-ScaleOut/standby_prim_node.json index 1962aaef..6989310e 100644 --- a/test/json/angi-ScaleOut/standby_prim_node.json +++ b/test/json/angi-ScaleOut/standby_prim_node.json @@ -1,7 +1,15 @@ { "test": "standby_prim_node", "name": "standby primary master node (and online again)", - "purpose": [ "angi", "ScaleOut", "standby", "maintenance", "primary", "node", "master" ], + "purpose": [ + "angi", + "ScaleOut", + "standby", + "maintenance", + "primary", + "node", + "master" + ], "start": "prereq10", "steps": [ { @@ -15,7 +23,7 @@ "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp", - "pWorker": "pWorkerUp", + "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, { diff --git a/test/json/angi-ScaleOut/standby_secn_node.json b/test/json/angi-ScaleOut/standby_secn_node.json index 66399a73..faebe676 100644 --- a/test/json/angi-ScaleOut/standby_secn_node.json +++ b/test/json/angi-ScaleOut/standby_secn_node.json @@ -1,7 +1,15 @@ { "test": "standby_secn_node", "name": "standby secondary master node (and online again)", - "purpose": [ "angi", "ScaleOut", "standby", "maintenance", "secondary", "node", "master" ], + "purpose": [ + "angi", + "ScaleOut", + "standby", + "maintenance", + "secondary", + "node", + "master" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleOut/standby_secn_worker_node.json b/test/json/angi-ScaleOut/standby_secn_worker_node.json index 0951a49f..b281359e 100644 --- a/test/json/angi-ScaleOut/standby_secn_worker_node.json +++ b/test/json/angi-ScaleOut/standby_secn_worker_node.json @@ -1,7 +1,15 @@ { "test": "standby_secn_worker_node", "name": "standby secondary worker node (and online again)", - "purpose": [ "angi", "ScaleOut", "standby", "maintenance", "secondary", "node", "worker" ], + "purpose": [ + "angi", + "ScaleOut", + "standby", + "maintenance", + "secondary", + "node", + "worker" + ], "start": "prereq10", "steps": [ { From 5acef9e12f927938fea1ee47f593e3de4493ffa6 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 14:31:29 +0200 Subject: [PATCH 144/414] tester: SAPHanaSR-checkJson - added pretty-print --- test/tester/SAPHanaSR-checkJson | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tester/SAPHanaSR-checkJson b/test/tester/SAPHanaSR-checkJson index 7fde792e..e8beb3e8 100755 --- a/test/tester/SAPHanaSR-checkJson +++ b/test/tester/SAPHanaSR-checkJson @@ -47,7 +47,7 @@ except PermissionError as e_ferr: exit(1) if not(quiet): - print(json_data) + print(json.dumps(json_data, indent=4)) exit(0) From 93b4a494a8e131affe5441791baf762058106824 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 15:54:36 +0200 Subject: [PATCH 145/414] tester: used SAPHanaSR-checkJson to 'pretty-print' json files in angi-ScaleUp --- .../angi-ScaleUp/block_manual_takeover.json | 16 +- test/json/angi-ScaleUp/block_sr.json | 15 +- .../block_sr_and_freeze_prim_fs.json | 15 +- test/json/angi-ScaleUp/defaults.json | 140 +++++++++--------- .../angi-ScaleUp/demo_kill_prim_inst.json | 11 +- test/json/angi-ScaleUp/flap.json | 71 +++++---- test/json/angi-ScaleUp/flop.json | 15 +- test/json/angi-ScaleUp/flup.json | 13 +- test/json/angi-ScaleUp/free_log_area.json | 15 +- test/json/angi-ScaleUp/freeze_prim_fs.json | 13 +- .../angi-ScaleUp/kill_prim_indexserver.json | 8 +- .../kill_prim_indexserver_fencing.json | 12 +- test/json/angi-ScaleUp/kill_prim_inst.json | 10 +- .../angi-ScaleUp/kill_prim_inst_fencing.json | 12 +- test/json/angi-ScaleUp/kill_prim_node.json | 8 +- .../angi-ScaleUp/kill_secn_indexserver.json | 10 +- .../kill_secn_indexserver_fencing.json | 13 +- test/json/angi-ScaleUp/kill_secn_inst.json | 8 +- test/json/angi-ScaleUp/kill_secn_node.json | 8 +- .../maintenance_cluster_bootstrap.json | 24 ++- .../maintenance_cluster_hana_running.json | 13 +- .../maintenance_cluster_turn_hana.json | 13 +- .../maintenance_with_standby_nodes.json | 12 +- test/json/angi-ScaleUp/nop.json | 14 +- test/json/angi-ScaleUp/one_stable_hour.json | 24 ++- test/json/angi-ScaleUp/properties.json | 6 +- .../angi-ScaleUp/register_prim_cold_hana.json | 3 +- test/json/angi-ScaleUp/restart_cluster.json | 10 +- .../restart_cluster_hana_running.json | 10 +- .../restart_cluster_turn_hana.json | 10 +- test/json/angi-ScaleUp/split_brain_prio.json | 10 +- test/json/angi-ScaleUp/standby_prim_node.json | 11 +- test/json/angi-ScaleUp/standby_secn_node.json | 11 +- 33 files changed, 403 insertions(+), 181 deletions(-) diff --git a/test/json/angi-ScaleUp/block_manual_takeover.json b/test/json/angi-ScaleUp/block_manual_takeover.json index e84cb056..8fc64010 100644 --- a/test/json/angi-ScaleUp/block_manual_takeover.json +++ b/test/json/angi-ScaleUp/block_manual_takeover.json @@ -1,7 +1,15 @@ { "test": "block_manual_takeover", "name": "blocked manual takeover", - "purpose": [ "angi", "ScaleUp", "maintenace", "admin", "block", "susTkOver", "hadr" ], + "purpose": [ + "angi", + "ScaleUp", + "maintenace", + "admin", + "block", + "susTkOver", + "hadr" + ], "start": "prereq10", "steps": [ { @@ -13,7 +21,7 @@ "post": "bmt", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -25,7 +33,7 @@ "post": "sleep 120", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -36,7 +44,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleUp/block_sr.json b/test/json/angi-ScaleUp/block_sr.json index a8aaebc4..4b0cd652 100644 --- a/test/json/angi-ScaleUp/block_sr.json +++ b/test/json/angi-ScaleUp/block_sr.json @@ -1,7 +1,16 @@ { "test": "block_sr", "name": "block sr and check SFAIL attribute; unblock to recover", - "purpose": [ "angi", "ScaleUp", "block", "primary", "secondary", "sr", "hadr", "susHanaSR" ], + "purpose": [ + "angi", + "ScaleUp", + "block", + "primary", + "secondary", + "sr", + "hadr", + "susHanaSR" + ], "start": "prereq10", "steps": [ { @@ -13,7 +22,7 @@ "post": "shell sct_test_block_sap_hana_sr", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -39,7 +48,7 @@ "wait": 2, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json index e032d325..1b01c740 100644 --- a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json @@ -1,7 +1,16 @@ { "test": "block_sr_and_freeze_prim_fs", "name": "block sr and freeze prim fs", - "purpose": [ "angi", "ScaleUp", "maintenace", "admin", "block", "fs", "susHanaSR", "hadr" ], + "purpose": [ + "angi", + "ScaleUp", + "maintenace", + "admin", + "block", + "fs", + "susHanaSR", + "hadr" + ], "start": "prereq10", "steps": [ { @@ -13,7 +22,7 @@ "post": "shell sct_test_block_sap_hana_sr", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -84,7 +93,7 @@ "wait": 2, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleUp/defaults.json b/test/json/angi-ScaleUp/defaults.json index 027ed8d8..5736463f 100644 --- a/test/json/angi-ScaleUp/defaults.json +++ b/test/json/angi-ScaleUp/defaults.json @@ -1,73 +1,77 @@ { "opMode": "logreplay", "srMode": "sync", - "purpose": [ "angi", "ScaleUp", "defaults" ], + "purpose": [ + "angi", + "ScaleUp", + "defaults" + ], "checkPtr": { - "globalUp": [ - "topology == ScaleUp" - ], - "pHostUp": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], - "pSiteUp": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], - "pSiteUpDemo": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], - "sSiteUp": [ - "lpt == 30", - "lss == 4", - "srr == S", - "srHook == SOK", - "srPoll == SOK" - ], - "sSiteUpDemo": [ - "lpt == 30", - "lss == 4", - "srr == S", - "srPoll == SOK" - ], - "sHostUp": [ - "clone_state == DEMOTED", - "roles == master1:master:worker:master", - "score == 100" - ], - "pHostDown": [ - "clone_state == UNDEFINED", - "roles == master1::worker:", - "score == 150", - "standby == on" - ], - "pSiteDown": [ - "lpt > 1000000000", - "lss == 1", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], - "sSiteDown": [ - "lpt == 10", - "lss == 1", - "srr == S", - "srHook == SFAIL", - "srPoll == SFAIL" - ], - "sHostDown": [ - "clone_state == UNDEFINED", - "roles == master1::worker:", - "score == 100", - "standby == on" - ] - } + "globalUp": [ + "topology == ScaleUp" + ], + "pHostUp": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ], + "pSiteUp": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "pSiteUpDemo": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSiteUp": [ + "lpt == 30", + "lss == 4", + "srr == S", + "srHook == SOK", + "srPoll == SOK" + ], + "sSiteUpDemo": [ + "lpt == 30", + "lss == 4", + "srr == S", + "srPoll == SOK" + ], + "sHostUp": [ + "clone_state == DEMOTED", + "roles == master1:master:worker:master", + "score == 100" + ], + "pHostDown": [ + "clone_state == UNDEFINED", + "roles == master1::worker:", + "score == 150", + "standby == on" + ], + "pSiteDown": [ + "lpt > 1000000000", + "lss == 1", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSiteDown": [ + "lpt == 10", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "sHostDown": [ + "clone_state == UNDEFINED", + "roles == master1::worker:", + "score == 100", + "standby == on" + ] + } } diff --git a/test/json/angi-ScaleUp/demo_kill_prim_inst.json b/test/json/angi-ScaleUp/demo_kill_prim_inst.json index 914ad178..b1a64140 100644 --- a/test/json/angi-ScaleUp/demo_kill_prim_inst.json +++ b/test/json/angi-ScaleUp/demo_kill_prim_inst.json @@ -1,7 +1,14 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", - "purpose": [ "angi", "ScaleUp", "demo", "kill", "primary", "instance" ], + "purpose": [ + "angi", + "ScaleUp", + "demo", + "kill", + "primary", + "instance" + ], "start": "prereq10", "steps": [ { @@ -14,7 +21,7 @@ "todo": "allow something like pSite == @@pSite@@ or pSite == %pSite", "pSite": "pSiteUpDemo", "sSite": "sSiteUpDemo", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/flap.json b/test/json/angi-ScaleUp/flap.json index 63505db0..bb142b76 100644 --- a/test/json/angi-ScaleUp/flap.json +++ b/test/json/angi-ScaleUp/flap.json @@ -1,38 +1,47 @@ { "test": "flap", "name": "flap - test the new test parser", - "purpose": [ "angi", "ScaleUp", "angi", "ScaleUp", "parser", "tester", "sleep", "stability" ], + "purpose": [ + "angi", + "ScaleUp", + "angi", + "ScaleUp", + "parser", + "tester", + "sleep", + "stability" + ], "start": "prereq10", "steps": [ - { - "step": "prereq10", - "name": "test prerequitsites", - "next": "final40", - "loop": 1, - "wait": 1, - "post": "sleep 4", - "pSite": [ - "lpt >~ 2000000000:^(20|30|1.........)$", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM", - "hugo is None" - ], - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" - }, - { - "step": "final40", - "name": "still running", - "next": "END", - "loop": 1, - "wait": 1, - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" - } + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "final40", + "loop": 1, + "wait": 1, + "post": "sleep 4", + "pSite": [ + "lpt >~ 2000000000:^(20|30|1.........)$", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM", + "hugo is None" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "final40", + "name": "still running", + "next": "END", + "loop": 1, + "wait": 1, + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } ] } diff --git a/test/json/angi-ScaleUp/flop.json b/test/json/angi-ScaleUp/flop.json index 509c9da8..feb7f93e 100644 --- a/test/json/angi-ScaleUp/flop.json +++ b/test/json/angi-ScaleUp/flop.json @@ -1,7 +1,14 @@ { "test": "flop", "name": "flop - this test should NOT pass successfully", - "purpose": [ "angi", "ScaleUp", "fail", "parser", "sleep", "tester" ], + "purpose": [ + "angi", + "ScaleUp", + "fail", + "parser", + "sleep", + "tester" + ], "start": "prereq10", "steps": [ { @@ -19,7 +26,7 @@ "srPoll == PRIM" ], "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -32,8 +39,8 @@ "lpt is None" ], "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", " sHost": "sHostUp" - } + } ] } diff --git a/test/json/angi-ScaleUp/flup.json b/test/json/angi-ScaleUp/flup.json index c7c6760d..2dfbaf32 100644 --- a/test/json/angi-ScaleUp/flup.json +++ b/test/json/angi-ScaleUp/flup.json @@ -1,7 +1,14 @@ { "test": "flup", "name": "flup - like nop but very short sleep only - only for checking the test engine", - "purpose": [ "angi", "ScaleUp", "ok", "parser", "tester", "sleep" ], + "purpose": [ + "angi", + "ScaleUp", + "ok", + "parser", + "tester", + "sleep" + ], "start": "prereq10", "steps": [ { @@ -13,7 +20,7 @@ "post": "sleep 4", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +31,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleUp/free_log_area.json b/test/json/angi-ScaleUp/free_log_area.json index 50f4836c..a437b137 100644 --- a/test/json/angi-ScaleUp/free_log_area.json +++ b/test/json/angi-ScaleUp/free_log_area.json @@ -1,7 +1,14 @@ { "test": "free_log_area", "name": "free hana log area on primary site", - "purpose": [ "angi", "ScaleUp", "maintenance", "primary", "logarea", "stability" ], + "purpose": [ + "angi", + "ScaleUp", + "maintenance", + "primary", + "logarea", + "stability" + ], "start": "prereq10", "steps": [ { @@ -13,7 +20,7 @@ "post": "shell sct_test_free_log_area", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -25,7 +32,7 @@ "post": "sleep 60", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -36,7 +43,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleUp/freeze_prim_fs.json b/test/json/angi-ScaleUp/freeze_prim_fs.json index ea330081..d595b86d 100644 --- a/test/json/angi-ScaleUp/freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/freeze_prim_fs.json @@ -1,7 +1,15 @@ { "test": "freeze_prim_fs", "name": "freeze sap hana fs on primary node", - "purpose": [ "angi", "ScaleUp", "fs", "freeze", "primary", "master", "node" ], + "purpose": [ + "angi", + "ScaleUp", + "fs", + "freeze", + "primary", + "master", + "node" + ], "start": "prereq10", "steps": [ { @@ -35,8 +43,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver.json b/test/json/angi-ScaleUp/kill_prim_indexserver.json index e045eaa8..317550f5 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver.json @@ -1,7 +1,13 @@ { "test": "kill_prim_indexserver", "name": "Kill primary indexserver", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "primary", + "indexserver" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 848cbe35..bbaf0428 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -1,7 +1,14 @@ { "test": "kill_prim_indexserver_fencing", "name": "Kill primary indexserver with on-fail fencing", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver", "fencing" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "primary", + "indexserver", + "fencing" + ], "start": "prereq10", "steps": [ { @@ -36,8 +43,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/angi-ScaleUp/kill_prim_inst.json b/test/json/angi-ScaleUp/kill_prim_inst.json index d063e85e..761cb413 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst.json +++ b/test/json/angi-ScaleUp/kill_prim_inst.json @@ -1,7 +1,13 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "primary", + "instance" + ], "start": "prereq10", "steps": [ { @@ -14,7 +20,7 @@ "todo": "allow something like pSite=@@pSite@@ or pSite=%pSite", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index d51fcae6..e890cab7 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -1,7 +1,14 @@ { "test": "kill_prim_inst_fencing", "name": "Kill primary instance with on-fail fencing", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance", "fencing" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "primary", + "instance", + "fencing" + ], "start": "prereq10", "steps": [ { @@ -36,8 +43,7 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index c46ab116..53cc9601 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -1,7 +1,13 @@ { "test": "kill_prim_node", "name": "Kill primary node", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "node" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "primary", + "node" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver.json b/test/json/angi-ScaleUp/kill_secn_indexserver.json index 8e15ebae..1e853f2b 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver.json @@ -1,7 +1,13 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary indexserver", - "purpose": [ "angi", "ScaleUp", "kill", "secondary", "indexserver" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "secondary", + "indexserver" + ], "start": "prereq10", "steps": [ { @@ -12,7 +18,7 @@ "wait": 1, "post": "kill_secn_indexserver", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index 13abd281..881c08c6 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -1,7 +1,14 @@ { "test": "kill_secn_indexserver_fencing", "name": "Kill secondary indexserver with on-fail fencing", - "purpose": [ "angi", "ScaleUp", "kill", "secondary", "indexserver", "fencing" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "secondary", + "indexserver", + "fencing" + ], "start": "prereq10", "steps": [ { @@ -12,7 +19,7 @@ "wait": 1, "post": "kill_secn_indexserver", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -23,7 +30,7 @@ "loop": 120, "wait": 2, "pSite": "pSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sSite": [ "lpt ~ (10|30)", "lss ~ (1|2)", diff --git a/test/json/angi-ScaleUp/kill_secn_inst.json b/test/json/angi-ScaleUp/kill_secn_inst.json index b9c6dc8a..68ddc9dd 100644 --- a/test/json/angi-ScaleUp/kill_secn_inst.json +++ b/test/json/angi-ScaleUp/kill_secn_inst.json @@ -1,7 +1,13 @@ { "test": "kill_secn_inst", "name": "Kill secondary instance", - "purpose": [ "angi", "ScaleUp", "kill", "secondary", "instance" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "secondary", + "instance" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_secn_node.json b/test/json/angi-ScaleUp/kill_secn_node.json index 8216fb31..39c39021 100644 --- a/test/json/angi-ScaleUp/kill_secn_node.json +++ b/test/json/angi-ScaleUp/kill_secn_node.json @@ -1,7 +1,13 @@ { "test": "kill_secn_node", "name": "Kill secondary node", - "purpose": [ "angi", "ScaleUp", "kill", "secondary", "node" ], + "purpose": [ + "angi", + "ScaleUp", + "kill", + "secondary", + "node" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json b/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json index f9ffaf12..612de3c4 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json @@ -1,7 +1,15 @@ { "test": "maintenance_cluster_bootstrap", "name": "delete cluster config and begin from scratch", - "purpose": [ "angi", "ScaleUp", "maintenance", "config", "primary", "secondary", "cluster" ], + "purpose": [ + "angi", + "ScaleUp", + "maintenance", + "config", + "primary", + "secondary", + "cluster" + ], "start": "prereq10", "steps": [ { @@ -13,7 +21,7 @@ "post": "shell sct_test_delete_cluster_config", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -36,7 +44,7 @@ "roles is None", "score is None" ], - "sHost":[ + "sHost": [ "clone_state is None", "roles is None", "score is None" @@ -50,14 +58,14 @@ "wait": 2, "post": "shell sct_test_block_sap_hana_sr", "pSite": "pSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sSite": [ "srr == S", "lss == 4", "srHook is None", "srPoll == SOK" ], - "sHost":[ + "sHost": [ "clone_state == DEMOTED", "roles == master1:master:worker:master" ] @@ -70,14 +78,14 @@ "wait": 2, "post": "shell sct_test_unblock_sap_hana_sr", "pSite": "pSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sSite": [ "srr == S", "lss == 4", "srHook == SFAIL", "srPoll == SFAIL" ], - "sHost":[ + "sHost": [ "clone_state == DEMOTED", "roles == master1:master:worker:master" ] @@ -90,7 +98,7 @@ "wait": 2, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json b/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json index 5a088200..d57a5a7b 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json @@ -1,7 +1,16 @@ { "test": "maintenance_cluster_hana_running", "name": "stop and restart cluster, keep hana running", - "purpose": [ "angi", "ScaleUp", "maintenance", "restart", "primary", "secondary", "cluster", "hana" ], + "purpose": [ + "angi", + "ScaleUp", + "maintenance", + "restart", + "primary", + "secondary", + "cluster", + "hana" + ], "start": "prereq10", "steps": [ { @@ -13,7 +22,7 @@ "post": "shell sct_test_maintenance_cluster_hana_running", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json index 9f35086c..072aa9b7 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json @@ -1,7 +1,16 @@ { "test": "maintenance_cluster_turn_hana", "name": "maintenance_cluster_turn_hana", - "purpose": [ "angi", "ScaleUp", "maintenance", "restart", "primary", "secondary", "cluster", "hana" ], + "purpose": [ + "angi", + "ScaleUp", + "maintenance", + "restart", + "primary", + "secondary", + "cluster", + "hana" + ], "start": "prereq10", "steps": [ { @@ -13,7 +22,7 @@ "post": "shell sct_test_maintenance_cluster_turn_hana", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json b/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json index 98f6e89c..304cb465 100644 --- a/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json @@ -1,7 +1,15 @@ { "test": "maintenance_with_standby_nodes", "name": "standby+online secondary then standby+online primary", - "purpose": [ "angi", "ScaleUp", "maintenance", "standby", "primary", "secondary", "cluster" ], + "purpose": [ + "angi", + "ScaleUp", + "maintenance", + "standby", + "primary", + "secondary", + "cluster" + ], "start": "prereq10", "steps": [ { @@ -13,7 +21,7 @@ "post": "ssn", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/nop.json b/test/json/angi-ScaleUp/nop.json index 31c09216..ae943f50 100644 --- a/test/json/angi-ScaleUp/nop.json +++ b/test/json/angi-ScaleUp/nop.json @@ -1,7 +1,15 @@ { "test": "nop", "name": "no operation - check, wait and check again (stability check)", - "purpose": [ "angi", "ScaleUp", "ok", "parser", "tester", "sleep", "stability" ], + "purpose": [ + "angi", + "ScaleUp", + "ok", + "parser", + "tester", + "sleep", + "stability" + ], "start": "prereq10", "steps": [ { @@ -13,7 +21,7 @@ "post": "sleep 240", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +32,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleUp/one_stable_hour.json b/test/json/angi-ScaleUp/one_stable_hour.json index 69763fb0..24cf72e4 100644 --- a/test/json/angi-ScaleUp/one_stable_hour.json +++ b/test/json/angi-ScaleUp/one_stable_hour.json @@ -1,7 +1,15 @@ { "test": "one_stable_hour", "name": "one_stable_hour - like nop check regulary for one hour that there is no fault", - "purpose": [ "angi", "ScaleUp", "ok", "parser", "tester", "sleep", "stability" ], + "purpose": [ + "angi", + "ScaleUp", + "ok", + "parser", + "tester", + "sleep", + "stability" + ], "start": "prereq10", "steps": [ { @@ -13,7 +21,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -25,7 +33,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -37,7 +45,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -49,7 +57,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -61,7 +69,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -73,7 +81,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -84,7 +92,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleUp/properties.json b/test/json/angi-ScaleUp/properties.json index 87ab9c69..31ab3eaa 100644 --- a/test/json/angi-ScaleUp/properties.json +++ b/test/json/angi-ScaleUp/properties.json @@ -1,5 +1,9 @@ { - "purpose": [ "angi", "ScaleUp", "properties" ], + "purpose": [ + "angi", + "ScaleUp", + "properties" + ], "sid": "HA1", "instNo": "00", "mstResource": "mst_SAPHanaCon_HA1_HDB00", diff --git a/test/json/angi-ScaleUp/register_prim_cold_hana.json b/test/json/angi-ScaleUp/register_prim_cold_hana.json index 2c63c085..0967ef42 100644 --- a/test/json/angi-ScaleUp/register_prim_cold_hana.json +++ b/test/json/angi-ScaleUp/register_prim_cold_hana.json @@ -1,2 +1 @@ -{ -} +{} diff --git a/test/json/angi-ScaleUp/restart_cluster.json b/test/json/angi-ScaleUp/restart_cluster.json index 28267fdb..af79dcb6 100644 --- a/test/json/angi-ScaleUp/restart_cluster.json +++ b/test/json/angi-ScaleUp/restart_cluster.json @@ -1,7 +1,13 @@ { "test": "restart_cluster", "name": "stop and restart cluster and hana", - "purpose": [ "angi", "ScaleUp", "restart", "cluster", "maintenance" ], + "purpose": [ + "angi", + "ScaleUp", + "restart", + "cluster", + "maintenance" + ], "start": "prereq10", "steps": [ { @@ -13,7 +19,7 @@ "post": "shell sct_test_restart_cluster", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/restart_cluster_hana_running.json b/test/json/angi-ScaleUp/restart_cluster_hana_running.json index 692b8a23..8d7218ad 100644 --- a/test/json/angi-ScaleUp/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/restart_cluster_hana_running.json @@ -1,7 +1,13 @@ { "test": "restart_cluster_hana_running", "name": "stop and restart cluster, keep hana running", - "purpose": [ "angi", "ScaleUp", "restart", "cluster", "maintenance" ], + "purpose": [ + "angi", + "ScaleUp", + "restart", + "cluster", + "maintenance" + ], "start": "prereq10", "steps": [ { @@ -13,7 +19,7 @@ "post": "shell sct_test_restart_cluster_hana_running", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/restart_cluster_turn_hana.json b/test/json/angi-ScaleUp/restart_cluster_turn_hana.json index 1d6d7335..9b5689f3 100644 --- a/test/json/angi-ScaleUp/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleUp/restart_cluster_turn_hana.json @@ -1,7 +1,13 @@ { "test": "restart_cluster_turn_hana", "name": "stop cluster, turn hana, start cluster", - "purpose": [ "angi", "ScaleUp", "restart", "cluster", "maintenance" ], + "purpose": [ + "angi", + "ScaleUp", + "restart", + "cluster", + "maintenance" + ], "start": "prereq10", "steps": [ { @@ -13,7 +19,7 @@ "post": "shell sct_test_restart_cluster_turn_hana", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/split_brain_prio.json b/test/json/angi-ScaleUp/split_brain_prio.json index ed99ece7..be9bf3f6 100644 --- a/test/json/angi-ScaleUp/split_brain_prio.json +++ b/test/json/angi-ScaleUp/split_brain_prio.json @@ -1,7 +1,15 @@ { "test": "split_brain_prio", "name": "split brain with prio fencing to simulate fence of secondary", - "purpose": [ "angi", "ScaleUp", "split-brain", "primary", "secondary", "cluster", "hana" ], + "purpose": [ + "angi", + "ScaleUp", + "split-brain", + "primary", + "secondary", + "cluster", + "hana" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/standby_prim_node.json b/test/json/angi-ScaleUp/standby_prim_node.json index 556b7f10..b4d381f3 100644 --- a/test/json/angi-ScaleUp/standby_prim_node.json +++ b/test/json/angi-ScaleUp/standby_prim_node.json @@ -1,7 +1,14 @@ { "test": "standby_primary_node", "name": "standby primary node (and online again)", - "purpose": [ "angi", "ScaleUp", "standby", "primary", "node", "maintenance" ], + "purpose": [ + "angi", + "ScaleUp", + "standby", + "primary", + "node", + "maintenance" + ], "start": "prereq10", "steps": [ { @@ -13,7 +20,7 @@ "post": "spn", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleUp/standby_secn_node.json b/test/json/angi-ScaleUp/standby_secn_node.json index 330bf8aa..d8831ab6 100644 --- a/test/json/angi-ScaleUp/standby_secn_node.json +++ b/test/json/angi-ScaleUp/standby_secn_node.json @@ -1,7 +1,14 @@ { "test": "standby_secondary_node", "name": "standby secondary node (and online again)", - "purpose": [ "angi", "ScaleUp", "standby", "secondary", "node", "maintenance" ], + "purpose": [ + "angi", + "ScaleUp", + "standby", + "secondary", + "node", + "maintenance" + ], "start": "prereq10", "steps": [ { @@ -12,7 +19,7 @@ "wait": 1, "post": "ssn", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, From 756b9c4e5163dcd41708d2c537d3c6103476b7c0 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 15:57:16 +0200 Subject: [PATCH 146/414] tester: used SAPHanaSR-checkJson to 'pretty-print' json files in angi-ScaleOut-BW --- .../block_manual_takeover.json | 6 +- test/json/angi-ScaleOut-BW/defaults.json | 108 +++++++++--------- test/json/angi-ScaleOut-BW/free_log_area.json | 6 +- .../kill_prim_indexserver.json | 34 +++--- .../json/angi-ScaleOut-BW/kill_prim_inst.json | 36 +++--- .../kill_prim_worker_inst.json | 30 ++--- .../kill_prim_worker_node.json | 26 ++--- .../kill_secn_indexserver.json | 34 +++--- .../json/angi-ScaleOut-BW/kill_secn_inst.json | 34 +++--- .../json/angi-ScaleOut-BW/kill_secn_node.json | 28 ++--- .../kill_secn_worker_inst.json | 34 +++--- .../kill_secn_worker_node.json | 30 ++--- .../maintenance_cluster_turn_hana.json | 2 +- .../maintenance_with_standby_nodes.json | 24 ++-- test/json/angi-ScaleOut-BW/nop-false.json | 4 +- test/json/angi-ScaleOut-BW/nop.json | 4 +- .../angi-ScaleOut-BW/restart_cluster.json | 2 +- .../restart_cluster_hana_running.json | 2 +- .../restart_cluster_turn_hana.json | 2 +- .../angi-ScaleOut-BW/standby_prim_node.json | 38 +++--- .../angi-ScaleOut-BW/standby_secn_node.json | 36 +++--- 21 files changed, 260 insertions(+), 260 deletions(-) diff --git a/test/json/angi-ScaleOut-BW/block_manual_takeover.json b/test/json/angi-ScaleOut-BW/block_manual_takeover.json index 41863d25..1737ea3b 100644 --- a/test/json/angi-ScaleOut-BW/block_manual_takeover.json +++ b/test/json/angi-ScaleOut-BW/block_manual_takeover.json @@ -12,7 +12,7 @@ "post": "bmt", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "post": "sleep 120", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -35,7 +35,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleOut-BW/defaults.json b/test/json/angi-ScaleOut-BW/defaults.json index fb1840a6..34ec4f51 100644 --- a/test/json/angi-ScaleOut-BW/defaults.json +++ b/test/json/angi-ScaleOut-BW/defaults.json @@ -2,58 +2,58 @@ "opMode": "logreplay", "srMode": "sync", "checkPtr": { - "globalUp": [ - "topology=ScaleOut" - ], - "pHostUp": [ - "clone_state=PROMOTED", - "roles=master1:master:worker:master", - "score=150" - ], - "pSiteUp": [ - "lpt=1[6-9]........", - "lss=4", - "srr=P", - "srHook=PRIM", - "srPoll=PRIM" - ], - "sSiteUp": [ - "lpt=30", - "lss=4", - "srr=S", - "srHook=SOK", - "srPoll=SOK" - ], - "sHostUp": [ - "clone_state=DEMOTED", - "roles=master1:master:worker:master", - "score=100" - ], - "pHostDown": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , - "standby=on" - ], - "pSiteDown": [ - "lpt=1[6-9]........" , - "lss=1" , - "srr=P" , - "srHook=PRIM" , - "srPoll=PRIM" - ], - "sSiteDown": [ - "lpt=10", - "lss=1", - "srr=S", - "srHook=SFAIL", - "srPoll=SFAIL" - ], - "sHostDown": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=100" , - "standby=on" - ] - } + "globalUp": [ + "topology=ScaleOut" + ], + "pHostUp": [ + "clone_state=PROMOTED", + "roles=master1:master:worker:master", + "score=150" + ], + "pSiteUp": [ + "lpt=1[6-9]........", + "lss=4", + "srr=P", + "srHook=PRIM", + "srPoll=PRIM" + ], + "sSiteUp": [ + "lpt=30", + "lss=4", + "srr=S", + "srHook=SOK", + "srPoll=SOK" + ], + "sHostUp": [ + "clone_state=DEMOTED", + "roles=master1:master:worker:master", + "score=100" + ], + "pHostDown": [ + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=150", + "standby=on" + ], + "pSiteDown": [ + "lpt=1[6-9]........", + "lss=1", + "srr=P", + "srHook=PRIM", + "srPoll=PRIM" + ], + "sSiteDown": [ + "lpt=10", + "lss=1", + "srr=S", + "srHook=SFAIL", + "srPoll=SFAIL" + ], + "sHostDown": [ + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=100", + "standby=on" + ] + } } diff --git a/test/json/angi-ScaleOut-BW/free_log_area.json b/test/json/angi-ScaleOut-BW/free_log_area.json index f1708d42..335a10c9 100644 --- a/test/json/angi-ScaleOut-BW/free_log_area.json +++ b/test/json/angi-ScaleOut-BW/free_log_area.json @@ -12,7 +12,7 @@ "post": "shell test_free_log_area", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "post": "sleep 60", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -35,7 +35,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleOut-BW/kill_prim_indexserver.json b/test/json/angi-ScaleOut-BW/kill_prim_indexserver.json index e3f7bb18..79e1d4a6 100644 --- a/test/json/angi-ScaleOut-BW/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut-BW/kill_prim_indexserver.json @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=(1|2)" , - "srr=P" , - "lpt=(1[6-9]........|20)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=(1|2)", + "srr=P", + "lpt=(1[6-9]........|20)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -36,13 +36,13 @@ "srPoll=SOK" ], "pHost": [ - "clone_state=(PROMOTED|DEMOTED|UNDEFINED)" , - "roles=master1::worker:" , + "clone_state=(PROMOTED|DEMOTED|UNDEFINED)", + "roles=master1::worker:", "score=(90|5|0)" ], "sHost": [ - "clone_state=(PROMOTED|DEMOTED)" , - "roles=master1:master:worker:master" , + "clone_state=(PROMOTED|DEMOTED)", + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -54,10 +54,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -68,14 +68,14 @@ "srPoll=SOK" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(90|5)" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , - "score=(100|145)" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", + "score=(100|145)", "srah=T" ] }, diff --git a/test/json/angi-ScaleOut-BW/kill_prim_inst.json b/test/json/angi-ScaleOut-BW/kill_prim_inst.json index b56e53e4..8cd45a3b 100644 --- a/test/json/angi-ScaleOut-BW/kill_prim_inst.json +++ b/test/json/angi-ScaleOut-BW/kill_prim_inst.json @@ -14,7 +14,7 @@ "todo1": "allow something like lss>2, lpt>10000, score!=123", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,10 +24,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=(1|2)" , - "srr=P" , - "lpt=(1[6-9]........|20)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=(1|2)", + "srr=P", + "lpt=(1[6-9]........|20)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -38,13 +38,13 @@ "srPoll=SOK" ], "pHost": [ - "clone_state=(PROMOTED|DEMOTED|UNDEFINED)" , - "roles=master1::worker:" , + "clone_state=(PROMOTED|DEMOTED|UNDEFINED)", + "roles=master1::worker:", "score=(90|5|0)" ], "sHost": [ - "clone_state=(PROMOTED|DEMOTED)" , - "roles=master1:master:worker:master" , + "clone_state=(PROMOTED|DEMOTED)", + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -56,10 +56,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -70,14 +70,14 @@ "srPoll=SOK" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(90|5)" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , - "score=(100|145)" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", + "score=(100|145)", "srah=T" ] }, diff --git a/test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json b/test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json index 25456e24..1505f1d4 100644 --- a/test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json +++ b/test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json @@ -24,10 +24,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=(1|2)" , - "srr=P" , - "lpt=(1[6-9]........|20)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=(1|2)", + "srr=P", + "lpt=(1[6-9]........|20)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -38,13 +38,13 @@ "srPoll=SOK" ], "pHost": [ - "clone_state=(PROMOTED|DEMOTED|UNDEFINED)" , - "roles=master1::worker:" , + "clone_state=(PROMOTED|DEMOTED|UNDEFINED)", + "roles=master1::worker:", "score=(90|5|0)" ], "sHost": [ "clone_state=(PROMOTED|DEMOTED)", - "roles=master1:master:worker:master" , + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -56,10 +56,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -70,14 +70,14 @@ "srPoll=SOK" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , + "clone_state=(UNDEFINED|DEMOTED)", "roles=master1::worker:", "score=(90|5)" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , - "score=(100|145)" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", + "score=(100|145)", "srah=T" ] }, diff --git a/test/json/angi-ScaleOut-BW/kill_prim_worker_node.json b/test/json/angi-ScaleOut-BW/kill_prim_worker_node.json index 36fc3c5a..16d89d5f 100644 --- a/test/json/angi-ScaleOut-BW/kill_prim_worker_node.json +++ b/test/json/angi-ScaleOut-BW/kill_prim_worker_node.json @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -36,13 +36,13 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(UNDEFINED|WAITING4NODES)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|WAITING4NODES)", + "roles=master1::worker:", "score=(70|5)" ], "sHost": [ "clone_state=(PROMOTED|DEMOTED)", - "roles=master1:master:worker:master" , + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -55,9 +55,9 @@ "todo": "pHost+sHost to check site-name", "pSite": [ "lss=(1|2)", - "srr=P" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "srr=P", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=(PRIM|SFAIL)" ], "sSite": [ @@ -68,12 +68,12 @@ "srPoll=(SOK|PRIM)" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , + "clone_state=(UNDEFINED|DEMOTED)", "roles=master1::worker:" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", "score=(100|145|150)", "srah=T" ] diff --git a/test/json/angi-ScaleOut-BW/kill_secn_indexserver.json b/test/json/angi-ScaleOut-BW/kill_secn_indexserver.json index 4f500059..480f1c1d 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_indexserver.json @@ -11,7 +11,7 @@ "wait": 1, "post": "kill_secn_indexserver", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,13 +36,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, @@ -54,10 +54,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -68,13 +68,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , + "clone_state=UNDEFINED", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_inst.json b/test/json/angi-ScaleOut-BW/kill_secn_inst.json index ac57eb18..2ca436a1 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_inst.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_inst.json @@ -11,7 +11,7 @@ "wait": 1, "post": "kill_secn_inst", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,13 +36,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, @@ -54,10 +54,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -68,13 +68,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_node.json b/test/json/angi-ScaleOut-BW/kill_secn_node.json index a5febca2..f4328756 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_node.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_node.json @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,8 +36,8 @@ "srPoll=SFAIL" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ] }, @@ -49,10 +49,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -63,13 +63,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json b/test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json index 2516f033..b2fe001f 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json @@ -11,7 +11,7 @@ "wait": 1, "post": "kill_secn_worker_inst", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,13 +36,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, @@ -54,10 +54,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -68,13 +68,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_worker_node.json b/test/json/angi-ScaleOut-BW/kill_secn_worker_node.json index e0696383..1241a09e 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_worker_node.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_worker_node.json @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,12 +36,12 @@ "srPoll=SFAIL" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=WAITING4NODES" + "clone_state=WAITING4NODES" ] }, { @@ -52,10 +52,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -66,13 +66,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json index cdf90e80..7e88b5a4 100644 --- a/test/json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json @@ -12,7 +12,7 @@ "post": "shell test_maintenance_cluster_turn_hana", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleOut-BW/maintenance_with_standby_nodes.json b/test/json/angi-ScaleOut-BW/maintenance_with_standby_nodes.json index f9755425..82ae24ef 100644 --- a/test/json/angi-ScaleOut-BW/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleOut-BW/maintenance_with_standby_nodes.json @@ -14,7 +14,7 @@ "post": "ssn", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -46,8 +46,8 @@ ], "pHost": "pHostUp", "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, @@ -90,8 +90,8 @@ ], "pHost": "pHostDown", "sHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -103,17 +103,17 @@ "post": "opn", "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=10" , - "srHook=SWAIT" , + "lss=1", + "srr=P", + "lpt=10", + "srHook=SWAIT", "srPoll=SFAIL" ], "sSite": "pSiteUp", "pHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=150", "standby=on" ], "sHost": "pHostUp" diff --git a/test/json/angi-ScaleOut-BW/nop-false.json b/test/json/angi-ScaleOut-BW/nop-false.json index 46924104..e19e9785 100644 --- a/test/json/angi-ScaleOut-BW/nop-false.json +++ b/test/json/angi-ScaleOut-BW/nop-false.json @@ -15,7 +15,7 @@ ], "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -26,7 +26,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleOut-BW/nop.json b/test/json/angi-ScaleOut-BW/nop.json index 31d4111e..5cb3c49b 100644 --- a/test/json/angi-ScaleOut-BW/nop.json +++ b/test/json/angi-ScaleOut-BW/nop.json @@ -13,7 +13,7 @@ "global": "globalUp", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/angi-ScaleOut-BW/restart_cluster.json b/test/json/angi-ScaleOut-BW/restart_cluster.json index c59f8e20..126d7b17 100644 --- a/test/json/angi-ScaleOut-BW/restart_cluster.json +++ b/test/json/angi-ScaleOut-BW/restart_cluster.json @@ -12,7 +12,7 @@ "post": "shell test_restart_cluster", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json b/test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json index 25ebf149..cd339808 100644 --- a/test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json @@ -12,7 +12,7 @@ "post": "shell test_restart_cluster_hana_running", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json b/test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json index fc1a482a..30001c92 100644 --- a/test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json @@ -12,7 +12,7 @@ "post": "shell test_restart_cluster_turn_hana", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/angi-ScaleOut-BW/standby_prim_node.json b/test/json/angi-ScaleOut-BW/standby_prim_node.json index 1e047088..228e0d15 100644 --- a/test/json/angi-ScaleOut-BW/standby_prim_node.json +++ b/test/json/angi-ScaleOut-BW/standby_prim_node.json @@ -12,7 +12,7 @@ "post": "spn", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=1", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,14 +36,14 @@ "srPoll=SOK" ], "pHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=150", "standby=on" ], "sHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -55,10 +55,10 @@ "post": "opn", "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=10" , - "srHook=SWAIT" , + "lss=1", + "srr=P", + "lpt=10", + "srHook=SWAIT", "srPoll=SFAIL" ], "sSite": [ @@ -69,14 +69,14 @@ "srPoll=PRIM" ], "pHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=150", "standby=on" ], "sHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ] }, diff --git a/test/json/angi-ScaleOut-BW/standby_secn_node.json b/test/json/angi-ScaleOut-BW/standby_secn_node.json index ae59404c..a81cfa92 100644 --- a/test/json/angi-ScaleOut-BW/standby_secn_node.json +++ b/test/json/angi-ScaleOut-BW/standby_secn_node.json @@ -13,7 +13,7 @@ "wait": 1, "post": "ssn", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -25,10 +25,10 @@ "wait": 2, "post": "osn", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -39,14 +39,14 @@ "srPoll=SFAIL" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=100" , + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=100", "standby=on" ] }, @@ -58,10 +58,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -72,13 +72,13 @@ "srPoll=SFAIL" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, From 1d040e24cbff5c3f93a38effa2394ef3371e9972 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 15:58:36 +0200 Subject: [PATCH 147/414] tester: used SAPHanaSR-checkJson to 'pretty-print' json files in classic-ScaleUp --- .../block_manual_takeover.json | 6 +- test/json/classic-ScaleUp/block_sr.json | 4 +- test/json/classic-ScaleUp/defaults.json | 86 +++++++++---------- test/json/classic-ScaleUp/flup.json | 4 +- test/json/classic-ScaleUp/free_log_area.json | 6 +- test/json/classic-ScaleUp/kill_prim_node.json | 16 ++-- .../kill_secn_indexserver.json | 6 +- test/json/classic-ScaleUp/kill_secn_inst.json | 2 +- test/json/classic-ScaleUp/kill_secn_node.json | 13 ++- .../maintenance_cluster_hana_running.json | 2 +- .../maintenance_cluster_turn_hana.json | 2 +- .../maintenance_with_standby_nodes.json | 6 +- test/json/classic-ScaleUp/nop.json | 4 +- .../json/classic-ScaleUp/one_stable_hour.json | 14 +-- .../json/classic-ScaleUp/restart_cluster.json | 2 +- .../restart_cluster_turn_hana.json | 2 +- .../classic-ScaleUp/split_brain_prio.json | 6 +- .../classic-ScaleUp/standby_prim_node.json | 2 +- .../classic-ScaleUp/standby_secn_node.json | 2 +- 19 files changed, 92 insertions(+), 93 deletions(-) diff --git a/test/json/classic-ScaleUp/block_manual_takeover.json b/test/json/classic-ScaleUp/block_manual_takeover.json index 41863d25..1737ea3b 100644 --- a/test/json/classic-ScaleUp/block_manual_takeover.json +++ b/test/json/classic-ScaleUp/block_manual_takeover.json @@ -12,7 +12,7 @@ "post": "bmt", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "post": "sleep 120", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -35,7 +35,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleUp/block_sr.json b/test/json/classic-ScaleUp/block_sr.json index 2ff49a24..64c004a8 100644 --- a/test/json/classic-ScaleUp/block_sr.json +++ b/test/json/classic-ScaleUp/block_sr.json @@ -12,7 +12,7 @@ "post": "shell sct_test_block_sap_hana_sr", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -43,7 +43,7 @@ "wait": 2, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleUp/defaults.json b/test/json/classic-ScaleUp/defaults.json index 36b778af..b1598360 100644 --- a/test/json/classic-ScaleUp/defaults.json +++ b/test/json/classic-ScaleUp/defaults.json @@ -2,47 +2,47 @@ "opMode": "logreplay", "srMode": "sync", "checkPtr": { - "pHostUp": [ - "clone_state == PROMOTED", - "lpa_@@sid@@_lpt > 1000000000", - "roles == 4:P:master1:master:worker:master", - "score == 150", - "sync_state == PRIM" - ], - "pSiteUp": [ - "srHook == PRIM" - ], - "sSiteUp": [ - "srHook == SOK" - ], - "sHostUp": [ - "clone_state == DEMOTED", - "roles == 4:S:master1:master:worker:master", - "score == 100", - "lpa_@@sid@@_lpt == 30", - "sync_state == SOK" - ], - "pHostDown": [ - "lpa_@@sid@@_lpt > 1000000000", - "clone_state == UNDEFINED", - "roles == 1:P:master1::worker:", - "score == 150", - "standby == on", - "sync_state == PRIM" - ], - "pSiteDown": [ - "srHook == PRIM" - ], - "sSiteDown": [ - "srHook == SFAIL" - ], - "sHostDown": [ - "lpa_@@sid@@_lpt == 10", - "clone_state == UNDEFINED", - "roles == 1:S:master1::worker:", - "score == 100", - "sync_state == SFAIL", - "standby == on" - ] - } + "pHostUp": [ + "clone_state == PROMOTED", + "lpa_@@sid@@_lpt > 1000000000", + "roles == 4:P:master1:master:worker:master", + "score == 150", + "sync_state == PRIM" + ], + "pSiteUp": [ + "srHook == PRIM" + ], + "sSiteUp": [ + "srHook == SOK" + ], + "sHostUp": [ + "clone_state == DEMOTED", + "roles == 4:S:master1:master:worker:master", + "score == 100", + "lpa_@@sid@@_lpt == 30", + "sync_state == SOK" + ], + "pHostDown": [ + "lpa_@@sid@@_lpt > 1000000000", + "clone_state == UNDEFINED", + "roles == 1:P:master1::worker:", + "score == 150", + "standby == on", + "sync_state == PRIM" + ], + "pSiteDown": [ + "srHook == PRIM" + ], + "sSiteDown": [ + "srHook == SFAIL" + ], + "sHostDown": [ + "lpa_@@sid@@_lpt == 10", + "clone_state == UNDEFINED", + "roles == 1:S:master1::worker:", + "score == 100", + "sync_state == SFAIL", + "standby == on" + ] + } } diff --git a/test/json/classic-ScaleUp/flup.json b/test/json/classic-ScaleUp/flup.json index 30fb9374..c062f367 100644 --- a/test/json/classic-ScaleUp/flup.json +++ b/test/json/classic-ScaleUp/flup.json @@ -12,7 +12,7 @@ "post": "sleep 4", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -23,7 +23,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleUp/free_log_area.json b/test/json/classic-ScaleUp/free_log_area.json index ab2ceb68..bc206b08 100644 --- a/test/json/classic-ScaleUp/free_log_area.json +++ b/test/json/classic-ScaleUp/free_log_area.json @@ -12,7 +12,7 @@ "post": "shell sct_test_free_log_area", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "post": "sleep 60", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -35,7 +35,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleUp/kill_prim_node.json b/test/json/classic-ScaleUp/kill_prim_node.json index 92f8a0f9..ca410273 100644 --- a/test/json/classic-ScaleUp/kill_prim_node.json +++ b/test/json/classic-ScaleUp/kill_prim_node.json @@ -28,18 +28,18 @@ "srHook ~ (PRIM|SOK)" ], "pHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|20|10)", + "lpa_@@sid@@_lpt ~ (1[6-9]........|20|10)", "clone_state is None", "roles is None", "score is None", - "sync_state is None" + "sync_state is None" ], "sHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", "clone_state ~ (PROMOTED|DEMOTED)", "roles ~ 4:(S|P):master1:master:worker:master", "score ~ (100|145)", - "sync_state ~ (SOK|SFAIL)" + "sync_state ~ (SOK|SFAIL)" ] }, { @@ -56,17 +56,17 @@ "srHook == PRIM" ], "pHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30|20|10)", + "lpa_@@sid@@_lpt ~ (1[6-9]........|30|20|10)", "clone_state ~ (UNDEFINED|DEMOTED|WAITING4NODES)", "roles == 1:P:master1::worker:", - "sync_state ~ (PRIM|SFAIL)" + "sync_state ~ (PRIM|SFAIL)" ], "sHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", "clone_state ~ (DEMOTED|PROMOTED)", "roles ~ 4:P:master1:master:worker:master", "score ~ (100|145|150)", - "sync_state == PRIM" + "sync_state == PRIM" ] }, { diff --git a/test/json/classic-ScaleUp/kill_secn_indexserver.json b/test/json/classic-ScaleUp/kill_secn_indexserver.json index af5f7aa2..cc7f1a56 100644 --- a/test/json/classic-ScaleUp/kill_secn_indexserver.json +++ b/test/json/classic-ScaleUp/kill_secn_indexserver.json @@ -11,7 +11,7 @@ "wait": 1, "post": "kill_secn_indexserver", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -31,14 +31,14 @@ "lpa_@@sid@@_lpt > 1000000000", "clone_state == PROMOTED", "roles == 4:P:master1:master:worker:master", - "sync_state == PRIM", + "sync_state == PRIM", "score == 150" ], "sHost": [ "lpa_@@sid@@_lpt ~ (10|30)", "clone_state == DEMOTED", "roles ~ (1|2):S:master1::worker:", - "sync_state ~ (SFAIL|SOK)", + "sync_state ~ (SFAIL|SOK)", "score ~ (-INFINITY|0)" ] }, diff --git a/test/json/classic-ScaleUp/kill_secn_inst.json b/test/json/classic-ScaleUp/kill_secn_inst.json index 0464f498..c2f545a1 100644 --- a/test/json/classic-ScaleUp/kill_secn_inst.json +++ b/test/json/classic-ScaleUp/kill_secn_inst.json @@ -11,7 +11,7 @@ "wait": 1, "post": "kill_secn_inst", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, diff --git a/test/json/classic-ScaleUp/kill_secn_node.json b/test/json/classic-ScaleUp/kill_secn_node.json index 223cdeb1..07ddfdc0 100644 --- a/test/json/classic-ScaleUp/kill_secn_node.json +++ b/test/json/classic-ScaleUp/kill_secn_node.json @@ -23,20 +23,19 @@ "wait": 2, "pSite": [ "srHook == PRIM" - ], + ], "sSite": [ "srHook == SFAIL" ], "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", + "lpa_@@sid@@_lpt > 1000000000", "clone_state == PROMOTED", "roles == 4:P:master1:master:worker:master", "sync_state == PRIM", "score == 150" - ], "sHost": [ - "lpa_@@sid@@_lpt == 10", + "lpa_@@sid@@_lpt == 10", "clone_state is None", "roles is None", "score is None" @@ -56,16 +55,16 @@ "srHook ~ (SFAIL|SWAIT|SOK)" ], "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", + "lpa_@@sid@@_lpt > 1000000000", "clone_state == PROMOTED", "roles == 4:P:master1:master:worker:master", "score == 150" ], "sHost": [ - "lpa_@@sid@@_lpt == 10", + "lpa_@@sid@@_lpt == 10", "clone_state ~ (UNDEFINED|DEMOTED)", "roles == 1:S:master1::worker:", - "sync_state ~ (SFAIL|SWAIT|SOK)", + "sync_state ~ (SFAIL|SWAIT|SOK)", "score ~ (-INFINITY|0)" ] }, diff --git a/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json b/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json index 00c44e38..123fdd22 100644 --- a/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json +++ b/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json @@ -12,7 +12,7 @@ "post": "shell sct_test_maintenance_cluster_hana_running", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json b/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json index 2c821542..f54044b0 100644 --- a/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json +++ b/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json @@ -12,7 +12,7 @@ "post": "shell sct_test_maintenance_cluster_turn_hana", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json index 9ae7bdba..600d3655 100644 --- a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json @@ -12,7 +12,7 @@ "post": "ssn", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -82,11 +82,11 @@ ], "pHost": "pHostDown", "sHost": [ - "lpa_@@sid@@_lpt >~ 1000000000:(30)", + "lpa_@@sid@@_lpt >~ 1000000000:(30)", "clone_state == PROMOTED", "roles == 4:S:master1:master:worker:master", "score ~ (100|145)", - "sync_state == SOK" + "sync_state == SOK" ] }, { diff --git a/test/json/classic-ScaleUp/nop.json b/test/json/classic-ScaleUp/nop.json index 6403c51e..ed61e950 100644 --- a/test/json/classic-ScaleUp/nop.json +++ b/test/json/classic-ScaleUp/nop.json @@ -12,7 +12,7 @@ "post": "sleep 240", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -23,7 +23,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleUp/one_stable_hour.json b/test/json/classic-ScaleUp/one_stable_hour.json index b1dff7cd..51115df1 100644 --- a/test/json/classic-ScaleUp/one_stable_hour.json +++ b/test/json/classic-ScaleUp/one_stable_hour.json @@ -12,7 +12,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -36,7 +36,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -48,7 +48,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -60,7 +60,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -72,7 +72,7 @@ "post": "sleep 600", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -83,7 +83,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleUp/restart_cluster.json b/test/json/classic-ScaleUp/restart_cluster.json index a783f159..7dcd36e0 100644 --- a/test/json/classic-ScaleUp/restart_cluster.json +++ b/test/json/classic-ScaleUp/restart_cluster.json @@ -12,7 +12,7 @@ "post": "shell sct_test_restart_cluster", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleUp/restart_cluster_turn_hana.json b/test/json/classic-ScaleUp/restart_cluster_turn_hana.json index 0bcc8a63..acd710a2 100644 --- a/test/json/classic-ScaleUp/restart_cluster_turn_hana.json +++ b/test/json/classic-ScaleUp/restart_cluster_turn_hana.json @@ -12,7 +12,7 @@ "post": "shell sct_test_restart_cluster_turn_hana", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleUp/split_brain_prio.json b/test/json/classic-ScaleUp/split_brain_prio.json index b8c6c788..28acb218 100644 --- a/test/json/classic-ScaleUp/split_brain_prio.json +++ b/test/json/classic-ScaleUp/split_brain_prio.json @@ -28,7 +28,7 @@ "srHook == SFAIL" ], "pHost": "pHostUp", - "sHost": [ + "sHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(10)", "clone_state is None", "roles is None", @@ -51,10 +51,10 @@ ], "pHost": "pHostUp", "sHost": [ - "lpa_@@sid@@_lpt == 10", + "lpa_@@sid@@_lpt == 10", "clone_state ~ (UNDEFINED|DEMOTED)", "roles == 1:S:master1::worker:", - "sync_state ~ (SFAIL|SOK)", + "sync_state ~ (SFAIL|SOK)", "score ~ (-INFINITY|0|-1)" ] }, diff --git a/test/json/classic-ScaleUp/standby_prim_node.json b/test/json/classic-ScaleUp/standby_prim_node.json index 0754584c..4f7ef8ef 100644 --- a/test/json/classic-ScaleUp/standby_prim_node.json +++ b/test/json/classic-ScaleUp/standby_prim_node.json @@ -12,7 +12,7 @@ "post": "spn", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleUp/standby_secn_node.json b/test/json/classic-ScaleUp/standby_secn_node.json index 7f949bd3..4a496734 100644 --- a/test/json/classic-ScaleUp/standby_secn_node.json +++ b/test/json/classic-ScaleUp/standby_secn_node.json @@ -11,7 +11,7 @@ "wait": 1, "post": "ssn", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, From fd40d7e3b3ef7bc421c884d0269666862a5e6ef6 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 15:59:28 +0200 Subject: [PATCH 148/414] tester: used SAPHanaSR-checkJson to 'pretty-print' json files in classic-ScaleOut --- .../block_manual_takeover.json | 6 +- test/json/classic-ScaleOut/defaults.json | 138 +++++++++--------- test/json/classic-ScaleOut/flup.json | 4 +- test/json/classic-ScaleOut/free_log_area.json | 6 +- .../json/classic-ScaleOut/kill_prim_node.json | 3 +- .../kill_secn_indexserver.json | 2 +- .../json/classic-ScaleOut/kill_secn_inst.json | 2 +- .../kill_secn_worker_node.json | 2 +- .../maintenance_cluster_turn_hana.json | 2 +- .../maintenance_with_standby_nodes.json | 2 +- test/json/classic-ScaleOut/nop-false.json | 4 +- test/json/classic-ScaleOut/nop.json | 4 +- .../classic-ScaleOut/restart_cluster.json | 2 +- .../restart_cluster_hana_running.json | 2 +- .../restart_cluster_turn_hana.json | 2 +- .../classic-ScaleOut/standby_prim_node.json | 2 +- .../classic-ScaleOut/standby_secn_node.json | 2 +- 17 files changed, 92 insertions(+), 93 deletions(-) diff --git a/test/json/classic-ScaleOut/block_manual_takeover.json b/test/json/classic-ScaleOut/block_manual_takeover.json index 7f47b07a..40c52bb2 100644 --- a/test/json/classic-ScaleOut/block_manual_takeover.json +++ b/test/json/classic-ScaleOut/block_manual_takeover.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -26,7 +26,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -38,7 +38,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut/defaults.json b/test/json/classic-ScaleOut/defaults.json index 0a248668..31a8acf8 100644 --- a/test/json/classic-ScaleOut/defaults.json +++ b/test/json/classic-ScaleOut/defaults.json @@ -2,73 +2,73 @@ "opMode": "logreplay", "srMode": "sync", "checkPtr": { - "sync_state_sok": [ - "sync_state == SOK" - ], - "sync_state_sfail": [ - "sync_state == SFAIL" - ], - "sync_state_sna": [ - "sync_state == SNA" - ], - "sync_state_sok_or_sfail": [ - "sync_state ~ (SOK|SFAIL)" - ], - "pHostUp": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ], - "pSiteUp": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM" - ], - "sSiteUp": [ - "lpt == 30", - "lss == 4", - "srr == S", - "srHook == SOK" - ], - "sHostUp": [ - "clone_state == DEMOTED", - "roles == master1:master:worker:master", - "score == 100" - ], - "pHostDown": [ - "clone_state == UNDEFINED", - "roles == master1::worker:", - "score == 150", - "standby == on" - ], - "pSiteDown": [ - "lpt > 1000000000", - "lss == 1", - "srr == P", - "srHook == PRIM" - ], - "sSiteDown": [ - "lpt == 10", - "lss == 1", - "srr == S", - "srHook == SFAIL" - ], - "sHostDown": [ - "clone_state == UNDEFINED", - "roles == master1::worker:", - "score == 100", - "standby == on" - ], - "pWorkerUp": [ - "clone_state == DEMOTED", - "roles == slave:slave:worker:slave", - "score == -12200" - ], - "sWorkerUp": [ - "clone_state == DEMOTED", - "roles == slave:slave:worker:slave", - "score == -12200" - ] - } + "sync_state_sok": [ + "sync_state == SOK" + ], + "sync_state_sfail": [ + "sync_state == SFAIL" + ], + "sync_state_sna": [ + "sync_state == SNA" + ], + "sync_state_sok_or_sfail": [ + "sync_state ~ (SOK|SFAIL)" + ], + "pHostUp": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ], + "pSiteUp": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM" + ], + "sSiteUp": [ + "lpt == 30", + "lss == 4", + "srr == S", + "srHook == SOK" + ], + "sHostUp": [ + "clone_state == DEMOTED", + "roles == master1:master:worker:master", + "score == 100" + ], + "pHostDown": [ + "clone_state == UNDEFINED", + "roles == master1::worker:", + "score == 150", + "standby == on" + ], + "pSiteDown": [ + "lpt > 1000000000", + "lss == 1", + "srr == P", + "srHook == PRIM" + ], + "sSiteDown": [ + "lpt == 10", + "lss == 1", + "srr == S", + "srHook == SFAIL" + ], + "sHostDown": [ + "clone_state == UNDEFINED", + "roles == master1::worker:", + "score == 100", + "standby == on" + ], + "pWorkerUp": [ + "clone_state == DEMOTED", + "roles == slave:slave:worker:slave", + "score == -12200" + ], + "sWorkerUp": [ + "clone_state == DEMOTED", + "roles == slave:slave:worker:slave", + "score == -12200" + ] + } } diff --git a/test/json/classic-ScaleOut/flup.json b/test/json/classic-ScaleOut/flup.json index e075be42..6cc0b31c 100644 --- a/test/json/classic-ScaleOut/flup.json +++ b/test/json/classic-ScaleOut/flup.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -25,7 +25,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut/free_log_area.json b/test/json/classic-ScaleOut/free_log_area.json index 78e3b48c..28c4397a 100644 --- a/test/json/classic-ScaleOut/free_log_area.json +++ b/test/json/classic-ScaleOut/free_log_area.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -26,7 +26,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -38,7 +38,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut/kill_prim_node.json b/test/json/classic-ScaleOut/kill_prim_node.json index f44bfa60..c53ead21 100644 --- a/test/json/classic-ScaleOut/kill_prim_node.json +++ b/test/json/classic-ScaleOut/kill_prim_node.json @@ -35,8 +35,7 @@ "srr ~ (S|P)", "srHook ~ (PRIM|SOK)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", diff --git a/test/json/classic-ScaleOut/kill_secn_indexserver.json b/test/json/classic-ScaleOut/kill_secn_indexserver.json index 81dcbae5..674a8d54 100644 --- a/test/json/classic-ScaleOut/kill_secn_indexserver.json +++ b/test/json/classic-ScaleOut/kill_secn_indexserver.json @@ -12,7 +12,7 @@ "post": "kill_secn_indexserver", "global": "sync_state_sok", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, diff --git a/test/json/classic-ScaleOut/kill_secn_inst.json b/test/json/classic-ScaleOut/kill_secn_inst.json index 41f93c30..6e95e870 100644 --- a/test/json/classic-ScaleOut/kill_secn_inst.json +++ b/test/json/classic-ScaleOut/kill_secn_inst.json @@ -12,7 +12,7 @@ "post": "kill_secn_inst", "global": "sync_state_sok", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, diff --git a/test/json/classic-ScaleOut/kill_secn_worker_node.json b/test/json/classic-ScaleOut/kill_secn_worker_node.json index 3cf33305..27bf6861 100644 --- a/test/json/classic-ScaleOut/kill_secn_worker_node.json +++ b/test/json/classic-ScaleOut/kill_secn_worker_node.json @@ -32,7 +32,7 @@ ], "pHost": "pHostUp", "sHost": [ - "clone_state == WAITING4NODES" + "clone_state == WAITING4NODES" ] }, { diff --git a/test/json/classic-ScaleOut/maintenance_cluster_turn_hana.json b/test/json/classic-ScaleOut/maintenance_cluster_turn_hana.json index 696d9b4a..5c8edffe 100644 --- a/test/json/classic-ScaleOut/maintenance_cluster_turn_hana.json +++ b/test/json/classic-ScaleOut/maintenance_cluster_turn_hana.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut/maintenance_with_standby_nodes.json b/test/json/classic-ScaleOut/maintenance_with_standby_nodes.json index 529a3360..c6820724 100644 --- a/test/json/classic-ScaleOut/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleOut/maintenance_with_standby_nodes.json @@ -16,7 +16,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut/nop-false.json b/test/json/classic-ScaleOut/nop-false.json index b2dfd1b3..2a6b19f8 100644 --- a/test/json/classic-ScaleOut/nop-false.json +++ b/test/json/classic-ScaleOut/nop-false.json @@ -15,7 +15,7 @@ ], "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -27,7 +27,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut/nop.json b/test/json/classic-ScaleOut/nop.json index d98cc188..9cc8a34e 100644 --- a/test/json/classic-ScaleOut/nop.json +++ b/test/json/classic-ScaleOut/nop.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -25,7 +25,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut/restart_cluster.json b/test/json/classic-ScaleOut/restart_cluster.json index 26e372a0..d02b9963 100644 --- a/test/json/classic-ScaleOut/restart_cluster.json +++ b/test/json/classic-ScaleOut/restart_cluster.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut/restart_cluster_hana_running.json b/test/json/classic-ScaleOut/restart_cluster_hana_running.json index f9b14eb7..ebca3c98 100644 --- a/test/json/classic-ScaleOut/restart_cluster_hana_running.json +++ b/test/json/classic-ScaleOut/restart_cluster_hana_running.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut/restart_cluster_turn_hana.json b/test/json/classic-ScaleOut/restart_cluster_turn_hana.json index a1d66dce..6cd11387 100644 --- a/test/json/classic-ScaleOut/restart_cluster_turn_hana.json +++ b/test/json/classic-ScaleOut/restart_cluster_turn_hana.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut/standby_prim_node.json b/test/json/classic-ScaleOut/standby_prim_node.json index f5b2f302..2742e0c6 100644 --- a/test/json/classic-ScaleOut/standby_prim_node.json +++ b/test/json/classic-ScaleOut/standby_prim_node.json @@ -13,7 +13,7 @@ "global": "sync_state_sok", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut/standby_secn_node.json b/test/json/classic-ScaleOut/standby_secn_node.json index c1059272..c5ace62e 100644 --- a/test/json/classic-ScaleOut/standby_secn_node.json +++ b/test/json/classic-ScaleOut/standby_secn_node.json @@ -14,7 +14,7 @@ "post": "ssn", "global": "sync_state_sok", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, From 3daf672d4c7408868d8d50733d0b8f578ddb0efa Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 16:00:23 +0200 Subject: [PATCH 149/414] tester: used SAPHanaSR-checkJson to 'pretty-print' json files in classic-ScaleOut-BW --- .../block_manual_takeover.json | 6 +- test/json/classic-ScaleOut-BW/defaults.json | 108 +++++++++--------- .../classic-ScaleOut-BW/free_log_area.json | 6 +- .../kill_prim_indexserver.json | 34 +++--- .../classic-ScaleOut-BW/kill_prim_inst.json | 34 +++--- .../classic-ScaleOut-BW/kill_prim_node.json | 25 ++-- .../kill_prim_worker_indexserver.json | 28 ++--- .../kill_prim_worker_inst.json | 28 ++--- .../kill_prim_worker_node.json | 24 ++-- .../kill_secn_indexserver.json | 34 +++--- .../classic-ScaleOut-BW/kill_secn_inst.json | 34 +++--- .../classic-ScaleOut-BW/kill_secn_node.json | 28 ++--- .../kill_secn_worker_inst.json | 8 +- .../kill_secn_worker_node.json | 6 +- .../maintenance_cluster_turn_hana.json | 2 +- .../maintenance_with_standby_nodes.json | 24 ++-- test/json/classic-ScaleOut-BW/nop-false.json | 4 +- test/json/classic-ScaleOut-BW/nop.json | 4 +- .../classic-ScaleOut-BW/restart_cluster.json | 2 +- .../restart_cluster_hana_running.json | 2 +- .../restart_cluster_turn_hana.json | 2 +- .../standby_prim_node.json | 38 +++--- .../standby_secn_node.json | 36 +++--- 23 files changed, 258 insertions(+), 259 deletions(-) diff --git a/test/json/classic-ScaleOut-BW/block_manual_takeover.json b/test/json/classic-ScaleOut-BW/block_manual_takeover.json index 41863d25..1737ea3b 100644 --- a/test/json/classic-ScaleOut-BW/block_manual_takeover.json +++ b/test/json/classic-ScaleOut-BW/block_manual_takeover.json @@ -12,7 +12,7 @@ "post": "bmt", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "post": "sleep 120", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -35,7 +35,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut-BW/defaults.json b/test/json/classic-ScaleOut-BW/defaults.json index fb1840a6..34ec4f51 100644 --- a/test/json/classic-ScaleOut-BW/defaults.json +++ b/test/json/classic-ScaleOut-BW/defaults.json @@ -2,58 +2,58 @@ "opMode": "logreplay", "srMode": "sync", "checkPtr": { - "globalUp": [ - "topology=ScaleOut" - ], - "pHostUp": [ - "clone_state=PROMOTED", - "roles=master1:master:worker:master", - "score=150" - ], - "pSiteUp": [ - "lpt=1[6-9]........", - "lss=4", - "srr=P", - "srHook=PRIM", - "srPoll=PRIM" - ], - "sSiteUp": [ - "lpt=30", - "lss=4", - "srr=S", - "srHook=SOK", - "srPoll=SOK" - ], - "sHostUp": [ - "clone_state=DEMOTED", - "roles=master1:master:worker:master", - "score=100" - ], - "pHostDown": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , - "standby=on" - ], - "pSiteDown": [ - "lpt=1[6-9]........" , - "lss=1" , - "srr=P" , - "srHook=PRIM" , - "srPoll=PRIM" - ], - "sSiteDown": [ - "lpt=10", - "lss=1", - "srr=S", - "srHook=SFAIL", - "srPoll=SFAIL" - ], - "sHostDown": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=100" , - "standby=on" - ] - } + "globalUp": [ + "topology=ScaleOut" + ], + "pHostUp": [ + "clone_state=PROMOTED", + "roles=master1:master:worker:master", + "score=150" + ], + "pSiteUp": [ + "lpt=1[6-9]........", + "lss=4", + "srr=P", + "srHook=PRIM", + "srPoll=PRIM" + ], + "sSiteUp": [ + "lpt=30", + "lss=4", + "srr=S", + "srHook=SOK", + "srPoll=SOK" + ], + "sHostUp": [ + "clone_state=DEMOTED", + "roles=master1:master:worker:master", + "score=100" + ], + "pHostDown": [ + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=150", + "standby=on" + ], + "pSiteDown": [ + "lpt=1[6-9]........", + "lss=1", + "srr=P", + "srHook=PRIM", + "srPoll=PRIM" + ], + "sSiteDown": [ + "lpt=10", + "lss=1", + "srr=S", + "srHook=SFAIL", + "srPoll=SFAIL" + ], + "sHostDown": [ + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=100", + "standby=on" + ] + } } diff --git a/test/json/classic-ScaleOut-BW/free_log_area.json b/test/json/classic-ScaleOut-BW/free_log_area.json index f1708d42..335a10c9 100644 --- a/test/json/classic-ScaleOut-BW/free_log_area.json +++ b/test/json/classic-ScaleOut-BW/free_log_area.json @@ -12,7 +12,7 @@ "post": "shell test_free_log_area", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "post": "sleep 60", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -35,7 +35,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut-BW/kill_prim_indexserver.json b/test/json/classic-ScaleOut-BW/kill_prim_indexserver.json index 47e0ed1a..197af4a8 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_indexserver.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_indexserver.json @@ -23,10 +23,10 @@ "wait": 2, "comment": "sSite: srPoll could get SFAIL on scale-out", "pSite": [ - "lss=(1|2)" , - "srr=P" , - "lpt=(1[6-9]........|20)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=(1|2)", + "srr=P", + "lpt=(1[6-9]........|20)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -37,13 +37,13 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(PROMOTED|DEMOTED|UNDEFINED)" , - "roles=master1::worker:" , + "clone_state=(PROMOTED|DEMOTED|UNDEFINED)", + "roles=master1::worker:", "score=(90|70|5|0)" ], "sHost": [ - "clone_state=(PROMOTED|DEMOTED)" , - "roles=master1:master:worker:master" , + "clone_state=(PROMOTED|DEMOTED)", + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -55,10 +55,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -69,14 +69,14 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(90|70|5)" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , - "score=(100|145)" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", + "score=(100|145)", "srah=T" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_inst.json b/test/json/classic-ScaleOut-BW/kill_prim_inst.json index 78260e10..ad1bb278 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_inst.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_inst.json @@ -25,10 +25,10 @@ "wait": 2, "comment": "sSite: srPoll could get SFAIL on scale-out", "pSite": [ - "lss=(1|2)" , - "srr=P" , - "lpt=(1[6-9]........|20)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=(1|2)", + "srr=P", + "lpt=(1[6-9]........|20)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -39,13 +39,13 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(PROMOTED|DEMOTED|UNDEFINED)" , - "roles=master1::worker:" , + "clone_state=(PROMOTED|DEMOTED|UNDEFINED)", + "roles=master1::worker:", "score=(90|70|5|0)" ], "sHost": [ - "clone_state=(PROMOTED|DEMOTED)" , - "roles=master1:master:worker:master" , + "clone_state=(PROMOTED|DEMOTED)", + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -57,10 +57,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -71,14 +71,14 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(90|70|5)" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , - "score=(100|145)" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", + "score=(100|145)", "srah=T" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_node.json b/test/json/classic-ScaleOut-BW/kill_prim_node.json index cad372b6..c09cb7e6 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_node.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_node.json @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -35,11 +35,10 @@ "srHook=(PRIM|SOK)", "srPoll=(SOK|SFAIL)" ], - "pHost": [ - ], + "pHost": [], "sHost": [ "clone_state=(PROMOTED|DEMOTED)", - "roles=master1:master:worker:master" , + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -52,9 +51,9 @@ "todo": "pHost+sHost to check site-name", "pSite": [ "lss=(1|2)", - "srr=(P|S)" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "srr=(P|S)", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=(PRIM|SFAIL)" ], "sSite": [ @@ -65,12 +64,12 @@ "srPoll=(SOK|PRIM)" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED|WAITING4NODES)" , + "clone_state=(UNDEFINED|DEMOTED|WAITING4NODES)", "roles=master1::worker:" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", "score=(100|145|150)" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_worker_indexserver.json b/test/json/classic-ScaleOut-BW/kill_prim_worker_indexserver.json index dc6caba4..c19f027d 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_worker_indexserver.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_worker_indexserver.json @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=(1|2)" , - "srr=P" , - "lpt=(1[6-9]........|20)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=(1|2)", + "srr=P", + "lpt=(1[6-9]........|20)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -36,12 +36,12 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(PROMOTED|DEMOTED|UNDEFINED)" , + "clone_state=(PROMOTED|DEMOTED|UNDEFINED)", "score=(90|70|5|0)" ], "sHost": [ "clone_state=(PROMOTED|DEMOTED)", - "roles=master1:master:worker:master" , + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -54,10 +54,10 @@ "todo": "pHost+sHost to check site-name", "todo2": "why do we need SFAIL for srHook?", "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -68,13 +68,13 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , + "clone_state=(UNDEFINED|DEMOTED)", "score=(90|70|5)" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , - "score=(100|145)" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", + "score=(100|145)", "srah=T" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json b/test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json index 36c1232d..db7a6872 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json @@ -24,10 +24,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=(1|2)" , - "srr=P" , - "lpt=(1[6-9]........|20)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=(1|2)", + "srr=P", + "lpt=(1[6-9]........|20)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -38,12 +38,12 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(PROMOTED|DEMOTED|UNDEFINED)" , + "clone_state=(PROMOTED|DEMOTED|UNDEFINED)", "score=(90|70|5|0)" ], "sHost": [ "clone_state=(PROMOTED|DEMOTED)", - "roles=master1:master:worker:master" , + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -55,10 +55,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -69,14 +69,14 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , + "clone_state=(UNDEFINED|DEMOTED)", "roles=master1::worker:", "score=(90|70|5)" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , - "score=(100|145)" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", + "score=(100|145)", "srah=T" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_worker_node.json b/test/json/classic-ScaleOut-BW/kill_prim_worker_node.json index 663372a7..2aee728d 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_worker_node.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_worker_node.json @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=(1[6-9]........|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "lss=1", + "srr=P", + "lpt=(1[6-9]........|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=PRIM" ], "sSite": [ @@ -36,12 +36,12 @@ "srPoll=(SOK|SFAIL)" ], "pHost": [ - "clone_state=(DEMOTED|UNDEFINED|WAITING4NODES)" , + "clone_state=(DEMOTED|UNDEFINED|WAITING4NODES)", "score=(90|70|5)" ], "sHost": [ "clone_state=(PROMOTED|DEMOTED)", - "roles=master1:master:worker:master" , + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -54,9 +54,9 @@ "todo": "pHost+sHost to check site-name", "pSite": [ "lss=(1|2)", - "srr=(P|S)" , - "lpt=(1[6-9]........|30|20|10)" , - "srHook=(PRIM|SWAIT|SREG)" , + "srr=(P|S)", + "lpt=(1[6-9]........|30|20|10)", + "srHook=(PRIM|SWAIT|SREG)", "srPoll=(PRIM|SFAIL)" ], "sSite": [ @@ -67,12 +67,12 @@ "srPoll=(SOK|PRIM)" ], "pHost": [ - "clone_state=(UNDEFINED|DEMOTED|WAITING4NODES)" , + "clone_state=(UNDEFINED|DEMOTED|WAITING4NODES)", "roles=master1::worker:" ], "sHost": [ - "clone_state=(DEMOTED|PROMOTED)" , - "roles=master1:master:worker:master" , + "clone_state=(DEMOTED|PROMOTED)", + "roles=master1:master:worker:master", "score=(100|145|150)" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_indexserver.json b/test/json/classic-ScaleOut-BW/kill_secn_indexserver.json index 4f500059..480f1c1d 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_indexserver.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_indexserver.json @@ -11,7 +11,7 @@ "wait": 1, "post": "kill_secn_indexserver", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,13 +36,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, @@ -54,10 +54,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -68,13 +68,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , + "clone_state=UNDEFINED", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_inst.json b/test/json/classic-ScaleOut-BW/kill_secn_inst.json index 2db5e9b2..f4f6946b 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_inst.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_inst.json @@ -11,7 +11,7 @@ "wait": 1, "post": "kill_secn_inst", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,13 +36,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, @@ -54,10 +54,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -68,13 +68,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_node.json b/test/json/classic-ScaleOut-BW/kill_secn_node.json index a5febca2..f4328756 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_node.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_node.json @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,8 +36,8 @@ "srPoll=SFAIL" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ] }, @@ -49,10 +49,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -63,13 +63,13 @@ "srPoll=(SFAIL|SOK)" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json b/test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json index 6a00bf97..d80fb066 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json @@ -31,8 +31,8 @@ ], "pHost": "pHostUp", "sHost": [ - "clone_state=(DEMOTED|UNDEFINED)" , - "roles=master1::worker:" , + "clone_state=(DEMOTED|UNDEFINED)", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, @@ -53,8 +53,8 @@ ], "pHost": "pHostUp", "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_worker_node.json b/test/json/classic-ScaleOut-BW/kill_secn_worker_node.json index ddbaad16..17be4272 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_worker_node.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_worker_node.json @@ -31,7 +31,7 @@ ], "pHost": "pHostUp", "sHost": [ - "clone_state=WAITING4NODES" + "clone_state=WAITING4NODES" ] }, { @@ -51,8 +51,8 @@ ], "pHost": "pHostUp", "sHost": [ - "clone_state=(UNDEFINED|DEMOTED)" , - "roles=master1::worker:" , + "clone_state=(UNDEFINED|DEMOTED)", + "roles=master1::worker:", "score=(-INFINITY|0|-1)" ] }, diff --git a/test/json/classic-ScaleOut-BW/maintenance_cluster_turn_hana.json b/test/json/classic-ScaleOut-BW/maintenance_cluster_turn_hana.json index cdf90e80..7e88b5a4 100644 --- a/test/json/classic-ScaleOut-BW/maintenance_cluster_turn_hana.json +++ b/test/json/classic-ScaleOut-BW/maintenance_cluster_turn_hana.json @@ -12,7 +12,7 @@ "post": "shell test_maintenance_cluster_turn_hana", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut-BW/maintenance_with_standby_nodes.json b/test/json/classic-ScaleOut-BW/maintenance_with_standby_nodes.json index feba872b..f90deaf9 100644 --- a/test/json/classic-ScaleOut-BW/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleOut-BW/maintenance_with_standby_nodes.json @@ -15,7 +15,7 @@ "post": "ssn", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -47,8 +47,8 @@ ], "pHost": "pHostUp", "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, @@ -91,8 +91,8 @@ ], "pHost": "pHostDown", "sHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -104,17 +104,17 @@ "post": "opn", "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=10" , - "srHook=SWAIT" , + "lss=1", + "srr=P", + "lpt=10", + "srHook=SWAIT", "srPoll=SFAIL" ], "sSite": "pSiteUp", "pHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=150", "standby=on" ], "sHost": "pHostUp" diff --git a/test/json/classic-ScaleOut-BW/nop-false.json b/test/json/classic-ScaleOut-BW/nop-false.json index 46924104..e19e9785 100644 --- a/test/json/classic-ScaleOut-BW/nop-false.json +++ b/test/json/classic-ScaleOut-BW/nop-false.json @@ -15,7 +15,7 @@ ], "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -26,7 +26,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut-BW/nop.json b/test/json/classic-ScaleOut-BW/nop.json index 31d4111e..5cb3c49b 100644 --- a/test/json/classic-ScaleOut-BW/nop.json +++ b/test/json/classic-ScaleOut-BW/nop.json @@ -13,7 +13,7 @@ "global": "globalUp", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -24,7 +24,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] diff --git a/test/json/classic-ScaleOut-BW/restart_cluster.json b/test/json/classic-ScaleOut-BW/restart_cluster.json index c59f8e20..126d7b17 100644 --- a/test/json/classic-ScaleOut-BW/restart_cluster.json +++ b/test/json/classic-ScaleOut-BW/restart_cluster.json @@ -12,7 +12,7 @@ "post": "shell test_restart_cluster", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut-BW/restart_cluster_hana_running.json b/test/json/classic-ScaleOut-BW/restart_cluster_hana_running.json index 25ebf149..cd339808 100644 --- a/test/json/classic-ScaleOut-BW/restart_cluster_hana_running.json +++ b/test/json/classic-ScaleOut-BW/restart_cluster_hana_running.json @@ -12,7 +12,7 @@ "post": "shell test_restart_cluster_hana_running", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json b/test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json index fc1a482a..30001c92 100644 --- a/test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json +++ b/test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json @@ -12,7 +12,7 @@ "post": "shell test_restart_cluster_turn_hana", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { diff --git a/test/json/classic-ScaleOut-BW/standby_prim_node.json b/test/json/classic-ScaleOut-BW/standby_prim_node.json index 1e047088..228e0d15 100644 --- a/test/json/classic-ScaleOut-BW/standby_prim_node.json +++ b/test/json/classic-ScaleOut-BW/standby_prim_node.json @@ -12,7 +12,7 @@ "post": "spn", "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -22,10 +22,10 @@ "loop": 120, "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=1", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -36,14 +36,14 @@ "srPoll=SOK" ], "pHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=150", "standby=on" ], "sHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=(100|145)" ] }, @@ -55,10 +55,10 @@ "post": "opn", "wait": 2, "pSite": [ - "lss=1" , - "srr=P" , - "lpt=10" , - "srHook=SWAIT" , + "lss=1", + "srr=P", + "lpt=10", + "srHook=SWAIT", "srPoll=SFAIL" ], "sSite": [ @@ -69,14 +69,14 @@ "srPoll=PRIM" ], "pHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=150" , + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=150", "standby=on" ], "sHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ] }, diff --git a/test/json/classic-ScaleOut-BW/standby_secn_node.json b/test/json/classic-ScaleOut-BW/standby_secn_node.json index ae59404c..a81cfa92 100644 --- a/test/json/classic-ScaleOut-BW/standby_secn_node.json +++ b/test/json/classic-ScaleOut-BW/standby_secn_node.json @@ -13,7 +13,7 @@ "wait": 1, "post": "ssn", "pSite": "pSiteUp", - "sSite": "sSiteUp", + "sSite": "sSiteUp", "pHost": "pHostUp", "sHost": "sHostUp" }, @@ -25,10 +25,10 @@ "wait": 2, "post": "osn", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -39,14 +39,14 @@ "srPoll=SFAIL" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=UNDEFINED" , - "roles=master1::worker:" , - "score=100" , + "clone_state=UNDEFINED", + "roles=master1::worker:", + "score=100", "standby=on" ] }, @@ -58,10 +58,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss=4" , - "srr=P" , - "lpt=1[6-9]........" , - "srHook=PRIM" , + "lss=4", + "srr=P", + "lpt=1[6-9]........", + "srHook=PRIM", "srPoll=PRIM" ], "sSite": [ @@ -72,13 +72,13 @@ "srPoll=SFAIL" ], "pHost": [ - "clone_state=PROMOTED" , - "roles=master1:master:worker:master" , + "clone_state=PROMOTED", + "roles=master1:master:worker:master", "score=150" ], "sHost": [ - "clone_state=DEMOTED" , - "roles=master1::worker:" , + "clone_state=DEMOTED", + "roles=master1::worker:", "score=(-INFINITY|0)" ] }, From d44d97168bcb7d1a1fc36e7ddd66bc51e5526dbe Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 18 Jul 2024 16:02:32 +0200 Subject: [PATCH 150/414] tester: used SAPHanaSR-checkJson to 'pretty-print' json files in faults --- test/json/faults/faulty-syntax-flep.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/faults/faulty-syntax-flep.json b/test/json/faults/faulty-syntax-flep.json index ca0cafde..abb53364 100644 --- a/test/json/faults/faulty-syntax-flep.json +++ b/test/json/faults/faulty-syntax-flep.json @@ -19,7 +19,7 @@ "hugo is None" ], "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" }, { @@ -30,7 +30,7 @@ "wait": 1, "pSite": "pSiteUp", "sSite": "sSiteUp", - "pHost": "pHostUp", + "pHost": "pHostUp", "sHost": "sHostUp" } ] From 87764da2120d8dac0dc891c8d5516c5940b3bac3 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 19 Jul 2024 12:56:30 +0200 Subject: [PATCH 151/414] tester: freeze_prim_master_nfs_fencing_alert.json - correction for order of fence master and worker --- .../freeze_prim_master_nfs_fencing_alert.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 319679f7..f32aeeee 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -57,11 +57,11 @@ }, { "step": "step30", - "name": "pworker fenced", - "next": "step40", + "name": "pmaster fenced", + "next": "step50", "loop": 300, "wait": 2, - "pWorker": [ + "pHost": [ "clone_state is None", "role is None", "score is None" @@ -69,11 +69,11 @@ }, { "step": "step40", - "name": "pmaster fenced", - "next": "step50", + "name": "pworker fenced", + "next": "step40", "loop": 300, "wait": 2, - "pHost": [ + "pWorker": [ "clone_state is None", "role is None", "score is None" From 181c2f9c742239ab342603aad7897ffbcfa808b9 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 19 Jul 2024 13:04:37 +0200 Subject: [PATCH 152/414] tester: kill_secn_indexserver_fencing_alert.json - step20 renamed to reflect fencing of smaster --- .../json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index eb327f8a..2adbb7ac 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -31,7 +31,7 @@ }, { "step": "step20", - "name": "failure detected", + "name": "failure detected - smaster fenced", "next": "step30", "loop": 240, "wait": 2, From 850e2f46c06b89e2fe68cfeb6f693635188b98a1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 15:12:18 +0200 Subject: [PATCH 153/414] kill_prim_inst_fencing.json: fixed --- .../angi-ScaleUp/kill_prim_inst_fencing.json | 68 ++++++------------- 1 file changed, 19 insertions(+), 49 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index e890cab7..be7c9404 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -1,20 +1,13 @@ { "test": "kill_prim_inst_fencing", "name": "Kill primary instance with on-fail fencing", - "purpose": [ - "angi", - "ScaleUp", - "kill", - "primary", - "instance", - "fencing" - ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "instance", "fencing" ], "start": "prereq10", "steps": [ { "step": "prereq10", "name": "test prerequitsites", - "next": "step30", + "next": "step20", "loop": 1, "wait": 1, "post": "kill_prim_inst", @@ -25,48 +18,35 @@ }, { "step": "step20", - "name": "failure detected", + "name": "failure detected + pmaster fenced", "next": "step30", - "loop": 180, + "loop": 240, "wait": 2, - "pSite": [ - "lss ~ (1|2)", - "srr == P", - "lpt >~ 1000000000:20", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" + "pHost": [ + "clone_state is None", + "role is None", + "score is None" ], + "sHost": "sHostUp", "sSite": [ - "lpt >~ 1000000000:30", "lss == 4", - "srr == S", - "srHook ~ (PRIM|SOK)", - "srPoll ~ (SOK|SFAIL)" - ], - "pHost": [], - "sHost": [ - "clone_state ~ (PROMOTED|DEMOTED)", - "roles == master1:master:worker:master", - "score ~ (100|145)" - ] + "srHook == SOK" + ] }, { "step": "step30", - "name": "pmaster fenced", + "name": "takeover on secondary", "next": "step40", - "loop": 240, + "loop": 120, "wait": 2, - "pHost": [ - "clone_state is None", - "role is None", - "score is None" - ] + "sSite": "pSiteUp", + "sHost": "pHostUp" }, { - "step": "step50", + "step": "step40", "name": "begin recover new secondary", "next": "final60", - "loop": 300, + "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -76,23 +56,13 @@ "srHook ~ (PRIM|SWAIT|SREG)", "srPoll == SFAIL" ], - "sSite": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], "pHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", "score ~ (0|90|70|5)" ], - "sHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ] + "sSite": "pSiteUp", + "sHost": "pHostUp" }, { "step": "final60", From 5448f5c01b75134d0417a7a56132e2a89e4e6046 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 15:27:27 +0200 Subject: [PATCH 154/414] kill_prim_indexserver_fencing.json: fixed --- .../kill_prim_indexserver_fencing.json | 70 ++++++------------- 1 file changed, 20 insertions(+), 50 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index bbaf0428..2fba4cc9 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -1,20 +1,13 @@ { "test": "kill_prim_indexserver_fencing", "name": "Kill primary indexserver with on-fail fencing", - "purpose": [ - "angi", - "ScaleUp", - "kill", - "primary", - "indexserver", - "fencing" - ], + "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver", "fencing" ], "start": "prereq10", "steps": [ { "step": "prereq10", "name": "test prerequitsites", - "next": "step30", + "next": "step20", "loop": 1, "wait": 1, "post": "kill_prim_indexserver", @@ -25,48 +18,35 @@ }, { "step": "step20", - "name": "failure detected", + "name": "failure detected + pmaster fenced", "next": "step30", - "loop": 180, + "loop": 240, "wait": 2, - "pSite": [ - "lss ~ (1|2)", - "srr == P", - "lpt >~ 1000000000:20", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" + "pHost": [ + "clone_state is None", + "role is None", + "score is None" ], + "sHost": "sHostUp", "sSite": [ - "lpt >~ 1000000000:30", "lss == 4", - "srr == S", - "srHook ~ (PRIM|SOK)", - "srPoll ~ (SOK|SFAIL)" - ], - "pHost": [], - "sHost": [ - "clone_state ~ (PROMOTED|DEMOTED)", - "roles == master1:master:worker:master", - "score ~ (100|145)" - ] + "srHook == SOK" + ] }, { "step": "step30", - "name": "pmaster fenced", + "name": "takeover on secondary", "next": "step40", - "loop": 300, + "loop": 120, "wait": 2, - "pHost": [ - "clone_state is None", - "role is None", - "score is None" - ] + "sSite": "pSiteUp", + "sHost": "pHostUp" }, { "step": "step40", "name": "begin recover new secondary", - "next": "final50", - "loop": 300, + "next": "final60", + "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -76,26 +56,16 @@ "srHook ~ (PRIM|SWAIT|SREG)", "srPoll == SFAIL" ], - "sSite": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], "pHost": [ "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", "score ~ (0|90|70|5)" ], - "sHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ] + "sSite": "pSiteUp", + "sHost": "pHostUp" }, { - "step": "final50", + "step": "final60", "name": "end recover", "next": "END", "loop": 300, From a520ca00a1b954db89db5a2780e3129868dc2c3c Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 15:43:18 +0200 Subject: [PATCH 155/414] kill_secn_indexserver_fencing.json: fixed --- test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index 881c08c6..640e6bf8 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -41,7 +41,7 @@ }, { "step": "step30", - "name": "smaster fenced", + "name": "secondary fenced", "next": "step40", "loop": 300, "wait": 2, From 5ea4b2c3a313d301defdd9a8fe30c4543583b62d Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 15:44:14 +0200 Subject: [PATCH 156/414] sct_test_freeze_secn_fs angi-ScaleUp/freeze_secn_fs.json: initial checkin --- test/bin/sct_test_freeze_secn_fs | 15 ++++ test/json/angi-ScaleUp/freeze_secn_fs.json | 80 ++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100755 test/bin/sct_test_freeze_secn_fs create mode 100644 test/json/angi-ScaleUp/freeze_secn_fs.json diff --git a/test/bin/sct_test_freeze_secn_fs b/test/bin/sct_test_freeze_secn_fs new file mode 100755 index 00000000..f5640ace --- /dev/null +++ b/test/bin/sct_test_freeze_secn_fs @@ -0,0 +1,15 @@ +#!/bin/bash +# +# sct_test_freeze_secn_fs - freeze fs on secondary node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" + +echo "==== Freeze SAP HANA FS ====" + +ports="4${instNr}01,4${instNr}02,4${instNr}03" + +ssh "$currSecondary" 'fsfreeze --freeze /hana/shared/'"${SID}" +sleep 60 diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json new file mode 100644 index 00000000..b6300b95 --- /dev/null +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -0,0 +1,80 @@ +{ + "test": "freeze_secn_fs", + "name": "freeze sap hana fs on secondary node", + "purpose": [ + "angi", + "ScaleUp", + "fs", + "freeze", + "secondary", + "node" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_freeze_secn_fs", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "sHost": [] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 300, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 4", + "srr == S", + "srHook ~ (SOK|SWAIT)", + "srPoll ~ (SOK|SFAIL)" + ], + "sHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "roles == master1::worker:", + "score ~ (100|145|150)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp" + } + ] +} From d23a36a8922d59c46a27ea219454231db4620f75 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 15:51:40 +0200 Subject: [PATCH 157/414] SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-description.7: freeze_secn_fs --- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 3 +++ man-tester/SAPHanaSR-tests-description.7 | 22 +++++++++++++++++++--- 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 002797b2..8f376af2 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -37,6 +37,9 @@ Free HANA log area on primary site. \fBfreeze_prim_fs\fP Freeze HANA FS on primary master node. .TP +\fBfreeze_secn_fs\fP +Freeze HANA FS on secondary master node. +.TP \fBkill_prim_indexserver\fP Kill primary indexserver, for susChkSrv.py. .TP diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 485d0937..01777f98 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -204,6 +204,24 @@ One takeover. One fence. Comment: Infrastructure failure, main cluster case. .RE .PP +\fBfreeze_secn_fs\fP +.RS 2 +Descr: Freeze HANA FS on secondary node. +.br +Topology: ScaleUp (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: See ocf_suse_SAPHanaFilesystem(7). +.br +Expect: Primary keeps running. +HANA secondary restarted. +SR SFAIL and finally SOK. +No takeover. No fence. +.br +Comment: Infrastructure failure, main cluster case. +.RE +.PP \fBfreeze_secn_site_nfs\fP .RS 2 Freeze HANA NFS on secondary site. @@ -404,9 +422,7 @@ Prereq: Cluster and HANA are up and running, all good. .br Test: .br -Expect: - -HANA primary stays online. +Expect: HANA primary stays online. SR SFAIL and finally SOK. No takeover. No fencing. .br From 2f994ea9359ba9f9333d56acdc4e5f1c3edb58b8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 16:12:43 +0200 Subject: [PATCH 158/414] kill_secn_indexserver_fencing.json: fixed --- .../kill_secn_indexserver_fencing.json | 30 +++++-------------- 1 file changed, 8 insertions(+), 22 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index 640e6bf8..92a16a16 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -25,29 +25,15 @@ }, { "step": "step20", - "name": "failure detected", + "name": "failure detected + secondary fenced", "next": "step30", - "loop": 120, + "loop": 240, "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ - "lpt ~ (10|30)", - "lss ~ (1|2)", + "lpt == 10", "srr == S", - "srHook == SFAIL", - "srPoll ~ (SFAIL|SOK)" - ] - }, - { - "step": "step30", - "name": "secondary fenced", - "next": "step40", - "loop": 300, - "wait": 2, - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ "srHook == SFAIL" ], "sHost": [ @@ -57,23 +43,23 @@ ] }, { - "step": "step40", + "step": "step30", "name": "begin recover", "next": "final50", - "loop": 150, + "loop": 240, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ "lpt == 10", - "lss == 1", + "lss ~ (1|2)", "srr == S", - "srHook == SFAIL", + "srHook ~ (SFAIL|SWAIT)", "srPoll ~ (SFAIL|SOK)" ], "sHost": [ - "clone_state == UNDEFINED", + "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", "score ~ (-INFINITY|0|-1)" ] From a49f1431544cebaa4a1c8cb00ae891a794997cd7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 16:13:18 +0200 Subject: [PATCH 159/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json: comments --- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 2fba4cc9..c975f125 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -18,7 +18,7 @@ }, { "step": "step20", - "name": "failure detected + pmaster fenced", + "name": "failure detected + primary fenced", "next": "step30", "loop": 240, "wait": 2, diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index be7c9404..a94f884e 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -18,7 +18,7 @@ }, { "step": "step20", - "name": "failure detected + pmaster fenced", + "name": "failure detected + primary fenced", "next": "step30", "loop": 240, "wait": 2, From 1263776040ba8175609d3bf2ce3b109b7122a1e1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 17:31:04 +0200 Subject: [PATCH 160/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json --- .../angi-ScaleUp/kill_prim_indexserver_fencing.json | 12 ++++-------- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 12 ++++-------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index c975f125..ea26c262 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -20,24 +20,20 @@ "step": "step20", "name": "failure detected + primary fenced", "next": "step30", - "loop": 240, + "loop": 120, "wait": 2, "pHost": [ "clone_state is None", "role is None", "score is None" ], - "sHost": "sHostUp", - "sSite": [ - "lss == 4", - "srHook == SOK" - ] + "sHost": "sHostUp" }, { "step": "step30", "name": "takeover on secondary", - "next": "step40", - "loop": 120, + "next": "final60", + "loop": 240, "wait": 2, "sSite": "pSiteUp", "sHost": "pHostUp" diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index a94f884e..7a25a338 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -20,24 +20,20 @@ "step": "step20", "name": "failure detected + primary fenced", "next": "step30", - "loop": 240, + "loop": 120, "wait": 2, "pHost": [ "clone_state is None", "role is None", "score is None" ], - "sHost": "sHostUp", - "sSite": [ - "lss == 4", - "srHook == SOK" - ] + "sHost": "sHostUp" }, { "step": "step30", "name": "takeover on secondary", - "next": "step40", - "loop": 120, + "next": "final60", + "loop": 240, "wait": 2, "sSite": "pSiteUp", "sHost": "pHostUp" From 682c1a3475f6ec9191ee324d0fe13fff791db188 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 22 Jul 2024 18:03:17 +0200 Subject: [PATCH 161/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json --- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 6 +++--- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index ea26c262..3048c1dd 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -32,7 +32,7 @@ { "step": "step30", "name": "takeover on secondary", - "next": "final60", + "next": "step40", "loop": 240, "wait": 2, "sSite": "pSiteUp", @@ -41,7 +41,7 @@ { "step": "step40", "name": "begin recover new secondary", - "next": "final60", + "next": "final50", "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", @@ -61,7 +61,7 @@ "sHost": "pHostUp" }, { - "step": "final60", + "step": "final50", "name": "end recover", "next": "END", "loop": 300, diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index 7a25a338..20665c3b 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -32,7 +32,7 @@ { "step": "step30", "name": "takeover on secondary", - "next": "final60", + "next": "final50", "loop": 240, "wait": 2, "sSite": "pSiteUp", @@ -41,7 +41,7 @@ { "step": "step40", "name": "begin recover new secondary", - "next": "final60", + "next": "final50", "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", From f7d3843c360fbc9b921c482e4f2826c85e6c248e Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 23 Jul 2024 10:34:04 +0200 Subject: [PATCH 162/414] kill_prim_inst_fencing.json: fixed final50 --- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index 20665c3b..31b994f4 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -61,7 +61,7 @@ "sHost": "pHostUp" }, { - "step": "final60", + "step": "final50", "name": "end recover", "next": "END", "loop": 300, From 74339370c85749f766e1abba2d7b3932089e0bfd Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 23 Jul 2024 10:58:02 +0200 Subject: [PATCH 163/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json kill_secn_indexserver_fencing.json: aligned final loops --- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 3048c1dd..8a90e860 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -64,7 +64,7 @@ "step": "final50", "name": "end recover", "next": "END", - "loop": 300, + "loop": 240, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index 31b994f4..43eadb84 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -64,7 +64,7 @@ "step": "final50", "name": "end recover", "next": "END", - "loop": 300, + "loop": 240, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index 92a16a16..d92473fc 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -68,7 +68,7 @@ "step": "final50", "name": "end recover", "next": "END", - "loop": 300, + "loop": 240, "wait": 2, "post": "cleanup", "remark": "pXXX and sCCC to be the same as at test begin", From 7c2c22e7a004af829528bbb85fd735da9aac4f07 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 23 Jul 2024 11:34:06 +0200 Subject: [PATCH 164/414] SAPHanaSR-tester.7: requirements --- man-tester/SAPHanaSR-tester.7 | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/man-tester/SAPHanaSR-tester.7 b/man-tester/SAPHanaSR-tester.7 index fd124d2b..d290f4ad 100644 --- a/man-tester/SAPHanaSR-tester.7 +++ b/man-tester/SAPHanaSR-tester.7 @@ -229,6 +229,11 @@ If disk-based SBD is used, then service sbd enabled and SBD_STARTMODE=always is needed for this tests. The stonith-action=reboot is needed in any case. This cluster basics might be different for production. .PP +\fB*\fP In some cases the various timings for stonith and service startup might +need alignement to prevent fenced nodes from re-joining the cluster before the +resource takeover has been finished. This most likely applies if stonith-timeout +is long, but the cluster nodes are booting very fast. +.PP \fB*\fP Sufficient disk space, particularly for HANA transaction logs, e.g. /hana/log/. Depending on the backup implementation, also space for log backups might be needed, e.g. /hana/shared//HDB/backup/. Strict housekeeping From bd37fdab47c23ba912a7867eb5cbd0a1d278cc67 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 24 Jul 2024 14:50:27 +0200 Subject: [PATCH 165/414] kill_prim_indexserver_fencing.json kill_prim_inst_fencing.json kill_prim_node.json kill_secn_indexserver_fencing.json: aligned loops for step detected+fenced --- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_node.json | 2 +- test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 8a90e860..5d93d7b3 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -20,7 +20,7 @@ "step": "step20", "name": "failure detected + primary fenced", "next": "step30", - "loop": 120, + "loop": 180, "wait": 2, "pHost": [ "clone_state is None", diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index 43eadb84..c9b7003f 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -20,7 +20,7 @@ "step": "step20", "name": "failure detected + primary fenced", "next": "step30", - "loop": 120, + "loop": 180, "wait": 2, "pHost": [ "clone_state is None", diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index 53cc9601..f80741bb 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -26,7 +26,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 120, + "loop": 180, "wait": 2, "pSite": [ "srr == P", diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index d92473fc..a3a3911c 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -27,7 +27,7 @@ "step": "step20", "name": "failure detected + secondary fenced", "next": "step30", - "loop": 240, + "loop": 180, "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", From e89753fd1c225ae8bd24476dcbb758ff0c225aef Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 24 Jul 2024 15:26:00 +0200 Subject: [PATCH 166/414] kill_prim_inst_fencing.json: fixed recovery --- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index c9b7003f..f59dbed2 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -32,7 +32,7 @@ { "step": "step30", "name": "takeover on secondary", - "next": "final50", + "next": "step40", "loop": 240, "wait": 2, "sSite": "pSiteUp", From c60293d0c9c4aa4e884d18a72bcd4131742117fd Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 24 Jul 2024 17:20:15 +0200 Subject: [PATCH 167/414] tester: saphana_sr_test.py - improved handling of lost ssh connection when remotehost is the fenced host --- test/tester/saphana_sr_test.py | 230 +++++++++++++++++---------------- 1 file changed, 119 insertions(+), 111 deletions(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index e34ce4a0..5a1bd7f1 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -185,7 +185,7 @@ def read_saphana_sr(self): sr_out = local_sr.stdout.decode() break else: - result_sr = self.__do_ssh__(remote_node, "root", cmd) + result_sr = self.__do_ssh__(remote_node, "root", cmd, timeout=15) if result_sr[2] != 20000: if switched_remote: self.message(f"STATUS: get data from {remote_node}") @@ -298,6 +298,7 @@ def read_test_file(self): except FileNotFoundError as e_file: self.message(f"ERROR: File error: {e_file}") return 1 + # pylint: disable=broad-exception-caught except (PermissionError, Exception) as e_generic: self.message(f"ERROR: File error: {e_generic}") return 1 @@ -309,6 +310,7 @@ def read_test_file(self): except FileNotFoundError as e_file: self.message(f"ERROR: File error: {e_file}") return 1 + # pylint: disable=broad-exception-caught except (PermissionError, Exception) as e_generic: self.message(f"ERROR: File error: {e_generic}") return 1 @@ -340,8 +342,6 @@ def __add_failed__(self, area_object, key_val_reg, **kwargs): fatal_name = "" fatal_check = kwargs.get("fatal_check", False) fatal_name = kwargs.get("fatal_name", "") - if 'fatal_name' in kwargs: - fatal_name = kwargs["fatal_name"] ( _area, _obj ) = area_object if 'failed' in self.run: _l_failed = self.run['failed'] @@ -368,6 +368,111 @@ def __get_failed__(self): return self.run['failed'] return None + def __run_check__(self, single_check, area_name, object_name, step_step, **kwargs): + # match + # TODO: maybe allow flexible whitespace + match_obj = re.search("(.*) (==|!=|>|>=|<|<=|~|!~|>~|is) (.*)", single_check) + check_result = -1 + if match_obj is None: + self.message(f"ERROR: step={step_step} unknown comperator in {single_check}") + check_result = 2 + c_key = match_obj.group(1) + l_sr = self.dict_sr + # fail_msg = "MISSED" + fatal_check = kwargs.get('fatal_check', False) + fatal_name = kwargs.get('fatal_name', "") + # + # rewrite key, if it contains a string @@sid@@ this is needed e.g. to match lpa__lpt + # + #print(f"c_key={c_key}") + match_obj_key = re.search("(.*)@@sid@@(.*)", c_key) + if match_obj_key is not None: + #print(f"match c_key={c_key} group1={match_obj_key.group(1)} group2={match_obj_key.group(2)}") + c_key = match_obj_key.group(1) + self.test_data['sid'].lower() + match_obj_key.group(2) + #print(f"rewrite c_key={c_key}") + c_comp = match_obj.group(2) + c_reg_exp = match_obj.group(3) + c_reg_exp_a = "" + c_reg_exp_b = "" + try: + if c_comp == ">~": + comp_obj = re.search("(.*):(.*)",c_reg_exp) + c_reg_exp_a = comp_obj.group(1) + c_reg_exp_b = comp_obj.group(2) + except (IndexError, AttributeError): + pass + self.debug(f"DEBUG: ckey:{c_key} c_comp:{c_comp} c_reg_exp:{c_reg_exp} c_reg_exp_a:{c_reg_exp_a} c_reg_exp_b:{c_reg_exp_b}") + found = False + if area_name in l_sr: + l_area = l_sr[area_name] + c_err = 1 + if object_name in l_area: + l_obj = l_area[object_name] + if c_key in l_obj: + l_val = l_obj[c_key] + found = True + # TODO '==' must be exact match, '~' is for regexp + if c_comp == "==": + if l_val == c_reg_exp: + c_err = 0 + elif c_comp == "!=": + if l_val != c_reg_exp: + c_err = 0 + elif c_comp == "~": + if re.search(c_reg_exp, l_val): + c_err = 0 + elif c_comp == "!~": + if not re.search(c_reg_exp, l_val): + c_err = 0 + elif c_comp == ">": + # TODO check l_val and c_reg_exp if they could transformed into int + if int(l_val) > int(c_reg_exp): + c_err = 0 + elif c_comp == ">=": + # TODO check l_val and c_reg_exp if they could transformed into int + if int(l_val) >= int(c_reg_exp): + c_err = 0 + elif c_comp == "<": + # TODO check l_val and c_reg_exp if they could transformed into int + if int(l_val) < int(c_reg_exp): + c_err = 0 + elif c_comp == "<=": + # TODO check l_val and c_reg_exp if they could transformed into int + if int(l_val) <= int(c_reg_exp): + c_err = 0 + elif c_comp == ">~": + # TODO check l_val and c_reg_exp if they could transformed into int + if int(l_val) > int(c_reg_exp_a) or re.search(c_reg_exp_b, l_val): + c_err = 0 + else: + if c_comp == "is" and c_reg_exp == "None": + found = 1 + c_err = 0 + check_result = max(check_result, 0) + else: + # if object does not even exist, the 'None' clause is true + if c_comp == "is" and c_reg_exp == "None": + found = 1 + c_err = 0 + check_result = max(check_result, 0) + if c_err == 1: + if not found: + l_val = None + self.__add_failed__((area_name, object_name), (c_key, l_val, c_reg_exp, c_comp), fatal_check=fatal_check, fatal_name=fatal_name) + check_result = max(check_result, 1) + self.debug(f"DEBUG: FAILED: ckey:{c_key} c_comp:{c_comp} c_reg_exp:{c_reg_exp} c_reg_exp_a:{c_reg_exp_a} c_reg_exp_b:{c_reg_exp_b}") + else: + check_result = max(check_result, 0) + self.debug(f"DEBUG: PASSED: ckey:{c_key} c_comp:{c_comp} c_reg_exp:{c_reg_exp} c_reg_exp_a:{c_reg_exp_a} c_reg_exp_b:{c_reg_exp_b}") + if c_comp == "is" and c_reg_exp == "None": + # if area does not even exist, the 'None' clause is true + found = 1 + c_err = 0 + check_result = max(check_result, 0) + if (found == 0) and (check_result < 2): + check_result = 2 + return check_result + def run_checks(self, checks, area_name, object_name, step_step, **kwargs ): """ run all checks for area and object params: @@ -376,116 +481,14 @@ def run_checks(self, checks, area_name, object_name, step_step, **kwargs ): object_name: aobject inside area to be checked (ROT, WDF, pizbuin01) step_step: TBD """ - fatal_check = False - fatal_name = "" fail_msg = "MISSED" - if 'fatal_check' in kwargs: - fatal_check = kwargs["fatal_check"] - if 'fatal_name' in kwargs: - fatal_name = kwargs["fatal_name"] - l_sr = self.dict_sr + fatal_check = kwargs.get('fatal_check', False) + fatal_name = kwargs.get('fatal_name', "") check_result = -1 if fatal_check is False: self.__reset_failed__() for single_check in checks: - # match - # TODO: maybe allow flexible whitespace - match_obj = re.search("(.*) (==|!=|>|>=|<|<=|~|!~|>~|is) (.*)", single_check) - if match_obj is None: - self.message(f"ERROR: step={step_step} unknown comperator in {single_check}") - check_result = 2 - break - c_key = match_obj.group(1) - # - # rewrite key, if it contains a string @@sid@@ this is needed e.g. to match lpa__lpt - # - #print(f"c_key={c_key}") - match_obj_key = re.search("(.*)@@sid@@(.*)", c_key) - if match_obj_key is not None: - #print(f"match c_key={c_key} group1={match_obj_key.group(1)} group2={match_obj_key.group(2)}") - c_key = match_obj_key.group(1) + self.test_data['sid'].lower() + match_obj_key.group(2) - #print(f"rewrite c_key={c_key}") - c_comp = match_obj.group(2) - c_reg_exp = match_obj.group(3) - c_reg_exp_a = "" - c_reg_exp_b = "" - try: - if c_comp == ">~": - comp_obj = re.search("(.*):(.*)",c_reg_exp) - c_reg_exp_a = comp_obj.group(1) - c_reg_exp_b = comp_obj.group(2) - except (IndexError, AttributeError): - pass - self.debug(f"DEBUG: ckey:{c_key} c_comp:{c_comp} c_reg_exp:{c_reg_exp} c_reg_exp_a:{c_reg_exp_a} c_reg_exp_b:{c_reg_exp_b}") - found = False - if area_name in l_sr: - l_area = l_sr[area_name] - c_err = 1 - if object_name in l_area: - l_obj = l_area[object_name] - if c_key in l_obj: - l_val = l_obj[c_key] - found = True - # TODO '==' must be exact match, '~' is for regexp - if c_comp == "==": - if l_val == c_reg_exp: - c_err = 0 - elif c_comp == "!=": - if l_val != c_reg_exp: - c_err = 0 - elif c_comp == "~": - if re.search(c_reg_exp, l_val): - c_err = 0 - elif c_comp == "!~": - if not re.search(c_reg_exp, l_val): - c_err = 0 - elif c_comp == ">": - # TODO check l_val and c_reg_exp if they could transformed into int - if int(l_val) > int(c_reg_exp): - c_err = 0 - elif c_comp == ">=": - # TODO check l_val and c_reg_exp if they could transformed into int - if int(l_val) >= int(c_reg_exp): - c_err = 0 - elif c_comp == "<": - # TODO check l_val and c_reg_exp if they could transformed into int - if int(l_val) < int(c_reg_exp): - c_err = 0 - elif c_comp == "<=": - # TODO check l_val and c_reg_exp if they could transformed into int - if int(l_val) <= int(c_reg_exp): - c_err = 0 - elif c_comp == ">~": - # TODO check l_val and c_reg_exp if they could transformed into int - if int(l_val) > int(c_reg_exp_a) or re.search(c_reg_exp_b, l_val): - c_err = 0 - else: - if c_comp == "is" and c_reg_exp == "None": - found = 1 - c_err = 0 - check_result = max(check_result, 0) - else: - # if object does not even exist, the 'None' clause is true - if c_comp == "is" and c_reg_exp == "None": - found = 1 - c_err = 0 - check_result = max(check_result, 0) - if c_err == 1: - if not found: - l_val = None - self.__add_failed__((area_name, object_name), (c_key, l_val, c_reg_exp, c_comp), fatal_check=fatal_check, fatal_name=fatal_name) - check_result = max(check_result, 1) - self.debug(f"DEBUG: FAILED: ckey:{c_key} c_comp:{c_comp} c_reg_exp:{c_reg_exp} c_reg_exp_a:{c_reg_exp_a} c_reg_exp_b:{c_reg_exp_b}") - else: - check_result = max(check_result, 0) - self.debug(f"DEBUG: PASSED: ckey:{c_key} c_comp:{c_comp} c_reg_exp:{c_reg_exp} c_reg_exp_a:{c_reg_exp_a} c_reg_exp_b:{c_reg_exp_b}") - if c_comp == "is" and c_reg_exp == "None": - # if area does not even exist, the 'None' clause is true - found = 1 - c_err = 0 - check_result = max(check_result, 0) - if (found == 0) and (check_result < 2): - check_result = 2 + check_result = self.__run_check__(single_check, area_name, object_name, step_step, fatal_check=fatal_check, fatal_name=fatal_name) if fatal_check is False: if self.config['dump_failures'] and 'failed' in self.run: self.message(f"{fail_msg}: step={step_step} {self.__get_failed__()}", stdout=False) @@ -789,17 +792,21 @@ def action(self, action_name): action_rc = self.action_on_os(action_name) return action_rc - def __do_ssh__(self, remote_host, user, cmd): + def __do_ssh__(self, remote_host, user, cmd, **kwargs): """ ssh remote cmd exectution returns a tuple ( stdout-string, stderr, string, rc ) """ + ssh_timeout = kwargs.get('timeout', None) if remote_host: try: ssh_client = paramiko.SSHClient() ssh_client.load_system_host_keys() - ssh_client.connect(remote_host, username=user) - (cmd_stdout, cmd_stderr) = ssh_client.exec_command(cmd)[1:] + ssh_client.connect(remote_host, username=user, timeout=10) + cmd_timeout=f"timeout={ssh_timeout}" + #(cmd_stdout, cmd_stderr) = ssh_client.exec_command(cmd, cmd_timeout)[1:] + self.debug(f"DEBUG: ssh cmd '{cmd}' timeout={ssh_timeout}") + (cmd_stdout, cmd_stderr) = ssh_client.exec_command(cmd, timeout=ssh_timeout)[1:] result_stdout = cmd_stdout.read().decode("utf8") result_stderr = cmd_stderr.read().decode("utf8") result_rc = cmd_stdout.channel.recv_exit_status() @@ -809,6 +816,7 @@ def __do_ssh__(self, remote_host, user, cmd): except paramiko.ssh_exception.SSHException as para_err: self.message(f"FAILURE01: ssh connection to {user}@{remote_host}: {para_err}") check_result=("", "", 20000) + # pylint: disable=broad-exception-caught except Exception as ssh_muell: # except Exception as ssh_muell: self.message(f"FAILURE02: ssh connection to {user}@{remote_host}: {ssh_muell}") From 39b66375db4cfba504ef40c7ee2da9451b4c4ba3 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 24 Jul 2024 17:24:04 +0200 Subject: [PATCH 168/414] tester: angi-ScaleUp - fatal1.json, fatal2.json and sshtimeout.json added --- test/json/angi-ScaleUp/fatal1.json | 73 ++++++++++++++++++++++++ test/json/angi-ScaleUp/fatal2.json | 79 ++++++++++++++++++++++++++ test/json/angi-ScaleUp/sshtimeout.json | 48 ++++++++++++++++ 3 files changed, 200 insertions(+) create mode 100644 test/json/angi-ScaleUp/fatal1.json create mode 100644 test/json/angi-ScaleUp/fatal2.json create mode 100644 test/json/angi-ScaleUp/sshtimeout.json diff --git a/test/json/angi-ScaleUp/fatal1.json b/test/json/angi-ScaleUp/fatal1.json new file mode 100644 index 00000000..126c568e --- /dev/null +++ b/test/json/angi-ScaleUp/fatal1.json @@ -0,0 +1,73 @@ +{ + "test": "fatal1", + "name": "fatal1 - example for fatalConditions", + "purpose": [ + "angi", + "ScaleUp", + "fail", + "parser", + "sleep", + "tester", + "fatal" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "final40", + "loop": 1, + "wait": 1, + "post": "sleep 4", + "pSite": [ + "lpt >~ 2000000000:^(20|30|1.........)$", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "fatalCondition": { + "comment": "fata01 (all conditons) OR fatal02 (all conditions) OR fatal_dual_P (all conditions)", + "next": "end", + "fatal01": { + "pHost": [ + "score is None", + "roles is None" + ] + }, + "fatal02": { + "sHost": [ + "score is None", + "roles is None" + ] + }, + "fatal_dual_P": { + "pSite": [ + "lss == 4", + "srr == P" + ], + "sSite": [ + "lss == 4", + "srr == P" + ] + } + } + }, + { + "step": "final40", + "name": "still running", + "next": "END", + "loop": 1, + "wait": 1, + "pSite": [ + "lpt is None" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} diff --git a/test/json/angi-ScaleUp/fatal2.json b/test/json/angi-ScaleUp/fatal2.json new file mode 100644 index 00000000..b092e558 --- /dev/null +++ b/test/json/angi-ScaleUp/fatal2.json @@ -0,0 +1,79 @@ +{ + "test": "fatal2", + "name": "fatal2 - this test should NOT pass successfully - fails on fatalCondition", + "purpose": [ + "angi", + "ScaleUp", + "fail", + "parser", + "sleep", + "tester", + "fatal" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "final40", + "loop": 1, + "wait": 1, + "post": "sleep 4", + "pSite": [ + "lpt >~ 2000000000:^(20|30|1.........)$", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "fatalCondition": { + "comment": "fata01 (all conditons) OR fatal02 (all conditions) OR fatal_dual_P (all conditions)", + "next": "end", + "false_fatal_P": { + "pSite": [ + "lss == 4", + "srr == P" + ] + }, + "fatal01": { + "pHost": [ + "score is None", + "roles is None" + ] + }, + "fatal02": { + "sHost": [ + "score is None", + "roles is None" + ] + }, + "fatal_dual_P": { + "pSite": [ + "lss == 4", + "srr == P" + ], + "sSite": [ + "lss == 4", + "srr == P" + ] + } + } + }, + { + "step": "final40", + "name": "still running", + "next": "END", + "loop": 1, + "wait": 1, + "pSite": [ + "lpt is None" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} diff --git a/test/json/angi-ScaleUp/sshtimeout.json b/test/json/angi-ScaleUp/sshtimeout.json new file mode 100644 index 00000000..636daa77 --- /dev/null +++ b/test/json/angi-ScaleUp/sshtimeout.json @@ -0,0 +1,48 @@ +{ + "test": "sshtimeout", + "name": "sshtimeout - this test should NOT pass successfully", + "purpose": [ + "angi", + "ScaleUp", + "fail", + "parser", + "sleep", + "tester" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "final40", + "loop": 1, + "wait": 1, + "post": "sleep 4", + "pSite": [ + "lss == 1" + ], + "sSite": [ + "lss == 1" + ], + "pHost": [ + "roles == master1::worker:" + ], + "sHost": [ + "roles == master1::worker:" + ] + }, + { + "step": "final40", + "name": "still running", + "next": "END", + "loop": 1000, + "wait": 1, + "pSite": [ + "lss == 5" + ], + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From b14fe4999844f5d4f5040ef2202c2463632c9fa0 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 24 Jul 2024 17:30:28 +0200 Subject: [PATCH 169/414] tester: saphana_sr_test.py updated version string --- test/tester/saphana_sr_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index 5a1bd7f1..dbb83489 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -25,7 +25,7 @@ class SaphanasrTest: """ class to check SAP HANA cluster during tests """ - version = "1.3.0" + version = "1.3.1" def message(self, msg, **kwargs): """ From 2d37f9666be2d63e044a400f8388efb37bd0b7cd Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 25 Jul 2024 12:33:31 +0200 Subject: [PATCH 170/414] kill_prim_indexserver_fencing_alert.json kill_prim_worker_indexserver_fencing_alert.json: aligned loops --- .../json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 2 +- .../kill_prim_worker_indexserver_fencing_alert.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 95466b6c..6856ff32 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -85,7 +85,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 480, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index 5610f261..ea786be6 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -85,7 +85,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 480, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ From 975cb984961705ce082eb1b8f10a1e7457dffa4e Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 26 Jul 2024 07:15:05 +0200 Subject: [PATCH 171/414] tester: v 1.3.2 --- SAPHanaSR-tester.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SAPHanaSR-tester.spec b/SAPHanaSR-tester.spec index 7c1652d3..b95a6012 100644 --- a/SAPHanaSR-tester.spec +++ b/SAPHanaSR-tester.spec @@ -20,7 +20,7 @@ License: GPL-2.0 Group: Productivity/Clustering/HA AutoReqProv: on Summary: Test suite for SAPHanaSR clusters -Version: 1.3.0 +Version: 1.3.2 Release: 0 Url: https://www.suse.com/c/fail-safe-operation-of-sap-hana-suse-extends-its-high-availability-solution/ From ec12012b13adb1d5c324b274e32a961e465780a9 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 26 Jul 2024 07:17:03 +0200 Subject: [PATCH 172/414] tester: saphana_sr_test.py - improved log format in case of dump_failures and ssh errors (exception) --- test/tester/saphana_sr_test.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index dbb83489..5a196e46 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -25,7 +25,7 @@ class SaphanasrTest: """ class to check SAP HANA cluster during tests """ - version = "1.3.1" + version = "1.3.2" def message(self, msg, **kwargs): """ @@ -814,11 +814,15 @@ def __do_ssh__(self, remote_host, user, cmd, **kwargs): ssh_client.close() self.debug(f"DEBUG: ssh cmd '{cmd}' {user}@{remote_host}: return code {result_rc}") except paramiko.ssh_exception.SSHException as para_err: + if self.config['dump_failures']: + print("") self.message(f"FAILURE01: ssh connection to {user}@{remote_host}: {para_err}") check_result=("", "", 20000) # pylint: disable=broad-exception-caught except Exception as ssh_muell: # except Exception as ssh_muell: + if self.config['dump_failures']: + print("") self.message(f"FAILURE02: ssh connection to {user}@{remote_host}: {ssh_muell}") check_result=("", "", 20000) else: From a62f4b7976d2f4975b55c09dc8412a1d03d0a002 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 26 Jul 2024 07:19:15 +0200 Subject: [PATCH 173/414] angi: SAPHanaSR-hookHelper - on action fence, kill hana first to avoid call of the srConnectionStatusChanged event which would result on SFAIL in some cases --- tools/SAPHanaSR-hookHelper | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/SAPHanaSR-hookHelper b/tools/SAPHanaSR-hookHelper index 87959654..74b33aec 100755 --- a/tools/SAPHanaSR-hookHelper +++ b/tools/SAPHanaSR-hookHelper @@ -247,6 +247,7 @@ case "$USECASE" in "fenceMe" ) nodeName=$(/usr/sbin/crm_node -n) #stonith_admin --reboot="$nodeName" + su - "${ASID}adm" -c "HDB kill-9" /usr/sbin/crm --force node fence "$nodeName" rc=42 # if fence is working this rc should never been send back ;; From 5247aa82606c45b2bf71e944c036d4ac4b3708c2 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 26 Jul 2024 08:56:36 +0200 Subject: [PATCH 174/414] tester: SAPHanaSR-testCluster - differ scaleUp,scaleOut and UNKNOWN topology in TOPO summary --- test/tester/SAPHanaSR-testCluster | 38 +++++++++++++++++++++++-------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/test/tester/SAPHanaSR-testCluster b/test/tester/SAPHanaSR-testCluster index 804a6f24..17376c2c 100755 --- a/test/tester/SAPHanaSR-testCluster +++ b/test/tester/SAPHanaSR-testCluster @@ -45,7 +45,7 @@ parser.add_argument("--version", help="output version and exit", action="store_t args = parser.parse_args() if args.version: print(f"SAPHanaSR-tester {test01.version}") - exit(0) + sys.exit(0) test01.message(f"INIT: {test01.version}") if args.testFile: test01.message("PARAM: testFile: {}".format(args.testFile)) @@ -132,14 +132,34 @@ while test01.run['count'] <= test01.config['repeat']: # TODO: do we need the old method as fallback, if msn is empty or misleading? #l_top.update({'pHost': test01.get_area_object_by_key_val('Host', 'site', l_top['pSite'])}) #l_top.update({'sHost': test01.get_area_object_by_key_val('Host', 'site', l_top['sSite'])}) - l_msg = ( - f"TOPO: pSite={l_top['pSite']}" - f" sSite={l_top['sSite']}" - f" pHost={l_top['pHost']}" - f" sHost={l_top['sHost']}" - f" pWorker={l_top['pWorker']}" - f" sWorker={l_top['sWorker']}" - ) + if l_top['pHost'] is None: + # pHost is empty - this indicates a serious detection problem + l_msg = ( + f"TOPO: UNKNOWN pSite={l_top['pSite']}" + f" sSite={l_top['sSite']}" + f" pHost={l_top['pHost']}" + f" sHost={l_top['sHost']}" + f" pWorker={l_top['pWorker']}" + f" sWorker={l_top['sWorker']}" + ) + elif l_top['pWorker'] is None: + # pWorker is empty - this indicates scale-up + l_msg = ( + f"TOPO: scaleUp pSite={l_top['pSite']}" + f" sSite={l_top['sSite']}" + f" pHost={l_top['pHost']}" + f" sHost={l_top['sHost']}" + ) + else: + # pWorker is set - this indicates scale-out + l_msg = ( + f"TOPO: scaleOut pSite={l_top['pSite']}" + f" sSite={l_top['sSite']}" + f" pHost={l_top['pHost']}" + f" sHost={l_top['sHost']}" + f" pWorker={l_top['pWorker']}" + f" sWorker={l_top['sWorker']}" + ) test01.message(l_msg) if test01.read_test_file() != 0: From 2497c71d564a9f7118808c58b1b993b20a5defc8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 26 Jul 2024 10:31:36 +0200 Subject: [PATCH 175/414] SAPHanaSR-tests-description_on-fail-fence.7: description --- .../SAPHanaSR-tests-description_on-fail-fence.7 | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 index 023c4003..10c49704 100644 --- a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -39,7 +39,7 @@ Expect: Primary nodes fenced. HANA primary killed and finally started as secondary. HANA secondary becomes finally primary. SR SFAIL and finally SOK. -One takeover. One fence TODO. +One takeover. All primary nodes fenced. .br Comment: Infrastructure failure, main cluster case. .RE @@ -77,7 +77,7 @@ Expect: All primary nodes fenced. HANA primary killed and finally started as secondary. HANA secondary becomes finally primary. SR SFAIL and finally SOK. -One takeover. TODO fencing (for action_on_lost=fence). +One takeover. All primary nodes fenced (for action_on_lost=fence). .br Comment: Application failure, main cluster case. .RE @@ -115,7 +115,7 @@ Expect: All primary nodes fenced. HANA primary killed and finally started as secondary. HANA secondary becomes finally primary. SR SFAIL and finally SOK. -One takeover. TODO fencing. +One takeover. All primary nodes fenced. .br Comment: Application failure, main cluster case. .RE @@ -134,7 +134,7 @@ Expect: All primary nodes fenced. HANA primary killed and finally started as secondary. HANA secondary becomes finally primary. SR SFAIL and finally SOK. -One takeover. One fencing for each primary node. +One takeover. All primary nodes fenced. .br Comment: Node failure, main cluster case. .RE @@ -153,7 +153,7 @@ Expect: All primary nodes fenced. HANA primary killed and finally started as secondary. HANA secondary becomes finally primary. SR SFAIL and finally SOK. -One takeover. TODO fencing (for action_on_lost=fence). +One takeover. All primary nodes fenced (for action_on_lost=fence). .br Comment: Application failure, main cluster case. .RE @@ -172,7 +172,7 @@ Expect: All primary nodes fenced. HANA primary killed and finally started as secondary. HANA secondary becomes finally primary. SR SFAIL and finally SOK. -One takeover. TODO fencing. +One takeover. All primary nodes fenced. .br Comment: Application failure, main cluster case. .RE @@ -191,7 +191,7 @@ Expect: All primary nodes fenced. HANA primary killed and finally started as secondary. HANA secondary becomes finally primary. SR SFAIL and finally SOK. -One takeover. TODO fencing. +One takeover. All primary nodes fenced. .br Comment: Node failure, main cluster case. .RE @@ -209,7 +209,7 @@ Test: See susChkSrv.py(7). Expect: Secondary node fenced. HANA secondary killed and finally restarted. SR SFAIL and finally SOK. -No takeover. One fencing (for action_on_lost=fence). +No takeover. All secondary nodes fenced (for action_on_lost=fence). .br Comment: Application failure, main cluster case .RE From bb743de5436d625673d4bfbcdffa6a3b6ed48a75 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 26 Jul 2024 10:38:20 +0200 Subject: [PATCH 176/414] angi: SAPHanaSR-hookHelper - added optional internal debugging of kill+fence action --- tools/SAPHanaSR-hookHelper | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/SAPHanaSR-hookHelper b/tools/SAPHanaSR-hookHelper index 74b33aec..bf8663ac 100755 --- a/tools/SAPHanaSR-hookHelper +++ b/tools/SAPHanaSR-hookHelper @@ -247,7 +247,10 @@ case "$USECASE" in "fenceMe" ) nodeName=$(/usr/sbin/crm_node -n) #stonith_admin --reboot="$nodeName" + # only 'activate' the /root/SAPHanaSR-hookHelper.log logging, if really needed for debugging + #echo "$(date) SAPHanaSR-hookHelper fenceMe" >> /root/SAPHanaSR-hookHelper.log su - "${ASID}adm" -c "HDB kill-9" + #echo "$(date) SAPHanaSR-hookHelper fenceMe - killed, now fence" >> /root/SAPHanaSR-hookHelper.log /usr/sbin/crm --force node fence "$nodeName" rc=42 # if fence is working this rc should never been send back ;; From 8d50c67430a4e71ce3a851b79c43cf0e7a22d20c Mon Sep 17 00:00:00 2001 From: lpinne Date: Sat, 27 Jul 2024 13:23:36 +0200 Subject: [PATCH 177/414] kill_prim_indexserver_fencing.json kill_prim_inst.json kill_prim_inst_fencing.json kill_prim_node.json kill_secn_indexserver_fencing.json kill_secn_node.json: aligned end recover timeout --- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_node.json | 2 +- test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_secn_node.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 5d93d7b3..8a90e860 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -20,7 +20,7 @@ "step": "step20", "name": "failure detected + primary fenced", "next": "step30", - "loop": 180, + "loop": 120, "wait": 2, "pHost": [ "clone_state is None", diff --git a/test/json/angi-ScaleUp/kill_prim_inst.json b/test/json/angi-ScaleUp/kill_prim_inst.json index 761cb413..4e504a6e 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst.json +++ b/test/json/angi-ScaleUp/kill_prim_inst.json @@ -91,7 +91,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 300, + "loop": 240, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index f59dbed2..a2e33734 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -20,7 +20,7 @@ "step": "step20", "name": "failure detected + primary fenced", "next": "step30", - "loop": 180, + "loop": 120, "wait": 2, "pHost": [ "clone_state is None", diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index f80741bb..75c4631f 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -87,7 +87,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 150, + "loop": 240, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index a3a3911c..0d31f31b 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -27,7 +27,7 @@ "step": "step20", "name": "failure detected + secondary fenced", "next": "step30", - "loop": 180, + "loop": 120, "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", diff --git a/test/json/angi-ScaleUp/kill_secn_node.json b/test/json/angi-ScaleUp/kill_secn_node.json index 39c39021..8c3050af 100644 --- a/test/json/angi-ScaleUp/kill_secn_node.json +++ b/test/json/angi-ScaleUp/kill_secn_node.json @@ -68,7 +68,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 150, + "loop": 240, "wait": 2, "post": "cleanup", "pSite": "pSiteUp", From 87cd671d2f7da03a0e5933f80a7bf6801771fcb8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Sat, 27 Jul 2024 17:48:04 +0200 Subject: [PATCH 178/414] kill_prim_indexserver.json: aligned timeouts --- test/json/angi-ScaleUp/kill_prim_indexserver.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver.json b/test/json/angi-ScaleUp/kill_prim_indexserver.json index 317550f5..880c11cf 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver.json @@ -26,7 +26,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 180, + "loop": 120, "wait": 2, "pSite": [ "lss ~ (1|2)", @@ -89,7 +89,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 300, + "loop": 240, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", From 74ee33dcdf7d12d063a07597e1406b336ed33b7c Mon Sep 17 00:00:00 2001 From: lpinne Date: Sat, 27 Jul 2024 17:52:00 +0200 Subject: [PATCH 179/414] kill_prim_node.json: aligned timeouts --- test/json/angi-ScaleUp/kill_prim_node.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index 75c4631f..4cf4a4ae 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -26,7 +26,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 180, + "loop": 120, "wait": 2, "pSite": [ "srr == P", From c4cf5fac31a273acbaf41f0362a647e15862bc62 Mon Sep 17 00:00:00 2001 From: lpinne Date: Sat, 27 Jul 2024 18:05:42 +0200 Subject: [PATCH 180/414] kill_prim_node.json: aligned timeouts --- test/json/angi-ScaleUp/kill_prim_node.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index 4cf4a4ae..615399ff 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -87,7 +87,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 240, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", From 6ca617f97904ca8ac5fdd8515de152b5ce881ebc Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Tue, 30 Jul 2024 16:49:09 +0200 Subject: [PATCH 181/414] tester: saphana_sr_test.py - fixed exit for fatal conditions and fixed code for test set (run_checks) --- test/tester/saphana_sr_test.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index 5a196e46..f6560b32 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -25,7 +25,7 @@ class SaphanasrTest: """ class to check SAP HANA cluster during tests """ - version = "1.3.2" + version = "1.3.4" def message(self, msg, **kwargs): """ @@ -488,7 +488,7 @@ def run_checks(self, checks, area_name, object_name, step_step, **kwargs ): if fatal_check is False: self.__reset_failed__() for single_check in checks: - check_result = self.__run_check__(single_check, area_name, object_name, step_step, fatal_check=fatal_check, fatal_name=fatal_name) + check_result = max(check_result, self.__run_check__(single_check, area_name, object_name, step_step, fatal_check=fatal_check, fatal_name=fatal_name)) if fatal_check is False: if self.config['dump_failures'] and 'failed' in self.run: self.message(f"{fail_msg}: step={step_step} {self.__get_failed__()}", stdout=False) @@ -545,8 +545,7 @@ def __process_fatal_condition(self, step): self.debug(f"DEBUG: fatalConditions: {child} rc {rc_checks}") rc_child = max(rc_child, rc_checks) if rc_child == 0: - self.message(f"STATUS: fatalConditions: FAILED {child} {fc_child} - BREAK", pre_cr=True) - break + self.message(f"STATUS: fatalConditions: FAILED {child} {fc_child}", pre_cr=True) rc_condition = min(rc_condition, rc_child) return rc_condition @@ -590,7 +589,7 @@ def process_step(self, step): process_result = self.__process_fatal_condition(step) self.debug("DEBUG: step {} to processed fatalCondition with process_result {}".format(step_id, process_result)) if process_result == 0: - self.message("STATUS: step {} failed with fatalCondition".format(step_id)) + self.message("STATUS: step {} failed with fatalCondition - BREAK".format(step_id)) process_result = 2 fatal = True break From cb27c9855b2f5d2c39156bee45787c4b042aa160 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Tue, 30 Jul 2024 16:49:47 +0200 Subject: [PATCH 182/414] tester: package - v1.3.4 --- SAPHanaSR-tester.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SAPHanaSR-tester.spec b/SAPHanaSR-tester.spec index b95a6012..598bcd4e 100644 --- a/SAPHanaSR-tester.spec +++ b/SAPHanaSR-tester.spec @@ -20,7 +20,7 @@ License: GPL-2.0 Group: Productivity/Clustering/HA AutoReqProv: on Summary: Test suite for SAPHanaSR clusters -Version: 1.3.2 +Version: 1.3.4 Release: 0 Url: https://www.suse.com/c/fail-safe-operation-of-sap-hana-suse-extends-its-high-availability-solution/ From beeb0124313dc976ac1a1be4ce01239c809d2217 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Tue, 30 Jul 2024 22:31:37 +0200 Subject: [PATCH 183/414] tester: saphana_sr_test.py - log number of failed role-checks in logfile --- test/tester/saphana_sr_test.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index f6560b32..c9d72053 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -25,7 +25,7 @@ class SaphanasrTest: """ class to check SAP HANA cluster during tests """ - version = "1.3.4" + version = "1.3.5" def message(self, msg, **kwargs): """ @@ -84,6 +84,9 @@ def __init__(self, *args, **kwargs): self.topolo = { 'pSite': None, 'sSite': None, 'pHost': None, 'sHost': None } self.topo_translate = { 'global': 'Global', 'pSite': 'Site', 'sSite': 'Site', 'pHost': 'Host', 'sHost': 'Host' } self.debug("INIT: tester version: {}".format(self.version)) + self.__failed_role_counter__ = 0 + self.__min_failed_role_counter__ = 0 + self.__max_failed_role_counter__ = 0 if cmdparse: self.debug("DEBUG: lib parses cmdline") parser = argparse.ArgumentParser() @@ -459,6 +462,7 @@ def __run_check__(self, single_check, area_name, object_name, step_step, **kwarg if not found: l_val = None self.__add_failed__((area_name, object_name), (c_key, l_val, c_reg_exp, c_comp), fatal_check=fatal_check, fatal_name=fatal_name) + self.__failed_role_counter__ += 1 check_result = max(check_result, 1) self.debug(f"DEBUG: FAILED: ckey:{c_key} c_comp:{c_comp} c_reg_exp:{c_reg_exp} c_reg_exp_a:{c_reg_exp_a} c_reg_exp_b:{c_reg_exp_b}") else: @@ -578,7 +582,10 @@ def process_step(self, step): ) self.message(_l_msg) fatal = False + self.__min_failed_role_counter__ = 1000 + self.__max_failed_role_counter__ = 0 while loops < max_loops: + self.__failed_role_counter__ = 0 loops = loops + 1 if self.config['dump_failures']: print(".", end='', flush=True) @@ -587,7 +594,7 @@ def process_step(self, step): if "fatalCondition" in step: # self.message("STATUS: step {} to process fatalCondition".format(step_id)) process_result = self.__process_fatal_condition(step) - self.debug("DEBUG: step {} to processed fatalCondition with process_result {}".format(step_id, process_result)) + self.debug(f"DEBUG: step {step_id} to processed fatalCondition with process_result {process_result}") if process_result == 0: self.message("STATUS: step {} failed with fatalCondition - BREAK".format(step_id)) process_result = 2 @@ -604,6 +611,9 @@ def process_step(self, step): ) if process_result == 0: break + self.__min_failed_role_counter__ = min(self.__min_failed_role_counter__, self.__failed_role_counter__) + self.__max_failed_role_counter__ = max(self.__max_failed_role_counter__, self.__failed_role_counter__) + self.message(f"MISSED: step {step_id} role-fail-counter: {self.__failed_role_counter__} (min: {self.__min_failed_role_counter__} max: {self.__max_failed_role_counter__})") time.sleep(wait) if self.config['dump_failures'] and fatal is False: print("") From 94ce1087476d01577dca4977dc934ec71ddeae4b Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Tue, 30 Jul 2024 22:57:13 +0200 Subject: [PATCH 184/414] tester: saphana_sr_test.py - log number of failed role-checks (plus min/max) ONLY to the logfile --- test/tester/saphana_sr_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index c9d72053..e1ce1756 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -613,7 +613,7 @@ def process_step(self, step): break self.__min_failed_role_counter__ = min(self.__min_failed_role_counter__, self.__failed_role_counter__) self.__max_failed_role_counter__ = max(self.__max_failed_role_counter__, self.__failed_role_counter__) - self.message(f"MISSED: step {step_id} role-fail-counter: {self.__failed_role_counter__} (min: {self.__min_failed_role_counter__} max: {self.__max_failed_role_counter__})") + self.message(f"MISSED: step {step_id} role-fail-counter: {self.__failed_role_counter__} (min: {self.__min_failed_role_counter__} max: {self.__max_failed_role_counter__})", stdout=False) time.sleep(wait) if self.config['dump_failures'] and fatal is False: print("") From b6ca341985b1df70bfb0d2f4006e875fc52cdc8f Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Tue, 30 Jul 2024 23:01:19 +0200 Subject: [PATCH 185/414] tester: angi-ScaleUp/standby_prim_node.json - fixed step20 --- test/json/angi-ScaleUp/standby_prim_node.json | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleUp/standby_prim_node.json b/test/json/angi-ScaleUp/standby_prim_node.json index b4d381f3..1b9bca3a 100644 --- a/test/json/angi-ScaleUp/standby_prim_node.json +++ b/test/json/angi-ScaleUp/standby_prim_node.json @@ -29,17 +29,23 @@ "next": "step30", "loop": 120, "wait": 2, - "pSite": "pSiteUp", - "pHost": "pHostUp", + "pSite": [ + "lss == 1", + "srr == P" + ], + "pHost": [ + "clone_state == UNDEFINED", + "roles == master1::worker:", + "score == 150", + "standby == on" + ], "sSite": [ "lpt ~ (30|1[6-9]........)", "lss == 4", - "srr == S", "srHook ~ (PRIM|SOK)", "srPoll == SOK" ], "sHost": [ - "clone_state == PROMOTED", "roles == master1:master:worker:master", "score ~ (100|145)" ] From 30d825fc7249dd1e6ee0723fddd9e163e661faff Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 1 Aug 2024 09:50:53 +0200 Subject: [PATCH 186/414] 010_basics_crm.txt: aligned stonith-timeout with SBD msgwait --- crm_cfg/angi-ScaleUp/010_basics_crm.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crm_cfg/angi-ScaleUp/010_basics_crm.txt b/crm_cfg/angi-ScaleUp/010_basics_crm.txt index 54848fd7..9230d8ef 100644 --- a/crm_cfg/angi-ScaleUp/010_basics_crm.txt +++ b/crm_cfg/angi-ScaleUp/010_basics_crm.txt @@ -5,7 +5,7 @@ property cib-bootstrap-options: \ cluster-name=SAP@@SID@@_@@INO@@ \ stonith-enabled=true \ stonith-action=reboot \ - stonith-timeout=90 \ + stonith-timeout=150 \ priority-fencing-delay=30 rsc_defaults rsc-options: \ migration-threshold=5000 \ From 30123d9608b55eac7ef2ec54d5901c8eeef1abd5 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 1 Aug 2024 14:47:35 +0200 Subject: [PATCH 187/414] sct_test_delete_cluster_config: use cibadmin instead of crm because of depricated subcommand erase in SP5; sleep before checking for idle after starting the cluster --- test/bin/sct_test_delete_cluster_config | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/bin/sct_test_delete_cluster_config b/test/bin/sct_test_delete_cluster_config index 85b96655..7aeb6cf0 100755 --- a/test/bin/sct_test_delete_cluster_config +++ b/test/bin/sct_test_delete_cluster_config @@ -5,7 +5,7 @@ # - set cluster to maintenance # - erase the cluster config # -# expected outcome: cluster config (CIB) empty, HANA still running +# expected outcome: cluster config (CIB) empty, HANA still running src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") @@ -13,11 +13,11 @@ source .test_properties # -# set cluster to maintenance, erase the cluster configuration (CIB) and again set cluster to maintenance +# set cluster to maintenance, erase the cluster configuration (CIB) and again set cluster to maintenance # echo "== set maintenance mode and erase config ==" -ssh -T "${node01}" "crm maintenance on" 1>/dev/null 2>/dev/null -ssh -T "${node01}" "crm configure erase" 1>/dev/null 2>/dev/null +ssh -T "${node01}" "crm maintenance on" 1>/dev/null 2>/dev/null +ssh -T "${node01}" "cibadmin --force -E" 1>/dev/null 2>/dev/null ssh -T "${node01}" "crm maintenance on" 1>/dev/null 2>/dev/null # @@ -26,6 +26,8 @@ ssh -T "${node01}" "crm maintenance on" 1>/dev/null 2>/dev/null ssh -T "${node01}" "crm cluster stop --all" 1>/dev/null 2>/dev/null sleep 5 ssh -T "${node01}" "crm cluster start --all" 1>/dev/null 2>/dev/null +# sleep to avoid crmadmin get stuck +sleep 30 ssh -T "${node01}" "cs_wait_for_idle -s 5" 1>/dev/null 2>/dev/null # From fef6308eff581de595e03a5f24db4715dfd8aec8 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Thu, 1 Aug 2024 14:49:09 +0200 Subject: [PATCH 188/414] tester: package - v1.3.5 --- SAPHanaSR-tester.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SAPHanaSR-tester.spec b/SAPHanaSR-tester.spec index 598bcd4e..9e868ed2 100644 --- a/SAPHanaSR-tester.spec +++ b/SAPHanaSR-tester.spec @@ -20,7 +20,7 @@ License: GPL-2.0 Group: Productivity/Clustering/HA AutoReqProv: on Summary: Test suite for SAPHanaSR clusters -Version: 1.3.4 +Version: 1.3.5 Release: 0 Url: https://www.suse.com/c/fail-safe-operation-of-sap-hana-suse-extends-its-high-availability-solution/ From cc62bf41d76ba994859e94477d965d053365e7d1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 11:52:24 +0200 Subject: [PATCH 189/414] kill_secn_indexserver_fencing_alert.json: sworker fenced --- .../angi-ScaleOut/kill_secn_indexserver_fencing_alert.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index 2adbb7ac..be87a1a5 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -31,7 +31,7 @@ }, { "step": "step20", - "name": "failure detected - smaster fenced", + "name": "failure detected + smaster fenced", "next": "step30", "loop": 240, "wait": 2, @@ -51,7 +51,7 @@ "step": "step30", "name": "sworker fenced", "next": "step40", - "loop": 300, + "loop": 180, "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", From fb3cdbb8e910e558c64d6ed09f931f6a7dfc9f69 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 12:21:16 +0200 Subject: [PATCH 190/414] kill_prim_node_fencing_alert.json: pworker fenced, pmaster fenced --- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index e9930d77..d312ab00 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -57,7 +57,7 @@ "step": "step30", "name": "pmaster fenced", "next": "step40", - "loop": 300, + "loop": 120, "wait": 2, "pHost": [ "clone_state is None", @@ -69,7 +69,7 @@ "step": "step40", "name": "pworker fenced", "next": "step50", - "loop": 300, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", From 3ae092cf56247317005f6f46499fe2bbb1cb3c75 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 12:23:28 +0200 Subject: [PATCH 191/414] kill_prim_worker_node_fencing_alert.json: pworker fenced, pmaster fenced --- .../angi-ScaleOut/kill_prim_worker_node_fencing_alert.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 3ff3b475..5eed7c03 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -57,7 +57,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 300, + "loop": 120, "wait": 2, "pWorker": [ "clone_state is None", @@ -69,7 +69,7 @@ "step": "step40", "name": "pmaster fenced", "next": "step50", - "loop": 300, + "loop": 240, "wait": 2, "pHost": [ "clone_state is None", From 27623da627287ce9ebf69b1f1f4e8576dee30381 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 13:08:16 +0200 Subject: [PATCH 192/414] freeze_prim_master_nfs_fencing_alert.json kill_prim_indexserver.json kill_prim_indexserver_fencing_alert.json kill_prim_inst.json kill_prim_inst_fencing_alert.json kill_prim_node_fencing_alert.json kill_prim_worker_indexserver.json kill_prim_worker_indexserver_fencing_alert.json kill_prim_worker_inst_fencing_alert.json kill_prim_worker_node_fencing_alert.json kill_secn_indexserver_fencing_alert.json: aligned loops --- .../freeze_prim_master_nfs_fencing_alert.json | 4 +- .../angi-ScaleOut/kill_prim_indexserver.json | 2 +- .../kill_prim_indexserver_fencing_alert.json | 37 ++----------------- test/json/angi-ScaleOut/kill_prim_inst.json | 2 +- .../kill_prim_inst_fencing_alert.json | 8 ++-- .../kill_prim_node_fencing_alert.json | 2 +- .../kill_prim_worker_indexserver.json | 2 +- ...prim_worker_indexserver_fencing_alert.json | 36 ++---------------- .../kill_prim_worker_inst_fencing_alert.json | 34 ++--------------- .../kill_prim_worker_node_fencing_alert.json | 2 +- .../kill_secn_indexserver_fencing_alert.json | 2 +- 11 files changed, 23 insertions(+), 108 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index f32aeeee..e3f23afe 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -57,7 +57,7 @@ }, { "step": "step30", - "name": "pmaster fenced", + "name": "failure detected + pmaster fenced", "next": "step50", "loop": 300, "wait": 2, @@ -83,7 +83,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 360, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver.json b/test/json/angi-ScaleOut/kill_prim_indexserver.json index 2b509429..a15687b1 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver.json @@ -95,7 +95,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 6856ff32..19373621 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -28,40 +28,11 @@ "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, - { - "step": "step20", - "name": "failure detected", - "next": "step30", - "loop": 180, - "wait": 2, - "comment": "sSite: srPoll could get SFAIL on scale-out", - "comment2": "currently we skip this step - so still needs to be done", - "pSite": [ - "lss ~ (1|2)", - "srr == P", - "lpt >~ 1000000000:20", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" - ], - "sSite": [ - "lpt >~ 1000000000:30", - "lss == 4", - "srr == S", - "srHook ~ (PRIM|SOK)", - "srPoll ~ (SOK|SFAIL)" - ], - "pHost": [], - "sHost": [ - "clone_state ~ (PROMOTED|DEMOTED)", - "roles == master1:master:worker:master", - "score ~ (100|145)" - ] - }, { "step": "step30", - "name": "pmaster fenced", + "name": "failure detected + pmaster fenced", "next": "step40", - "loop": 300, + "loop": 240, "wait": 2, "pHost": [ "clone_state is None", @@ -73,7 +44,7 @@ "step": "step40", "name": "pworker fenced", "next": "step50", - "loop": 300, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", @@ -117,7 +88,7 @@ "step": "final60", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleOut/kill_prim_inst.json b/test/json/angi-ScaleOut/kill_prim_inst.json index 10e4b832..fe5c1aa8 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_inst.json @@ -95,7 +95,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 14d1ffa5..68733140 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -58,7 +58,7 @@ "step": "step30", "name": "pmaster fenced", "next": "step40", - "loop": 300, + "loop": 240, "wait": 2, "pHost": [ "clone_state is None", @@ -70,7 +70,7 @@ "step": "step40", "name": "pworker fenced", "next": "step50", - "loop": 300, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", @@ -82,7 +82,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 360, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -114,7 +114,7 @@ "step": "final60", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index d312ab00..7e3a2c13 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -30,7 +30,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 120, + "loop": 240, "wait": 2, "pSite": [ "lss == 1", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json index dbb6355e..be8e0ffe 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json @@ -94,7 +94,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index ea786be6..c0c3dea3 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -29,39 +29,11 @@ "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, - { - "step": "step20", - "name": "failure detected", - "next": "step30", - "loop": 180, - "wait": 2, - "comment2": "currently we skip this step - so still needs to be done", - "pSite": [ - "lss ~ (1|2)", - "srr == P", - "lpt >~ 1000000000:20", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" - ], - "sSite": [ - "lpt >~ 1000000000:30", - "lss == 4", - "srr == S", - "srHook ~ (PRIM|SOK)", - "srPoll ~ (SOK|SFAIL)" - ], - "pHost": [], - "sHost": [ - "clone_state ~ (PROMOTED|DEMOTED)", - "roles == master1:master:worker:master", - "score ~ (100|145)" - ] - }, { "step": "step30", - "name": "pworker fenced", + "name": "failure detected + pworker fenced", "next": "step40", - "loop": 300, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", @@ -73,7 +45,7 @@ "step": "step40", "name": "pmaster fenced", "next": "step50", - "loop": 300, + "loop": 240, "wait": 2, "pHost": [ "clone_state is None", @@ -117,7 +89,7 @@ "step": "final60", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index 54b720c5..e696a331 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -26,37 +26,9 @@ "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, - { - "step": "step20", - "name": "failure detected", - "next": "step30", - "loop": 180, - "wait": 2, - "comment2": "currently we skip this step - so still needs to be done", - "pSite": [ - "lss ~ (1|2)", - "srr == P", - "lpt >~ 1000000000:20", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" - ], - "sSite": [ - "lpt >~ 1000000000:30", - "lss == 4", - "srr == S", - "srHook ~ (PRIM|SOK)", - "srPoll ~ (SOK|SFAIL)" - ], - "pHost": [], - "sHost": [ - "clone_state ~ (PROMOTED|DEMOTED)", - "roles == master1:master:worker:master", - "score ~ (100|145)" - ] - }, { "step": "step30", - "name": "pworker fenced", + "name": "failure detected + pworker fenced", "next": "step40", "loop": 240, "wait": 2, @@ -82,7 +54,7 @@ "step": "step50", "name": "begin recover new secondary", "next": "final60", - "loop": 360, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -114,7 +86,7 @@ "step": "final60", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 5eed7c03..ff362bf8 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -57,7 +57,7 @@ "step": "step30", "name": "pworker fenced", "next": "step40", - "loop": 120, + "loop": 240, "wait": 2, "pWorker": [ "clone_state is None", diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index be87a1a5..a2dedb39 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -85,7 +85,7 @@ "step": "final50", "name": "end recover", "next": "END", - "loop": 360, + "loop": 300, "wait": 2, "post": "cleanup", "remark": "pXXX and sCCC to be the same as at test begin", From 1dab3cbd00c19839df1169838daffd3c42a97326 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 13:18:13 +0200 Subject: [PATCH 193/414] kill_secn_indexserver_fencing_alert.json: smaster fenced, sworker fenced --- .../json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index a2dedb39..bfc6eb34 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -51,7 +51,7 @@ "step": "step30", "name": "sworker fenced", "next": "step40", - "loop": 180, + "loop": 240, "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", From 075bb13055fe4296be1651179e9a46accac95369 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 14:01:12 +0200 Subject: [PATCH 194/414] kill_prim_inst_fencing_alert.json: names --- .../kill_prim_inst_fencing_alert.json | 31 +------------------ 1 file changed, 1 insertion(+), 30 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 68733140..987fcf72 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -25,38 +25,9 @@ "pWorker": "pWorkerUp", "sWorker": "sWorkerUp" }, - { - "step": "step20", - "name": "failure detected", - "next": "step30", - "loop": 180, - "wait": 2, - "comment": "sSite: srPoll could get SFAIL on scale-out", - "comment2": "currently we skip this step - so still needs to be done", - "pSite": [ - "lss ~ (1|2)", - "srr == P", - "lpt >~ 1000000000:20", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" - ], - "sSite": [ - "lpt >~ 1000000000:30", - "lss == 4", - "srr == S", - "srHook ~ (PRIM|SOK)", - "srPoll ~ (SOK|SFAIL)" - ], - "pHost": [], - "sHost": [ - "clone_state ~ (PROMOTED|DEMOTED)", - "roles == master1:master:worker:master", - "score ~ (100|145)" - ] - }, { "step": "step30", - "name": "pmaster fenced", + "name": "failure detected + pmaster fenced", "next": "step40", "loop": 240, "wait": 2, From 0d77d198c5a3e2969929fe8de5f9faa25e7d4285 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 14:29:55 +0200 Subject: [PATCH 195/414] freeze_prim_master_nfs_fencing_alert.json kill_prim_indexserver_fencing_alert.json kill_prim_inst_fencing_alert.json kill_prim_node_fencing_alert.json kill_prim_worker_indexserver_fencing_alert.json kill_prim_worker_inst_fencing_alert.json kill_prim_worker_node_fencing_alert.json: aligned purpose --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 3 ++- .../angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 4 ++-- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 4 +++- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 3 ++- .../kill_prim_worker_indexserver_fencing_alert.json | 4 ++-- .../angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 3 ++- .../angi-ScaleOut/kill_prim_worker_node_fencing_alert.json | 3 ++- 7 files changed, 15 insertions(+), 9 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index e3f23afe..dda52789 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -10,7 +10,8 @@ "primary", "master", "node", - "fencing_alert" + "alert", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 19373621..6d155c78 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -7,10 +7,10 @@ "kill", "primary", "indexserver", - "fencing_alert", "hadr", "susChkSrv", - "alert" + "alert", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 987fcf72..470049f4 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -7,7 +7,9 @@ "kill", "instance", "primary", - "fencing_alert" + "master", + "alert", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 7e3a2c13..70a5f3b0 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -8,7 +8,8 @@ "primary", "node", "master", - "fencing_alert" + "alert", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index c0c3dea3..929cb3cd 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -8,10 +8,10 @@ "indexserver", "primary", "worker", - "fencing_alert", "hadr", "susChkSrv", - "alert" + "alert", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index e696a331..821b0417 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -8,7 +8,8 @@ "instance", "primary", "worker", - "fencing_alert" + "alert", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index ff362bf8..68c25ff8 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -8,7 +8,8 @@ "node", "primary", "worker", - "fencing_alert" + "alert", + "fencing" ], "start": "prereq10", "steps": [ From 0ccdf1c806ebb34ce4cae708facdb2bfb48a80af Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 14:30:26 +0200 Subject: [PATCH 196/414] kill_secn_worker_indexserver_fencing_alert.json: initial checkin --- ...secn_worker_indexserver_fencing_alert.json | 100 ++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json new file mode 100644 index 00000000..9338e733 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json @@ -0,0 +1,100 @@ +{ + "test": "kill_secn_worker_indexserver_fencing_alert", + "name": "Kill secondary worker indexserver with fencing alert implemented", + "purpose": [ + "angi", + "ScaleOut", + "kill", + "indexserver", + "secondary", + "worker", + "hadr", + "susChkSrv", + "alert", + "fencing" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "kill_secn_worker_indexserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected + sworker fenced", + "next": "step30", + "loop": 240, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook == SFAIL" + ], + "sWorker": [ + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step30", + "name": "smaster fenced", + "next": "step40", + "loop": 240, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook == SFAIL" + ], + "sMaster": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "begin recover", + "next": "final50", + "loop": 300, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "lpt == 10", + "lss ~ (1|2)", + "srr == S", + "srHook ~ (SFAIL|SWAIT)" + ] + }, + { + "step": "final50", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sCCC to be the same as at test begin", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From 4473dec7e43ae2b47c11fea38b7518af559c4ac4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 14:39:08 +0200 Subject: [PATCH 197/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 SAPHanaSR-tests-description_on-fail-fence.7: kill_secn_worker_indexserver_fencing_alert --- ...PHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 5 ++++- ...SAPHanaSR-tests-description_on-fail-fence.7 | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index 5a12fbdc..bc744a01 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleOut_on-fail-fence 7 "12 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleOut_on-fail-fence 7 "02 Aug 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleOut_on-fail-fence \- Functional tests for SAPHanaSR Scale-Out with immediate fencing. @@ -44,6 +44,9 @@ Kill primary worker node (fencing alert agent configured). .TP \fBkill_secn_indexserver_fencing_alert\fP Kill secondary master indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). +.TP +\fBkill_secn_worker_indexserver_fencing_alert\fP +Kill secondary worker indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .PP More recommended tests, but not specific to immediate fencing, are listed in manual page SAPHanaSR-tests-angi-ScaleOut(7). diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 index 10c49704..a1b54f03 100644 --- a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -214,6 +214,24 @@ No takeover. All secondary nodes fenced (for action_on_lost=fence). Comment: Application failure, main cluster case .RE .PP +\fBkill_secn_worker_indexserver_fencing_alert\fP +.RS 2 +Descr: Kill secondary worker indexserver, for susChkSrv.py. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: See susChkSrv.py(7). +.br +Expect: Secondary nodes fenced. +HANA secondary finally restarted. +SR SFAIL and finally SOK. +No takeover. All secondary nodes fenced (for action_on_lost=fence). +.br +Comment: Application failure, main cluster case +.RE +.PP .\" .SH EXAMPLES .PP From c3ffd295677263b99316d37d41cef1a6cc5e7b7f Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 16:18:30 +0200 Subject: [PATCH 198/414] kill_secn_worker_node_fencing_alert.json: initial checkin --- .../kill_secn_worker_node_fencing_alert.json | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json new file mode 100644 index 00000000..5eb990af --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json @@ -0,0 +1,104 @@ +{ + "test": "kill_secn_worker_node_fencing_alert", + "name": "Kill secondary worker node with fencing alert agent implemented", + "purpose": [ + "angi", + "ScaleOut", + "kill", + "secondary", + "node", + "worker", + "alert", + "fencing" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "kill_secn_worker_node", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "sworker fenced + failure detected", + "next": "step30", + "loop": 240, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook == SFAIL" + ], + "sWorker": [ + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step20", + "name": "smaster fenced", + "next": "step40", + "loop": 240, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook == SFAIL" + ], + "sHost": [ + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "begin recover", + "next": "final50", + "loop": 240, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "lpt == 10", + "lss ~ (1|2)", + "srr == S", + "srHook ~ (SFAIL|SWAIT)", + "srPoll ~ (SFAIL|SOK)" + ], + "sHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (-INFINITY|0|-1)" + ] + }, + { + "step": "final50", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From 999bf2543c67674e5429d2f23018a8d8be06d67c Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 16:25:00 +0200 Subject: [PATCH 199/414] kill_secn_node_fencing_alert.json: initla checkin --- .../kill_secn_node_fencing_alert.json | 104 ++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json new file mode 100644 index 00000000..c575e2ba --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json @@ -0,0 +1,104 @@ +{ + "test": "kill_secn_node_fencing_alert", + "name": "Kill secondary master node with fencing alert agent implemented", + "purpose": [ + "angi", + "ScaleOut", + "kill", + "secondary", + "node", + "master", + "alert", + "fencing" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "kill_secn_worker_node", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "master fenced + failure detected", + "next": "step30", + "loop": 240, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook == SFAIL" + ], + "sHost": [ + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step20", + "name": "smaster fenced", + "next": "step40", + "loop": 240, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook == SFAIL" + ], + "sWorker": [ + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "begin recover", + "next": "final50", + "loop": 240, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "lpt == 10", + "lss ~ (1|2)", + "srr == S", + "srHook ~ (SFAIL|SWAIT)", + "srPoll ~ (SFAIL|SOK)" + ], + "sHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (-INFINITY|0|-1)" + ] + }, + { + "step": "final50", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From c92dbb99c4c0640e26e6b69cbc9b40bec2403a91 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 2 Aug 2024 16:26:06 +0200 Subject: [PATCH 200/414] SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7: kill_secn_node_fencing_alert kill_secn_worker_node_fencing_alert --- man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index bc744a01..23824e85 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -45,8 +45,14 @@ Kill primary worker node (fencing alert agent configured). \fBkill_secn_indexserver_fencing_alert\fP Kill secondary master indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .TP +\fBkill_secn_node_fencing_alert\fP +Kill secondary master node (fencing alert agent configured). +.TP \fBkill_secn_worker_indexserver_fencing_alert\fP Kill secondary worker indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). +.TP +\fBkill_secn_worker_node_fencing_alert\fP +Kill secondary worker node (fencing alert agent configured). .PP More recommended tests, but not specific to immediate fencing, are listed in manual page SAPHanaSR-tests-angi-ScaleOut(7). From 2e051946289dc21a5597692d0c8df054147a778a Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 12:16:17 +0200 Subject: [PATCH 201/414] sct_test_delete_cluster_config sct_test_maintenance_cluster_hana_running sct_test_restart_cluster sct_test_restart_cluster_hana_running sct_test_restart_cluster_turn_hana: added crm cluster wait_for_started 60 --- test/bin/sct_test_delete_cluster_config | 3 +-- test/bin/sct_test_maintenance_cluster_hana_running | 3 +-- test/bin/sct_test_restart_cluster | 6 ++++-- test/bin/sct_test_restart_cluster_hana_running | 4 +--- test/bin/sct_test_restart_cluster_turn_hana | 6 ++++-- 5 files changed, 11 insertions(+), 11 deletions(-) diff --git a/test/bin/sct_test_delete_cluster_config b/test/bin/sct_test_delete_cluster_config index 7aeb6cf0..e37d2f64 100755 --- a/test/bin/sct_test_delete_cluster_config +++ b/test/bin/sct_test_delete_cluster_config @@ -26,9 +26,8 @@ ssh -T "${node01}" "crm maintenance on" 1>/dev/null 2>/dev/null ssh -T "${node01}" "crm cluster stop --all" 1>/dev/null 2>/dev/null sleep 5 ssh -T "${node01}" "crm cluster start --all" 1>/dev/null 2>/dev/null -# sleep to avoid crmadmin get stuck sleep 30 -ssh -T "${node01}" "cs_wait_for_idle -s 5" 1>/dev/null 2>/dev/null +ssh -T "${node01}" "crm cluster wait_for_startup 60; cs_wait_for_idle -s 5" 1>/dev/null 2>/dev/null # # delete persistent node attributes diff --git a/test/bin/sct_test_maintenance_cluster_hana_running b/test/bin/sct_test_maintenance_cluster_hana_running index d6d987bd..0d4c6dd5 100755 --- a/test/bin/sct_test_maintenance_cluster_hana_running +++ b/test/bin/sct_test_maintenance_cluster_hana_running @@ -31,9 +31,8 @@ echo "==== SUSE Cluster Stopped ====" sleep 60 ssh "$node01" "crm cluster start --all" - sleep 120 -ssh "$node01" "cs_wait_for_idle --sleep 60" +ssh "$node01" "crm cluster wait_for_startup 60; cs_wait_for_idle --sleep 60" ssh "$node01" "crm resource refresh $clnResource" ssh "$node01" "crm maintenance off" diff --git a/test/bin/sct_test_restart_cluster b/test/bin/sct_test_restart_cluster index bef1a0dd..fe4f29b1 100755 --- a/test/bin/sct_test_restart_cluster +++ b/test/bin/sct_test_restart_cluster @@ -26,7 +26,7 @@ echo "p=$currPrimary ($sitePrimary), s=$currSecondary" # shellcheck disable=SC2029 ssh "$node01" "crm resource cleanup $mstResource" -ssh "$node02" 'crm cluster run "crm cluster stop"' +ssh "$node02" "crm cluster stop --all" echo "==== SUSE Cluster Stopped ====" @@ -46,7 +46,9 @@ done echo "==== SAP HANA DBs started ====" -ssh "$node01" 'crm cluster run "crm cluster start"' +ssh "$node01" "crm cluster start --all" +sleep 30 +ssh "$node01" "crm cluster wait_for_startup 60" echo "==== SUSE Cluster Started ====" diff --git a/test/bin/sct_test_restart_cluster_hana_running b/test/bin/sct_test_restart_cluster_hana_running index 2cca398f..7884db79 100755 --- a/test/bin/sct_test_restart_cluster_hana_running +++ b/test/bin/sct_test_restart_cluster_hana_running @@ -29,11 +29,9 @@ ssh "$node02" "crm cluster stop --all" echo "==== SUSE Cluster Stopped ====" sleep 60 - ssh "$node01" "crm cluster start --all" - sleep 120 -ssh "$node01" "cs_wait_for_idle --sleep 60" +ssh "$node01" "crm cluster wait_for_startup 60; cs_wait_for_idle --sleep 60" ssh "$node01" "crm resource refresh $clnResource" diff --git a/test/bin/sct_test_restart_cluster_turn_hana b/test/bin/sct_test_restart_cluster_turn_hana index 4b4f056a..6aeeaca2 100755 --- a/test/bin/sct_test_restart_cluster_turn_hana +++ b/test/bin/sct_test_restart_cluster_turn_hana @@ -48,7 +48,7 @@ siteSecondary="${siteSecondary//\"/}" logger --id -t "sct_test_restart_cluster_turn_hana" -s "p=$currPrimary ($sitePrimary), s=$currSecondary, vhostPrim=$vhostPrim, vhostSecn=$vhostSecn" logger --id -t "sct_test_restart_cluster_turn_hana" -s "Stop Cluster" -ssh "${node02}" 'crm cluster run "crm cluster stop"' +ssh "${node02}" "crm cluster stop --all" echo "==== SUSE Cluster Stopped ====" @@ -107,6 +107,8 @@ srHookCache=$( ssh "$currPrimary" 'cat '"$cacheFile"'' ) logger --id -t "sct_test_restart_cluster_turn_hana" -s "currSecondary=$currPrimary: $cacheFile: $srHookCache" logger --id -t "sct_test_restart_cluster_turn_hana" -s "Start Cluster" -ssh "$node01" 'crm cluster run "crm cluster start"' +ssh "$node01" "crm cluster start --all" +sleep 30 +ssh "$node01" "crm cluster wait_for_startup 60" echo "==== SUSE Cluster Started ====" From edc2ed2f5cd75fed79d3d7e5219dd3b6a1ec0e28 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 13:31:49 +0200 Subject: [PATCH 202/414] kill_secn_node_fencing_alert.json kill_secn_worker_node_fencing_alert.json: misc. fixes --- .../kill_secn_node_fencing_alert.json | 17 +++++++++++++---- .../kill_secn_worker_node_fencing_alert.json | 12 +++++++++++- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json index c575e2ba..1d964875 100644 --- a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json @@ -19,7 +19,7 @@ "next": "step20", "loop": 1, "wait": 1, - "post": "kill_secn_worker_node", + "post": "kill_secn_node", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", @@ -29,7 +29,7 @@ }, { "step": "step20", - "name": "master fenced + failure detected", + "name": "smaster fenced + failure detected", "next": "step30", "loop": 240, "wait": 2, @@ -37,6 +37,7 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "srr == S", "srHook == SFAIL" ], "sHost": [ @@ -46,8 +47,8 @@ ] }, { - "step": "step20", - "name": "smaster fenced", + "step": "step30", + "name": "sworker fenced", "next": "step40", "loop": 240, "wait": 2, @@ -55,8 +56,16 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "lpt == 10", + "lss == 1", + "srr == S", "srHook == SFAIL" ], + "sHost": [ + "clone_state is None", + "roles is None", + "score is None" + ], "sWorker": [ "clone_state is None", "roles is None", diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json index 5eb990af..76ea1cde 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json @@ -37,8 +37,10 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "srr == S", "srHook == SFAIL" ], + "sHost": "sHostUp", "sWorker": [ "clone_state is None", "roles is None", @@ -46,7 +48,7 @@ ] }, { - "step": "step20", + "step": "step30", "name": "smaster fenced", "next": "step40", "loop": 240, @@ -55,12 +57,20 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "lpt == 10", + "lss == 1", + "srr == S", "srHook == SFAIL" ], "sHost": [ "clone_state is None", "roles is None", "score is None" + ], + "sWorker": [ + "clone_state is None", + "roles is None", + "score is None" ] }, { From a50f3029b8df9e6e415ddec7d3b5a7e14301b49a Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 13:44:47 +0200 Subject: [PATCH 203/414] kill_secn_node_fencing_alert.json kill_secn_worker_node_fencing_alert.json: misc. fixes --- test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json index 1d964875..81b47e11 100644 --- a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json @@ -44,6 +44,9 @@ "clone_state is None", "roles is None", "score is None" + ], + "sWorker": [ + "roles ~ (slave:slave:worker:slave|slave::worker:)" ] }, { From 95babdcbb8cd3e301a2283541554333912916ece Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 13:51:33 +0200 Subject: [PATCH 204/414] kill_prim_node_fencing_alert.json: added some is None --- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 70a5f3b0..ff12a5e6 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -47,7 +47,6 @@ "srHook ~ (PRIM|SOK)", "srPoll ~ (SOK|SFAIL)" ], - "pHost": [], "sHost": [ "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", @@ -72,6 +71,11 @@ "next": "step50", "loop": 240, "wait": 2, + "pHost": [ + "clone_state is None", + "role is None", + "score is None" + ], "pWorker": [ "clone_state is None", "role is None", From db8b03391f75f7bbfcea7c7dcf781e1180f8e46f Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 14:06:15 +0200 Subject: [PATCH 205/414] SAPHanaSR-tester.7: requirements --- man-tester/SAPHanaSR-tester.7 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tester.7 b/man-tester/SAPHanaSR-tester.7 index d290f4ad..9645768f 100644 --- a/man-tester/SAPHanaSR-tester.7 +++ b/man-tester/SAPHanaSR-tester.7 @@ -196,7 +196,9 @@ SAPHanaSR-showAttr, compatible to SAPHanaSR-angi and SAPHanaSR-tester For the current version of the SAPHanaSR-tester, the capabilities are limited to the following: .PP -\fB*\fP Resource agents and configuration of SAPHanaSR-angi is supported. +\fB*\fP SLES-for-SAP 15 SP4 or newer. +.PP +\fB*\fP Resource agents and configuration of SAPHanaSR-angi 1.2 or newer is supported. .PP \fB*\fP Resource agents and configuration of SAPHanaSR or SAPHanaSR-ScaleOut with additional package SAPHanaSR-tester-client is supported. From a31385a1da2c8ad4861bd4a572dcd72ff28aaaa6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 14:47:55 +0200 Subject: [PATCH 206/414] kill_secn_indexserver_fencing_alert.json kill_secn_worker_indexserver_fencing_alert.json: begin recover --- .../kill_secn_indexserver_fencing_alert.json | 12 ++++++++++++ .../kill_secn_worker_indexserver_fencing_alert.json | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index bfc6eb34..dfe416ee 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -39,6 +39,7 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "srr == S", "srHook == SFAIL" ], "sHost": [ @@ -57,8 +58,16 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "lpt == 10", + "lss == 1", + "srr == S", "srHook == SFAIL" ], + "sHost": [ + "clone_state is None", + "roles is None", + "score is None" + ], "sWorker": [ "clone_state is None", "role is None", @@ -79,6 +88,9 @@ "lss ~ (1|2)", "srr == S", "srHook ~ (SFAIL|SWAIT)" + ], + "sHost": [ + "roles == master1::worker:" ] }, { diff --git a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json index 9338e733..452a01df 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json @@ -39,6 +39,7 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "srr == S", "srHook == SFAIL" ], "sWorker": [ @@ -57,12 +58,18 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "srr == S", "srHook == SFAIL" ], "sMaster": [ "clone_state is None", "role is None", "score is None" + ], + "sWorker": [ + "clone_state is None", + "role is None", + "score is None" ] }, { @@ -79,6 +86,9 @@ "lss ~ (1|2)", "srr == S", "srHook ~ (SFAIL|SWAIT)" + ], + "sHost": [ + "roles == master1::worker:" ] }, { From 00b29318c1c7a45b3ff888198ebb237c9a1ef8c9 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 17:00:26 +0200 Subject: [PATCH 207/414] kill_prim_indexserver_fencing_alert.json kill_prim_node_fencing_alert.json kill_secn_indexserver_fencing_alert.json kill_secn_node_fencing_alert.json kill_secn_worker_indexserver_fencing_alert.json kill_secn_worker_node_fencing_alert.json standby_prim_node.json: mostly begin revcover --- .../kill_prim_indexserver_fencing_alert.json | 24 ++++++++++--- .../kill_prim_node_fencing_alert.json | 34 ++++--------------- .../kill_secn_indexserver_fencing_alert.json | 10 +++--- .../kill_secn_node_fencing_alert.json | 17 ++++------ ...secn_worker_indexserver_fencing_alert.json | 7 ++-- .../kill_secn_worker_node_fencing_alert.json | 8 +---- .../json/angi-ScaleOut/standby_prim_node.json | 15 ++------ 7 files changed, 43 insertions(+), 72 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 6d155c78..011405f2 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -17,7 +17,7 @@ { "step": "prereq10", "name": "test prerequitsites", - "next": "step30", + "next": "step20", "loop": 1, "wait": 1, "post": "kill_prim_indexserver", @@ -29,9 +29,9 @@ "sWorker": "sWorkerUp" }, { - "step": "step30", + "step": "step20", "name": "failure detected + pmaster fenced", - "next": "step40", + "next": "step30", "loop": 240, "wait": 2, "pHost": [ @@ -41,17 +41,31 @@ ] }, { - "step": "step40", + "step": "step30", "name": "pworker fenced", - "next": "step50", + "next": "step40", "loop": 240, "wait": 2, + "pSite": [ + "lpt == 10", + "lss == 1" + ], "pWorker": [ "clone_state is None", "role is None", "score is None" ] }, + { + "step": "step40", + "name": "takeover on secondary", + "next": "step50", + "loop": 240, + "wait": 2, + "sSite": "pSiteUp", + "sHost": "pHostUp", + "sWorker": "pWorkerUp" + }, { "step": "step50", "name": "begin recover new secondary", diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index ff12a5e6..585035ff 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -29,36 +29,15 @@ }, { "step": "step20", - "name": "failure detected", - "next": "step30", + "name": "pmaster fenced + failure detected", + "next": "step40", "loop": 240, "wait": 2, "pSite": [ "lss == 1", "srr == P", - "lpt >~ 1000000000:(20|10)", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" - ], - "sSite": [ - "lpt >~ 1000000000:30", - "lss == 4", - "srr ~ (S|P)", - "srHook ~ (PRIM|SOK)", - "srPoll ~ (SOK|SFAIL)" + "lpt >~ 1000000000:(20|10)" ], - "sHost": [ - "clone_state ~ (PROMOTED|DEMOTED)", - "roles == master1:master:worker:master", - "score ~ (100|145)" - ] - }, - { - "step": "step30", - "name": "pmaster fenced", - "next": "step40", - "loop": 120, - "wait": 2, "pHost": [ "clone_state is None", "role is None", @@ -71,10 +50,9 @@ "next": "step50", "loop": 240, "wait": 2, - "pHost": [ - "clone_state is None", - "role is None", - "score is None" + "pSite": [ + "lpt == 10", + "lss == 1" ], "pWorker": [ "clone_state is None", diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index dfe416ee..bc4348f3 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -63,11 +63,6 @@ "srr == S", "srHook == SFAIL" ], - "sHost": [ - "clone_state is None", - "roles is None", - "score is None" - ], "sWorker": [ "clone_state is None", "role is None", @@ -90,7 +85,12 @@ "srHook ~ (SFAIL|SWAIT)" ], "sHost": [ + "clone_state == DEMOTED", "roles == master1::worker:" + ], + "sWorker": [ + "clone_state == DEMOTED", + "roles == slave::worker:" ] }, { diff --git a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json index 81b47e11..73e4c1dd 100644 --- a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json @@ -64,11 +64,6 @@ "srr == S", "srHook == SFAIL" ], - "sHost": [ - "clone_state is None", - "roles is None", - "score is None" - ], "sWorker": [ "clone_state is None", "roles is None", @@ -89,13 +84,15 @@ "lpt == 10", "lss ~ (1|2)", "srr == S", - "srHook ~ (SFAIL|SWAIT)", - "srPoll ~ (SFAIL|SOK)" + "srHook ~ (SFAIL|SWAIT)" ], "sHost": [ - "clone_state ~ (UNDEFINED|DEMOTED)", - "roles == master1::worker:", - "score ~ (-INFINITY|0|-1)" + "clone_state == DEMOTED", + "roles == master1::worker:" + ], + "sWorker": [ + "clone_state == DEMOTED", + "roles == slave::worker:" ] }, { diff --git a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json index 452a01df..77d9f8e4 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json @@ -58,6 +58,8 @@ "pHost": "pHostUp", "pWorker": "pWorkerUp", "sSite": [ + "lpt == 10", + "lss == 1", "srr == S", "srHook == SFAIL" ], @@ -65,11 +67,6 @@ "clone_state is None", "role is None", "score is None" - ], - "sWorker": [ - "clone_state is None", - "role is None", - "score is None" ] }, { diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json index 76ea1cde..d1f6eca5 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json @@ -40,7 +40,6 @@ "srr == S", "srHook == SFAIL" ], - "sHost": "sHostUp", "sWorker": [ "clone_state is None", "roles is None", @@ -62,12 +61,7 @@ "srr == S", "srHook == SFAIL" ], - "sHost": [ - "clone_state is None", - "roles is None", - "score is None" - ], - "sWorker": [ + "sMaster": [ "clone_state is None", "roles is None", "score is None" diff --git a/test/json/angi-ScaleOut/standby_prim_node.json b/test/json/angi-ScaleOut/standby_prim_node.json index 6989310e..dedd9e7e 100644 --- a/test/json/angi-ScaleOut/standby_prim_node.json +++ b/test/json/angi-ScaleOut/standby_prim_node.json @@ -72,24 +72,15 @@ "srHook == SWAIT", "srPoll == SFAIL" ], - "sSite": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" - ], "pHost": [ "clone_state == UNDEFINED", "roles == master1::worker:", "score == 150", "standby == on" ], - "sHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" - ] + "sSite": "pSiteUp", + "sHost": "pHostUp", + "sWorker": "pWorkerUp" }, { "step": "final40", From d2df75faab2a25575803373424319c89870b596e Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 17:16:42 +0200 Subject: [PATCH 208/414] kill_secn_worker_node_fencing_alert.json: begin recover --- .../kill_secn_worker_node_fencing_alert.json | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json index d1f6eca5..e31b6335 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json @@ -81,13 +81,15 @@ "lpt == 10", "lss ~ (1|2)", "srr == S", - "srHook ~ (SFAIL|SWAIT)", - "srPoll ~ (SFAIL|SOK)" + "srHook ~ (SFAIL|SWAIT)" ], "sHost": [ - "clone_state ~ (UNDEFINED|DEMOTED)", - "roles == master1::worker:", - "score ~ (-INFINITY|0|-1)" + "clone_state == DEMOTED", + "roles == master1::worker:" + ], + "sWorker": [ + "clone_state == DEMOTED", + "roles == slave::worker:" ] }, { From a0ebdd91eaaf71d57043c5acf55ffba8edb90cbe Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 17:22:13 +0200 Subject: [PATCH 209/414] kill_secn_worker_node_fencing_alert.json kill_secn_node_fencing_alert.json: begin recover loop 300 --- test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json | 2 +- .../json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json index 73e4c1dd..e99bbbf2 100644 --- a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json @@ -74,7 +74,7 @@ "step": "step40", "name": "begin recover", "next": "final50", - "loop": 240, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json index e31b6335..f0869c21 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json @@ -71,7 +71,7 @@ "step": "step40", "name": "begin recover", "next": "final50", - "loop": 240, + "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", From 38658a59cf9d74a8f20db863859d95ea343f67f4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 17:43:45 +0200 Subject: [PATCH 210/414] kill_secn_worker_indexserver_fencing_alert.json: begin recover --- .../kill_secn_worker_indexserver_fencing_alert.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json index 77d9f8e4..2e544184 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json @@ -85,7 +85,12 @@ "srHook ~ (SFAIL|SWAIT)" ], "sHost": [ + "clone_state == DEMOTED", "roles == master1::worker:" + ], + "sWorker": [ + "clone_state == DEMOTED", + "roles == slave::worker:" ] }, { From db09a1ae80b3adcb2914e7cf0db735f6f235576f Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 18:15:52 +0200 Subject: [PATCH 211/414] freeze_prim_master_nfs_fencing_alert.json: added takeover, alogned begin recover --- .../freeze_prim_master_nfs_fencing_alert.json | 50 ++++++++++--------- 1 file changed, 26 insertions(+), 24 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index dda52789..faf6a579 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -58,9 +58,9 @@ }, { "step": "step30", - "name": "failure detected + pmaster fenced", - "next": "step50", - "loop": 300, + "name": "pmaster fenced", + "next": "step40", + "loop": 240, "wait": 2, "pHost": [ "clone_state is None", @@ -71,9 +71,13 @@ { "step": "step40", "name": "pworker fenced", - "next": "step40", - "loop": 300, + "next": "step50", + "loop": 240, "wait": 2, + "pSite": [ + "lss == 1", + "lpt == 10" + ], "pWorker": [ "clone_state is None", "role is None", @@ -82,38 +86,36 @@ }, { "step": "step50", + "name": "takeover on secondary", + "next": "step60", + "loop": 240, + "sSite": "pSiteUp", + "sNode": "pNodeUp", + "sWorker": "pWorkerUp" + }, + { + "step": "step60", "name": "begin recover new secondary", - "next": "final60", + "next": "final70", "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ "lss == 1", - "srr == P", "lpt >~ 1000000000:(30|20|10)", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == SFAIL" - ], - "sSite": [ - "lpt > 1000000000", - "lss == 4", - "srr == P", - "srHook == PRIM", - "srPoll == PRIM" + "srHook ~ (SFAIL|SWAIT)" ], "pHost": [ - "clone_state ~ (UNDEFINED|DEMOTED)", - "roles == master1::worker:", - "score ~ (0|90|70|5)" + "clone_state == DEMOTED", + "roles == master1::worker:" ], - "sHost": [ - "clone_state == PROMOTED", - "roles == master1:master:worker:master", - "score == 150" + "pWorker": [ + "clone_state == DEMOTED", + "roles == master1::worker:" ] }, { - "step": "final60", + "step": "final70", "name": "end recover", "next": "END", "loop": 300, From adefa0e1f8a5f9482fe0210b262b9f8148d7b888 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 19:26:33 +0200 Subject: [PATCH 212/414] freeze_prim_master_nfs_fencing_alert.json: step numbers --- .../freeze_prim_master_nfs_fencing_alert.json | 45 ++++--------------- 1 file changed, 9 insertions(+), 36 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index faf6a579..4c3af008 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -18,7 +18,7 @@ { "step": "prereq10", "name": "test prerequitsites", - "next": "step30", + "next": "step20", "loop": 1, "wait": 1, "post": "shell sct_test_freeze_prim_master_nfs", @@ -31,35 +31,8 @@ }, { "step": "step20", - "name": "failure detected", + "name": "failure detected + pmaster fenced", "next": "step30", - "loop": 180, - "wait": 2, - "comment2": "currently we skip this step - so still needs to be done", - "pSite": [ - "srr == P", - "lpt >~ 1000000000:(20|10)", - "srHook ~ (PRIM|SWAIT|SREG)", - "srPoll == PRIM" - ], - "sSite": [ - "lpt >~ 1000000000:30", - "lss == 4", - "srr ~ (S|P)", - "srHook ~ (PRIM|SOK)", - "srPoll ~ (SOK|SFAIL)" - ], - "pHost": [], - "sHost": [ - "clone_state ~ (PROMOTED|DEMOTED)", - "roles == master1:master:worker:master", - "score ~ (100|145)" - ] - }, - { - "step": "step30", - "name": "pmaster fenced", - "next": "step40", "loop": 240, "wait": 2, "pHost": [ @@ -69,9 +42,9 @@ ] }, { - "step": "step40", + "step": "step30", "name": "pworker fenced", - "next": "step50", + "next": "step40", "loop": 240, "wait": 2, "pSite": [ @@ -85,18 +58,18 @@ ] }, { - "step": "step50", + "step": "step40", "name": "takeover on secondary", - "next": "step60", + "next": "step50", "loop": 240, "sSite": "pSiteUp", "sNode": "pNodeUp", "sWorker": "pWorkerUp" }, { - "step": "step60", + "step": "step50", "name": "begin recover new secondary", - "next": "final70", + "next": "final60", "loop": 300, "wait": 2, "todo": "pHost+sHost to check site-name", @@ -115,7 +88,7 @@ ] }, { - "step": "final70", + "step": "final60", "name": "end recover", "next": "END", "loop": 300, From 9b8800b28964c369308ebd726f7c81a423470b4e Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 19:30:46 +0200 Subject: [PATCH 213/414] freeze_prim_master_nfs_fencing_alert.json: step numbers --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 4c3af008..b6041cbc 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -49,7 +49,7 @@ "wait": 2, "pSite": [ "lss == 1", - "lpt == 10" + "llpt == 10" ], "pWorker": [ "clone_state is None", From c67bc7e5c9005f2c9ee20583c19ad027b82a9360 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 19:31:09 +0200 Subject: [PATCH 214/414] freeze_prim_master_nfs_fencing_alert.json: step numbers --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index b6041cbc..4c3af008 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -49,7 +49,7 @@ "wait": 2, "pSite": [ "lss == 1", - "llpt == 10" + "lpt == 10" ], "pWorker": [ "clone_state is None", From c626e2415a0bc9f4578febf7d00830e04898434f Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 19:34:25 +0200 Subject: [PATCH 215/414] freeze_prim_master_nfs_fencing_alert.json: step numbers --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 4c3af008..04ca7785 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -75,7 +75,7 @@ "todo": "pHost+sHost to check site-name", "pSite": [ "lss == 1", - "lpt >~ 1000000000:(30|20|10)", + "lpt ~ (30|20|10)", "srHook ~ (SFAIL|SWAIT)" ], "pHost": [ From ae58c52d8a0b0e92c3f379fe2cd05625dacd4645 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 19:36:56 +0200 Subject: [PATCH 216/414] freeze_prim_master_nfs_fencing_alert.json: step numbers --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 04ca7785..a5062c04 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -49,7 +49,7 @@ "wait": 2, "pSite": [ "lss == 1", - "lpt == 10" + "lpt >~ 1000000000:10" ], "pWorker": [ "clone_state is None", From 3dac30ea2a2a120ba8d13e46acb74062ba5b8c1d Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 19:49:51 +0200 Subject: [PATCH 217/414] freeze_prim_master_nfs_fencing_alert.json: step numbers --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index a5062c04..0e048914 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -75,7 +75,7 @@ "todo": "pHost+sHost to check site-name", "pSite": [ "lss == 1", - "lpt ~ (30|20|10)", + "lpt == 10", "srHook ~ (SFAIL|SWAIT)" ], "pHost": [ From 652be718c7be17c0f040dfec6e483616b68dd700 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 19:54:53 +0200 Subject: [PATCH 218/414] freeze_prim_master_nfs_fencing_alert.json: step numbers --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 0e048914..9eab7dd7 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -74,7 +74,7 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss == 1", + "lss ~ (1|2)", "lpt == 10", "srHook ~ (SFAIL|SWAIT)" ], From bfaf7f4dc5ba728d548d0d5586bd6b211e443b14 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 20:11:04 +0200 Subject: [PATCH 219/414] freeze_prim_master_nfs_fencing_alert.json: begin recovery --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 9eab7dd7..2a3d698e 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -74,17 +74,17 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ - "lss ~ (1|2)", + "lss == 1", "lpt == 10", "srHook ~ (SFAIL|SWAIT)" ], "pHost": [ - "clone_state == DEMOTED", + "clone_state ~ (WAITING4NODES|DEMOTED)", "roles == master1::worker:" ], "pWorker": [ "clone_state == DEMOTED", - "roles == master1::worker:" + "roles == slave::worker:" ] }, { From a3d9a3e3379640b916a2128c03554c3333ff3a68 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 20:12:38 +0200 Subject: [PATCH 220/414] freeze_prim_master_nfs_fencing_alert.json: begin recovery --- .../json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 1 - 1 file changed, 1 deletion(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 2a3d698e..b612b3ab 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -72,7 +72,6 @@ "next": "final60", "loop": 300, "wait": 2, - "todo": "pHost+sHost to check site-name", "pSite": [ "lss == 1", "lpt == 10", From 096a436ae1005a4b42ef4ef2363552edba280430 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 5 Aug 2024 20:13:25 +0200 Subject: [PATCH 221/414] freeze_prim_master_nfs_fencing_alert.json: begin recovery --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index b612b3ab..ee9f8a3a 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -73,7 +73,7 @@ "loop": 300, "wait": 2, "pSite": [ - "lss == 1", + "lss ~ (1|2)", "lpt == 10", "srHook ~ (SFAIL|SWAIT)" ], From a5afda7686704f2687d9d6f34501e0b8e78707c7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 6 Aug 2024 12:56:35 +0200 Subject: [PATCH 222/414] SAPHanaSR-alert-fencing.8: typo --- man/SAPHanaSR-alert-fencing.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/SAPHanaSR-alert-fencing.8 b/man/SAPHanaSR-alert-fencing.8 index 6a6f91d8..e9668a7b 100644 --- a/man/SAPHanaSR-alert-fencing.8 +++ b/man/SAPHanaSR-alert-fencing.8 @@ -26,7 +26,7 @@ This improves three use cases for HANA scale-out: .br - resource agent SAPHanaFilesystem ON_FAIL_ACTION=fence .br -See also manual pages ocf_sus_SAPHanaController(7), ocf_suse_SAPHanaFilesystem(7) +See also manual pages ocf_suse_SAPHanaController(7), ocf_suse_SAPHanaFilesystem(7) and susChkSrv.py(7). .PP .\" From 4cde66b5a381913360a60f87cbf27ae493428379 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 7 Aug 2024 09:55:58 +0200 Subject: [PATCH 223/414] SAPHanaSR_upgrade_to_angi.7: mentioned SAPHanaSR-alert-fencing --- man/SAPHanaSR_upgrade_to_angi.7 | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/man/SAPHanaSR_upgrade_to_angi.7 b/man/SAPHanaSR_upgrade_to_angi.7 index 025f6227..91181d2d 100644 --- a/man/SAPHanaSR_upgrade_to_angi.7 +++ b/man/SAPHanaSR_upgrade_to_angi.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR_upgrade_to_angi 7 "04 Jul 2024" "" "SAPHanaSR" +.TH SAPHanaSR_upgrade_to_angi 7 "08 Aug 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR_upgrade_to_angi \- How to upgrade from SAPHanaSR or SAPHanaSR-ScaleOut to SAPHanaSR-angi. @@ -164,6 +164,8 @@ upgrade. .br 3.5 Add SAPHanaFilesystem resource (optional) .br +3.6 Add SAPHanaSR-alert-fencing agent (optional, scale-out) +.br 4.1 Check for sane state of cluster, HANA and system replication .br 4.2 Test RA on secondary and trigger susHanaSR.py (optional) From 7f86a2194eacc929fbbfdb37000bd40b402e29fa Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 8 Aug 2024 16:16:41 +0200 Subject: [PATCH 224/414] SAPHanaSR-upgrade-to-angi-demo.8: /usr/shared -> /usr/share --- man/SAPHanaSR-upgrade-to-angi-demo.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/SAPHanaSR-upgrade-to-angi-demo.8 b/man/SAPHanaSR-upgrade-to-angi-demo.8 index ca9c72ca..a384420e 100644 --- a/man/SAPHanaSR-upgrade-to-angi-demo.8 +++ b/man/SAPHanaSR-upgrade-to-angi-demo.8 @@ -62,7 +62,7 @@ The script needs to be still available on both cluster nodes after the SAPHanaSR RPM has been removed. Needs to be done on all cluster nodes. .PP .RS 2 -# cp -a /usr/shared/SAPHanaSR/samples/SAPHanaSR-upgrade-to-angi-demo /root/bin/ +# cp -a /usr/share/SAPHanaSR/samples/SAPHanaSR-upgrade-to-angi-demo /root/bin/ .br # chmod 755 /root/bin/SAPHanaSR-upgrade-to-angi-demo .br From 101a664a26ce2a22e83306e09e912244e09d0e49 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 9 Aug 2024 10:55:14 +0200 Subject: [PATCH 225/414] SAPHanaSR-alert-fencing.8: requirements --- man/SAPHanaSR-alert-fencing.8 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/man/SAPHanaSR-alert-fencing.8 b/man/SAPHanaSR-alert-fencing.8 index e9668a7b..9776e11c 100644 --- a/man/SAPHanaSR-alert-fencing.8 +++ b/man/SAPHanaSR-alert-fencing.8 @@ -136,17 +136,19 @@ thus no standby nodes. .PP 5. No other alert agent should be configured for the fencing alert. .PP -6. SAPHanaFilesystem RA with monitor operations is active. +6. User hacluster is member of group haclient. Both are defined locally on each cluster nodes. .PP -7. Automatic restart of just fenced nodes should be disabled by adapting +7. SAPHanaFilesystem RA with monitor operations is active. +.PP +8. Automatic restart of just fenced nodes should be disabled by adapting SBD_START_MODE. In case of automatic restart of just fenced nodes, it might be necessary to adapt SBD_START_DELAY in order to avoid fencing loops. See manual page sbd(8). .PP -8. Fencing is executed unconditionally. The alert agent relies on the preceding +9. Fencing is executed unconditionally. The alert agent relies on the preceding fencing decision. Neither site role nor SR state is checked. .PP -9. The alert agent runtime almost completely depends on call-outs to OS and +10. The alert agent runtime almost completely depends on call-outs to OS and Linux cluster. .\" .SH BUGS From 8aa0f918f6f3960c0d75508f6b0f12151d958fc1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 9 Aug 2024 14:38:12 +0200 Subject: [PATCH 226/414] SAPHanaSR-alert-fencing SAPHanaSR-alert-fencing.8: sudo is needed on 15 SP5 --- alert/SAPHanaSR-alert-fencing | 6 +++--- man/SAPHanaSR-alert-fencing.8 | 24 ++++++++++++++++++------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/alert/SAPHanaSR-alert-fencing b/alert/SAPHanaSR-alert-fencing index 162d1d3f..25dcab39 100755 --- a/alert/SAPHanaSR-alert-fencing +++ b/alert/SAPHanaSR-alert-fencing @@ -5,7 +5,7 @@ # Support: linux@sap.com # License: GNU General Public License (GPL) # Copyright: (c) 2024 SUSE LLC -# Version: 2024-06-18-15:33 +# Version: 2024-08-09-14:35 # # crm configure alert nodes-1 "/usr/bin/SAPHanaSR-alert" select nodes # crm configure alert fencing-1 "/usr/bin/SAPHanaSR-alert" select fencing attributes alert_uptime_threshold=300 @@ -42,9 +42,9 @@ function process_fencing() if [[ "$local_site_name" != "" && "$fenced_site_name" == "$local_site_name" ]]; then $logger -t "$logger_tag" "DEC: FENCE ($fenced_site_name == $local_site_name)" sleep 10 - /usr/sbin/crm --force node fence "${HOSTNAME}"; rc="$?" + sudo /usr/sbin/crm --force node fence "${HOSTNAME}"; rc="$?" if [[ "$rc" != "0" ]]; then - $logger -t "$logger_tag" "ACT: /usr/sbin/crm --force node fence ${HOSTNAME}; rc=$rc" + $logger -t "$logger_tag" "ACT: sudo /usr/sbin/crm --force node fence ${HOSTNAME}; rc=$rc" fi else $logger -t "$logger_tag" "DEC: NO FENCE ($fenced_site_name != $local_site_name)" diff --git a/man/SAPHanaSR-alert-fencing.8 b/man/SAPHanaSR-alert-fencing.8 index 9776e11c..14fb796e 100644 --- a/man/SAPHanaSR-alert-fencing.8 +++ b/man/SAPHanaSR-alert-fencing.8 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-alert-fencing 7 "12 Jun 2024" "" "SAPHanaSR" +.TH SAPHanaSR-alert-fencing 7 "08 Aug 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR-alert-fencing \- Alert agent for cluster fencing alerts. @@ -111,6 +111,16 @@ Note: Understand the impact before trying. # crm node fence node1 .RE .PP +\fB*\fR Example for sudo permissions in /etc/sudoers.d/SAPHanaSR . +.PP +See also manual page sudoers(5). +.PP +.RS 2 +# SAPHanaSR-alert-fencing needs +.br +hacluster ALL=(ALL) NOPASSWD: /usr/sbin/crm --force node fence * +.RE +.PP .\" .SH FILES .TP @@ -138,17 +148,19 @@ thus no standby nodes. .PP 6. User hacluster is member of group haclient. Both are defined locally on each cluster nodes. .PP -7. SAPHanaFilesystem RA with monitor operations is active. +7. User hacluster needs pasword-less sudo permission on "/usr/sbin/crm --force node fence *". +.PP +8. SAPHanaFilesystem RA with monitor operations is active. .PP -8. Automatic restart of just fenced nodes should be disabled by adapting +9. Automatic restart of just fenced nodes should be disabled by adapting SBD_START_MODE. In case of automatic restart of just fenced nodes, it might be necessary to adapt SBD_START_DELAY in order to avoid fencing loops. See manual page sbd(8). .PP -9. Fencing is executed unconditionally. The alert agent relies on the preceding +10. Fencing is executed unconditionally. The alert agent relies on the preceding fencing decision. Neither site role nor SR state is checked. .PP -10. The alert agent runtime almost completely depends on call-outs to OS and +11. The alert agent runtime almost completely depends on call-outs to OS and Linux cluster. .\" .SH BUGS @@ -160,7 +172,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .SH SEE ALSO \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-ScaleOut\fP(7) , \fBocf_suse_SAPHanaController\fP(7) , \fBocf_suse_SAPHanaFilesystem\fP(7) , -\fBsusChkSrv.py\fP(7) , \fBcrm\fP(8) , \fBsbd\fP(8) , +\fBsusChkSrv.py\fP(7) , \fBcrm\fP(8) , \fBsbd\fP(8) , \fBsudoers\fP(5) , .br https://clusterlabs.org/pacemaker/doc/2.1/Pacemaker_Administration/singlehtml/#alert-agents .PP From dfaa6e97f96580bd061a85cac36d93febe25db37 Mon Sep 17 00:00:00 2001 From: lpinne Date: Sat, 10 Aug 2024 09:13:08 +0200 Subject: [PATCH 227/414] SAPHanaSR-alert-fencing: fixed typos --- alert/SAPHanaSR-alert-fencing | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/alert/SAPHanaSR-alert-fencing b/alert/SAPHanaSR-alert-fencing index 25dcab39..ab340498 100755 --- a/alert/SAPHanaSR-alert-fencing +++ b/alert/SAPHanaSR-alert-fencing @@ -1,14 +1,14 @@ #!/bin/bash # -# SAPHanaSR-alert +# SAPHanaSR-alert-fencing # Author: Lars Pinne Fabian Herschel, June 2024 # Support: linux@sap.com # License: GNU General Public License (GPL) # Copyright: (c) 2024 SUSE LLC # Version: 2024-08-09-14:35 # -# crm configure alert nodes-1 "/usr/bin/SAPHanaSR-alert" select nodes -# crm configure alert fencing-1 "/usr/bin/SAPHanaSR-alert" select fencing attributes alert_uptime_threshold=300 +# crm configure alert nodes-1 "/usr/bin/SAPHanaSR-alert-fencing" select nodes +# crm configure alert fencing-1 "/usr/bin/SAPHanaSR-alert-fencing" select fencing attributes alert_uptime_threshold=300 # logger_tag="SAPHanaSR-alert-fencing" @@ -42,7 +42,7 @@ function process_fencing() if [[ "$local_site_name" != "" && "$fenced_site_name" == "$local_site_name" ]]; then $logger -t "$logger_tag" "DEC: FENCE ($fenced_site_name == $local_site_name)" sleep 10 - sudo /usr/sbin/crm --force node fence "${HOSTNAME}"; rc="$?" + sudo /usr/sbin/crm --force node fence "${HOSTNAME}"; rc="$?" if [[ "$rc" != "0" ]]; then $logger -t "$logger_tag" "ACT: sudo /usr/sbin/crm --force node fence ${HOSTNAME}; rc=$rc" fi From 21d4fc59546cf99c482f3abaf708ee2ae451aa9b Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Mon, 12 Aug 2024 10:36:48 +0200 Subject: [PATCH 228/414] ango: man-page - removing training blanks --- man/SAPHanaSR-alert-fencing.8 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/SAPHanaSR-alert-fencing.8 b/man/SAPHanaSR-alert-fencing.8 index 14fb796e..9ecbe3ee 100644 --- a/man/SAPHanaSR-alert-fencing.8 +++ b/man/SAPHanaSR-alert-fencing.8 @@ -150,7 +150,7 @@ thus no standby nodes. .PP 7. User hacluster needs pasword-less sudo permission on "/usr/sbin/crm --force node fence *". .PP -8. SAPHanaFilesystem RA with monitor operations is active. +8. SAPHanaFilesystem RA with monitor operations is active. .PP 9. Automatic restart of just fenced nodes should be disabled by adapting SBD_START_MODE. In case of automatic restart of just fenced nodes, it might be From e1e416f3fdb916d0a762ad792f7654a234e63547 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Mon, 12 Aug 2024 10:46:53 +0200 Subject: [PATCH 229/414] angi: updating RA versin strings --- ra/SAPHanaController | 2 +- ra/SAPHanaTopology | 2 +- ra/saphana-common-lib | 2 +- ra/saphana-controller-common-lib | 2 +- ra/saphana-controller-lib | 2 +- ra/saphana-filesystem-lib | 2 +- ra/saphana-topology-lib | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ra/SAPHanaController b/ra/SAPHanaController index bb4502f7..a393922f 100755 --- a/ra/SAPHanaController +++ b/ra/SAPHanaController @@ -36,7 +36,7 @@ # systemReplicationStatus.py # ####################################################################### -SAPHanaControllerVersion="1.2.7" +SAPHanaControllerVersion="1.2.8" # # Initialization: timeB=$(date '+%s') diff --git a/ra/SAPHanaTopology b/ra/SAPHanaTopology index 0adfc99b..0490f8a5 100755 --- a/ra/SAPHanaTopology +++ b/ra/SAPHanaTopology @@ -32,7 +32,7 @@ # systemReplicationStatus.py # ####################################################################### -SAPHanaTopologyVersion="1.2.7" +SAPHanaTopologyVersion="1.2.8" # # Initialization: timeB=$(date '+%s') diff --git a/ra/saphana-common-lib b/ra/saphana-common-lib index 78571166..7b46056b 100755 --- a/ra/saphana-common-lib +++ b/ra/saphana-common-lib @@ -23,7 +23,7 @@ # ####################################################################### # -saphana_common_lib_version="1.2.7" +saphana_common_lib_version="1.2.8" # ####################################################################### diff --git a/ra/saphana-controller-common-lib b/ra/saphana-controller-common-lib index 5482e04e..b26263f7 100755 --- a/ra/saphana-controller-common-lib +++ b/ra/saphana-controller-common-lib @@ -32,7 +32,7 @@ # systemReplicationStatus.py (>= SPS090) # ####################################################################### -# SAPHanaControllerLibVersion="1.2.7" +# SAPHanaControllerLibVersion="1.2.8" ####################################################################### # # KNOWN PROBLEMS TO BE FIXED: diff --git a/ra/saphana-controller-lib b/ra/saphana-controller-lib index dac3ce5c..e0bc93c3 100755 --- a/ra/saphana-controller-lib +++ b/ra/saphana-controller-lib @@ -34,7 +34,7 @@ ####################################################################### # TODO PRIO2: NG - use SAPHanaControllerLibVersion= # shellcheck disable=SC2034 -SAPHanaControllerLibVersion="1.2.7" +SAPHanaControllerLibVersion="1.2.8" ####################################################################### # # KNOWN PROBLEMS TO BE FIXED: diff --git a/ra/saphana-filesystem-lib b/ra/saphana-filesystem-lib index 4facbb05..7de6617f 100755 --- a/ra/saphana-filesystem-lib +++ b/ra/saphana-filesystem-lib @@ -21,7 +21,7 @@ # ####################################################################### # -saphana_filesystem_lib_version="0.003.1415927" +saphana_filesystem_lib_version="1.3.1415927" # ####################################################################### diff --git a/ra/saphana-topology-lib b/ra/saphana-topology-lib index 60916c7a..197f5d1e 100755 --- a/ra/saphana-topology-lib +++ b/ra/saphana-topology-lib @@ -22,7 +22,7 @@ # ####################################################################### # -saphana_topology_lib_version="1.2.7" +saphana_topology_lib_version="1.2.8" # ####################################################################### From 07937f62b501a8d93869c11cd591e163517f1eb1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 14 Aug 2024 09:12:24 +0200 Subject: [PATCH 230/414] SAPHanaSR-alert-fencing.8: requirements --- man/SAPHanaSR-alert-fencing.8 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/man/SAPHanaSR-alert-fencing.8 b/man/SAPHanaSR-alert-fencing.8 index 9ecbe3ee..ebf7a486 100644 --- a/man/SAPHanaSR-alert-fencing.8 +++ b/man/SAPHanaSR-alert-fencing.8 @@ -150,17 +150,19 @@ thus no standby nodes. .PP 7. User hacluster needs pasword-less sudo permission on "/usr/sbin/crm --force node fence *". .PP -8. SAPHanaFilesystem RA with monitor operations is active. +8. Concurrent fencing is configured, see manual page SAPHanaSR-ScaleOut_basic_cluster(7). .PP -9. Automatic restart of just fenced nodes should be disabled by adapting +9. SAPHanaFilesystem RA with monitor operations is active. +.PP +10. Automatic restart of just fenced nodes should be disabled by adapting SBD_START_MODE. In case of automatic restart of just fenced nodes, it might be necessary to adapt SBD_START_DELAY in order to avoid fencing loops. See manual page sbd(8). .PP -10. Fencing is executed unconditionally. The alert agent relies on the preceding +11. Fencing is executed unconditionally. The alert agent relies on the preceding fencing decision. Neither site role nor SR state is checked. .PP -11. The alert agent runtime almost completely depends on call-outs to OS and +12. The alert agent runtime almost completely depends on call-outs to OS and Linux cluster. .\" .SH BUGS From 67d2b52900155449141060a6d9f7031346dbfb22 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Fri, 16 Aug 2024 16:52:51 +0200 Subject: [PATCH 231/414] tester: very simple test case to prove that moving the productive IP address is not a good idea --- test/bin/sct_test_move_ip | 14 ++++++ test/json/angi-ScaleUp/fatal_ip_move.json | 60 +++++++++++++++++++++++ 2 files changed, 74 insertions(+) create mode 100755 test/bin/sct_test_move_ip create mode 100644 test/json/angi-ScaleUp/fatal_ip_move.json diff --git a/test/bin/sct_test_move_ip b/test/bin/sct_test_move_ip new file mode 100755 index 00000000..dcb260ce --- /dev/null +++ b/test/bin/sct_test_move_ip @@ -0,0 +1,14 @@ +#!/usr/bin/bash +# +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="150"/ { print $2 }' )" + +echo "==== moce ip address ====" + +ssh "$currPrimary" 'crm resource move rsc_ip_HA1 force' +sleep 10 +ssh "$currPrimary" 'crm resource clear rsc_ip_HA1' + diff --git a/test/json/angi-ScaleUp/fatal_ip_move.json b/test/json/angi-ScaleUp/fatal_ip_move.json new file mode 100644 index 00000000..4f1330d5 --- /dev/null +++ b/test/json/angi-ScaleUp/fatal_ip_move.json @@ -0,0 +1,60 @@ +{ + "test": "fatal2", + "name": "fatal2 - this test should NOT pass successfully - fails on fatalCondition", + "purpose": [ + "angi", + "ScaleUp", + "fail", + "parser", + "sleep", + "tester", + "fatal" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequitsites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_move_ip", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "wait for secondary to be promoted", + "next": "final40", + "loop": 120, + "wait": 2, + "sSite": "pSiteUp", + "sHost": "pHostUp", + "fatalCondition": { + "fatal_dual_P": { + "pSite": [ + "lss == 4", + "srr == P" + ], + "sSite": [ + "lss == 4", + "srr == P" + ] + } + } + }, + { + "step": "final40", + "name": "recovered", + "next": "END", + "loop": 1, + "wait": 1, + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp" + } + ] +} From aa616934cc7e8c12e83cf6ebd9d49b24d004a4af Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Mon, 19 Aug 2024 10:56:44 +0200 Subject: [PATCH 232/414] tester: sct_test_move_ip, ../tester/saphana_sr_test.py - new property value rscIPResource --- test/bin/sct_test_move_ip | 14 +++++++++----- test/tester/saphana_sr_test.py | 21 +++++++++++---------- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/test/bin/sct_test_move_ip b/test/bin/sct_test_move_ip index dcb260ce..3775ad57 100755 --- a/test/bin/sct_test_move_ip +++ b/test/bin/sct_test_move_ip @@ -6,9 +6,13 @@ dir_path=$(dirname "$full_path") source .test_properties currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="150"/ { print $2 }' )" -echo "==== moce ip address ====" - -ssh "$currPrimary" 'crm resource move rsc_ip_HA1 force' -sleep 10 -ssh "$currPrimary" 'crm resource clear rsc_ip_HA1' +if [[ -n "$rscIPResource" ]]; then + echo "==== moce ip address ====" + ssh "$currPrimary" "crm resource move $rscIPResource force" + sleep 10 + ssh "$currPrimary" "crm resource clear $rscIPResource" +else + echo "rscIPResource not set in properties file" + exit 2 +fi diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index e1ce1756..9c160f66 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -327,16 +327,17 @@ def write_test_properties(self, topology): write_test_properties - write bash test properties file so bash test helper could source the key-value settings """ with open(".test_properties", 'w', encoding="utf-8") as test_prop_fh: - test_prop_fh.write(f"node01={topology.get('pHost','node01')}\n") - test_prop_fh.write(f"node02={topology.get('sHost','node02')}\n") - test_prop_fh.write(f"mstResource={self.test_data.get('mstResource','')}\n") - test_prop_fh.write(f"clnResource={self.test_data.get('clnResource','')}\n") - test_prop_fh.write(f"srMode={self.test_data.get('srMode','sync')}\n") - test_prop_fh.write(f"opMode={self.test_data.get('opMode','logreplay')}\n") - test_prop_fh.write(f"SID={self.test_data.get('sid','C11')}\n") - test_prop_fh.write(f"instNr={self.test_data.get('instNo','00')}\n") - test_prop_fh.write(f"sidadm={self.test_data.get('sid','C11').lower()}adm\n") - test_prop_fh.write(f"userkey={self.test_data.get('userKey','')}\n") + test_prop_fh.write(f"node01=\"{topology.get('pHost','node01')}\"\n") + test_prop_fh.write(f"node02=\"{topology.get('sHost','node02')}\"\n") + test_prop_fh.write(f"mstResource=\"{self.test_data.get('mstResource','')}\"\n") + test_prop_fh.write(f"clnResource=\"{self.test_data.get('clnResource','')}\"\n") + test_prop_fh.write(f"rscIPResource=\"{self.test_data.get('rscIPResource','')}\"\n") + test_prop_fh.write(f"srMode=\"{self.test_data.get('srMode','sync')}\"\n") + test_prop_fh.write(f"opMode=\"{self.test_data.get('opMode','logreplay')}\"\n") + test_prop_fh.write(f"SID=\"{self.test_data.get('sid','C11')}\"\n") + test_prop_fh.write(f"instNr=\"{self.test_data.get('instNo','00')}\"\n") + test_prop_fh.write(f"sidadm=\"{self.test_data.get('sid','C11').lower()}adm\"\n") + test_prop_fh.write(f"userkey=\"{self.test_data.get('userKey','')}\"\n") test_prop_fh.flush() def __add_failed__(self, area_object, key_val_reg, **kwargs): From 9a04fbc439d9124d001462e5325a70a608e86631 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 17 Sep 2024 10:37:29 +0200 Subject: [PATCH 233/414] SAPHanaSR_maintenance_examples.7: typo fixed --- man/SAPHanaSR_maintenance_examples.7 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/SAPHanaSR_maintenance_examples.7 b/man/SAPHanaSR_maintenance_examples.7 index f653efaa..ada2a8be 100644 --- a/man/SAPHanaSR_maintenance_examples.7 +++ b/man/SAPHanaSR_maintenance_examples.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR_maintenance_examples 7 "08 May 2024" "" "SAPHanaSR" +.TH SAPHanaSR_maintenance_examples 7 "18 Sep 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR_maintenance_examples \- maintenance examples for SAPHanaController. @@ -186,7 +186,7 @@ If everything looks fine, proceed. .br ~> cdpy; python3 ./systemReplicationStatus.py; echo RC:$? .br -~> cdpy; python3 ./landscapeConfigurationStatus.py; echo RC:$? +~> cdpy; python3 ./landscapeHostConfiguration.py; echo RC:$? .br ~> exit .br From f91a92eb719f9e800299273fdacbead6f5ebf0e4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 17 Sep 2024 10:52:19 +0200 Subject: [PATCH 234/414] SAPHanaSR-alert-fencing.8: typos, wording --- man/SAPHanaSR-alert-fencing.8 | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/man/SAPHanaSR-alert-fencing.8 b/man/SAPHanaSR-alert-fencing.8 index ebf7a486..109fc142 100644 --- a/man/SAPHanaSR-alert-fencing.8 +++ b/man/SAPHanaSR-alert-fencing.8 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-alert-fencing 7 "08 Aug 2024" "" "SAPHanaSR" +.TH SAPHanaSR-alert-fencing 7 "18 Sep 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR-alert-fencing \- Alert agent for cluster fencing alerts. @@ -9,9 +9,9 @@ SAPHanaSR-alert-fencing \- Alert agent for cluster fencing alerts. .SH DESCRIPTION SAPHanaSR-alert-fencing can be used to react on Linux cluster fencing alerts. .PP -The Linux cluster provides an interface to initiate external action when a cluster -event occurs (alert). Than the cluster calls an external program (an alert agent) -to handle that alert. +The Linux cluster provides an interface to initiate external actions when a +cluster event occurs (alert). Than the cluster calls an external program (an +alert agent) to handle that alert. .PP When the Linux cluster has performed an node fencing, it can call SAPHanaSR-alert-fencing on each active cluster node. The agent checks whether @@ -148,7 +148,7 @@ thus no standby nodes. .PP 6. User hacluster is member of group haclient. Both are defined locally on each cluster nodes. .PP -7. User hacluster needs pasword-less sudo permission on "/usr/sbin/crm --force node fence *". +7. User hacluster needs password-less sudo permission on "/usr/sbin/crm --force node fence *". .PP 8. Concurrent fencing is configured, see manual page SAPHanaSR-ScaleOut_basic_cluster(7). .PP @@ -159,8 +159,8 @@ SBD_START_MODE. In case of automatic restart of just fenced nodes, it might be necessary to adapt SBD_START_DELAY in order to avoid fencing loops. See manual page sbd(8). .PP -11. Fencing is executed unconditionally. The alert agent relies on the preceding -fencing decision. Neither site role nor SR state is checked. +11. The alert agent unconditionally executes fencing. The alert agent relies on +the preceding fencing decision. Neither site role nor SR state is checked. .PP 12. The alert agent runtime almost completely depends on call-outs to OS and Linux cluster. From eb6f07255fd1b21f8b463193ce8c2f905c1c5128 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 11:42:54 +0200 Subject: [PATCH 235/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7 SAPHanaSR-tests-description.7: kill_..._pacemaker --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 14 +++- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 8 ++- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 8 ++- man-tester/SAPHanaSR-tests-description.7 | 72 +++++++++++++++++++- 4 files changed, 98 insertions(+), 4 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 2cdd2d8b..f811a825 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleOut 7 "12 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleOut 7 "18 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleOut \- Functional tests for SAPHanaSR Scale-Out. @@ -52,6 +52,9 @@ Kill primary master instance. \fBkill_prim_node\fP Kill primary master node. .TP +\fBkill_prim_pacemaker\fP +Kill primary master node´s pacemaker controld. Not yet implemented. +.TP \fBkill_prim_worker_indexserver\fP Kill primary worker indexserver, for susChkSrv.py. .TP @@ -61,6 +64,9 @@ Kill primary worker instance. \fBkill_prim_worker_node\fP Kill primary worker node. .TP +\fBkill_prim_worker_pacemaker\fP +Kill primary worker node´s pacemaker controld. Not yet implemented. +.TP \fBkill_prim_site\fP Kill primary site nodes. Not yet implemented. .TP @@ -73,12 +79,18 @@ Kill secondary master instance. \fBkill_secn_node\fP Kill secondary master node. .TP +\fBkill_secn_pacemaker\fP +Kill secondary master node´s pacemaker controld. Not yet implemented. +.TP \fBkill_secn_worker_inst\fP Kill secondary worker instance. .TP \fBkill_secn_worker_node\fP Kill secondary worker node. .TP +\fBkill_secn_worker_pacemaker\fP +Kill secondary worker node´s pacemaker controld. Not yet implemented. +.TP \fBkill_secn_site\fP Kill secondary site nodes. Not yet implemented. .TP diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 8f376af2..7dfa7de8 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleUp 7 "12 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleUp 7 "18 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleUp \- Functional tests for SAPHanaSR Scale-Up. @@ -49,6 +49,9 @@ Kill primary instance. \fBkill_prim_node\fP Kill primary node. .TP +\fBkill_prim_pacemaker\fP +Kill primary pacemaker controld. Not yet implemented. +.TP \fBkill_secn_indexserver\fP Kill secondary indexserver, for susChkSrv.py. .TP @@ -58,6 +61,9 @@ Kill secondary instance. \fBkill_secn_node\fP Kill secondary node. .TP +\fBkill_secn_pacemaker\fP +Kill secondary pacemaker controld. Not yet implemented. +.TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. .TP diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index ad5529f1..f35f08ef 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-classic-ScaleUp 7 "29 Feb 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-classic-ScaleUp 7 "18 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-classic-ScaleUp \- Functional tests for SAPHanaSR Scale-Up. @@ -37,6 +37,9 @@ Kill primary instance. \fBkill_prim_node\fP Kill primary node. .TP +\fBkill_prim_pacemaker\fP +Kill primary pacemaker controld. Not yet implemented. +.TP \fBkill_secn_indexserver\fP Kill secondary indexserver, for susChkSrv.py. .TP @@ -46,6 +49,9 @@ Kill secondary instance. \fBkill_secn_node\fP Kill secondary node. .TP +\fBkill_secn_pacemaker\fP +Kill secondary pacemaker controld. Not yet implemented. +.TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. Not yet implemented. .TP diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 01777f98..41396f6a 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-description 7 "12 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-description 7 "18 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-description \- Functional tests for SAPHanaSR. @@ -300,6 +300,24 @@ One takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP +\fBkill_prim_pacemaker\fP +.RS 2 +Descr: Kill primary pacemaker controld. +On scale-out, kill primary master node´s pacemaker controld. +.br +Topology: ScaleUp, ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemaker-controld +.br +Expect: pacemaker-controld restarted. +HANA primary TODO. +TODO takeover. No fencing. +.br +Comment: Cluster failure. +.RE +.PP \fBkill_prim_worker_indexserver\fP .RS 2 Descr: Kill primary worker indexserver, for susChkSrv.py. @@ -355,6 +373,23 @@ One takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP +\fBkill_prim_worker_pacemaker\fP +.RS 2 +Descr: Kill primary worker node´s pacemaker controld. +.br +Topology: ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemaker-controld +.br +Expect: pacemaker-controld restarted. +HANA primary TODO. +TODO takeover. No fencing. +.br +Comment: Cluster failure. +.RE +.PP \fBkill_secn_indexserver\fP .RS 2 Descr: Kill secondary indexserver, for susChkSrv.py. @@ -412,6 +447,24 @@ No takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP +\fBkill_secn_pacemaker\fP +.RS 2 +Descr: Kill secondary pacemaker controld. +On scale-out, kill secondary master node´s pacemaker controld. +.br +Topology: ScaleUp, ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemaker-controld +.br +Expect: pacemaker-controld restarted. +HANA secondary TODO. +No takeover. No fencing. +.br +Comment: Cluster failure. +.RE +.PP \fBkill_secn_worker_inst\fP .RS 2 Descr: Kill secondary worker instance. @@ -429,6 +482,23 @@ No takeover. No fencing. Comment: Application failure, main cluster case. .RE .PP +\fBkill_secn_worker_pacemaker\fP +.RS 2 +Descr: Kill secondary worker node´s pacemaker controld. +.br +Topology: ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemaker-controld +.br +Expect: pacemaker-controld restarted. +HANA secondary TODO. +No takeover. No fencing. +.br +Comment: Cluster failure. +.RE +.PP \fBkill_secn_worker_node\fP .RS 2 Descr: Kill secondary worker node. From 8abfe878930f3f81805fe0e66e444ac300b74798 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 12:10:07 +0200 Subject: [PATCH 236/414] freeze_secn_fs.json: fixed step 40 --- test/json/angi-ScaleUp/freeze_secn_fs.json | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json index b6300b95..ef53070a 100644 --- a/test/json/angi-ScaleUp/freeze_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -70,11 +70,10 @@ "loop": 300, "wait": 2, "post": "cleanup", - "remark": "pXXX and sXXX are now exchanged", - "pSite": "sSiteUp", - "sSite": "pSiteUp", - "pHost": "sHostUp", - "sHost": "pHostUp" + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" } ] } From c51e2851a13cb20bacc9ef66c9808f9ce89683f6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 13:36:44 +0200 Subject: [PATCH 237/414] sct_test_kill_prim_pacemaker sct_test_kill_secn_pacemaker: initial checkin --- test/bin/sct_test_kill_prim_pacemaker | 13 +++++++++++++ test/bin/sct_test_kill_secn_pacemaker | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 test/bin/sct_test_kill_prim_pacemaker create mode 100755 test/bin/sct_test_kill_secn_pacemaker diff --git a/test/bin/sct_test_kill_prim_pacemaker b/test/bin/sct_test_kill_prim_pacemaker new file mode 100755 index 00000000..25851877 --- /dev/null +++ b/test/bin/sct_test_kill_prim_pacemaker @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_prim_pacemaker - kill pacemaker-controld on primary node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="150"/ { print $2 }' )" + +echo "==== Kill pacemaker-controld ====" + +ssh "$currPrimary" 'killall -9 pacemaker-controld' +# sleep 60 diff --git a/test/bin/sct_test_kill_secn_pacemaker b/test/bin/sct_test_kill_secn_pacemaker new file mode 100755 index 00000000..21732335 --- /dev/null +++ b/test/bin/sct_test_kill_secn_pacemaker @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_secn_pacemaker - kill pacemaker-controld on secondary node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" + +echo "==== Kill pacemaker-controld ====" + +ssh "$currSecondary" 'killall -9 pacemaker-controld' +# sleep 60 From 15b216cc170c47e4166eb5b92c4bd145a7ed293f Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 13:41:36 +0200 Subject: [PATCH 238/414] kill_secn_pacemaker.json: initial checkin --- .../angi-ScaleUp/kill_secn_pacemaker.json | 79 +++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 test/json/angi-ScaleUp/kill_secn_pacemaker.json diff --git a/test/json/angi-ScaleUp/kill_secn_pacemaker.json b/test/json/angi-ScaleUp/kill_secn_pacemaker.json new file mode 100644 index 00000000..de2c774a --- /dev/null +++ b/test/json/angi-ScaleUp/kill_secn_pacemaker.json @@ -0,0 +1,79 @@ +{ + "test": "kill_secn_pacemaker", + "name": "kill pacemaker controld on secondary node", + "purpose": [ + "angi", + "ScaleUp", + "fs", + "freeze", + "secondary", + "node" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemaker", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "sHost": [] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 300, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 4", + "srr == S", + "srHook ~ (SOK|SWAIT)", + "srPoll ~ (SOK|SFAIL)" + ], + "sHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "roles == master1::worker:", + "score ~ (100|145|150)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 6589bf8f32895545d4de5e2542cf39e388f0f670 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 13:45:13 +0200 Subject: [PATCH 239/414] angi-ScaleUp: fixed typo prerequitsites -> prerequisites --- test/json/angi-ScaleUp/block_manual_takeover.json | 4 ++-- test/json/angi-ScaleUp/block_sr.json | 2 +- test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json | 2 +- test/json/angi-ScaleUp/fatal1.json | 2 +- test/json/angi-ScaleUp/fatal2.json | 2 +- test/json/angi-ScaleUp/fatal_ip_move.json | 2 +- test/json/angi-ScaleUp/flap.json | 2 +- test/json/angi-ScaleUp/flop.json | 2 +- test/json/angi-ScaleUp/flup.json | 2 +- test/json/angi-ScaleUp/free_log_area.json | 2 +- test/json/angi-ScaleUp/freeze_prim_fs.json | 2 +- test/json/angi-ScaleUp/freeze_secn_fs.json | 2 +- test/json/angi-ScaleUp/kill_prim_indexserver.json | 2 +- test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_inst_fencing.json | 2 +- test/json/angi-ScaleUp/kill_prim_node.json | 2 +- test/json/angi-ScaleUp/kill_secn_indexserver.json | 2 +- test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json | 2 +- test/json/angi-ScaleUp/kill_secn_inst.json | 2 +- test/json/angi-ScaleUp/kill_secn_node.json | 2 +- test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json | 2 +- test/json/angi-ScaleUp/maintenance_cluster_hana_running.json | 2 +- test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json | 2 +- test/json/angi-ScaleUp/maintenance_with_standby_nodes.json | 4 ++-- test/json/angi-ScaleUp/nop.json | 2 +- test/json/angi-ScaleUp/one_stable_hour.json | 2 +- test/json/angi-ScaleUp/restart_cluster.json | 2 +- test/json/angi-ScaleUp/restart_cluster_hana_running.json | 2 +- test/json/angi-ScaleUp/restart_cluster_turn_hana.json | 2 +- test/json/angi-ScaleUp/split_brain_prio.json | 2 +- test/json/angi-ScaleUp/sshtimeout.json | 2 +- test/json/angi-ScaleUp/standby_prim_node.json | 2 +- test/json/angi-ScaleUp/standby_secn_node.json | 2 +- 33 files changed, 35 insertions(+), 35 deletions(-) diff --git a/test/json/angi-ScaleUp/block_manual_takeover.json b/test/json/angi-ScaleUp/block_manual_takeover.json index 8fc64010..dc36f2f6 100644 --- a/test/json/angi-ScaleUp/block_manual_takeover.json +++ b/test/json/angi-ScaleUp/block_manual_takeover.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, @@ -26,7 +26,7 @@ }, { "step": "step20", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/block_sr.json b/test/json/angi-ScaleUp/block_sr.json index 4b0cd652..5c5e09e3 100644 --- a/test/json/angi-ScaleUp/block_sr.json +++ b/test/json/angi-ScaleUp/block_sr.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json index 1b01c740..4f5fb5e3 100644 --- a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/fatal1.json b/test/json/angi-ScaleUp/fatal1.json index 126c568e..bd4b938e 100644 --- a/test/json/angi-ScaleUp/fatal1.json +++ b/test/json/angi-ScaleUp/fatal1.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/fatal2.json b/test/json/angi-ScaleUp/fatal2.json index b092e558..4179e73c 100644 --- a/test/json/angi-ScaleUp/fatal2.json +++ b/test/json/angi-ScaleUp/fatal2.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/fatal_ip_move.json b/test/json/angi-ScaleUp/fatal_ip_move.json index 4f1330d5..4e0194a8 100644 --- a/test/json/angi-ScaleUp/fatal_ip_move.json +++ b/test/json/angi-ScaleUp/fatal_ip_move.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/flap.json b/test/json/angi-ScaleUp/flap.json index bb142b76..c5341233 100644 --- a/test/json/angi-ScaleUp/flap.json +++ b/test/json/angi-ScaleUp/flap.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/flop.json b/test/json/angi-ScaleUp/flop.json index feb7f93e..f14f1023 100644 --- a/test/json/angi-ScaleUp/flop.json +++ b/test/json/angi-ScaleUp/flop.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/flup.json b/test/json/angi-ScaleUp/flup.json index 2dfbaf32..0444dc59 100644 --- a/test/json/angi-ScaleUp/flup.json +++ b/test/json/angi-ScaleUp/flup.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/free_log_area.json b/test/json/angi-ScaleUp/free_log_area.json index a437b137..18f9c671 100644 --- a/test/json/angi-ScaleUp/free_log_area.json +++ b/test/json/angi-ScaleUp/free_log_area.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/freeze_prim_fs.json b/test/json/angi-ScaleUp/freeze_prim_fs.json index d595b86d..aee4bb21 100644 --- a/test/json/angi-ScaleUp/freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/freeze_prim_fs.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json index ef53070a..26aca635 100644 --- a/test/json/angi-ScaleUp/freeze_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver.json b/test/json/angi-ScaleUp/kill_prim_indexserver.json index 880c11cf..0b43116b 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 8a90e860..9f5bc67f 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -6,7 +6,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json index a2e33734..7234345a 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_inst_fencing.json @@ -6,7 +6,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/kill_prim_node.json b/test/json/angi-ScaleUp/kill_prim_node.json index 615399ff..de0d6206 100644 --- a/test/json/angi-ScaleUp/kill_prim_node.json +++ b/test/json/angi-ScaleUp/kill_prim_node.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver.json b/test/json/angi-ScaleUp/kill_secn_indexserver.json index 1e853f2b..15f91cbe 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index 0d31f31b..58593a4b 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/kill_secn_inst.json b/test/json/angi-ScaleUp/kill_secn_inst.json index 68ddc9dd..438dd6df 100644 --- a/test/json/angi-ScaleUp/kill_secn_inst.json +++ b/test/json/angi-ScaleUp/kill_secn_inst.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/kill_secn_node.json b/test/json/angi-ScaleUp/kill_secn_node.json index 8c3050af..af4be186 100644 --- a/test/json/angi-ScaleUp/kill_secn_node.json +++ b/test/json/angi-ScaleUp/kill_secn_node.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json b/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json index 612de3c4..4ff3fa88 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_bootstrap.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json b/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json index d57a5a7b..dec3e06f 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_hana_running.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json index 072aa9b7..56adca16 100644 --- a/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleUp/maintenance_cluster_turn_hana.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json b/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json index 304cb465..ecf529b6 100644 --- a/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleUp/maintenance_with_standby_nodes.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites ssn", + "name": "test prerequisites ssn", "next": "step20", "loop": 1, "wait": 1, @@ -71,7 +71,7 @@ }, { "step": "step110", - "name": "test prerequitsites spn", + "name": "test prerequisites spn", "next": "step120", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/nop.json b/test/json/angi-ScaleUp/nop.json index ae943f50..987c2057 100644 --- a/test/json/angi-ScaleUp/nop.json +++ b/test/json/angi-ScaleUp/nop.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/one_stable_hour.json b/test/json/angi-ScaleUp/one_stable_hour.json index 24cf72e4..7f737668 100644 --- a/test/json/angi-ScaleUp/one_stable_hour.json +++ b/test/json/angi-ScaleUp/one_stable_hour.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "stable10", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/restart_cluster.json b/test/json/angi-ScaleUp/restart_cluster.json index af79dcb6..29693d88 100644 --- a/test/json/angi-ScaleUp/restart_cluster.json +++ b/test/json/angi-ScaleUp/restart_cluster.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/restart_cluster_hana_running.json b/test/json/angi-ScaleUp/restart_cluster_hana_running.json index 8d7218ad..1d565c76 100644 --- a/test/json/angi-ScaleUp/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleUp/restart_cluster_hana_running.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/restart_cluster_turn_hana.json b/test/json/angi-ScaleUp/restart_cluster_turn_hana.json index 9b5689f3..5371867e 100644 --- a/test/json/angi-ScaleUp/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleUp/restart_cluster_turn_hana.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/split_brain_prio.json b/test/json/angi-ScaleUp/split_brain_prio.json index be9bf3f6..a7d07c27 100644 --- a/test/json/angi-ScaleUp/split_brain_prio.json +++ b/test/json/angi-ScaleUp/split_brain_prio.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/sshtimeout.json b/test/json/angi-ScaleUp/sshtimeout.json index 636daa77..333cfeee 100644 --- a/test/json/angi-ScaleUp/sshtimeout.json +++ b/test/json/angi-ScaleUp/sshtimeout.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/standby_prim_node.json b/test/json/angi-ScaleUp/standby_prim_node.json index 1b9bca3a..d4c9bd5d 100644 --- a/test/json/angi-ScaleUp/standby_prim_node.json +++ b/test/json/angi-ScaleUp/standby_prim_node.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleUp/standby_secn_node.json b/test/json/angi-ScaleUp/standby_secn_node.json index d8831ab6..a0247ff8 100644 --- a/test/json/angi-ScaleUp/standby_secn_node.json +++ b/test/json/angi-ScaleUp/standby_secn_node.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, From 31d7c9fb77f2f91f0898fb62842f5949818c41db Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 13:48:54 +0200 Subject: [PATCH 240/414] kill_secn_pacemaker.json --- test/json/angi-ScaleUp/kill_secn_pacemaker.json | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_secn_pacemaker.json b/test/json/angi-ScaleUp/kill_secn_pacemaker.json index de2c774a..fb0d147a 100644 --- a/test/json/angi-ScaleUp/kill_secn_pacemaker.json +++ b/test/json/angi-ScaleUp/kill_secn_pacemaker.json @@ -1,13 +1,12 @@ { "test": "kill_secn_pacemaker", - "name": "kill pacemaker controld on secondary node", + "name": "kill pacemaker-controld on secondary node", "purpose": [ "angi", "ScaleUp", - "fs", - "freeze", + "ScaleOut", "secondary", - "node" + "cluster" ], "todo": "please correct this file", "start": "prereq10", From f68d7537f67706077c30d831208d843d05edefd5 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 13:53:22 +0200 Subject: [PATCH 241/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7 SAPHanaSR-tests-description.7: typo --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 8 ++++---- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 4 ++-- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 4 ++-- man-tester/SAPHanaSR-tests-description.7 | 12 ++++++------ 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index f811a825..c99d5d04 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -53,7 +53,7 @@ Kill primary master instance. Kill primary master node. .TP \fBkill_prim_pacemaker\fP -Kill primary master node´s pacemaker controld. Not yet implemented. +Kill primary master node´s pacemaker-controld. Not yet implemented. .TP \fBkill_prim_worker_indexserver\fP Kill primary worker indexserver, for susChkSrv.py. @@ -65,7 +65,7 @@ Kill primary worker instance. Kill primary worker node. .TP \fBkill_prim_worker_pacemaker\fP -Kill primary worker node´s pacemaker controld. Not yet implemented. +Kill primary worker node´s pacemaker-controld. Not yet implemented. .TP \fBkill_prim_site\fP Kill primary site nodes. Not yet implemented. @@ -80,7 +80,7 @@ Kill secondary master instance. Kill secondary master node. .TP \fBkill_secn_pacemaker\fP -Kill secondary master node´s pacemaker controld. Not yet implemented. +Kill secondary master node´s pacemaker-controld. Not yet implemented. .TP \fBkill_secn_worker_inst\fP Kill secondary worker instance. @@ -89,7 +89,7 @@ Kill secondary worker instance. Kill secondary worker node. .TP \fBkill_secn_worker_pacemaker\fP -Kill secondary worker node´s pacemaker controld. Not yet implemented. +Kill secondary worker node´s pacemaker-controld. Not yet implemented. .TP \fBkill_secn_site\fP Kill secondary site nodes. Not yet implemented. diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 7dfa7de8..540a3fa1 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -50,7 +50,7 @@ Kill primary instance. Kill primary node. .TP \fBkill_prim_pacemaker\fP -Kill primary pacemaker controld. Not yet implemented. +Kill primary pacemaker-controld. Not yet implemented. .TP \fBkill_secn_indexserver\fP Kill secondary indexserver, for susChkSrv.py. @@ -62,7 +62,7 @@ Kill secondary instance. Kill secondary node. .TP \fBkill_secn_pacemaker\fP -Kill secondary pacemaker controld. Not yet implemented. +Kill secondary pacemaker-controld. Not yet implemented. .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index f35f08ef..a9f8899c 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -38,7 +38,7 @@ Kill primary instance. Kill primary node. .TP \fBkill_prim_pacemaker\fP -Kill primary pacemaker controld. Not yet implemented. +Kill primary pacemaker-controld. Not yet implemented. .TP \fBkill_secn_indexserver\fP Kill secondary indexserver, for susChkSrv.py. @@ -50,7 +50,7 @@ Kill secondary instance. Kill secondary node. .TP \fBkill_secn_pacemaker\fP -Kill secondary pacemaker controld. Not yet implemented. +Kill secondary pacemaker-controld. Not yet implemented. .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. Not yet implemented. diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 41396f6a..8cd4d6ce 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -302,8 +302,8 @@ Comment: Node failure, main cluster case. .PP \fBkill_prim_pacemaker\fP .RS 2 -Descr: Kill primary pacemaker controld. -On scale-out, kill primary master node´s pacemaker controld. +Descr: Kill primary pacemaker-controld. +On scale-out, kill primary master node´s pacemaker-controld. .br Topology: ScaleUp, ScaleOut. .br @@ -375,7 +375,7 @@ Comment: Node failure, main cluster case. .PP \fBkill_prim_worker_pacemaker\fP .RS 2 -Descr: Kill primary worker node´s pacemaker controld. +Descr: Kill primary worker node´s pacemaker-controld. .br Topology: ScaleOut. .br @@ -449,8 +449,8 @@ Comment: Node failure, main cluster case. .PP \fBkill_secn_pacemaker\fP .RS 2 -Descr: Kill secondary pacemaker controld. -On scale-out, kill secondary master node´s pacemaker controld. +Descr: Kill secondary pacemaker-controld. +On scale-out, kill secondary master node´s pacemaker-controld. .br Topology: ScaleUp, ScaleOut. .br @@ -484,7 +484,7 @@ Comment: Application failure, main cluster case. .PP \fBkill_secn_worker_pacemaker\fP .RS 2 -Descr: Kill secondary worker node´s pacemaker controld. +Descr: Kill secondary worker node´s pacemaker-controld. .br Topology: ScaleOut. .br From 26e13cc5ac8c9d32639148d06d8f24ecd5cd9eb8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 13:59:07 +0200 Subject: [PATCH 242/414] SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7: description --- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 2 +- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 540a3fa1..7caef62f 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -62,7 +62,7 @@ Kill secondary instance. Kill secondary node. .TP \fBkill_secn_pacemaker\fP -Kill secondary pacemaker-controld. Not yet implemented. +Kill secondary pacemaker-controld. .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index a9f8899c..70e97b05 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -50,7 +50,7 @@ Kill secondary instance. Kill secondary node. .TP \fBkill_secn_pacemaker\fP -Kill secondary pacemaker-controld. Not yet implemented. +Kill secondary pacemaker-controld. .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. Not yet implemented. From 9e9d5666075112c8f2e548b2f75969780468a496 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 14:05:07 +0200 Subject: [PATCH 243/414] kill_secn_pacemaker.json: initial checkin for angi-ScaleOut, classic-ScaleUp --- .../angi-ScaleOut/kill_secn_pacemaker.json | 78 +++++++++++++++++++ .../classic-ScaleUp/kill_secn_pacemaker.json | 78 +++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_secn_pacemaker.json create mode 100644 test/json/classic-ScaleUp/kill_secn_pacemaker.json diff --git a/test/json/angi-ScaleOut/kill_secn_pacemaker.json b/test/json/angi-ScaleOut/kill_secn_pacemaker.json new file mode 100644 index 00000000..fb0d147a --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_pacemaker.json @@ -0,0 +1,78 @@ +{ + "test": "kill_secn_pacemaker", + "name": "kill pacemaker-controld on secondary node", + "purpose": [ + "angi", + "ScaleUp", + "ScaleOut", + "secondary", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemaker", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "sHost": [] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 300, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 4", + "srr == S", + "srHook ~ (SOK|SWAIT)", + "srPoll ~ (SOK|SFAIL)" + ], + "sHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "roles == master1::worker:", + "score ~ (100|145|150)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} diff --git a/test/json/classic-ScaleUp/kill_secn_pacemaker.json b/test/json/classic-ScaleUp/kill_secn_pacemaker.json new file mode 100644 index 00000000..fb0d147a --- /dev/null +++ b/test/json/classic-ScaleUp/kill_secn_pacemaker.json @@ -0,0 +1,78 @@ +{ + "test": "kill_secn_pacemaker", + "name": "kill pacemaker-controld on secondary node", + "purpose": [ + "angi", + "ScaleUp", + "ScaleOut", + "secondary", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemaker", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "sHost": [] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 300, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 4", + "srr == S", + "srHook ~ (SOK|SWAIT)", + "srPoll ~ (SOK|SFAIL)" + ], + "sHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "roles == master1::worker:", + "score ~ (100|145|150)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From a480e6ba7c16af003cc0be9a3eb65caadf849c2f Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 14:07:44 +0200 Subject: [PATCH 244/414] SAPHanaSR-tests-angi-ScaleOut.7 --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index c99d5d04..9d1ffbda 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -80,7 +80,7 @@ Kill secondary master instance. Kill secondary master node. .TP \fBkill_secn_pacemaker\fP -Kill secondary master node´s pacemaker-controld. Not yet implemented. +Kill secondary master node´s pacemaker-controld. .TP \fBkill_secn_worker_inst\fP Kill secondary worker instance. From bc0df1599f557d54bb5a155fc74036189cb2831e Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 14:11:39 +0200 Subject: [PATCH 245/414] kill_secn_pacemaker.json: initial checkin for classic-ScaleOut --- .../classic-ScaleOut/kill_secn_pacemaker.json | 78 +++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 test/json/classic-ScaleOut/kill_secn_pacemaker.json diff --git a/test/json/classic-ScaleOut/kill_secn_pacemaker.json b/test/json/classic-ScaleOut/kill_secn_pacemaker.json new file mode 100644 index 00000000..fb0d147a --- /dev/null +++ b/test/json/classic-ScaleOut/kill_secn_pacemaker.json @@ -0,0 +1,78 @@ +{ + "test": "kill_secn_pacemaker", + "name": "kill pacemaker-controld on secondary node", + "purpose": [ + "angi", + "ScaleUp", + "ScaleOut", + "secondary", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemaker", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "sHost": [] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 300, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 4", + "srr == S", + "srHook ~ (SOK|SWAIT)", + "srPoll ~ (SOK|SFAIL)" + ], + "sHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "roles == master1::worker:", + "score ~ (100|145|150)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 32cd683d193af98a5ea59115215023c0c0ae0758 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 14:16:35 +0200 Subject: [PATCH 246/414] sct_test_kill_prim_worker_pacemaker sct_test_kill_secn_worker_pacemaker: initial checkin --- test/bin/sct_test_kill_prim_worker_pacemaker | 13 +++++++++++++ test/bin/sct_test_kill_secn_worker_pacemaker | 13 +++++++++++++ 2 files changed, 26 insertions(+) create mode 100755 test/bin/sct_test_kill_prim_worker_pacemaker create mode 100755 test/bin/sct_test_kill_secn_worker_pacemaker diff --git a/test/bin/sct_test_kill_prim_worker_pacemaker b/test/bin/sct_test_kill_prim_worker_pacemaker new file mode 100755 index 00000000..16846e2b --- /dev/null +++ b/test/bin/sct_test_kill_prim_worker_pacemaker @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_prim_worker_pacemaker - kill pacemaker-controld on primary worker node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currPrimWorker="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="-10000"/ { print $2 }' )" + +echo "==== Kill pacemaker-controld ====" + +ssh "$currPrimWorker" 'killall -9 pacemaker-controld' +# sleep 60 diff --git a/test/bin/sct_test_kill_secn_worker_pacemaker b/test/bin/sct_test_kill_secn_worker_pacemaker new file mode 100755 index 00000000..b7b09647 --- /dev/null +++ b/test/bin/sct_test_kill_secn_worker_pacemaker @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_secn_worker_pacemaker - kill pacemaker-controld on secondary worker node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currSecnWorker="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="-12200"/ { print $2 }' )" + +echo "==== Kill pacemaker-controld ====" + +ssh "$currSecnWorker" 'killall -9 pacemaker-controld' +# sleep 60 From e840e1b239ba06f47534946cfa7a5e8800f1b8c3 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 14:29:02 +0200 Subject: [PATCH 247/414] kill_secn_pacemaker.json kill_secn_worker_pacemaker.json SAPHanaSR-tests-angi-ScaleOut.7 --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 8 +- .../angi-ScaleOut/kill_secn_pacemaker.json | 3 +- .../kill_secn_worker_pacemaker.json | 77 +++++++++++++++++++ 3 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 test/json/angi-ScaleOut/kill_secn_worker_pacemaker.json diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 9d1ffbda..3c0dbe42 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -82,6 +82,9 @@ Kill secondary master node. \fBkill_secn_pacemaker\fP Kill secondary master node´s pacemaker-controld. .TP +\fBkill_secn_site\fP +Kill secondary site nodes. Not yet implemented. +.TP \fBkill_secn_worker_inst\fP Kill secondary worker instance. .TP @@ -89,10 +92,7 @@ Kill secondary worker instance. Kill secondary worker node. .TP \fBkill_secn_worker_pacemaker\fP -Kill secondary worker node´s pacemaker-controld. Not yet implemented. -.TP -\fBkill_secn_site\fP -Kill secondary site nodes. Not yet implemented. +Kill secondary worker node´s pacemaker-controld. .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. Not yet implemented. diff --git a/test/json/angi-ScaleOut/kill_secn_pacemaker.json b/test/json/angi-ScaleOut/kill_secn_pacemaker.json index fb0d147a..9c7c3367 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemaker.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemaker.json @@ -37,8 +37,7 @@ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "sHost": [] + ] }, { "step": "step30", diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemaker.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemaker.json new file mode 100644 index 00000000..26de8b68 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_worker_pacemaker.json @@ -0,0 +1,77 @@ +{ + "test": "kill_secn_worker_pacemaker", + "name": "kill pacemaker-controld on secondary worker node", + "purpose": [ + "angi", + "ScaleOut", + "secondary", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_worker_pacemaker", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 1", + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ], + "sHost": "sHostUp" + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 300, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "lpt ~ (20|10)", + "lss == 4", + "srr == S", + "srHook ~ (SOK|SWAIT)", + "srPoll ~ (SOK|SFAIL)" + ], + "sHost": "sHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 300, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From d25af13d5a6b8c676ea5aa97782870f1393eb4f1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 18 Sep 2024 14:34:18 +0200 Subject: [PATCH 248/414] angi-ScaleOut/kill_secn_pacemaker.json angi-ScaleUp/kill_secn_pacemaker.json classic-ScaleOut/kill_secn_pacemaker.json classic-ScaleUp/kill_secn_pacemaker.json: purpose --- test/json/angi-ScaleOut/kill_secn_pacemaker.json | 1 - test/json/angi-ScaleUp/kill_secn_pacemaker.json | 1 - test/json/classic-ScaleOut/kill_secn_pacemaker.json | 2 -- test/json/classic-ScaleUp/kill_secn_pacemaker.json | 2 -- 4 files changed, 6 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_pacemaker.json b/test/json/angi-ScaleOut/kill_secn_pacemaker.json index 9c7c3367..9b3fe397 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemaker.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemaker.json @@ -3,7 +3,6 @@ "name": "kill pacemaker-controld on secondary node", "purpose": [ "angi", - "ScaleUp", "ScaleOut", "secondary", "cluster" diff --git a/test/json/angi-ScaleUp/kill_secn_pacemaker.json b/test/json/angi-ScaleUp/kill_secn_pacemaker.json index fb0d147a..d7465364 100644 --- a/test/json/angi-ScaleUp/kill_secn_pacemaker.json +++ b/test/json/angi-ScaleUp/kill_secn_pacemaker.json @@ -4,7 +4,6 @@ "purpose": [ "angi", "ScaleUp", - "ScaleOut", "secondary", "cluster" ], diff --git a/test/json/classic-ScaleOut/kill_secn_pacemaker.json b/test/json/classic-ScaleOut/kill_secn_pacemaker.json index fb0d147a..93c2a327 100644 --- a/test/json/classic-ScaleOut/kill_secn_pacemaker.json +++ b/test/json/classic-ScaleOut/kill_secn_pacemaker.json @@ -2,8 +2,6 @@ "test": "kill_secn_pacemaker", "name": "kill pacemaker-controld on secondary node", "purpose": [ - "angi", - "ScaleUp", "ScaleOut", "secondary", "cluster" diff --git a/test/json/classic-ScaleUp/kill_secn_pacemaker.json b/test/json/classic-ScaleUp/kill_secn_pacemaker.json index fb0d147a..a0c9c225 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemaker.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemaker.json @@ -2,9 +2,7 @@ "test": "kill_secn_pacemaker", "name": "kill pacemaker-controld on secondary node", "purpose": [ - "angi", "ScaleUp", - "ScaleOut", "secondary", "cluster" ], From 14f71533e21da94f9bfe2a05ac69633053b75600 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 20 Sep 2024 09:27:18 +0200 Subject: [PATCH 249/414] SAPHanaSR-ScaleOut.7 SAPHanaSR.7 SAPHanaSR_maintenance_examples.7 ocf_suse_SAPHanaController.7: requirements - no manual actions allowed. formatting --- man/SAPHanaSR-ScaleOut.7 | 18 ++++++--- man/SAPHanaSR.7 | 12 ++++-- man/SAPHanaSR_maintenance_examples.7 | 59 +++++++++++++++------------- man/ocf_suse_SAPHanaController.7 | 40 ++++++++++--------- 4 files changed, 75 insertions(+), 54 deletions(-) diff --git a/man/SAPHanaSR-ScaleOut.7 b/man/SAPHanaSR-ScaleOut.7 index 27e43da6..04dfad3a 100644 --- a/man/SAPHanaSR-ScaleOut.7 +++ b/man/SAPHanaSR-ScaleOut.7 @@ -1,13 +1,13 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-ScaleOut 7 "18 Dec 2023" "" "SAPHanaSR-angi" +.TH SAPHanaSR-ScaleOut 7 "20 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-ScaleOut \- Automating SAP HANA system replication in scale-out setups. .PP .\" .SH DESCRIPTION -.\" +.PP \fBOverview\fR .PP This manual page SAPHanaSR-ScaleOut provides information for setting up @@ -328,16 +328,21 @@ Important is that this feature does not change the HANA topology or interfaces. In opposite to Native Storage Extension, the HANA Extension Nodes are changing the topology and thus currently are not supported. Please refer to SAP documentation for details. -.PP +.PP +27. No manual actions must be performed on the HANA database while it is controlled +by the Linux cluster. All administrative actions need to be aligned with the cluster. +See also SAPHanaSR_maintenance_examples(7). +.PP .\" .SH BUGS -.\" TODO +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR\fP(7) , \fBocf_suse_SAPHanaTopology\fP(7) , \fBocf_suse_SAPHanaController\fP(7) , \fBocf_heartbeat_IPaddr2\fP(7) , \fBSAPHanaSR-ScaleOut_basic_cluster\fP(7) , @@ -371,14 +376,15 @@ https://blogs.sap.com/2020/01/30/sap-hana-and-persistent-memory/ .\" TODO SAP notes 3007062 ... .PP .SH AUTHORS -.br +.PP A.Briel, F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2015-2017 SUSE Linux GmbH, Germany. .br -(c) 2018-2023 SUSE LLC +(c) 2018-2024 SUSE LLC .br The package SAPHanaSR-angi comes with ABSOLUTELY NO WARRANTY. .br diff --git a/man/SAPHanaSR.7 b/man/SAPHanaSR.7 index 68b6103e..200dd0a5 100644 --- a/man/SAPHanaSR.7 +++ b/man/SAPHanaSR.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR 7 "18 Dec 2023" "" "SAPHanaSR-angi" +.TH SAPHanaSR 7 "20 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR \- Automating SAP HANA system replication in scale-up setups. @@ -295,15 +295,20 @@ Please refer to SAP documentation for details. .PP 25. The Linux user root´s shell is /bin/bash, or completely compatible. .PP +26. No manual actions must be performed on the HANA database while it is controlled +by the Linux cluster. All administrative actions need to be aligned with the cluster. +See also SAPHanaSR_maintenance_examples(7). +.PP .\" .SH BUGS -.\" TODO +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-ScaleOut\fP(7) , \fBocf_suse_SAPHanaTopology\fP(7) , \fBocf_suse_SAPHanaController\fP(7) , \fBocf_heartbeat_IPaddr2\fP(7) , \fBSAPHanaSR_basic_cluster\fP(7) , @@ -340,11 +345,12 @@ https://blogs.sap.com/2020/01/30/sap-hana-and-persistent-memory/ .PP .\" .SH AUTHORS -.br +.PP A.Briel, F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2015-2017 SUSE Linux GmbH, Germany. .br (c) 2018-2024 SUSE LLC diff --git a/man/SAPHanaSR_maintenance_examples.7 b/man/SAPHanaSR_maintenance_examples.7 index ada2a8be..bbba9086 100644 --- a/man/SAPHanaSR_maintenance_examples.7 +++ b/man/SAPHanaSR_maintenance_examples.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.001 .\" -.TH SAPHanaSR_maintenance_examples 7 "18 Sep 2024" "" "SAPHanaSR" +.TH SAPHanaSR_maintenance_examples 7 "20 Sep 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR_maintenance_examples \- maintenance examples for SAPHanaController. @@ -19,7 +19,7 @@ below. .SH EXAMPLES .PP \fB*\fR Check status of Linux cluster and HANA system replication pair. - +.PP This steps should be performed before doing anything with the cluster, and after something has been done. See also cs_show_saphanasr_status(8) and section REQUIREMENTS below. @@ -37,7 +37,7 @@ REQUIREMENTS below. .RE .PP \fB*\fR Watch status of HANA cluster resources and system replication. - +.PP This might be convenient when performing administrative actions or cluster tests. It does not replace the afore mentioned checks. See also cs_show_saphanasr_status(8). .PP .RS 4 @@ -45,7 +45,7 @@ This might be convenient when performing administrative actions or cluster tests .RE .PP \fB*\fR Overview on stopping the HANA database at one site. - +.PP This procedure does work for scale-up and scale-out. No takeover will be done. This procedure should be used, when it is necessary to stop the HANA database. Stopping the HANA database should not be done by just stopping the Linux cluster or shutting down the OS. This particularly @@ -70,7 +70,7 @@ tuning and stopping an HANA database. Note: Do not forget to end the resource maintenance after you have re-started the HANA database. .PP \fB*\fR Initiate an administrative takeover of the HANA primary from one node to the other by using the Linux cluster. - +.PP This procedure does not work for scale-out. On scale-up, it will stop the HANA primary. This might take a while. If you want to avoid waiting for the stopped primary, use the below procedure which suspends the primary. @@ -105,7 +105,7 @@ After takeover of the primary has been finished, the migration rule has to be de Note: Former versions of the Linux cluster used "migrate" instead of "move" and "unmigrate" instead of "clear". .PP \fB*\fR Perform an SAP HANA takeover by using SAP tools. - +.PP The procedure is described here for scale-out. It works for scale-up as well. The procedure will stop the HANA primary. This might take a while. If you want to avoid waiting for the stopped primary, use the below procedure which suspends @@ -211,7 +211,7 @@ If everything looks fine, proceed. .RE .PP \fB*\fR Overview on SAP HANA takeover using SAP tools and suspend primary feature. - +.PP The procedure works for scale-up and scale-out. The status of HANA databases, system replication and Linux cluster has to be checked. @@ -251,7 +251,7 @@ site name. .RE .PP \fB*\fR Check the two site names that are known to the Linux cluster. - +.PP This is useful in case AUTOMATED_REGISTER is not yet set. In that case a former primary needs to be registered manually with the former site name as new secondary. The point is finding the site name that already is in use by the Linux cluster. That exact site name has to be used for registration of the new secondary. See also REQUIREMENTS of SAPHanaSR(7) and SAPHanaSR-ScaleOut(7). .br In this example, node is suse11 on the future secondary site to be registered. Remote HANA master nameserver is suse21 on current primary site. Lowercase-SID is ha1. @@ -269,7 +269,7 @@ In this example, node is suse11 on the future secondary site to be registered. R .RE .PP \fB*\fR Manually start the HANA primary if only one site is available. - +.PP This might be necessary in case the cluster can not detect the status of both sites. This is an advanced task. .PP @@ -298,7 +298,7 @@ This is an advanced task. .RE .PP \fB*\fR Start Linux cluster after node has been fenced. - +.PP It is recommended to not configure the Linux cluster for always starting autmatically on boot. Better is to start automatically only, if cluster and/or node have been stopped cleanly. If the node has been rebooted by STONITH, the @@ -316,9 +316,11 @@ STONITH. STONITH via SBD is used in this example. # crm_mon -r .RE .PP -.\" +.\" \fB*\fR Register secondary HANA after takeover. +.\" TODO for AUTOMATED_REGISTER=false +.\" \fB*\fR Overview on maintenance procedure for Linux, HANA remains running, on pacemaker-2.0. - +.PP It is necessary to wait for each step to complete and to check the result. It also is necessary to test and document the whole procedure before applying in production. See also section REQUIREMENTS below and example on checking status @@ -378,7 +380,7 @@ of HANA and cluster above. .PP \fB*\fR Overview on simple procedure for stopping and temporarily disabling the Linux cluster, HANA gets fully stopped. - +.PP This procedure can be used to update HANA, OS or hardware. HANA roles and resource status remains unchanged. It is necessary to wait for each step to complete and to check the result. @@ -415,12 +417,12 @@ It also is necessary to test and document the whole procedure before applying in .br - system replication recovers to SOK .RE - +.PP Note: HANA is not available from step 4 to step 9. .RE .PP \fB*\fR Overview on update procedure for the SAPHanaSR-angi package. - +.PP This procedure can be used to update RAs, HANA HADR provider hook scripts and related tools while HANA and Linux cluster stay online. See also SAPHanaSR-manageAttr(8) for details on reloading the HANA HADR provider. .PP .RS 2 @@ -440,7 +442,7 @@ This procedure can be used to update RAs, HANA HADR provider hook scripts and re .RE .PP \fB*\fR Remove left-over maintenance attribute from overall Linux cluster. - +.PP This could be done to avoid confusion caused by different maintenance procedures. See above overview on maintenance procedures with running Linux cluster. Before doing so, check for cluster attribute maintenance-mode="false". @@ -456,7 +458,7 @@ Before doing so, check for cluster attribute maintenance-mode="false". .RE .PP \fB*\fR Remove left-over standby attribute from Linux cluster nodes. - +.PP This could be done to avoid confusion caused by different maintenance procedures. See above overview on maintenance procedures with running Linux cluster. Before doing so for all nodes, check for node attribute standby="off" on all nodes. @@ -472,7 +474,7 @@ Before doing so for all nodes, check for node attribute standby="off" on all nod .RE .PP \fB*\fR Remove left-over maintenance attribute from resource. - +.PP This should usually not be needed. See above overview on maintenance procedures with running Linux cluster. .PP @@ -485,12 +487,12 @@ See above overview on maintenance procedures with running Linux cluster. .RE .PP \fB*\fR Manually update global site attribute. - +.PP .\" TODO: attributes still used for angi? In rare cases the global site attribute hana__glob_prim or hana__glob_sec is not updated automatically after successful takeover, while all other attributes are updated correctly. The global site attribute -stays outdated even after the cluster has been idle for a while. +stays outdated even after the Linux cluster has been idle for a while. In this case, that site attribute could be updated manually. Make sure everything else is fine and just the global site attribute has not been updated. Updating hana__glob_sec for SID HA1 with site name VOLKACH: @@ -504,7 +506,7 @@ been updated. Updating hana__glob_sec for SID HA1 with site name VOLKACH: .RE .PP \fB*\fR Upgrade scale-out srHook attribute from old-style to multi-target. - +.PP As final result of this upgrade, the RAs and hook script are upgraded from old-style to multi-target. Further the Linux cluster's old-style global srHook attribute hana_${sid}_glob_srHook is replaced by site-aware attributes @@ -542,7 +544,6 @@ l. Finally check if everything looks fine. .PP .\" .SH FILES -.br .PP .\" .SH REQUIREMENTS @@ -564,12 +565,16 @@ being written into CIB attributes. The current HANA SR status might differ from srHook attribute after Linux cluster maintenance. .PP \fB*\fR Manually activating an HANA primary, like start of HANA primary or takeover -outside the cluster creates risk of a duplicate-primary situation. The user is -responsible for data integrity, particularly when activating an HANA primary. See -also susTkOver.py(7). +outside the Linux cluster creates risk of a duplicate-primary situation. The user +is responsible for data integrity, particularly when activating an HANA primary. +See also susTkOver.py(7). +.PP +\fB*\fR When manually disabling or unregistering HANA system replication that is +controlled by the Linux cluster, the SAPHanaController resource needs to be in +maintenance mode. The user is responsible for data integrity. .PP \fB*\fR HANA site names are discovered automatically when the RAs are activated the -very first time. That exact site names have to be used later for all manual tasks. +very first time. That exact site names have to be used later for all manual tasks. .PP .\" .SH BUGS diff --git a/man/ocf_suse_SAPHanaController.7 b/man/ocf_suse_SAPHanaController.7 index e1f73007..eb4cbc9a 100644 --- a/man/ocf_suse_SAPHanaController.7 +++ b/man/ocf_suse_SAPHanaController.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH ocf_suse_SAPHanaController 7 "21 Jun 2024" "" "OCF resource agents" +.TH ocf_suse_SAPHanaController 7 "20 Sep 2024" "" "OCF resource agents" .\" .SH NAME SAPHanaController \- Manages takeover between two SAP HANA databases with system replication. @@ -11,7 +11,7 @@ SAPHanaController \- Manages takeover between two SAP HANA databases with system .PP .\" .SH DESCRIPTION - +.PP \fBSAPHanaController\fP is a resource agent (RA) for SAP HANA databases in scale-up and scale-out setups. It manages takeover for a SAP HANA database with system replication in an OCF promotable clone configuration. .PP @@ -87,7 +87,7 @@ Please see also the REQUIREMENTS section below. .PP .\" .SH SUPPORTED PARAMETERS -.br +.PP This resource agent supports the following parameters: .PP \fBSID\fR @@ -176,7 +176,7 @@ Optional. Default value: false\&. .PP .\" .SH SUPPORTED PROPERTIES -.br +.PP \fBhana_${sid}_glob_filter\fR .RS 4 Global cluster property \fBhana_${sid}_glob_filter\fR . This property defines which messages are logged by the RA. It should only be set if requested by support engineers. The default is sufficient for normal operation. See also SAPHanaSR-showAttr(8). @@ -218,6 +218,7 @@ Optional. .PP .\" .SH SUPPORTED ACTIONS +.PP This resource agent supports the following actions (operations): .PP \fBstart\fR @@ -285,6 +286,7 @@ Changes parameters without forcing a recover of the resource. Suggested minimum .PP .\" .SH RETURN CODES +.PP The return codes are defined by the OCF cluster framework. Please refer to the OCF definition on the website mentioned below. In addition return code 124 will be logged if HANA_CALL_TIMEOUT has been exceeded. @@ -293,6 +295,7 @@ In addition, log entries are written, which can be scanned by using a pattern li .PP .\" .SH EXAMPLES +.PP * Below is an example configuration for a SAPHanaController multi-state resource in an HANA scale-out performance-optimised scenario. .br The HANA consists of two sites with five nodes each. An additional cluster node is used as majority maker for split-brain situations. In addition, a SAPHanaTopology clone resource is needed to make this work. @@ -394,22 +397,22 @@ OCF_RESKEY_CRM_meta_interval=0 .RE .PP * Use of DUPLICATE_PRIMARY_TIMEOUT and Last Primary Timestamp (LPT) in case the primary node has been crashed completely. - +.PP Typically on each side where the RA detects a running primary a time stamp is written to the node's attributes (last primary seen at time: lpt). If the timestamps ("last primary seen at") differ less than the DUPLICATE_PRIMARY_TIMEOUT then the RA could not automatically decide which of the two primaries is the better one. - +.PP .RS 2 1. nodeA is primary and has a current time stamp, nodeB is secondary and has a secondary marker set: .br nodeA: 1479201695 .br nodeB: 30 - +.PP 2. Now nodeA crashes and nodeB takes over: .br (nodeA: 1479201695) .br nodeB: 1479201700 - +.PP 3. A bit later nodeA comes back into the cluster: .br nodeA: 1479201695 @@ -417,7 +420,7 @@ nodeA: 1479201695 nodeB: 1479202000 .br You see while nodeA keeps its primary down the old timestamp is kept. NodeB increases its timestamp on each monitor run. - +.PP 4. After some more time (depending on the parameter DUPLICATE_PRIMARY_TIMEOUT) .br nodeA: 1479201695 @@ -425,13 +428,13 @@ nodeA: 1479201695 nodeB: 1479208895 .br Now the time stamps differ >= DUPLICATE_PRIMARY_TIMEOUT. The algorithm defines nodeA now as "the looser" and depending on the AUTOMATED_REGISTER the nodeA will become the secondary. - +.PP 5. NodeA would be registered: .br nodeA: 10 .br nodeB: 1479208900 - +.PP 6. Some time later the secondary gets into sync .br nodeA: 30 @@ -440,34 +443,34 @@ nodeB: 1479209100 .RE .PP * Use of DUPLICATE_PRIMARY_TIMEOUT and Last Primary Timestamp (LPT) in case the the database on primary node has been crashed, but the node is still alive. - +.PP Typically on each side where the RA detects a running primary a time stamp is written to the node's attributes (last primary seen at time: lpt). If the timestamps ("last primary seen at") differ less than the DUPLICATE_PRIMARY_TIMEOUT then the RA could not automatically decide which of the two primaries is the better one. - +.PP .RS 2 1. nodeA is primary and has a current time stamp, nodeB is secondary and has a secondary marker set: .br nodeA: 1479201695 .br nodeB: 30 - +.PP 2. Now HANA on nodeA crashes and nodeB takes over: .br nodeA: 1479201695 .br nodeB: 1479201700 - +.PP 3. As the cluster could be sure to properly stopped the HANA instance at nodeA it *immediately* marks the old primary to be a register candidate, if AUTOMATED_REGISTER is true: .br nodeA: 10 .br nodeB: 1479201760 - +.PP 4. Depending on the AUTOMATED_REGISTER parameter the RA will also immediately regisiter the former primary to become the new secondary: .br nodeA: 10 .br nodeB: 1479201820 - +.PP 5. And after a while the secondary gets in sync .br nodeA: 30 @@ -476,7 +479,7 @@ nodeB: 1479202132 .RE .PP * Set parameter AUTOMATED_REGISTER="true". See SUPPORTED PARAMETERS section above for details. - +.PP .RS 4 # crm_resource -r rsc_SAPHanaCon_HA1_HDB00 -p AUTOMATED_REGISTER -v true .br @@ -508,6 +511,7 @@ default path for DIR_PROFILE .PP .\" .SH REQUIREMENTS +.PP For the current version of the SAPHanaController resource agent that comes with the software package SAPHanaSR-angi, the support is limited to the scenarios and parameters described in the manual pages SAPHanaSR(7) and SAPHanaSR-ScaleOut(7). .PP .\" From d4e5ac43a5ef81ae9177c5eb3889a358a77da209 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 20 Sep 2024 09:30:36 +0200 Subject: [PATCH 250/414] SAPHanaSR-ScaleOut.7: formatting --- man/SAPHanaSR-ScaleOut.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/SAPHanaSR-ScaleOut.7 b/man/SAPHanaSR-ScaleOut.7 index 04dfad3a..eb2eed8d 100644 --- a/man/SAPHanaSR-ScaleOut.7 +++ b/man/SAPHanaSR-ScaleOut.7 @@ -331,7 +331,7 @@ Please refer to SAP documentation for details. .PP 27. No manual actions must be performed on the HANA database while it is controlled by the Linux cluster. All administrative actions need to be aligned with the cluster. -See also SAPHanaSR_maintenance_examples(7). +See also SAPHanaSR_maintenance_examples(7). .PP .\" .SH BUGS From 605f03075d0a22be940fca125c79abc247250e71 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 25 Sep 2024 09:48:17 +0200 Subject: [PATCH 251/414] susHanaSR.py.7: nameserver.ini example --- man/susHanaSR.py.7 | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/man/susHanaSR.py.7 b/man/susHanaSR.py.7 index 05afc369..f307a805 100644 --- a/man/susHanaSR.py.7 +++ b/man/susHanaSR.py.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH susHanaSR.py 7 "01 Mar 2024" "" "SAPHanaSR" +.TH susHanaSR.py 7 "24 Sep 2024" "" "SAPHanaSR" .\" .SH NAME susHanaSR.py \- Provider for SAP HANA srHook method srConnectionChanged(). @@ -69,7 +69,7 @@ Usage, syntax or execution errors. \fB*\fR Example for entry in sudo permissions /etc/sudoers.d/SAPHanaSR .PP .RS 2 -# SAPHanaSR (Scale-Up) needs for srHook +# SAPHanaSR needs for srHook .br ha1adm ALL=(ALL) NOPASSWD: /usr/sbin/crm_attribute -n hana_ha1_site_srHook_* .RE @@ -129,6 +129,32 @@ register_secondaries_on_takeover = true ... .RE .PP +* Example for entry in SAP HANA 2.0 nameserver configuration +/hana/shared/$SID/global/hdb/custom/config/nameserver.ini for two-node scale-out HANA without standby nodes. +.br +This entry is needed at both sites that are managed by the Linux cluster. +The HANA has to be stopped before the files can be edited. Do not copy the file +between nodes. It might be necessary to un-register and re-register the secondary +to make the change effective on the secondary site. +Please check SAP HANA documentation for details. In this example the master node +is suse11, the worker is suse12. +.PP +.RS 2 +[landscape] + ... +.br +master = suse11:31001 +.br +worker = suse11 suse12 +.br +active_master = suse11:31001 +.br +roles_suse11 = worker +.br +roles_suse12 = worker + ... +.RE +.PP \fB*\fR Example for checking the system log for srHook setting HANA system replication status in the CIB properties section. .br To be executed on respective HANA primary site's master nameserver. @@ -265,6 +291,9 @@ the hook provider, delivered with the RPM /hana/shared/$SID/global/hdb/custom/config/global.ini the on-disk representation of HANA global system configuration .TP +/hana/shared/$SID/global/hdb/custom/config/nameserver.ini +the on-disk representation of HANA nameserver configuration +.TP /etc/sudoers , /etc/sudoers.d/* the sudo permissions configuration .TP From 6294f451a195b7dce7ce7f86cbe945226df6548c Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 26 Sep 2024 16:34:43 +0200 Subject: [PATCH 252/414] kill_prim_pacemaker.json: initial checkin --- .../classic-ScaleUp/kill_prim_pacemaker.json | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 test/json/classic-ScaleUp/kill_prim_pacemaker.json diff --git a/test/json/classic-ScaleUp/kill_prim_pacemaker.json b/test/json/classic-ScaleUp/kill_prim_pacemaker.json new file mode 100644 index 00000000..090e3fc4 --- /dev/null +++ b/test/json/classic-ScaleUp/kill_prim_pacemaker.json @@ -0,0 +1,75 @@ +{ + "test": "kill_prim_pacemaker", + "name": "kill pacemaker-controld on primary node", + "purpose": [ + "ScaleUp", + "secondary", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_pacemaker", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 180, + "wait": 2, + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pSite": [ + "srHook == PRIM" + ], + "pHost": [ + "clone_state is None", + "lpa_@@sid@@_lpt > 1000000000", + "lss is None", + "srr is None", + "roles is None", + "score == -1", + "sync_state is None" + ] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 300, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "sSite": "pSiteUp", + "sHost": "pHostUp", + "pSite": [ + "srHook == PRIM" + ], + "pHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "lpa_@@sid@@_lpt > 1000000000" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 240, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 12c4c8ab3c7ac1e56ae55af670b9c08bab90fb8f Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 26 Sep 2024 16:35:05 +0200 Subject: [PATCH 253/414] kill_secn_pacemaker.json: fixes, still not ready --- .../classic-ScaleUp/kill_secn_pacemaker.json | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_secn_pacemaker.json b/test/json/classic-ScaleUp/kill_secn_pacemaker.json index a0c9c225..d8b25c5a 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemaker.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemaker.json @@ -24,47 +24,49 @@ { "step": "step20", "name": "failure detected", - "next": "step30", - "loop": 120, + "next": "final40", + "loop": 180, "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ - "lpt ~ (20|10)", - "lss == 1", - "srr == S", - "srHook == SFAIL", - "srPoll == SFAIL" + "srHook == SOK" ], - "sHost": [] + "sHost": [ + "clone_state is None", + "lpa_@@sid@@_lpt == 30", + "lss is None", + "srr is None", + "roles is None", + "score == -1", + "sync_state is None" + ] }, { "step": "step30", "name": "begin recover", "next": "final40", - "loop": 300, + "loop": 180, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ - "lpt ~ (20|10)", - "lss == 4", - "srr == S", - "srHook ~ (SOK|SWAIT)", - "srPoll ~ (SOK|SFAIL)" + "srHook == SOK" ], "sHost": [ "clone_state ~ (DEMOTED|UNDEFINED)", - "roles == master1::worker:", - "score ~ (100|145|150)" + "lpa_@@sid@@_lpt == 30", + "lss ~ (1|4)", + "srr == S", + "roles == master1::worker:" ] }, { "step": "final40", "name": "end recover", "next": "END", - "loop": 300, + "loop": 180, "wait": 2, "post": "cleanup", "pSite": "pSiteUp", From fcede22b3cb0502bf8c4f78599f7415ed72d95c9 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 11:22:50 +0200 Subject: [PATCH 254/414] SAPHanaSR_basic_cluster.7: PCMK_fail_fast=yes, bsc #1229078 --- man/SAPHanaSR_basic_cluster.7 | 113 ++++++++++++++++------------------ 1 file changed, 54 insertions(+), 59 deletions(-) diff --git a/man/SAPHanaSR_basic_cluster.7 b/man/SAPHanaSR_basic_cluster.7 index 5ff08b17..04222416 100644 --- a/man/SAPHanaSR_basic_cluster.7 +++ b/man/SAPHanaSR_basic_cluster.7 @@ -1,13 +1,13 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR 7 "18 Mar 2024" "" "SAPHanaSR_basic_cluster" +.TH SAPHanaSR 7 "27 Sep 2024" "" "SAPHanaSR_basic_cluster" .\" .SH NAME SAPHanaSR_basic_cluster \- SAP HANA System Replication scale-up basic cluster configuration. .PP .\" .SH DESCRIPTION -.\" +.PP The SAP HANA System Replication scale-up scenario needs a certain basic cluster configuration. Besides this necessary settings, some additional configurations might match specific needs. Adapting a few SAP HANA settings @@ -15,12 +15,11 @@ might be beneficial as well. .\" .\" \fB* Corosync Basics\fR .\" -.\".PP - +.PP \fB* CRM Basics\fR - +.PP \fBdefault-resource-stickiness = 1000\fR - +.PP The crm basic parameter default-resource-stickiness defines the 'stickiness' score a resource gets on the node where it is currently running. This prevents the cluster from moving resources around without an urgent need during a @@ -32,35 +31,34 @@ This is because SAPHanaSR uses an internal scoring table for placing the HANA roles on the right nodes. .br Mandatory, default 1. - +.PP \fBfailure-timeout = 86400\fR - +.PP The crm basic parameter failure-timeout defines how long failed actions will be kept in the CIB. After that time the failure record will be deleted. The time is measured in seconds. See also migration-threshold below. .br Optional, no default. - +.PP \fBmigration-threshold = 5000\fR - +.PP The crm basic parameter migration-threshold defines how many errors on a resource can be detected before this resource will be migrated to another node. See also \fBfailure-timeout\fR. .br Mandatory, default 3. - +.PP \fBrecord-pending = true\fR - +.PP The op_default record-pending defines, whether the intention of an action upon the resource is recorded in the Cluster Information Base (CIB). Setting this parameter to 'true' allows the user to see pending actions like 'starting' and 'stopping' in \fBcrm_mon\fR and \fBHawk\fR. .br Optional, default false. - .PP \fBpcmk_delay_max = 30\fR - +.PP The sbd stonith parameter pcmk_delay_max defines an upper limit for waiting before a fencing/stonith request will be triggerd. This parameter should prevent the cluster from unwanted double fencing in case @@ -68,10 +66,9 @@ of spilt-brain. A value around 30 seconds is required in two-node clusters, except priority fencing is used. .br Mandatory, default 5. - .PP \fBpriority-fencing-delay = 30\fR - +.PP The optional crm property priority-fencing-delay specified delay for the fencings that are targeting the lost nodes with the highest total resource priority in case we do not have the majority of the nodes in our cluster @@ -86,34 +83,43 @@ The delay should be significantly greater than, or safely twice, pcmk_delay_max. .br Optional, no default. - .PP \fB* systemd Basics\fR - +.PP \fBsaphostagent.service enabled\fR .br \fBSAP${SID}_${INO}.service enabled\fR - +.PP In case systemd-style init is used for the HANA database, the services saphostagent and SAP${SID}_${INO} need to be enabled and running inside the SAP slice. The instance profile Autostart feature needs to be off. The service saptune is highly recommended, see manual page saptune(8). - +.PP \fB* pacemaker service dependency to SAP instance service\fR - +.PP \fB[Unit]\fR .br \fBWants=SAP${SID}_${INO}.service\fR .br \fBAfter=SAP${SID}_${INO}.service\fR - +.PP In case systemd-style init is used for the HANA database, it might be desired to have the SAP instance service stopping after pacemaker at system shutdown. Therefor a drop-in file for the pacemaker service might help. See examples below. - +.PP +\fB* pacemaker service basics\fR +.PP +\fBPCMK_fail_fast = yes\fR +.PP +The parameter PCMK_fail_fast in /etc/sysconfig/pacemaker specifies how pacemaker +reacts on failures of its subdaemons. Default "no" means to restart failed +subdaemons, while "yes" means fencing the node. Recommended is "yes" to avoid +undefined situations. +.br +Optional, default no .PP \fB* SAP HANA Basics\fR - +.PP \fB/usr/sap/${SID}/SYS/global/hdb/custom/config/global.ini\fR .PP \fB[memorymanager]\fR @@ -126,8 +132,8 @@ Starting with SAP HANA 2.0 SPS06, the database shutdown can be accelerated by optimizing memory de-allocation. Please refer to SAP documentation before setting this parameters. .\" TODO SAP notes 3405297 ? - -\fB/usr/sap/${SID}/SYS/global/hdb/custom/config/daemon.ini +.PP +\fB/usr/sap/${SID}/SYS/global/hdb/custom/config/daemon.ini\fR .PP \fB[daemon]\fR .br @@ -142,16 +148,15 @@ The second defines the timeout from sending the SIGTERM to finally terminating child processes when HANA is shutting down by the QUIT event. Please refer to SAP documentation before setting this parameters. .\" TODO check above - .PP .\" .SH EXAMPLES - +.PP \fB* crm basic configuration\fR - +.PP Below is an example crm basic configuration for SAPHanaSR. Shown are specific parameters which are needed. Some general parameters are left out. - +.PP The following example is for 15 SP5 with disk-based SBD: .PP .RS 2 @@ -186,9 +191,8 @@ op_defaults op-options: \\ record-pending=true .RE .PP - \fB* crm simple SBD stonith configuration\fR - +.PP To complete the SBD setup, it is necessary to activate SBD as STONITH/fencing mechanism in the CIB. The SBD is normally used for SAPHanaSR scale-up instead of any other fencing/stonith mechanism. Example for a basic disk-based @@ -200,9 +204,8 @@ primitive rsc_stonith_sbd stonith:external/sbd \\ params pcmk-delay-max=30 .RE .PP - \fB* crm priority fencing SBD stonith configuration\fR - +.PP .\" TODO priority fencing for two-node cluster, rsc_SAPHana_... meta priority=100 Example for a priority fencing disk-based SBD resource. .PP @@ -217,9 +220,8 @@ property cib-bootstrap-options: \\ priority-fencing-delay=30 .RE .PP - \fB* crm simple IP address resource configuration\fR - +.PP Let the Linux cluster manage one IP address and move that address along with the HANA primary master nameserver. .PP @@ -237,9 +239,8 @@ colocation col_ip_with_SLE_HDB00 \\ .RE .PP .\" TODO seamless maintenance IP location - \fB* crm IP address for active/active read-enabled resource configuration\fR - +.PP Let the Linux cluster manage an additional IP address and move that address along with the HANA secondary master nameserver. .\" TODO multi-node see below @@ -264,13 +265,12 @@ location loc_ip_ro_not_master_SLE_HDB00 \\ .\" TODO works this for multi-node: rule 8000: score eq 100 .RE .PP - \fB* crm grouped IP address resource configuration\fR - +.PP Let the Linux cluster manage one IP address and move that address along with the HANA primary master nameserver. An auxiliary resource is needed for specific public cloud purpose. - +.PP You should not bind resource to the HANA master role. This would change the effective resource scoring and might prevent the cluster from taking expected actions. If, for any reason, you need to bind additional resource to the @@ -297,16 +297,15 @@ colocation col_ip_with_SLE_HDB00 \\ 8000: grp_ip_SLE_HDB00:Started mst_SAPHanaCon_SLE_HDB00:Promoted .RE .PP - \fB* crm MailTo resource configuration\fR - +.PP The HANA landscape status is stored inside CIB as attribute hana__roles. A healthy HANA master looks like "4:P:master1:master:worker:master". First field is the HANA landscape status. If that status goes to 3 or 2, something has happened to HANA, but the cluster will not perform a takeover. Status 1 will trigger a takeover, status 0 indicates an undefined fatal failure. See manual pages ocf_suse_SAPHanaController(7) and ocf_heartbeat_MailTo(7). - +.PP You could define a MailTo resource that informs you as soon as attribute hana__roles deviates from above ideal: .PP @@ -322,9 +321,8 @@ location loc_mailto_HA1_HDB10_with_prim rsc_mailto_HA1_HDB10 \\ rule hana_ha1_roles eq 4:P:master1:master:worker:master .RE .PP - \fB* check how resource stickiness affects promotion scoring\fR - +.PP SAPHanaSR uses an internal scoring table. The promotion scores for HANA primary and secondary master are in a certain range. The scores used by the Linux cluster should be in the same range. @@ -336,9 +334,8 @@ Linux cluster should be in the same range. # crm_simulate -Ls | grep promotion .RE .PP - \fB* clean up SDB stonith resource after write failure\fR - +.PP In rare cases the SBD stonith resource fails writing to the block device. After the root cause has been found and fixed, the failure message can be cleaned. @@ -348,9 +345,8 @@ cleaned. # stonith_admin --cleanup --history= .RE .PP - \fB* check saphostagent and show SAP instances\fR - +.PP Basic check for the saphostagent. .PP .RS 2 @@ -359,9 +355,8 @@ Basic check for the saphostagent. # /usr/sap/hostctrl/exe/saphostctrl -function ListInstances .RE .PP - \fB* check systemd services for the HANA database\fR - +.PP In case systemd-style init is used for the HANA database, the services can be checked. Example SID is HA1, instance number is 10. .PP @@ -379,14 +374,12 @@ checked. Example SID is HA1, instance number is 10. .\" TODO check Autostart not set. .RE .PP - \fB* show pacemaker service drop-in file\fR - +.PP In case systemd-style init is used for the HANA database, it might be desired to have the SAP instance service stopping after pacemaker at system shutdown. A drop-in file might help. Example SID is S07, instance number is 00. - -.pp +.PP .RS 2 # cat /etc/systemd/system/pacemaker.service.d/00-pacemaker.conf .br @@ -401,9 +394,8 @@ Wants=SAPS07_00.service After=SAPS07_00.service .RE .PP - \fB* check for pacemaker dependency to SAP instance service\fR - +.PP Example SID is S07, instance number is 00. .PP .RS 2 @@ -416,12 +408,14 @@ Example SID is S07, instance number is 00. .PP .\" .SH BUGS +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBocf_suse_SAPHanaTopology\fP(7) , \fBocf_suse_SAPHanaController\fP(7) , \fBocf_suse_SAPHanaFilesystem\fP(7) , \fBocf_heartbeat_IPaddr2\fP(7) , \fBocf_heartbeat_MailTo\fP(7) , @@ -442,11 +436,12 @@ https://www.suse.com/support/kb/ , https://www.clusterlabs.org .PP .SH AUTHORS -.br +.PP A.Briel, F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2018 SUSE Linux GmbH, Germany. .br (c) 2019-2024 SUSE LLC From ac70ad24042ada1be9d70a2205e02dd79ed09f77 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 11:23:25 +0200 Subject: [PATCH 255/414] SAPHanaSR-ScaleOut_basic_cluster.7 susHanaSR.py.7: nameserver.ini for ERP, formatting --- man/SAPHanaSR-ScaleOut_basic_cluster.7 | 128 ++++++++++++++----------- man/susHanaSR.py.7 | 5 + 2 files changed, 76 insertions(+), 57 deletions(-) diff --git a/man/SAPHanaSR-ScaleOut_basic_cluster.7 b/man/SAPHanaSR-ScaleOut_basic_cluster.7 index 02b44ba1..5975b6c5 100644 --- a/man/SAPHanaSR-ScaleOut_basic_cluster.7 +++ b/man/SAPHanaSR-ScaleOut_basic_cluster.7 @@ -1,13 +1,13 @@ -.\" Version: 1.001 +.88\" Version: 1.001 .\" -.TH SAPHanaSR-ScaleOut_basic_cluster 7 "18 Mar 2024" "" "SAPHanaSR" +.TH SAPHanaSR-ScaleOut_basic_cluster 7 "27 Sep 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR-ScaleOut_basic_cluster \- SAP HANA System Replication scale-out basic cluster configuration. .PP .\" .SH DESCRIPTION -.\" +.PP The SAP HANA System Replication scale-out scenario needs a certain basic cluster configuration. Besides this necessary settings, some additional configurations might match specific needs. Adapting a few SAP HANA settings @@ -15,12 +15,11 @@ might be beneficial as well. .\" .\" \fB* Corosync Basics\fR .\" -.\".PP - +.PP \fB* CRM Basics\fR - +.PP \fBno-quorum-policy = freeze\fR - +.PP The crm basic parameter no-quorum-policy defines how the cluster should act in case of quorum loss. With more than two nodes, the cluster must not ignore the quorum loss. For SAPHanaSR-ScaleOut, an odd number of nodes is required. Setting @@ -28,9 +27,9 @@ no-quorum-policy to 'freeze' won't allow the partition to shoot any other node when it doesn't have quorum. Cluster will not be able to add and start new resources, but running will stay alive. If the cluster uses disk-less SBD, the no-quorum-policy 'suicide' is required. - +.PP \fBdefault-resource-stickiness = 1000\fR - +.PP The crm basic parameter default-resource-stickiness defines the 'stickiness' score a resource gets on the node where it is currently running. This prevents the cluster from moving resources around without an urgent need during a @@ -40,80 +39,77 @@ HANA primary master resource can affect cluster decisions. Too high value might prevent not only unwanted but also useful actions. This is because SAPHanaSR uses an internal scoring table for placing the HANA roles on the right nodes. - +.PP \fBconcurrent-fencing = true\fR - +.PP The crm basic parameter concurrent-fencing allows the cluster to fence more than one node at a time. This helps to reduce the time needed for a take over in case a whole data center is lost. If nodes are fenced one by one, the time needed would be equal to the \fBnumber of nodes * stonith timeout\fR. With concurrent-fencing enabled the time needed is in the range of \fB2 * stonith timeout\fR, independent of the number of nodes. See also \fBpcmk_action_limit\fR below. - +.PP \fBfailure-timeout = 86400\fR - +.PP The crm basic parameter failure-timeout defines how long failed actions will be kept in the CIB. After that time the failure record will be deleted. The time is measured in seconds. See also \fBmigration-threshold\fR below. - +.PP \fBmigration-threshold = 50\fR - +.PP The crm basic parameter migration-threshold defines how many errors on a resource can be detected before this resource will be migrated to another node. See also \fBfailure-timeout\fR. - +.PP \fBrecord-pending = false\fR - +.PP The op_default record-pending defines, whether the intention of an action upon the resource is recorded in the Cluster Information Base (CIB). Setting this parameter to 'true' allows the user to see pending actions like 'starting' and 'stopping' in \fBcrm_mon\fR and \fBHawk\fR. - .PP \fB* SBD STONITH Basics\fR - +.PP \fBpcmk_action_limit = -1\fR - +.PP The sbd stonith parameter pcmk_action_limit defines the maximum number of concurrent fencing actions. It allows parallel fencing of multiple nodes. A value of '-1' means virtually unlimited. See also \fBconcurrent-fencing\fR above. - +.PP \fBpcmk_delay_max = 1s\fR - +.PP The sbd stonith parameter pcmk_delay_max defines an upper limit for waiting before a fencing/stonith request will be triggerd. This parameter should prevent the cluster from unwanted double fencing in case of spilt-brain. A value around 30 seconds is required in two-node clusters. It is not needed in usual SAPHanaSR-ScaleOut setups. - .PP \fB* systemd Basics\fR - +.PP \fBsaphostagent.service enabled\fR .br \fBSAP${SID}_${INO}.service enabled\fR - +.PP In case systemd-style init is used for the HANA database, the services saphostagent and SAP${SID}_${INO} need to be enabled and running inside the SAP slice. The instance profile Autostart feature needs to be off. The service saptune is highly recommended, see manual page saptune(8). - +.PP \fB* pacemaker service dependency to SAP instance service\fR - +.PP \fB[Unit]\fR .br \fBWants=SAP${SID}_${INO}.service\fR .br \fBAfter=SAP${SID}_${INO}.service\fR - +.PP In case systemd-style init is used for the HANA database, it might be desired to have the SAP instance service stopping after pacemaker at system shutdown. Therefor a drop-in file for the pacemaker service might help. See examples below. - .PP \fB* SAP HANA Basics\fR - +.PP \fB/usr/sap/${SID}/SYS/global/hdb/custom/config/global.ini\fR .PP \fB[memorymanager]\fR @@ -126,7 +122,7 @@ Starting with SAP HANA 2.0 SPS06, the database shutdown can be accelerated by optimizing memory de-allocation. Please refer to SAP documentation before setting this parameters. .\" TODO SAP notes 3405297 ? - +.PP \fB/usr/sap/${SID}/SYS/global/hdb/custom/config/daemon.ini .PP \fB[daemon]\fR @@ -143,13 +139,38 @@ child processes when HANA is shutting down by the QUIT event. See also manual pa susChkSrv.py(7). Please refer to SAP documentation before setting this parameters. .\" TODO check above - +.PP +\fB/hana/shared/$SID/global/hdb/custom/config/nameserver.ini\fR +.PP +.RS 2 +[landscape] + ... +.br +master = suse11:31001 +.br +worker = suse11 suse12 +.br +active_master = suse11:31001 +.br +roles_suse11 = worker +.br +roles_suse12 = worker + ... +.RE +.PP +For two-node scale-out HANA without standby nodes, this entry is needed at both +sites that are managed by the Linux cluster. +The HANA has to be stopped before the files can be edited. Do not copy the file +between nodes. It might be necessary to un-register and re-register the secondary +to make the change effective on the secondary site. +Please check SAP HANA documentation for details. In this example the master node +is suse11, the worker is suse12. .PP .\" .SH EXAMPLES - +.PP \fB* crm basic configuration\fR - +.PP Below is an example crm basic configuration for SAPHanaSR-ScaleOut. Shown are specific parameters which are needed. Some general parameters are left out. .br @@ -231,9 +252,8 @@ op_defaults op-options: \\ .RE .PP .\" TODO example for SLE-HA 15 SP5 with disk-based and diskless SBD. - \fB* crm SBD stonith configuration\fR - +.PP To complete the SBD setup, it is necessary to activate SBD as STONITH/fencing mechanism in the CIB. The SBD is normally used for SAPHanaSR-ScaleOut instead of any other fencing/stonith mechanism. Example for a basic disk-based SBD @@ -246,9 +266,8 @@ primitive rsc_stonith_sbd stonith:external/sbd \\ params pcmk_action_limit="-1" pcmk_delay_max="1" .RE .PP - \fB* crm simple IP address resource configuration\fR - +.PP Let the Linux cluster manage one IP address and move that address along with the HANA primary master nameserver. .PP @@ -265,9 +284,8 @@ colocation col_ip_with_SLE_HDB00 \\ 2000: rsc_ip_SLE_HDB00:Started mst_SAPHanaCon_SLE_HDB00:Promoted .RE .PP - \fB* crm IP address for active/active read-enabled resource configuration\fR - +.PP Let the Linux cluster manage an additional IP address and move that address along with the HANA secondary master nameserver. .br @@ -294,9 +312,8 @@ location loc_ip_ro_not_master_SLE_HDB00 \\ .\" TODO works this for multi-node: rule 8000: score eq 100 .RE .PP - \fB* crm grouped IP address resource configuration\fR - +.PP Let the Linux cluster manage one IP address and move that address along with the HANA primary master nameserver. An auxiliary resource is needed for specific public cloud purpose. @@ -322,9 +339,8 @@ colocation col_ip_with_SLE_HDB00 \\ 8000: grp_ip_SLE_HDB00:Started mst_SAPHanaCon_SLE_HDB00:Promoted .RE .PP - \fB* check how resource stickiness affects promotion scoring\fR - +.PP SAPHanaSR uses an internal scoring table. The promotion scores for HANA primary and secondary master are in a certain range. The scores used by the Linux cluster should be in the same range. @@ -335,9 +351,8 @@ Linux cluster should be in the same range. # crm_simulate -Ls | grep promotion .RE .PP - \fB* clean up SDB stonith resource after write failure\fR - +.PP In rare cases the SBD stonith resource failes writing to the block device. After the root cause has been found and fixed, the failure message can be cleaned. @@ -346,9 +361,8 @@ cleaned. # stonith_admin --cleanup --history= .RE .PP - \fB* check saphostagent and show SAP instances\fR - +.PP Basic check for the saphostagent. .PP .RS 2 @@ -357,9 +371,8 @@ Basic check for the saphostagent. # /usr/sap/hostctrl/exe/saphostctrl -function ListInstances .RE .PP - \fB* check systemd services for the HANA database\fR - +.PP In case systemd-style init is used for the HANA database, the services can be checked. Example SID is HA1, instance number is 10. .PP @@ -376,14 +389,12 @@ checked. Example SID is HA1, instance number is 10. .\" TODO check Autostart not set. .RE .PP - \fB* show pacemaker service drop-in file\fR - +.PP In case systemd-style init is used for the HANA database, it might be desired to have the SAP instance service stopping after pacemaker at system shutdown. A drop-in file might help. Example SID is S07, instance number is 00. - -.pp +.PP .RS 2 # cat /etc/systemd/system/pacemaker.service.d/00-pacemaker.conf .br @@ -398,9 +409,8 @@ Wants=SAPS07_00.service After=SAPS07_00.service .RE .PP - \fB* check for pacemaker dependency to SAP instance service\fR - +.PP Example SID is S07, instance number is 00. .PP .RS 2 @@ -413,12 +423,14 @@ Example SID is S07, instance number is 00. .PP .\" .SH BUGS +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBocf_suse_SAPHanaTopology\fP(7) , \fBocf_suse_SAPHanaController\fP(7) , \fBocf_suse_SAPHanaFilesystem\fP(7) , \fBocf_heartbeat_IPaddr2\fP(7) , \fBsbd\fP(8) , \fBstonith_sbd\fP(7) , \fBstonith_admin\fP(8) , @@ -437,12 +449,14 @@ https://www.suse.com/support/kb/ , .br https://www.clusterlabs.org .PP +.\" .SH AUTHORS -.br +.PP F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2018 SUSE Linux GmbH, Germany. .br (c) 2019-2024 SUSE LLC diff --git a/man/susHanaSR.py.7 b/man/susHanaSR.py.7 index f307a805..dfdda852 100644 --- a/man/susHanaSR.py.7 +++ b/man/susHanaSR.py.7 @@ -305,6 +305,7 @@ the internal cache for srHook status changes while Linux cluster is down, file i .PP .\" .SH REQUIREMENTS +.PP 1. SAP HANA 2.0 SPS05 rev.059.04 or later provides Python 3 as well as the HA/DR provider hook method srConnectionChanged() with multi-target aware parameters. The Python 3 and multi-target aware parameters are needed for the SAPHanaSR-angi @@ -328,12 +329,14 @@ in memory and on disk (in persistence). Linux cluster. .\" .SH BUGS +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBSAPHanaSR-angi\fP(7) , \fBocf_suse_SAPHanaTopology\fP(7) , \fBocf_suse_SAPHanaController\fP(7) , \fBocf_heartbeat_IPaddr2\fP(7) , @@ -349,10 +352,12 @@ https://help.sap.com/docs/SAP_HANA_PLATFORM/6b94445c94ae495c83a19646e7c3fd56/5df .PP .\" .SH AUTHORS +.PP A.Briel, F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2015-2017 SUSE Linux GmbH, Germany. .br (c) 2018-2024 SUSE LLC From 8e07684970d2abde9dd1d447a561e04c19c5d4b0 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 11:48:23 +0200 Subject: [PATCH 256/414] kill_secn_node.json: simplified by using pSiteUp --- test/json/classic-ScaleUp/kill_secn_node.json | 23 ++++--------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_secn_node.json b/test/json/classic-ScaleUp/kill_secn_node.json index 07ddfdc0..ac6a6c75 100644 --- a/test/json/classic-ScaleUp/kill_secn_node.json +++ b/test/json/classic-ScaleUp/kill_secn_node.json @@ -21,19 +21,11 @@ "next": "step30", "loop": 180, "wait": 2, - "pSite": [ - "srHook == PRIM" - ], + "pSite": "pSiteUp", "sSite": [ "srHook == SFAIL" ], - "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", - "clone_state == PROMOTED", - "roles == 4:P:master1:master:worker:master", - "sync_state == PRIM", - "score == 150" - ], + "pHost": "pHostUp", "sHost": [ "lpa_@@sid@@_lpt == 10", "clone_state is None", @@ -48,18 +40,11 @@ "loop": 180, "wait": 2, "todo": "pHost+sHost to check site-name", - "pSite": [ - "srHook == PRIM" - ], + "pSite": "pSiteUp", "sSite": [ "srHook ~ (SFAIL|SWAIT|SOK)" ], - "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", - "clone_state == PROMOTED", - "roles == 4:P:master1:master:worker:master", - "score == 150" - ], + "pHost": "pHostUp", "sHost": [ "lpa_@@sid@@_lpt == 10", "clone_state ~ (UNDEFINED|DEMOTED)", From d908204abea3f1e63ac17c8ea578a526043edd74 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 11:50:15 +0200 Subject: [PATCH 257/414] kill_secn_pacemaker.json: for PCMK_fail_fast=yes, like kill_secn_node.json --- .../classic-ScaleUp/kill_secn_pacemaker.json | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_secn_pacemaker.json b/test/json/classic-ScaleUp/kill_secn_pacemaker.json index d8b25c5a..a86e911a 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemaker.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemaker.json @@ -24,22 +24,19 @@ { "step": "step20", "name": "failure detected", - "next": "final40", + "next": "step30", "loop": 180, "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ - "srHook == SOK" + "srHook == SFAIL" ], "sHost": [ + "lpa_@@sid@@_lpt == 10", "clone_state is None", - "lpa_@@sid@@_lpt == 30", - "lss is None", - "srr is None", "roles is None", - "score == -1", - "sync_state is None" + "score is None" ] }, { @@ -52,14 +49,14 @@ "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ - "srHook == SOK" + "srHook ~ (SFAIL|SWAIT|SOK)" ], "sHost": [ - "clone_state ~ (DEMOTED|UNDEFINED)", - "lpa_@@sid@@_lpt == 30", - "lss ~ (1|4)", - "srr == S", - "roles == master1::worker:" + "lpa_@@sid@@_lpt == 10", + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == 1:S:master1::worker:", + "sync_state ~ (SFAIL|SWAIT|SOK)", + "score ~ (-INFINITY|0)" ] }, { From 47071cfb52f7b6301d9d8643776c81ce4a4edc38 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 12:40:19 +0200 Subject: [PATCH 258/414] SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7 SAPHanaSR-tests-description.7 classic-ScaleUp/kill_prim_pacemaker.json classic-ScaleUp/kill_secn_pacemaker.json: kill_..._pacemaker --- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 2 +- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 2 +- man-tester/SAPHanaSR-tests-description.7 | 7 ++-- .../classic-ScaleUp/kill_prim_pacemaker.json | 42 +++++++++++++------ .../classic-ScaleUp/kill_secn_pacemaker.json | 9 ++-- 5 files changed, 39 insertions(+), 23 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 7caef62f..540a3fa1 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -62,7 +62,7 @@ Kill secondary instance. Kill secondary node. .TP \fBkill_secn_pacemaker\fP -Kill secondary pacemaker-controld. +Kill secondary pacemaker-controld. Not yet implemented. .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 70e97b05..8da98b3e 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -38,7 +38,7 @@ Kill primary instance. Kill primary node. .TP \fBkill_prim_pacemaker\fP -Kill primary pacemaker-controld. Not yet implemented. +Kill primary pacemaker-controld. .TP \fBkill_secn_indexserver\fP Kill secondary indexserver, for susChkSrv.py. diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 8cd4d6ce..a0dbd960 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -458,9 +458,10 @@ Prereq: Cluster and HANA are up and running, all good. .br Test: killall -9 pacemaker-controld .br -Expect: pacemaker-controld restarted. -HANA secondary TODO. -No takeover. No fencing. +Expect: Secondary (master) node fenced (for PCMK_fast_fail=yes). +HANA primary stays online. +SR SFAIL and finally SOK. +No takeover. One fencing. .br Comment: Cluster failure. .RE diff --git a/test/json/classic-ScaleUp/kill_prim_pacemaker.json b/test/json/classic-ScaleUp/kill_prim_pacemaker.json index 090e3fc4..d9743291 100644 --- a/test/json/classic-ScaleUp/kill_prim_pacemaker.json +++ b/test/json/classic-ScaleUp/kill_prim_pacemaker.json @@ -3,7 +3,7 @@ "name": "kill pacemaker-controld on primary node", "purpose": [ "ScaleUp", - "secondary", + "primary", "cluster" ], "todo": "please correct this file", @@ -25,45 +25,61 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 180, + "loop": 120, "wait": 2, "sSite": "sSiteUp", "sHost": "sHostUp", "pSite": [ - "srHook == PRIM" + "srHook ~ (PRIM|SWAIT|SREG)" + ], + "sSite": [ + "srHook ~ (PRIM|SOK)" ], "pHost": [ - "clone_state is None", "lpa_@@sid@@_lpt > 1000000000", - "lss is None", - "srr is None", + "clone_state is None", "roles is None", - "score == -1", + "score is None", "sync_state is None" + ], + "sHost": [ + "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "clone_state ~ (PROMOTED|DEMOTED)", + "roles ~ 4:(S|P):master1:master:worker:master", + "score ~ (100|145)", + "sync_state ~ (SOK|SFAIL)" ] }, { "step": "step30", "name": "begin recover", "next": "final40", - "loop": 300, + "loop": 180, "wait": 2, "todo": "pHost+sHost to check site-name", "sSite": "pSiteUp", - "sHost": "pHostUp", "pSite": [ - "srHook == PRIM" + "srHook ~ (PRIM|SWAIT|SREG)" ], "pHost": [ - "clone_state ~ (DEMOTED|UNDEFINED)", - "lpa_@@sid@@_lpt > 1000000000" + "lpa_@@sid@@_lpt ~ (1[6-9]........|30|20|10)", + "clone_state ~ (UNDEFINED|DEMOTED|WAITING4NODES)", + "roles == 1:P:master1::worker:", + "sync_state ~ (PRIM|SFAIL)" + ], + "sHost": [ + "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "clone_state ~ (DEMOTED|PROMOTED)", + "roles ~ 4:P:master1:master:worker:master", + "score ~ (100|145|150)", + "sync_state == PRIM" ] }, { "step": "final40", "name": "end recover", "next": "END", - "loop": 240, + "loop": 150, "wait": 2, "post": "cleanup", "pSite": "pSiteUp", diff --git a/test/json/classic-ScaleUp/kill_secn_pacemaker.json b/test/json/classic-ScaleUp/kill_secn_pacemaker.json index a86e911a..cbd9cb87 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemaker.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemaker.json @@ -6,7 +6,6 @@ "secondary", "cluster" ], - "todo": "please correct this file", "start": "prereq10", "steps": [ { @@ -25,15 +24,15 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 180, + "loop": 120, "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ - "srHook == SFAIL" + "srHook ~ (SFAIL|SOK)" ], "sHost": [ - "lpa_@@sid@@_lpt == 10", + "lpa_@@sid@@_lpt == 30", "clone_state is None", "roles is None", "score is None" @@ -63,7 +62,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 180, + "loop": 150, "wait": 2, "post": "cleanup", "pSite": "pSiteUp", From 9f4dac78835c8b43ac4cdcb15fbc0b8aa4b6750c Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 12:56:56 +0200 Subject: [PATCH 259/414] purpose --- .../json/classic-ScaleUp/block_manual_takeover.json | 4 ++++ test/json/classic-ScaleUp/block_sr.json | 4 ++++ test/json/classic-ScaleUp/flup.json | 4 ++++ test/json/classic-ScaleUp/free_log_area.json | 4 ++++ .../json/classic-ScaleUp/kill_prim_indexserver.json | 4 ++++ test/json/classic-ScaleUp/kill_prim_inst.json | 4 ++++ test/json/classic-ScaleUp/kill_prim_node.json | 9 ++++++++- test/json/classic-ScaleUp/kill_prim_pacemaker.json | 13 ++++++++----- .../json/classic-ScaleUp/kill_secn_indexserver.json | 4 ++++ test/json/classic-ScaleUp/kill_secn_inst.json | 4 ++++ test/json/classic-ScaleUp/kill_secn_node.json | 7 +++++++ test/json/classic-ScaleUp/kill_secn_pacemaker.json | 2 ++ .../maintenance_cluster_hana_running.json | 5 +++++ .../maintenance_cluster_turn_hana.json | 5 +++++ .../maintenance_with_standby_nodes.json | 5 +++++ test/json/classic-ScaleUp/restart_cluster.json | 4 ++++ .../classic-ScaleUp/restart_cluster_turn_hana.json | 4 ++++ test/json/classic-ScaleUp/split_brain_prio.json | 4 ++++ test/json/classic-ScaleUp/standby_prim_node.json | 4 ++++ test/json/classic-ScaleUp/standby_secn_node.json | 4 ++++ 20 files changed, 92 insertions(+), 6 deletions(-) diff --git a/test/json/classic-ScaleUp/block_manual_takeover.json b/test/json/classic-ScaleUp/block_manual_takeover.json index 1737ea3b..e17ad1d9 100644 --- a/test/json/classic-ScaleUp/block_manual_takeover.json +++ b/test/json/classic-ScaleUp/block_manual_takeover.json @@ -1,6 +1,10 @@ { "test": "block_manual_takeover", "name": "blocked manual takeover", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/block_sr.json b/test/json/classic-ScaleUp/block_sr.json index 64c004a8..544b8655 100644 --- a/test/json/classic-ScaleUp/block_sr.json +++ b/test/json/classic-ScaleUp/block_sr.json @@ -1,6 +1,10 @@ { "test": "block_sr", "name": "block sr and check SFAIL attribute; unblock to recover", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/flup.json b/test/json/classic-ScaleUp/flup.json index c062f367..b1eae72d 100644 --- a/test/json/classic-ScaleUp/flup.json +++ b/test/json/classic-ScaleUp/flup.json @@ -1,6 +1,10 @@ { "test": "flup", "name": "flup - like nop but very short sleep only - only for checking the test engine", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/free_log_area.json b/test/json/classic-ScaleUp/free_log_area.json index bc206b08..d6ac3e7f 100644 --- a/test/json/classic-ScaleUp/free_log_area.json +++ b/test/json/classic-ScaleUp/free_log_area.json @@ -1,6 +1,10 @@ { "test": "free_log_area", "name": "free hana log area on primary site", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index c499d5b7..be6f77f8 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -1,6 +1,10 @@ { "test": "kill_prim_indexserver", "name": "Kill primary indexserver", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/kill_prim_inst.json b/test/json/classic-ScaleUp/kill_prim_inst.json index a8c60b3c..bffaf4b0 100644 --- a/test/json/classic-ScaleUp/kill_prim_inst.json +++ b/test/json/classic-ScaleUp/kill_prim_inst.json @@ -1,6 +1,10 @@ { "test": "kill_prim_inst", "name": "Kill primary instance", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/kill_prim_node.json b/test/json/classic-ScaleUp/kill_prim_node.json index ca410273..ccdaa041 100644 --- a/test/json/classic-ScaleUp/kill_prim_node.json +++ b/test/json/classic-ScaleUp/kill_prim_node.json @@ -1,6 +1,13 @@ { "test": "kill_prim_node", "name": "Kill primary master node", + "purpose": [ + "classic", + "ScaleUp", + "primary", + "kill", + "node" + ], "start": "prereq10", "steps": [ { @@ -64,7 +71,7 @@ "sHost": [ "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", "clone_state ~ (DEMOTED|PROMOTED)", - "roles ~ 4:P:master1:master:worker:master", + "roles == 4:P:master1:master:worker:master", "score ~ (100|145|150)", "sync_state == PRIM" ] diff --git a/test/json/classic-ScaleUp/kill_prim_pacemaker.json b/test/json/classic-ScaleUp/kill_prim_pacemaker.json index d9743291..c0776f45 100644 --- a/test/json/classic-ScaleUp/kill_prim_pacemaker.json +++ b/test/json/classic-ScaleUp/kill_prim_pacemaker.json @@ -2,8 +2,10 @@ "test": "kill_prim_pacemaker", "name": "kill pacemaker-controld on primary node", "purpose": [ + "classic", "ScaleUp", "primary", + "kill", "cluster" ], "todo": "please correct this file", @@ -70,7 +72,7 @@ "sHost": [ "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", "clone_state ~ (DEMOTED|PROMOTED)", - "roles ~ 4:P:master1:master:worker:master", + "roles == 4:P:master1:master:worker:master", "score ~ (100|145|150)", "sync_state == PRIM" ] @@ -82,10 +84,11 @@ "loop": 150, "wait": 2, "post": "cleanup", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp" } ] } diff --git a/test/json/classic-ScaleUp/kill_secn_indexserver.json b/test/json/classic-ScaleUp/kill_secn_indexserver.json index cc7f1a56..8f716371 100644 --- a/test/json/classic-ScaleUp/kill_secn_indexserver.json +++ b/test/json/classic-ScaleUp/kill_secn_indexserver.json @@ -1,6 +1,10 @@ { "test": "kill_secn_indexserver", "name": "Kill secondary indexserver", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/kill_secn_inst.json b/test/json/classic-ScaleUp/kill_secn_inst.json index c2f545a1..010b05ec 100644 --- a/test/json/classic-ScaleUp/kill_secn_inst.json +++ b/test/json/classic-ScaleUp/kill_secn_inst.json @@ -1,6 +1,10 @@ { "test": "kill_secn_inst", "name": "Kill secondary instance", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/kill_secn_node.json b/test/json/classic-ScaleUp/kill_secn_node.json index ac6a6c75..483f479b 100644 --- a/test/json/classic-ScaleUp/kill_secn_node.json +++ b/test/json/classic-ScaleUp/kill_secn_node.json @@ -1,6 +1,13 @@ { "test": "kill_secn_node", "name": "Kill secondary master node", + "purpose": [ + "classic", + "ScaleUp", + "secondary", + "kill", + "node" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/kill_secn_pacemaker.json b/test/json/classic-ScaleUp/kill_secn_pacemaker.json index cbd9cb87..2ac46044 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemaker.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemaker.json @@ -2,8 +2,10 @@ "test": "kill_secn_pacemaker", "name": "kill pacemaker-controld on secondary node", "purpose": [ + "classic", "ScaleUp", "secondary", + "kill", "cluster" ], "start": "prereq10", diff --git a/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json b/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json index 123fdd22..ba271333 100644 --- a/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json +++ b/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json @@ -1,6 +1,11 @@ { "test": "maintenance_cluster_hana_running", "name": "stop and restart cluster, keep hana running", + "purpose": [ + "classic", + "ScaleUp", + "maintenance" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json b/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json index f54044b0..a8f51cf7 100644 --- a/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json +++ b/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json @@ -1,6 +1,11 @@ { "test": "maintenance_cluster_turn_hana", "name": "maintenance_cluster_turn_hana", + "purpose": [ + "classic", + "ScaleUp", + "maintenance" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json index 600d3655..79f95341 100644 --- a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json @@ -1,6 +1,11 @@ { "test": "maintenance_with_standby_nodes", "name": "standby+online secondary then standby+online primary", + "purpose": [ + "classic", + "ScaleUp" + "maintenance" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/restart_cluster.json b/test/json/classic-ScaleUp/restart_cluster.json index 7dcd36e0..d29220fe 100644 --- a/test/json/classic-ScaleUp/restart_cluster.json +++ b/test/json/classic-ScaleUp/restart_cluster.json @@ -1,6 +1,10 @@ { "test": "restart_cluster", "name": "restart_cluster", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/restart_cluster_turn_hana.json b/test/json/classic-ScaleUp/restart_cluster_turn_hana.json index acd710a2..958361a6 100644 --- a/test/json/classic-ScaleUp/restart_cluster_turn_hana.json +++ b/test/json/classic-ScaleUp/restart_cluster_turn_hana.json @@ -1,6 +1,10 @@ { "test": "restart_cluster_turn_hana", "name": "restart_cluster_turn_hana", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/split_brain_prio.json b/test/json/classic-ScaleUp/split_brain_prio.json index 28acb218..d8bd8c71 100644 --- a/test/json/classic-ScaleUp/split_brain_prio.json +++ b/test/json/classic-ScaleUp/split_brain_prio.json @@ -1,6 +1,10 @@ { "test": "split_brain_prio", "name": "split brain with prio fencing to simulate fence of secondary", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/standby_prim_node.json b/test/json/classic-ScaleUp/standby_prim_node.json index 4f7ef8ef..e77ee5f3 100644 --- a/test/json/classic-ScaleUp/standby_prim_node.json +++ b/test/json/classic-ScaleUp/standby_prim_node.json @@ -1,6 +1,10 @@ { "test": "standby_prim_node", "name": "standby primary node (and online again)", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/standby_secn_node.json b/test/json/classic-ScaleUp/standby_secn_node.json index 4a496734..40e52655 100644 --- a/test/json/classic-ScaleUp/standby_secn_node.json +++ b/test/json/classic-ScaleUp/standby_secn_node.json @@ -1,6 +1,10 @@ { "test": "standby_secn_node", "name": "standby secondary node (and online again)", + "purpose": [ + "classic", + "ScaleUp" + ], "start": "prereq10", "steps": [ { From 21e7751a42600e9a21e998603e025c69b39001eb Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 14:46:10 +0200 Subject: [PATCH 260/414] SAPHanaSR-tests-classic-ScaleUp.7 kill_prim_pacemkr-ctrld.json kill_secn_pacemkr-ctrld.json: kill_..._pacemkr-ctrld --- .../kill_prim_pacemkr-ctrld.json | 94 +++++++++++++++++++ .../kill_secn_pacemkr-ctrld.json | 76 +++++++++++++++ 2 files changed, 170 insertions(+) create mode 100644 test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json create mode 100644 test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json diff --git a/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json b/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json new file mode 100644 index 00000000..c0776f45 --- /dev/null +++ b/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json @@ -0,0 +1,94 @@ +{ + "test": "kill_prim_pacemaker", + "name": "kill pacemaker-controld on primary node", + "purpose": [ + "classic", + "ScaleUp", + "primary", + "kill", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_pacemaker", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pSite": [ + "srHook ~ (PRIM|SWAIT|SREG)" + ], + "sSite": [ + "srHook ~ (PRIM|SOK)" + ], + "pHost": [ + "lpa_@@sid@@_lpt > 1000000000", + "clone_state is None", + "roles is None", + "score is None", + "sync_state is None" + ], + "sHost": [ + "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "clone_state ~ (PROMOTED|DEMOTED)", + "roles ~ 4:(S|P):master1:master:worker:master", + "score ~ (100|145)", + "sync_state ~ (SOK|SFAIL)" + ] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 180, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "sSite": "pSiteUp", + "pSite": [ + "srHook ~ (PRIM|SWAIT|SREG)" + ], + "pHost": [ + "lpa_@@sid@@_lpt ~ (1[6-9]........|30|20|10)", + "clone_state ~ (UNDEFINED|DEMOTED|WAITING4NODES)", + "roles == 1:P:master1::worker:", + "sync_state ~ (PRIM|SFAIL)" + ], + "sHost": [ + "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "clone_state ~ (DEMOTED|PROMOTED)", + "roles == 4:P:master1:master:worker:master", + "score ~ (100|145|150)", + "sync_state == PRIM" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp" + } + ] +} diff --git a/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json b/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json new file mode 100644 index 00000000..2ac46044 --- /dev/null +++ b/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json @@ -0,0 +1,76 @@ +{ + "test": "kill_secn_pacemaker", + "name": "kill pacemaker-controld on secondary node", + "purpose": [ + "classic", + "ScaleUp", + "secondary", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemaker", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "srHook ~ (SFAIL|SOK)" + ], + "sHost": [ + "lpa_@@sid@@_lpt == 30", + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 180, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "srHook ~ (SFAIL|SWAIT|SOK)" + ], + "sHost": [ + "lpa_@@sid@@_lpt == 10", + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == 1:S:master1::worker:", + "sync_state ~ (SFAIL|SWAIT|SOK)", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 1128b9d885268277af10d4d9cde1d990e50d5d54 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:00:17 +0200 Subject: [PATCH 261/414] SAPHanaSR-tests-classic-ScaleUp.7 SAPHanaSR-tests-description.7 test/bin/sct_test_kill_prim_pacemkr-ctrld test/bin/sct_test_kill_secn_pacemkr-ctrld: kill_...pacemkr-ctrld --- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 10 +++- man-tester/SAPHanaSR-tests-description.7 | 58 ++++++++++++++++---- test/bin/sct_test_kill_prim_pacemkr-ctrld | 13 +++++ test/bin/sct_test_kill_secn_pacemkr-ctrld | 13 +++++ 4 files changed, 82 insertions(+), 12 deletions(-) create mode 100755 test/bin/sct_test_kill_prim_pacemkr-ctrld create mode 100755 test/bin/sct_test_kill_secn_pacemkr-ctrld diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 8da98b3e..69fd08c0 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -37,7 +37,10 @@ Kill primary instance. \fBkill_prim_node\fP Kill primary node. .TP -\fBkill_prim_pacemaker\fP +\fBkill_prim_pacemakerd\fP +Kill primary pacemakerd. +.TP +\fBkill_prim_pacemkr-ctrld\fP Kill primary pacemaker-controld. .TP \fBkill_secn_indexserver\fP @@ -49,7 +52,10 @@ Kill secondary instance. \fBkill_secn_node\fP Kill secondary node. .TP -\fBkill_secn_pacemaker\fP +\fBkill_secn_pacemakerd\fP +Kill secondary pacemakerd. +.TP +\fBkill_secn_pacemkr-ctrld\fP Kill secondary pacemaker-controld. .TP \fBmaintenance_cluster_bootstrap\fP diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index a0dbd960..15d8bf6d 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -300,7 +300,26 @@ One takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP -\fBkill_prim_pacemaker\fP +\fBkill_prim_pacemakerd\fP +.RS 2 +Descr: Kill primary pacemakerd. +On scale-out, kill secondary master node´s pacemakerd. +.br +Topology: ScaleUp, ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemakerd +.br +Expect: Primary (master) pacemakerd restarted. +Both HANA stay online. +SR stays SOK. +No takeover. No fencing. +.br +Comment: Cluster failure. +.RE +.PP +\fBkill_prim_pacemkr-ctrld\fP .RS 2 Descr: Kill primary pacemaker-controld. On scale-out, kill primary master node´s pacemaker-controld. @@ -311,9 +330,9 @@ Prereq: Cluster and HANA are up and running, all good. .br Test: killall -9 pacemaker-controld .br -Expect: pacemaker-controld restarted. +Expect: Node fenced TODO. HANA primary TODO. -TODO takeover. No fencing. +TODO takeover. TODO fencing. .br Comment: Cluster failure. .RE @@ -373,7 +392,7 @@ One takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP -\fBkill_prim_worker_pacemaker\fP +\fBkill_prim_worker_pacemkr-ctrld\fP .RS 2 Descr: Kill primary worker node´s pacemaker-controld. .br @@ -383,9 +402,9 @@ Prereq: Cluster and HANA are up and running, all good. .br Test: killall -9 pacemaker-controld .br -Expect: pacemaker-controld restarted. +Expect: TODO. HANA primary TODO. -TODO takeover. No fencing. +TODO takeover. TODO fencing. .br Comment: Cluster failure. .RE @@ -447,7 +466,26 @@ No takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP -\fBkill_secn_pacemaker\fP +\fBkill_secn_pacemakerd\fP +.RS 2 +Descr: Kill secondary pacemakerd. +On scale-out, kill secondary master node´s pacemakerd. +.br +Topology: ScaleUp, ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemakerd +.br +Expect: Secondary (master) pacemakerd restarted. +Both HANA stay online. +SR stays SOK. +No takeover. No fencing. +.br +Comment: Cluster failure. +.RE +.PP +\fBkill_secn_pacemkr-ctrld\fP .RS 2 Descr: Kill secondary pacemaker-controld. On scale-out, kill secondary master node´s pacemaker-controld. @@ -483,7 +521,7 @@ No takeover. No fencing. Comment: Application failure, main cluster case. .RE .PP -\fBkill_secn_worker_pacemaker\fP +\fBkill_secn_worker_pacemkr-ctrld\fP .RS 2 Descr: Kill secondary worker node´s pacemaker-controld. .br @@ -493,9 +531,9 @@ Prereq: Cluster and HANA are up and running, all good. .br Test: killall -9 pacemaker-controld .br -Expect: pacemaker-controld restarted. +Expect: TODO. HANA secondary TODO. -No takeover. No fencing. +No takeover. TODO fencing. .br Comment: Cluster failure. .RE diff --git a/test/bin/sct_test_kill_prim_pacemkr-ctrld b/test/bin/sct_test_kill_prim_pacemkr-ctrld new file mode 100755 index 00000000..25851877 --- /dev/null +++ b/test/bin/sct_test_kill_prim_pacemkr-ctrld @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_prim_pacemaker - kill pacemaker-controld on primary node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="150"/ { print $2 }' )" + +echo "==== Kill pacemaker-controld ====" + +ssh "$currPrimary" 'killall -9 pacemaker-controld' +# sleep 60 diff --git a/test/bin/sct_test_kill_secn_pacemkr-ctrld b/test/bin/sct_test_kill_secn_pacemkr-ctrld new file mode 100755 index 00000000..21732335 --- /dev/null +++ b/test/bin/sct_test_kill_secn_pacemkr-ctrld @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_secn_pacemaker - kill pacemaker-controld on secondary node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" + +echo "==== Kill pacemaker-controld ====" + +ssh "$currSecondary" 'killall -9 pacemaker-controld' +# sleep 60 From 83ccb12cb38bebd52eb39fafafe001667d509b2d Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:01:52 +0200 Subject: [PATCH 262/414] sct_test_kill_prim_pacemakerd sct_test_kill_secn_pacemakerd kill_prim_pacemakerd.json kill_secn_pacemakerd.json: renamd from sct_test_kill_prim_pacemaker sct_test_kill_secn_pacemaker kill_prim_pacemaker.json kill_secn_pacemaker.json --- ...sct_test_kill_prim_pacemaker => sct_test_kill_prim_pacemakerd} | 0 ...sct_test_kill_secn_pacemaker => sct_test_kill_secn_pacemakerd} | 0 .../{kill_prim_pacemaker.json => kill_prim_pacemakerd.json} | 0 .../{kill_secn_pacemaker.json => kill_secn_pacemakerd.json} | 0 4 files changed, 0 insertions(+), 0 deletions(-) rename test/bin/{sct_test_kill_prim_pacemaker => sct_test_kill_prim_pacemakerd} (100%) rename test/bin/{sct_test_kill_secn_pacemaker => sct_test_kill_secn_pacemakerd} (100%) rename test/json/classic-ScaleUp/{kill_prim_pacemaker.json => kill_prim_pacemakerd.json} (100%) rename test/json/classic-ScaleUp/{kill_secn_pacemaker.json => kill_secn_pacemakerd.json} (100%) diff --git a/test/bin/sct_test_kill_prim_pacemaker b/test/bin/sct_test_kill_prim_pacemakerd similarity index 100% rename from test/bin/sct_test_kill_prim_pacemaker rename to test/bin/sct_test_kill_prim_pacemakerd diff --git a/test/bin/sct_test_kill_secn_pacemaker b/test/bin/sct_test_kill_secn_pacemakerd similarity index 100% rename from test/bin/sct_test_kill_secn_pacemaker rename to test/bin/sct_test_kill_secn_pacemakerd diff --git a/test/json/classic-ScaleUp/kill_prim_pacemaker.json b/test/json/classic-ScaleUp/kill_prim_pacemakerd.json similarity index 100% rename from test/json/classic-ScaleUp/kill_prim_pacemaker.json rename to test/json/classic-ScaleUp/kill_prim_pacemakerd.json diff --git a/test/json/classic-ScaleUp/kill_secn_pacemaker.json b/test/json/classic-ScaleUp/kill_secn_pacemakerd.json similarity index 100% rename from test/json/classic-ScaleUp/kill_secn_pacemaker.json rename to test/json/classic-ScaleUp/kill_secn_pacemakerd.json From 7853e7e7afc905797580a2101319353591c651c6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:07:44 +0200 Subject: [PATCH 263/414] sct_test_kill_prim_pacemakerd sct_test_kill_prim_pacemkr-ctrld sct_test_kill_secn_pacemakerd sct_test_kill_secn_pacemkr-ctrld --- test/bin/sct_test_kill_prim_pacemakerd | 6 +++--- test/bin/sct_test_kill_prim_pacemkr-ctrld | 2 +- test/bin/sct_test_kill_secn_pacemakerd | 6 +++--- test/bin/sct_test_kill_secn_pacemkr-ctrld | 2 +- test/json/classic-ScaleUp/kill_prim_pacemakerd.json | 6 +++--- test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json | 4 ++-- test/json/classic-ScaleUp/kill_secn_pacemakerd.json | 6 +++--- test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json | 4 ++-- 8 files changed, 18 insertions(+), 18 deletions(-) diff --git a/test/bin/sct_test_kill_prim_pacemakerd b/test/bin/sct_test_kill_prim_pacemakerd index 25851877..7109be57 100755 --- a/test/bin/sct_test_kill_prim_pacemakerd +++ b/test/bin/sct_test_kill_prim_pacemakerd @@ -1,13 +1,13 @@ #!/bin/bash # -# sct_test_kill_prim_pacemaker - kill pacemaker-controld on primary node +# sct_test_kill_prim_pacemakerd - kill pacemakerd on primary node src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") source .test_properties currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="150"/ { print $2 }' )" -echo "==== Kill pacemaker-controld ====" +echo "==== Kill pacemakerd ====" -ssh "$currPrimary" 'killall -9 pacemaker-controld' +ssh "$currPrimary" 'killall -9 pacemakerd' # sleep 60 diff --git a/test/bin/sct_test_kill_prim_pacemkr-ctrld b/test/bin/sct_test_kill_prim_pacemkr-ctrld index 25851877..90f9fffb 100755 --- a/test/bin/sct_test_kill_prim_pacemkr-ctrld +++ b/test/bin/sct_test_kill_prim_pacemkr-ctrld @@ -1,6 +1,6 @@ #!/bin/bash # -# sct_test_kill_prim_pacemaker - kill pacemaker-controld on primary node +# sct_test_kill_prim_pacemkr-ctrld - kill pacemaker-controld on primary node src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") diff --git a/test/bin/sct_test_kill_secn_pacemakerd b/test/bin/sct_test_kill_secn_pacemakerd index 21732335..44fe9b6b 100755 --- a/test/bin/sct_test_kill_secn_pacemakerd +++ b/test/bin/sct_test_kill_secn_pacemakerd @@ -1,13 +1,13 @@ #!/bin/bash # -# sct_test_kill_secn_pacemaker - kill pacemaker-controld on secondary node +# sct_test_kill_secn_pacemakerd - kill pacemakerd on secondary node src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") source .test_properties currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" -echo "==== Kill pacemaker-controld ====" +echo "==== Kill pacemakerd ====" -ssh "$currSecondary" 'killall -9 pacemaker-controld' +ssh "$currSecondary" 'killall -9 pacemakerd' # sleep 60 diff --git a/test/bin/sct_test_kill_secn_pacemkr-ctrld b/test/bin/sct_test_kill_secn_pacemkr-ctrld index 21732335..58e081d9 100755 --- a/test/bin/sct_test_kill_secn_pacemkr-ctrld +++ b/test/bin/sct_test_kill_secn_pacemkr-ctrld @@ -1,6 +1,6 @@ #!/bin/bash # -# sct_test_kill_secn_pacemaker - kill pacemaker-controld on secondary node +# sct_test_kill_secn_pacemkr-ctrld - kill pacemaker-controld on secondary node src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") diff --git a/test/json/classic-ScaleUp/kill_prim_pacemakerd.json b/test/json/classic-ScaleUp/kill_prim_pacemakerd.json index c0776f45..55d4132e 100644 --- a/test/json/classic-ScaleUp/kill_prim_pacemakerd.json +++ b/test/json/classic-ScaleUp/kill_prim_pacemakerd.json @@ -1,6 +1,6 @@ { - "test": "kill_prim_pacemaker", - "name": "kill pacemaker-controld on primary node", + "test": "kill_prim_pacemakerd", + "name": "kill pacemakerd on primary node", "purpose": [ "classic", "ScaleUp", @@ -17,7 +17,7 @@ "next": "step20", "loop": 1, "wait": 1, - "post": "shell sct_test_kill_prim_pacemaker", + "post": "shell sct_test_kill_prim_pacemakerd", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", diff --git a/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json b/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json index c0776f45..9ab6fd39 100644 --- a/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json +++ b/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json @@ -1,5 +1,5 @@ { - "test": "kill_prim_pacemaker", + "test": "kill_prim_pacemkr-ctrld", "name": "kill pacemaker-controld on primary node", "purpose": [ "classic", @@ -17,7 +17,7 @@ "next": "step20", "loop": 1, "wait": 1, - "post": "shell sct_test_kill_prim_pacemaker", + "post": "shell sct_test_kill_prim_pacemkr-ctrld", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", diff --git a/test/json/classic-ScaleUp/kill_secn_pacemakerd.json b/test/json/classic-ScaleUp/kill_secn_pacemakerd.json index 2ac46044..69d5657b 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemakerd.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemakerd.json @@ -1,6 +1,6 @@ { - "test": "kill_secn_pacemaker", - "name": "kill pacemaker-controld on secondary node", + "test": "kill_secn_pacemakerd", + "name": "kill pacemakerd on secondary node", "purpose": [ "classic", "ScaleUp", @@ -16,7 +16,7 @@ "next": "step20", "loop": 1, "wait": 1, - "post": "shell sct_test_kill_secn_pacemaker", + "post": "shell sct_test_kill_secn_pacemakerd", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", diff --git a/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json b/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json index 2ac46044..8d7cdaa7 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json @@ -1,5 +1,5 @@ { - "test": "kill_secn_pacemaker", + "test": "kill_secn_pacemkr-ctrld", "name": "kill pacemaker-controld on secondary node", "purpose": [ "classic", @@ -16,7 +16,7 @@ "next": "step20", "loop": 1, "wait": 1, - "post": "shell sct_test_kill_secn_pacemaker", + "post": "shell sct_test_kill_secn_pacemkr-ctrld", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", From 654230838926c51b4e695a2d1418a2dbad26650f Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:17:52 +0200 Subject: [PATCH 264/414] kill_prim_pacemakerd.json kill_prim_pacemkr-ctrld.json kill_secn_pacemakerd.json: fixes --- .../classic-ScaleUp/kill_prim_pacemakerd.json | 58 +++---------------- .../kill_prim_pacemkr-ctrld.json | 2 - .../classic-ScaleUp/kill_secn_pacemakerd.json | 33 +---------- 3 files changed, 10 insertions(+), 83 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_pacemakerd.json b/test/json/classic-ScaleUp/kill_prim_pacemakerd.json index 55d4132e..156724e0 100644 --- a/test/json/classic-ScaleUp/kill_prim_pacemakerd.json +++ b/test/json/classic-ScaleUp/kill_prim_pacemakerd.json @@ -26,56 +26,13 @@ { "step": "step20", "name": "failure detected", - "next": "step30", + "next": "final40", "loop": 120, "wait": 2, "sSite": "sSiteUp", "sHost": "sHostUp", - "pSite": [ - "srHook ~ (PRIM|SWAIT|SREG)" - ], - "sSite": [ - "srHook ~ (PRIM|SOK)" - ], - "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", - "clone_state is None", - "roles is None", - "score is None", - "sync_state is None" - ], - "sHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", - "clone_state ~ (PROMOTED|DEMOTED)", - "roles ~ 4:(S|P):master1:master:worker:master", - "score ~ (100|145)", - "sync_state ~ (SOK|SFAIL)" - ] - }, - { - "step": "step30", - "name": "begin recover", - "next": "final40", - "loop": 180, - "wait": 2, - "todo": "pHost+sHost to check site-name", - "sSite": "pSiteUp", - "pSite": [ - "srHook ~ (PRIM|SWAIT|SREG)" - ], - "pHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30|20|10)", - "clone_state ~ (UNDEFINED|DEMOTED|WAITING4NODES)", - "roles == 1:P:master1::worker:", - "sync_state ~ (PRIM|SFAIL)" - ], - "sHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", - "clone_state ~ (DEMOTED|PROMOTED)", - "roles == 4:P:master1:master:worker:master", - "score ~ (100|145|150)", - "sync_state == PRIM" - ] + "pSite": "pSiteUp", + "pHost": "pHostUp" }, { "step": "final40", @@ -84,11 +41,10 @@ "loop": 150, "wait": 2, "post": "cleanup", - "remark": "pXXX and sXXX are now exchanged", - "pSite": "sSiteUp", - "sSite": "pSiteUp", - "pHost": "sHostUp", - "sHost": "pHostUp" + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" } ] } diff --git a/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json b/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json index 9ab6fd39..c20c19de 100644 --- a/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json +++ b/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json @@ -29,8 +29,6 @@ "next": "step30", "loop": 120, "wait": 2, - "sSite": "sSiteUp", - "sHost": "sHostUp", "pSite": [ "srHook ~ (PRIM|SWAIT|SREG)" ], diff --git a/test/json/classic-ScaleUp/kill_secn_pacemakerd.json b/test/json/classic-ScaleUp/kill_secn_pacemakerd.json index 69d5657b..fd2f383d 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemakerd.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemakerd.json @@ -25,40 +25,13 @@ { "step": "step20", "name": "failure detected", - "next": "step30", - "loop": 120, - "wait": 2, - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "srHook ~ (SFAIL|SOK)" - ], - "sHost": [ - "lpa_@@sid@@_lpt == 30", - "clone_state is None", - "roles is None", - "score is None" - ] - }, - { - "step": "step30", - "name": "begin recover", "next": "final40", - "loop": 180, + "loop": 120, "wait": 2, - "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", - "sSite": [ - "srHook ~ (SFAIL|SWAIT|SOK)" - ], - "sHost": [ - "lpa_@@sid@@_lpt == 10", - "clone_state ~ (UNDEFINED|DEMOTED)", - "roles == 1:S:master1::worker:", - "sync_state ~ (SFAIL|SWAIT|SOK)", - "score ~ (-INFINITY|0)" - ] + "sSite": "sSiteUp", + "sHost": "sHostUp" }, { "step": "final40", From adad9f850672e01c74fea1e06c3e02fbc9ece558 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:27:40 +0200 Subject: [PATCH 265/414] classic-ScaleOut/kill_secn_pacemaker.json angi-ScaleUp/kill_secn_pacemaker.json angi-ScaleOut/kill_secn_worker_pacemaker.json angi-ScaleOut/kill_secn_pacemaker.json: renamed kill_..._pacemakerd.json --- .../angi-ScaleOut/kill_secn_pacemaker.json | 76 ------------------ .../kill_secn_worker_pacemaker.json | 77 ------------------- .../angi-ScaleUp/kill_secn_pacemaker.json | 77 ------------------- .../classic-ScaleOut/kill_secn_pacemaker.json | 76 ------------------ 4 files changed, 306 deletions(-) delete mode 100644 test/json/angi-ScaleOut/kill_secn_pacemaker.json delete mode 100644 test/json/angi-ScaleOut/kill_secn_worker_pacemaker.json delete mode 100644 test/json/angi-ScaleUp/kill_secn_pacemaker.json delete mode 100644 test/json/classic-ScaleOut/kill_secn_pacemaker.json diff --git a/test/json/angi-ScaleOut/kill_secn_pacemaker.json b/test/json/angi-ScaleOut/kill_secn_pacemaker.json deleted file mode 100644 index 9b3fe397..00000000 --- a/test/json/angi-ScaleOut/kill_secn_pacemaker.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "test": "kill_secn_pacemaker", - "name": "kill pacemaker-controld on secondary node", - "purpose": [ - "angi", - "ScaleOut", - "secondary", - "cluster" - ], - "todo": "please correct this file", - "start": "prereq10", - "steps": [ - { - "step": "prereq10", - "name": "test prerequisites", - "next": "step20", - "loop": 1, - "wait": 1, - "post": "shell sct_test_kill_secn_pacemaker", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" - }, - { - "step": "step20", - "name": "failure detected", - "next": "step30", - "loop": 120, - "wait": 2, - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "lpt ~ (20|10)", - "lss == 1", - "srr == S", - "srHook == SFAIL", - "srPoll == SFAIL" - ] - }, - { - "step": "step30", - "name": "begin recover", - "next": "final40", - "loop": 300, - "wait": 2, - "todo": "pHost+sHost to check site-name", - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "lpt ~ (20|10)", - "lss == 4", - "srr == S", - "srHook ~ (SOK|SWAIT)", - "srPoll ~ (SOK|SFAIL)" - ], - "sHost": [ - "clone_state ~ (DEMOTED|UNDEFINED)", - "roles == master1::worker:", - "score ~ (100|145|150)" - ] - }, - { - "step": "final40", - "name": "end recover", - "next": "END", - "loop": 300, - "wait": 2, - "post": "cleanup", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" - } - ] -} diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemaker.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemaker.json deleted file mode 100644 index 26de8b68..00000000 --- a/test/json/angi-ScaleOut/kill_secn_worker_pacemaker.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "test": "kill_secn_worker_pacemaker", - "name": "kill pacemaker-controld on secondary worker node", - "purpose": [ - "angi", - "ScaleOut", - "secondary", - "cluster" - ], - "todo": "please correct this file", - "start": "prereq10", - "steps": [ - { - "step": "prereq10", - "name": "test prerequisites", - "next": "step20", - "loop": 1, - "wait": 1, - "post": "shell sct_test_kill_secn_worker_pacemaker", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp", - "pWorker": "pWorkerUp", - "sWorker": "sWorkerUp" - }, - { - "step": "step20", - "name": "failure detected", - "next": "step30", - "loop": 120, - "wait": 2, - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "lpt ~ (20|10)", - "lss == 1", - "srr == S", - "srHook == SFAIL", - "srPoll == SFAIL" - ], - "sHost": "sHostUp" - }, - { - "step": "step30", - "name": "begin recover", - "next": "final40", - "loop": 300, - "wait": 2, - "todo": "pHost+sHost to check site-name", - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "lpt ~ (20|10)", - "lss == 4", - "srr == S", - "srHook ~ (SOK|SWAIT)", - "srPoll ~ (SOK|SFAIL)" - ], - "sHost": "sHostUp" - }, - { - "step": "final40", - "name": "end recover", - "next": "END", - "loop": 300, - "wait": 2, - "post": "cleanup", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp", - "pWorker": "pWorkerUp", - "sWorker": "sWorkerUp" - } - ] -} diff --git a/test/json/angi-ScaleUp/kill_secn_pacemaker.json b/test/json/angi-ScaleUp/kill_secn_pacemaker.json deleted file mode 100644 index d7465364..00000000 --- a/test/json/angi-ScaleUp/kill_secn_pacemaker.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "test": "kill_secn_pacemaker", - "name": "kill pacemaker-controld on secondary node", - "purpose": [ - "angi", - "ScaleUp", - "secondary", - "cluster" - ], - "todo": "please correct this file", - "start": "prereq10", - "steps": [ - { - "step": "prereq10", - "name": "test prerequisites", - "next": "step20", - "loop": 1, - "wait": 1, - "post": "shell sct_test_kill_secn_pacemaker", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" - }, - { - "step": "step20", - "name": "failure detected", - "next": "step30", - "loop": 120, - "wait": 2, - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "lpt ~ (20|10)", - "lss == 1", - "srr == S", - "srHook == SFAIL", - "srPoll == SFAIL" - ], - "sHost": [] - }, - { - "step": "step30", - "name": "begin recover", - "next": "final40", - "loop": 300, - "wait": 2, - "todo": "pHost+sHost to check site-name", - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "lpt ~ (20|10)", - "lss == 4", - "srr == S", - "srHook ~ (SOK|SWAIT)", - "srPoll ~ (SOK|SFAIL)" - ], - "sHost": [ - "clone_state ~ (DEMOTED|UNDEFINED)", - "roles == master1::worker:", - "score ~ (100|145|150)" - ] - }, - { - "step": "final40", - "name": "end recover", - "next": "END", - "loop": 300, - "wait": 2, - "post": "cleanup", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" - } - ] -} diff --git a/test/json/classic-ScaleOut/kill_secn_pacemaker.json b/test/json/classic-ScaleOut/kill_secn_pacemaker.json deleted file mode 100644 index 93c2a327..00000000 --- a/test/json/classic-ScaleOut/kill_secn_pacemaker.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "test": "kill_secn_pacemaker", - "name": "kill pacemaker-controld on secondary node", - "purpose": [ - "ScaleOut", - "secondary", - "cluster" - ], - "todo": "please correct this file", - "start": "prereq10", - "steps": [ - { - "step": "prereq10", - "name": "test prerequisites", - "next": "step20", - "loop": 1, - "wait": 1, - "post": "shell sct_test_kill_secn_pacemaker", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" - }, - { - "step": "step20", - "name": "failure detected", - "next": "step30", - "loop": 120, - "wait": 2, - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "lpt ~ (20|10)", - "lss == 1", - "srr == S", - "srHook == SFAIL", - "srPoll == SFAIL" - ], - "sHost": [] - }, - { - "step": "step30", - "name": "begin recover", - "next": "final40", - "loop": 300, - "wait": 2, - "todo": "pHost+sHost to check site-name", - "pSite": "pSiteUp", - "pHost": "pHostUp", - "sSite": [ - "lpt ~ (20|10)", - "lss == 4", - "srr == S", - "srHook ~ (SOK|SWAIT)", - "srPoll ~ (SOK|SFAIL)" - ], - "sHost": [ - "clone_state ~ (DEMOTED|UNDEFINED)", - "roles == master1::worker:", - "score ~ (100|145|150)" - ] - }, - { - "step": "final40", - "name": "end recover", - "next": "END", - "loop": 300, - "wait": 2, - "post": "cleanup", - "pSite": "pSiteUp", - "sSite": "sSiteUp", - "pHost": "pHostUp", - "sHost": "sHostUp" - } - ] -} From e61627ef29d02d06233d8ac5c2f33c28dea37470 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:28:51 +0200 Subject: [PATCH 266/414] kill_prim_pacemakerd.json kill_secn_pacemakerd.json: renamed from kill_..._pacemaker.json --- .../angi-ScaleOut/kill_prim_pacemakerd.json | 50 +++++++++++++++++++ .../angi-ScaleOut/kill_secn_pacemakerd.json | 49 ++++++++++++++++++ .../angi-ScaleUp/kill_prim_pacemakerd.json | 50 +++++++++++++++++++ .../angi-ScaleUp/kill_secn_pacemakerd.json | 49 ++++++++++++++++++ 4 files changed, 198 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_prim_pacemakerd.json create mode 100644 test/json/angi-ScaleOut/kill_secn_pacemakerd.json create mode 100644 test/json/angi-ScaleUp/kill_prim_pacemakerd.json create mode 100644 test/json/angi-ScaleUp/kill_secn_pacemakerd.json diff --git a/test/json/angi-ScaleOut/kill_prim_pacemakerd.json b/test/json/angi-ScaleOut/kill_prim_pacemakerd.json new file mode 100644 index 00000000..ff062379 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_prim_pacemakerd.json @@ -0,0 +1,50 @@ +{ + "test": "kill_prim_pacemakerd", + "name": "kill pacemakerd on primary (master) node", + "purpose": [ + "angi", + "ScaleOut", + "primary", + "kill", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_pacemakerd", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 120, + "wait": 2, + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pSite": "pSiteUp", + "pHost": "pHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} diff --git a/test/json/angi-ScaleOut/kill_secn_pacemakerd.json b/test/json/angi-ScaleOut/kill_secn_pacemakerd.json new file mode 100644 index 00000000..03650d4d --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_pacemakerd.json @@ -0,0 +1,49 @@ +{ + "test": "kill_secn_pacemakerd", + "name": "kill pacemakerd on secondary (master) node", + "purpose": [ + "angi", + "ScaleOut", + "secondary", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemakerd", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": "sSiteUp", + "sHost": "sHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} diff --git a/test/json/angi-ScaleUp/kill_prim_pacemakerd.json b/test/json/angi-ScaleUp/kill_prim_pacemakerd.json new file mode 100644 index 00000000..ded5525a --- /dev/null +++ b/test/json/angi-ScaleUp/kill_prim_pacemakerd.json @@ -0,0 +1,50 @@ +{ + "test": "kill_prim_pacemakerd", + "name": "kill pacemakerd on primary (master) node", + "purpose": [ + "angi", + "ScaleUp", + "primary", + "kill", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_pacemakerd", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 120, + "wait": 2, + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pSite": "pSiteUp", + "pHost": "pHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} diff --git a/test/json/angi-ScaleUp/kill_secn_pacemakerd.json b/test/json/angi-ScaleUp/kill_secn_pacemakerd.json new file mode 100644 index 00000000..1d4d590f --- /dev/null +++ b/test/json/angi-ScaleUp/kill_secn_pacemakerd.json @@ -0,0 +1,49 @@ +{ + "test": "kill_secn_pacemakerd", + "name": "kill pacemakerd on secondary (master) node", + "purpose": [ + "angi", + "ScaleUp", + "secondary", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemakerd", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": "sSiteUp", + "sHost": "sHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From c9c0be978fdc7fd0444059da10054a81a9afe91b Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:33:10 +0200 Subject: [PATCH 267/414] classic-ScaleOut/kill_prim_pacemakerd.json classic-ScaleOut/kill_secn_pacemakerd.json: initial checkin --- .../kill_prim_pacemakerd.json | 50 +++++++++++++++++++ .../kill_secn_pacemakerd.json | 49 ++++++++++++++++++ 2 files changed, 99 insertions(+) create mode 100644 test/json/classic-ScaleOut/kill_prim_pacemakerd.json create mode 100644 test/json/classic-ScaleOut/kill_secn_pacemakerd.json diff --git a/test/json/classic-ScaleOut/kill_prim_pacemakerd.json b/test/json/classic-ScaleOut/kill_prim_pacemakerd.json new file mode 100644 index 00000000..01bb0865 --- /dev/null +++ b/test/json/classic-ScaleOut/kill_prim_pacemakerd.json @@ -0,0 +1,50 @@ +{ + "test": "kill_prim_pacemakerd", + "name": "kill pacemakerd on primary (master) node", + "purpose": [ + "classic", + "ScaleOut", + "primary", + "kill", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_pacemakerd", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 120, + "wait": 2, + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pSite": "pSiteUp", + "pHost": "pHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} diff --git a/test/json/classic-ScaleOut/kill_secn_pacemakerd.json b/test/json/classic-ScaleOut/kill_secn_pacemakerd.json new file mode 100644 index 00000000..5de0de84 --- /dev/null +++ b/test/json/classic-ScaleOut/kill_secn_pacemakerd.json @@ -0,0 +1,49 @@ +{ + "test": "kill_secn_pacemakerd", + "name": "kill pacemakerd on secondary (master) node", + "purpose": [ + "classic", + "ScaleOut", + "secondary", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemakerd", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": "sSiteUp", + "sHost": "sHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 8dabec0920550e8203e41eed08e609fdd7472710 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:33:34 +0200 Subject: [PATCH 268/414] classic-ScaleUp/kill_prim_pacemakerd.json classic-ScaleUp/kill_secn_pacemakerd.json: fixed purpose --- test/json/classic-ScaleUp/kill_prim_pacemakerd.json | 2 +- test/json/classic-ScaleUp/kill_secn_pacemakerd.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_pacemakerd.json b/test/json/classic-ScaleUp/kill_prim_pacemakerd.json index 156724e0..98afb851 100644 --- a/test/json/classic-ScaleUp/kill_prim_pacemakerd.json +++ b/test/json/classic-ScaleUp/kill_prim_pacemakerd.json @@ -1,6 +1,6 @@ { "test": "kill_prim_pacemakerd", - "name": "kill pacemakerd on primary node", + "name": "kill pacemakerd on primary (master) node", "purpose": [ "classic", "ScaleUp", diff --git a/test/json/classic-ScaleUp/kill_secn_pacemakerd.json b/test/json/classic-ScaleUp/kill_secn_pacemakerd.json index fd2f383d..cc00c33c 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemakerd.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemakerd.json @@ -1,6 +1,6 @@ { "test": "kill_secn_pacemakerd", - "name": "kill pacemakerd on secondary node", + "name": "kill pacemakerd on secondary (master) node", "purpose": [ "classic", "ScaleUp", From e3834bda1fbd6f99706ffc09f52739e047eda3f4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:45:22 +0200 Subject: [PATCH 269/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleUp.7 --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 24 ++++++++++++++++------ man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 14 +++++++++---- 2 files changed, 28 insertions(+), 10 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 3c0dbe42..33b270bd 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -52,7 +52,10 @@ Kill primary master instance. \fBkill_prim_node\fP Kill primary master node. .TP -\fBkill_prim_pacemaker\fP +\fBkill_prim_pacemakerd\fP +Kill primary master node´s pacemakerd. +.TP +\fBkill_prim_pacemkr-ctrld\fP Kill primary master node´s pacemaker-controld. Not yet implemented. .TP \fBkill_prim_worker_indexserver\fP @@ -64,7 +67,10 @@ Kill primary worker instance. \fBkill_prim_worker_node\fP Kill primary worker node. .TP -\fBkill_prim_worker_pacemaker\fP +\fBkill_prim_worker_pacemakerd\fP +Kill primary worker node´s pacemakerd. Not yet implemented. +.TP +\fBkill_prim_worker_pacemkr-ctrld\fP Kill primary worker node´s pacemaker-controld. Not yet implemented. .TP \fBkill_prim_site\fP @@ -79,8 +85,11 @@ Kill secondary master instance. \fBkill_secn_node\fP Kill secondary master node. .TP -\fBkill_secn_pacemaker\fP -Kill secondary master node´s pacemaker-controld. +\fBkill_secn_pacemakerd\fP +Kill secondary master node´s pacemakerd. +.TP +\fBkill_secn_pacemkr-ctrld\fP +Kill secondary master node´s pacemaker-controld. Not yet implemented. .TP \fBkill_secn_site\fP Kill secondary site nodes. Not yet implemented. @@ -91,8 +100,11 @@ Kill secondary worker instance. \fBkill_secn_worker_node\fP Kill secondary worker node. .TP -\fBkill_secn_worker_pacemaker\fP -Kill secondary worker node´s pacemaker-controld. +\fBkill_secn_worker_pacemakerd\fP +Kill secondary worker node´s pacemakerd. Not yet implemented. +.TP +\fBkill_secn_worker_pacemkr-ctrld\fP +Kill secondary worker node´s pacemaker-controld. Not yet implemented. .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. Not yet implemented. diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 540a3fa1..a73c73ea 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -49,8 +49,11 @@ Kill primary instance. \fBkill_prim_node\fP Kill primary node. .TP -\fBkill_prim_pacemaker\fP -Kill primary pacemaker-controld. Not yet implemented. +\fBkill_prim_pacemakerd\fP +Kill primary pacemakerd. +.TP +\fBkill_prim_pacemkr-ctrld\fP +Kill primary pacemaker-controld. .TP \fBkill_secn_indexserver\fP Kill secondary indexserver, for susChkSrv.py. @@ -61,8 +64,11 @@ Kill secondary instance. \fBkill_secn_node\fP Kill secondary node. .TP -\fBkill_secn_pacemaker\fP -Kill secondary pacemaker-controld. Not yet implemented. +\fBkill_secn_pacemakerd\fP +Kill secondary pacemakerd. +.TP +\fBkill_secn_pacemkr-ctrld\fP +Kill secondary pacemaker-controld. .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. From 1bd5cf652634481fb3267b038a3693403d146682 Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 27 Sep 2024 15:53:07 +0200 Subject: [PATCH 270/414] kill_secn_pacemkr-ctrld.json kill_prim_pacemkr-ctrld.json: initial checkin --- .../angi-ScaleUp/kill_prim_pacemkr-ctrld.json | 98 +++++++++++++++++++ .../angi-ScaleUp/kill_secn_pacemkr-ctrld.json | 78 +++++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json create mode 100644 test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json diff --git a/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json b/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json new file mode 100644 index 00000000..79c05714 --- /dev/null +++ b/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json @@ -0,0 +1,98 @@ +{ + "test": "kill_prim_pacemkr-ctrld", + "name": "kill pacemaker-controld on primary node", + "purpose": [ + "angi", + "ScaleUp", + "primary", + "kill", + "cluster" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_pacemkr-ctrld", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": [ + "srHook ~ (PRIM|SWAIT|SREG)" + ], + "sSite": [ + "srHook ~ (PRIM|SOK)" + ], + "pHost": [ + "lpa_@@sid@@_lpt > 1000000000", + "clone_state is None", + "roles is None", + "score is None", + "sync_state is None" + ], + "sHost": [ + "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "clone_state ~ (PROMOTED|DEMOTED)", + "roles == master1:master:worker:master", + "lss == 4", + "srr ~ (S|P)", + "score ~ (100|145)", + "sync_state ~ (SOK|SFAIL)" + ] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 180, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "sSite": "pSiteUp", + "pSite": [ + "srHook ~ (PRIM|SWAIT|SREG)" + ], + "pHost": [ + "lpa_@@sid@@_lpt ~ (1[6-9]........|30|20|10)", + "clone_state ~ (UNDEFINED|DEMOTED|WAITING4NODES)", + "roles == master1::worker:", + "lss == 1", + "srr == P", + "sync_state ~ (PRIM|SFAIL)" + ], + "sHost": [ + "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "clone_state ~ (DEMOTED|PROMOTED)", + "roles == master1:master:worker:master", + "lss == 4", + "srr == P", + "score ~ (100|145|150)", + "sync_state == PRIM" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "remark": "pXXX and sXXX are now exchanged", + "pSite": "sSiteUp", + "sSite": "pSiteUp", + "pHost": "sHostUp", + "sHost": "pHostUp" + } + ] +} diff --git a/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json new file mode 100644 index 00000000..8f64f21a --- /dev/null +++ b/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json @@ -0,0 +1,78 @@ +{ + "test": "kill_secn_pacemkr-ctrld", + "name": "kill pacemaker-controld on secondary node", + "purpose": [ + "angi", + "ScaleUp", + "secondary", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemkr-ctrld", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "srHook ~ (SFAIL|SOK)" + ], + "sHost": [ + "lpa_@@sid@@_lpt == 30", + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 180, + "wait": 2, + "todo": "pHost+sHost to check site-name", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "srHook ~ (SFAIL|SWAIT|SOK)" + ], + "sHost": [ + "lpa_@@sid@@_lpt == 10", + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "lss == 1", + "srr == S", + "sync_state ~ (SFAIL|SWAIT|SOK)", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 5997888737ca49a885bf5025ca0d485d57411c70 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 09:50:42 +0200 Subject: [PATCH 271/414] SAPHanaSR-tests-description.7 SAPHanaSR-tests-description_on-fail-fence.7: kill pacemaker-controld --- man-tester/SAPHanaSR-tests-description.7 | 35 ++++++++++++---- ...APHanaSR-tests-description_on-fail-fence.7 | 42 ++++++++++++++++++- 2 files changed, 68 insertions(+), 9 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 15d8bf6d..090b83a6 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -303,7 +303,7 @@ Comment: Node failure, main cluster case. \fBkill_prim_pacemakerd\fP .RS 2 Descr: Kill primary pacemakerd. -On scale-out, kill secondary master node´s pacemakerd. +On scale-out, kill primary master node´s pacemakerd. .br Topology: ScaleUp, ScaleOut. .br @@ -330,9 +330,11 @@ Prereq: Cluster and HANA are up and running, all good. .br Test: killall -9 pacemaker-controld .br -Expect: Node fenced TODO. -HANA primary TODO. -TODO takeover. TODO fencing. +Expect: Primary (master) node fenced (for PCMK_fast_fail=yes). +HANA primary stopped and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. One fencing. .br Comment: Cluster failure. .RE @@ -392,6 +394,23 @@ One takeover. One fencing. Comment: Node failure, main cluster case. .RE .PP +\fBkill_prim_worker_pacemakerd\fP +.RS 2 +Descr: Kill primary worker node´s pacemakerd. +.br +Topology: ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemakerd +.br +Expect: Primary worker pacemakerd restarted. +Both HANA stay online. +No takeover. No fencing. +.br +Comment: Cluster failure. +.RE +.PP \fBkill_prim_worker_pacemkr-ctrld\fP .RS 2 Descr: Kill primary worker node´s pacemaker-controld. @@ -402,9 +421,11 @@ Prereq: Cluster and HANA are up and running, all good. .br Test: killall -9 pacemaker-controld .br -Expect: TODO. -HANA primary TODO. -TODO takeover. TODO fencing. +Expect: Primary worker node fenced (for PCMK_fast_fail=yes). +HANA primary stopped and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. One fencing. .br Comment: Cluster failure. .RE diff --git a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 index a1b54f03..df7eaa38 100644 --- a/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-description_on-fail-fence.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-description_on-fail-fence 7 "12 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-description_on-fail-fence 7 "30 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-description_on-fail-fence \- Functional tests for SAPHanaSR with immediate fencing. @@ -139,6 +139,25 @@ One takeover. All primary nodes fenced. Comment: Node failure, main cluster case. .RE .PP +\fBkill_prim_pacemkr-ctrld_fencing_alert\fP +.RS 2 +Descr: Kill primary master node´s pacemaker-controld. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemaker-controld +.br +Expect: Primary master node fenced (for PCMK_fast_fail=yes). +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. All primary nodes fenced. +.br +Comment: Cluster failure. +.RE +.PP \fBkill_prim_worker_indexserver_fencing_alert\fP .RS 2 Descr: Kill primary worker indexserver, for susChkSrv.py. @@ -196,11 +215,30 @@ One takeover. All primary nodes fenced. Comment: Node failure, main cluster case. .RE .PP +\fBkill_prim_worker_pacemkr-ctrld_fencing_alert\fP +.RS 2 +Descr: Kill primary worker node´s pacemaker-controld. +.br +Topology: ScaleOut (angi only). +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 pacemaker-controld +.br +Expect: Primary worker node fenced (for PCMK_fast_fail=yes). +HANA primary killed and finally started as secondary. +HANA secondary becomes finally primary. +SR SFAIL and finally SOK. +One takeover. All primary nodes fenced. +.br +Comment: Cluster failure. +.RE +.PP \fBkill_secn_indexserver_fencing\fP .RS 2 Descr: Kill secondary indexserver, for susChkSrv.py. .br -Topology: ScaleUp (angi only). +Topology: ScaleUp. .br Prereq: Cluster and HANA are up and running, all good. .br From 0a5ee3e56032c4ed0b338244160775d6f67fbe6c Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 10:23:28 +0200 Subject: [PATCH 272/414] sct_test_kill_prim_worker_pacemakerd sct_test_kill_secn_worker_pacemakerd: mv ..._pacemaker -> ..._pacemakerd --- ...orker_pacemaker => sct_test_kill_prim_worker_pacemakerd} | 6 +++--- ...orker_pacemaker => sct_test_kill_secn_worker_pacemakerd} | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) rename test/bin/{sct_test_kill_prim_worker_pacemaker => sct_test_kill_prim_worker_pacemakerd} (59%) rename test/bin/{sct_test_kill_secn_worker_pacemaker => sct_test_kill_secn_worker_pacemakerd} (59%) diff --git a/test/bin/sct_test_kill_prim_worker_pacemaker b/test/bin/sct_test_kill_prim_worker_pacemakerd similarity index 59% rename from test/bin/sct_test_kill_prim_worker_pacemaker rename to test/bin/sct_test_kill_prim_worker_pacemakerd index 16846e2b..bf8b36b9 100755 --- a/test/bin/sct_test_kill_prim_worker_pacemaker +++ b/test/bin/sct_test_kill_prim_worker_pacemakerd @@ -1,13 +1,13 @@ #!/bin/bash # -# sct_test_kill_prim_worker_pacemaker - kill pacemaker-controld on primary worker node +# sct_test_kill_prim_worker_pacemakerd - kill pacemakerd on primary worker node src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") source .test_properties currPrimWorker="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="-10000"/ { print $2 }' )" -echo "==== Kill pacemaker-controld ====" +echo "==== Kill pacemakerd ====" -ssh "$currPrimWorker" 'killall -9 pacemaker-controld' +ssh "$currPrimWorker" 'killall -9 pacemakerd' # sleep 60 diff --git a/test/bin/sct_test_kill_secn_worker_pacemaker b/test/bin/sct_test_kill_secn_worker_pacemakerd similarity index 59% rename from test/bin/sct_test_kill_secn_worker_pacemaker rename to test/bin/sct_test_kill_secn_worker_pacemakerd index b7b09647..d0dcdd38 100755 --- a/test/bin/sct_test_kill_secn_worker_pacemaker +++ b/test/bin/sct_test_kill_secn_worker_pacemakerd @@ -1,13 +1,13 @@ #!/bin/bash # -# sct_test_kill_secn_worker_pacemaker - kill pacemaker-controld on secondary worker node +# sct_test_kill_secn_worker_pacemakerd - kill pacemakerd on secondary worker node src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") source .test_properties currSecnWorker="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="-12200"/ { print $2 }' )" -echo "==== Kill pacemaker-controld ====" +echo "==== Kill pacemakerd ====" -ssh "$currSecnWorker" 'killall -9 pacemaker-controld' +ssh "$currSecnWorker" 'killall -9 pacemakerd' # sleep 60 From e7c6e4bdaa143be9f4d8bd002b4c51202787472f Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 10:26:06 +0200 Subject: [PATCH 273/414] kill_secn_worker_pacemakerd.json kill_prim_worker_pacemakerd.json kill_secn_pacemkr-ctrld.json: initial checkin --- .../kill_prim_worker_pacemakerd.json | 55 +++++++++++++ .../kill_secn_pacemkr-ctrld.json | 77 +++++++++++++++++++ .../kill_secn_worker_pacemakerd.json | 55 +++++++++++++ 3 files changed, 187 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json create mode 100644 test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json create mode 100644 test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json diff --git a/test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json b/test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json new file mode 100644 index 00000000..5b55320b --- /dev/null +++ b/test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json @@ -0,0 +1,55 @@ +{ + "test": "kill_prim_worker_pacemakerd", + "name": "kill pacemakerd on primary worker node", + "purpose": [ + "angi", + "ScaleOut", + "secondary", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_worker_pacemakerd", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} diff --git a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json new file mode 100644 index 00000000..aad4e9b0 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json @@ -0,0 +1,77 @@ +{ + "test": "kill_secn_pacemkr-ctrld", + "name": "kill pacemaker-controld on secondary node", + "purpose": [ + "angi", + "ScaleUp", + "secondary", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemkr-ctrld", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "srHook ~ (SFAIL|SOK)" + ], + "sHost": [ + "lpa_@@sid@@_lpt == 30", + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 180, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "srHook ~ (SFAIL|SWAIT|SOK)" + ], + "sHost": [ + "lpa_@@sid@@_lpt == 10", + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "lss == 1", + "srr == S", + "sync_state ~ (SFAIL|SWAIT|SOK)", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json new file mode 100644 index 00000000..4cca6e53 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json @@ -0,0 +1,55 @@ +{ + "test": "kill_secn_worker_pacemakerd", + "name": "kill pacemakerd on secondary worker node", + "purpose": [ + "angi", + "ScaleOut", + "secondary", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_worker_pacemakerd", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From 0f0d5f5779b673ecf57d575a3aba309bfbb01878 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 10:26:55 +0200 Subject: [PATCH 274/414] kill_prim_pacemakerd.json kill_secn_pacemakerd.json: added worker --- .../angi-ScaleOut/kill_prim_pacemakerd.json | 19 ++++++++++++------- .../angi-ScaleOut/kill_secn_pacemakerd.json | 14 ++++++++++---- 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_pacemakerd.json b/test/json/angi-ScaleOut/kill_prim_pacemakerd.json index ff062379..b95f0476 100644 --- a/test/json/angi-ScaleOut/kill_prim_pacemakerd.json +++ b/test/json/angi-ScaleOut/kill_prim_pacemakerd.json @@ -1,6 +1,6 @@ { - "test": "kill_prim_pacemakerd", - "name": "kill pacemakerd on primary (master) node", + "test": "kill_secn_pacemakerd", + "name": "kill pacemakerd on primary master node", "purpose": [ "angi", "ScaleOut", @@ -8,7 +8,6 @@ "kill", "cluster" ], - "todo": "please correct this file", "start": "prereq10", "steps": [ { @@ -21,7 +20,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "step20", @@ -29,10 +30,12 @@ "next": "final40", "loop": 120, "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": "sSiteUp", "sHost": "sHostUp", - "pSite": "pSiteUp", - "pHost": "pHostUp" + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "final40", @@ -44,7 +47,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" } ] } diff --git a/test/json/angi-ScaleOut/kill_secn_pacemakerd.json b/test/json/angi-ScaleOut/kill_secn_pacemakerd.json index 03650d4d..3d85bad5 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemakerd.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemakerd.json @@ -1,6 +1,6 @@ { "test": "kill_secn_pacemakerd", - "name": "kill pacemakerd on secondary (master) node", + "name": "kill pacemakerd on secondary master node", "purpose": [ "angi", "ScaleOut", @@ -20,7 +20,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "step20", @@ -31,7 +33,9 @@ "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": "sSiteUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "final40", @@ -43,7 +47,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" } ] } From 4a9a4623a83d0ddc098d3f3819cd90b3d464b407 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 10:28:48 +0200 Subject: [PATCH 275/414] angi-ScaleUp/kill_secn_pacemkr-ctrld.json classic-ScaleUp/kill_secn_pacemkr-ctrld.json: fixes --- test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json | 1 - test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json | 1 - 2 files changed, 2 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json index 8f64f21a..aad4e9b0 100644 --- a/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json +++ b/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json @@ -46,7 +46,6 @@ "next": "final40", "loop": 180, "wait": 2, - "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ diff --git a/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json b/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json index 8d7cdaa7..e3af921f 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json @@ -46,7 +46,6 @@ "next": "final40", "loop": 180, "wait": 2, - "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ From a3b59a2c0d31eba3f40f6e45075788ba7f95d4be Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 10:41:38 +0200 Subject: [PATCH 276/414] kill_secn_pacemkr-ctrld.json: added worker --- .../kill_secn_pacemkr-ctrld.json | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json index aad4e9b0..848aeff4 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json @@ -20,7 +20,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" }, { "step": "step20", @@ -30,15 +32,18 @@ "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ - "srHook ~ (SFAIL|SOK)" + "srHook ~ (SFAIL|SOK)", + "lpa_@@sid@@_lpt == 30", + "srr is None" ], "sHost": [ - "lpa_@@sid@@_lpt == 30", "clone_state is None", "roles is None", "score is None" - ] + ], + "sWorker": "sWorkerUp" }, { "step": "step30", @@ -48,16 +53,22 @@ "wait": 2, "pSite": "pSiteUp", "pHost": "pHostUp", + "pWorker": "pWorkerUp", "sSite": [ - "srHook ~ (SFAIL|SWAIT|SOK)" + "srHook ~ (SFAIL|SWAIT|SOK)", + "lpa_@@sid@@_lpt == 10", + "srPoll ~ (SFAIL|SWAIT|SOK)", + "lss == 1", + "srr == S" ], "sHost": [ - "lpa_@@sid@@_lpt == 10", "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", - "lss == 1", - "srr == S", - "sync_state ~ (SFAIL|SWAIT|SOK)", + "score ~ (-INFINITY|0)" + ], + "sWorker": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == slave::worker:", "score ~ (-INFINITY|0)" ] }, @@ -71,7 +82,9 @@ "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", - "sHost": "sHostUp" + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" } ] } From 74475ff17446528b9d600dab989596dc169b7cd6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 10:52:33 +0200 Subject: [PATCH 277/414] sct_test_kill_prim_worker_pacemkr-ctrld sct_test_kill_secn_worker_pacemkr-ctrld angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json: initial checkin --- .../sct_test_kill_prim_worker_pacemkr-ctrld | 13 +++ .../sct_test_kill_secn_worker_pacemkr-ctrld | 13 +++ .../kill_secn_worker_pacemkr-ctrld.json | 91 +++++++++++++++++++ 3 files changed, 117 insertions(+) create mode 100755 test/bin/sct_test_kill_prim_worker_pacemkr-ctrld create mode 100755 test/bin/sct_test_kill_secn_worker_pacemkr-ctrld create mode 100644 test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json diff --git a/test/bin/sct_test_kill_prim_worker_pacemkr-ctrld b/test/bin/sct_test_kill_prim_worker_pacemkr-ctrld new file mode 100755 index 00000000..828e1695 --- /dev/null +++ b/test/bin/sct_test_kill_prim_worker_pacemkr-ctrld @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_prim_worker_pacemkr-ctrld - kill pacemaker-controld on primary worker node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currPrimWorker="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="-10000"/ { print $2 }' )" + +echo "==== Kill pacemaker-controld ====" + +ssh "$currPrimWorker" 'killall -9 pacemaker-controld' +# sleep 60 diff --git a/test/bin/sct_test_kill_secn_worker_pacemkr-ctrld b/test/bin/sct_test_kill_secn_worker_pacemkr-ctrld new file mode 100755 index 00000000..068d1178 --- /dev/null +++ b/test/bin/sct_test_kill_secn_worker_pacemkr-ctrld @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_secn_worker_pacemkr-ctrld - kill pacemaker-controld on secondary worker node +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currSecnWorker="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="-12200"/ { print $2 }' )" + +echo "==== Kill pacemaker-controld ====" + +ssh "$currSecnWorker" 'killall -9 pacemaker-controld' +# sleep 60 diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json new file mode 100644 index 00000000..97c71a68 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json @@ -0,0 +1,91 @@ +{ + "test": "kill_secn_pacemkr-ctrld", + "name": "kill pacemaker-controld on secondary worker node", + "purpose": [ + "angi", + "ScaleOut", + "secondary", + "worker", + "kill", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_worker_pacemkr-ctrld", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook ~ (SFAIL|SOK)", + "lpa_@@sid@@_lpt == 30", + "srr is None" + ], + "sHost": [ + "clone_state is None", + "roles is None", + "score is None" + ], + "sWorker": "sWorkerUp" + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 180, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook ~ (SFAIL|SWAIT|SOK)", + "lpa_@@sid@@_lpt == 10", + "srPoll ~ (SFAIL|SWAIT|SOK)", + "lss == 1", + "srr == S" + ], + "sHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (-INFINITY|0)" + ], + "sWorker": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == slave::worker:", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From bdbe75ff10237fad38b5ee6a8d6dca7d506708e5 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 10:58:00 +0200 Subject: [PATCH 278/414] kill_prim_pacemakerd.json kill_prim_worker_pacemakerd.json kill_secn_pacemakerd.json kill_secn_pacemkr-ctrld.json kill_secn_worker_pacemakerd.json kill_secn_worker_pacemkr-ctrld.json: fixes, purpose --- test/json/angi-ScaleOut/kill_prim_pacemakerd.json | 1 + test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json | 1 + test/json/angi-ScaleOut/kill_secn_pacemakerd.json | 1 + test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json | 3 ++- test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json | 1 + .../angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json | 8 ++++---- 6 files changed, 10 insertions(+), 5 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_prim_pacemakerd.json b/test/json/angi-ScaleOut/kill_prim_pacemakerd.json index b95f0476..9a8a51d7 100644 --- a/test/json/angi-ScaleOut/kill_prim_pacemakerd.json +++ b/test/json/angi-ScaleOut/kill_prim_pacemakerd.json @@ -5,6 +5,7 @@ "angi", "ScaleOut", "primary", + "master", "kill", "cluster" ], diff --git a/test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json b/test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json index 5b55320b..403a0054 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_pacemakerd.json @@ -5,6 +5,7 @@ "angi", "ScaleOut", "secondary", + "worker", "kill", "cluster" ], diff --git a/test/json/angi-ScaleOut/kill_secn_pacemakerd.json b/test/json/angi-ScaleOut/kill_secn_pacemakerd.json index 3d85bad5..6ff85201 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemakerd.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemakerd.json @@ -5,6 +5,7 @@ "angi", "ScaleOut", "secondary", + "master", "kill", "cluster" ], diff --git a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json index 848aeff4..e206e455 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json @@ -1,10 +1,11 @@ { "test": "kill_secn_pacemkr-ctrld", - "name": "kill pacemaker-controld on secondary node", + "name": "kill pacemaker-controld on secondary master node", "purpose": [ "angi", "ScaleUp", "secondary", + "master", "kill", "cluster" ], diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json index 4cca6e53..5c425123 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_pacemakerd.json @@ -5,6 +5,7 @@ "angi", "ScaleOut", "secondary", + "worker", "kill", "cluster" ], diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json index 97c71a68..12c72fa2 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json @@ -37,14 +37,14 @@ "sSite": [ "srHook ~ (SFAIL|SOK)", "lpa_@@sid@@_lpt == 30", - "srr is None" + "srr == S" ], - "sHost": [ + "sHost": "sHostUp", + "sWorker": [ "clone_state is None", "roles is None", "score is None" - ], - "sWorker": "sWorkerUp" + ] }, { "step": "step30", From 0125a6e76b78162232e90e55e1d4c973f7a5fccc Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 11:07:21 +0200 Subject: [PATCH 279/414] kill_secn_pacemkr-ctrld_fencing_alert.json: initial checkin --- ...kill_secn_pacemkr-ctrld_fencing_alert.json | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json new file mode 100644 index 00000000..e9ea4739 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json @@ -0,0 +1,114 @@ +{ + "test": "kill_secn_pacemkr-ctrld", + "name": "kill pacemaker-controld on secondary master node with fencing alert", + "purpose": [ + "angi", + "ScaleUp", + "secondary", + "master", + "kill", + "alert", + "fencing", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_pacemkr-ctrld", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected + smaster fenced", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook ~ (SFAIL|SOK)", + "lpa_@@sid@@_lpt == 30", + "srr is None" + ], + "sHost": [ + "clone_state is None", + "roles is None", + "score is None" + ], + "sWorker": "sWorkerUp" + }, + { + "step": "step30", + "name": "sworker fenced", + "next": "step40", + "loop": 240, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "lpt == 10", + "lss == 1", + "srr == S", + "srHook == SFAIL" + ], + "sWorker": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "begin recover", + "next": "final60", + "loop": 180, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook ~ (SFAIL|SWAIT|SOK)", + "lpa_@@sid@@_lpt == 10", + "srPoll ~ (SFAIL|SWAIT|SOK)", + "lss == 1", + "srr == S" + ], + "sHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (-INFINITY|0)" + ], + "sWorker": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == slave::worker:", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From 9a22b14305cec545be1161d8ecfb58e55cc7fbc8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 11:07:39 +0200 Subject: [PATCH 280/414] kill_secn_pacemkr-ctrld.json kill_secn_worker_pacemkr-ctrld.json: description --- test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json | 2 +- test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json index e206e455..ec38bd53 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json @@ -27,7 +27,7 @@ }, { "step": "step20", - "name": "failure detected", + "name": "failure detected + smaster fenced", "next": "step30", "loop": 120, "wait": 2, diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json index 12c72fa2..27b5f1cc 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json @@ -27,7 +27,7 @@ }, { "step": "step20", - "name": "failure detected", + "name": "failure detected + sworker fenced", "next": "step30", "loop": 120, "wait": 2, From 652dda91cc437f0ab271d540675b0753f100c1f2 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 11:11:40 +0200 Subject: [PATCH 281/414] angi-ScaleOut: aligned description, names --- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- .../json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 2 +- .../kill_prim_worker_indexserver_fencing_alert.json | 2 +- .../json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 2 +- .../json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json | 2 +- .../json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json | 2 +- .../angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json | 2 +- .../kill_secn_worker_indexserver_fencing_alert.json | 2 +- .../json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index ee9f8a3a..c37c3697 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "freeze_prim_master_nfs_fencing_alert", - "name": "freeze sap hana nfs on primary master node with fencing alert agent implemented", + "name": "freeze sap hana nfs on primary master node with fencing alert agent", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 011405f2..02a075c9 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_prim_indexserver_fencing_alert", - "name": "Kill primary master indexserver with fencing alert agent implemented", + "name": "Kill primary master indexserver with fencing alert agent", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 470049f4..1fd85fc5 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_prim_inst_fencing_alert", - "name": "Kill primary master instance with fencing alert agent implemented", + "name": "Kill primary master instance with fencing alert agent", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 585035ff..9185e3dd 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_prim_node_fencing_alert", - "name": "Kill primary master node with fencing alert agent implemented", + "name": "Kill primary master node with fencing alert agent", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index 929cb3cd..e08dea36 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_prim_worker_indexserver_fencing_alert", - "name": "Kill primary worker indexserver with fencing alert agent implemented", + "name": "Kill primary worker indexserver with fencing alert agent", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index 821b0417..39ace936 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_prim_worker_inst_fencing_alert", - "name": "Kill primary worker instance with fencing alert agent implemented", + "name": "Kill primary worker instance with fencing alert agent", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 68c25ff8..5301a4da 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_prim_worker_node_fencing_alert", - "name": "Kill primary worker node with fencing alert agent implemented", + "name": "Kill primary worker node with fencing alert agent", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index bc4348f3..e18ee374 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_secn_indexserver_fencing_alert", - "name": "Kill secondary master indexserver with fencing alert implemented", + "name": "Kill secondary master indexserver with fencing alert", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json index e99bbbf2..4aa26d86 100644 --- a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_secn_node_fencing_alert", - "name": "Kill secondary master node with fencing alert agent implemented", + "name": "Kill secondary master node with fencing alert agent", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json index e9ea4739..d33887e8 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_secn_pacemkr-ctrld", - "name": "kill pacemaker-controld on secondary master node with fencing alert", + "name": "kill pacemaker-controld on secondary master node with fencing alert agent", "purpose": [ "angi", "ScaleUp", diff --git a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json index 2e544184..890736b6 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_secn_worker_indexserver_fencing_alert", - "name": "Kill secondary worker indexserver with fencing alert implemented", + "name": "Kill secondary worker indexserver with fencing alert", "purpose": [ "angi", "ScaleOut", diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json index f0869c21..eb53ff44 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json @@ -1,6 +1,6 @@ { "test": "kill_secn_worker_node_fencing_alert", - "name": "Kill secondary worker node with fencing alert agent implemented", + "name": "Kill secondary worker node with fencing alert agent", "purpose": [ "angi", "ScaleOut", From 10d20d046b2d2eb28a40056e6b82ef58d3015207 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 11:25:45 +0200 Subject: [PATCH 282/414] kill_secn_pacemkr-ctrld.json kill_secn_pacemkr-ctrld_fencing_alert.json kill_secn_worker_pacemkr-ctrld.json: fixed lpt --- test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json | 4 ++-- .../kill_secn_pacemkr-ctrld_fencing_alert.json | 12 +++++------- .../kill_secn_worker_pacemkr-ctrld.json | 4 ++-- 3 files changed, 9 insertions(+), 11 deletions(-) diff --git a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json index ec38bd53..d8347a0a 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld.json @@ -36,7 +36,7 @@ "pWorker": "pWorkerUp", "sSite": [ "srHook ~ (SFAIL|SOK)", - "lpa_@@sid@@_lpt == 30", + "lpt == 30", "srr is None" ], "sHost": [ @@ -57,7 +57,7 @@ "pWorker": "pWorkerUp", "sSite": [ "srHook ~ (SFAIL|SWAIT|SOK)", - "lpa_@@sid@@_lpt == 10", + "lpt == 10", "srPoll ~ (SFAIL|SWAIT|SOK)", "lss == 1", "srr == S" diff --git a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json index d33887e8..944d072b 100644 --- a/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_pacemkr-ctrld_fencing_alert.json @@ -38,15 +38,14 @@ "pWorker": "pWorkerUp", "sSite": [ "srHook ~ (SFAIL|SOK)", - "lpa_@@sid@@_lpt == 30", + "lpt == 30", "srr is None" ], "sHost": [ "clone_state is None", "roles is None", "score is None" - ], - "sWorker": "sWorkerUp" + ] }, { "step": "step30", @@ -60,7 +59,6 @@ "sSite": [ "lpt == 10", "lss == 1", - "srr == S", "srHook == SFAIL" ], "sWorker": [ @@ -72,7 +70,7 @@ { "step": "step40", "name": "begin recover", - "next": "final60", + "next": "final50", "loop": 180, "wait": 2, "pSite": "pSiteUp", @@ -80,7 +78,7 @@ "pWorker": "pWorkerUp", "sSite": [ "srHook ~ (SFAIL|SWAIT|SOK)", - "lpa_@@sid@@_lpt == 10", + "lpt == 10", "srPoll ~ (SFAIL|SWAIT|SOK)", "lss == 1", "srr == S" @@ -97,7 +95,7 @@ ] }, { - "step": "final60", + "step": "final50", "name": "end recover", "next": "END", "loop": 150, diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json index 27b5f1cc..ebe20e99 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld.json @@ -36,7 +36,7 @@ "pWorker": "pWorkerUp", "sSite": [ "srHook ~ (SFAIL|SOK)", - "lpa_@@sid@@_lpt == 30", + "lpt == 30", "srr == S" ], "sHost": "sHostUp", @@ -57,7 +57,7 @@ "pWorker": "pWorkerUp", "sSite": [ "srHook ~ (SFAIL|SWAIT|SOK)", - "lpa_@@sid@@_lpt == 10", + "lpt == 10", "srPoll ~ (SFAIL|SWAIT|SOK)", "lss == 1", "srr == S" From 61827cf9acafb515d605e43aea7f0e6605ef5ee3 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 11:27:19 +0200 Subject: [PATCH 283/414] kill_prim_pacemkr-ctrld.json kill_secn_pacemkr-ctrld.json: fixed lpt --- test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json | 8 ++++---- test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json b/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json index 79c05714..3f3249e5 100644 --- a/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json +++ b/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json @@ -36,14 +36,14 @@ "srHook ~ (PRIM|SOK)" ], "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", + "lpt > 1000000000", "clone_state is None", "roles is None", "score is None", "sync_state is None" ], "sHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "lpt ~ (1[6-9]........|30)", "clone_state ~ (PROMOTED|DEMOTED)", "roles == master1:master:worker:master", "lss == 4", @@ -64,7 +64,7 @@ "srHook ~ (PRIM|SWAIT|SREG)" ], "pHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30|20|10)", + "lpt ~ (1[6-9]........|30|20|10)", "clone_state ~ (UNDEFINED|DEMOTED|WAITING4NODES)", "roles == master1::worker:", "lss == 1", @@ -72,7 +72,7 @@ "sync_state ~ (PRIM|SFAIL)" ], "sHost": [ - "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", + "lpt ~ (1[6-9]........|30)", "clone_state ~ (DEMOTED|PROMOTED)", "roles == master1:master:worker:master", "lss == 4", diff --git a/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json index aad4e9b0..9307f37b 100644 --- a/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json +++ b/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json @@ -34,7 +34,7 @@ "srHook ~ (SFAIL|SOK)" ], "sHost": [ - "lpa_@@sid@@_lpt == 30", + "lpt == 30", "clone_state is None", "roles is None", "score is None" @@ -52,7 +52,7 @@ "srHook ~ (SFAIL|SWAIT|SOK)" ], "sHost": [ - "lpa_@@sid@@_lpt == 10", + "lpt == 10", "clone_state ~ (UNDEFINED|DEMOTED)", "roles == master1::worker:", "lss == 1", From 1fa36b859953f34729b94bca602685154c220387 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 11:31:40 +0200 Subject: [PATCH 284/414] kill_secn_worker_pacemkr-ctrld_fencing_alert.json: initial checkin --- ...cn_worker_pacemkr-ctrld_fencing_alert.json | 114 ++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld_fencing_alert.json diff --git a/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld_fencing_alert.json new file mode 100644 index 00000000..231832f3 --- /dev/null +++ b/test/json/angi-ScaleOut/kill_secn_worker_pacemkr-ctrld_fencing_alert.json @@ -0,0 +1,114 @@ +{ + "test": "kill_secn_pacemkr-ctrld", + "name": "kill pacemaker-controld on secondary worker node with fencing alert agent", + "purpose": [ + "angi", + "ScaleOut", + "secondary", + "worker", + "kill", + "alert", + "fencing", + "cluster" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_worker_pacemkr-ctrld", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + }, + { + "step": "step20", + "name": "failure detected + sworker fenced", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook ~ (SFAIL|SOK)", + "lpt == 30", + "srr == S" + ], + "sHost": "sHostUp", + "sWorker": [ + "clone_state is None", + "roles is None", + "score is None" + ] + }, + { + "step": "step30", + "name": "smaster fenced", + "next": "step40", + "loop": 240, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "lpt == 10", + "lss == 1", + "srr == S", + "srHook == SFAIL" + ], + "sMaster": [ + "clone_state is None", + "role is None", + "score is None" + ] + }, + { + "step": "step40", + "name": "begin recover", + "next": "final50", + "loop": 180, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "pWorker": "pWorkerUp", + "sSite": [ + "srHook ~ (SFAIL|SWAIT|SOK)", + "lpt == 10", + "srPoll ~ (SFAIL|SWAIT|SOK)", + "lss == 1", + "srr == S" + ], + "sHost": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == master1::worker:", + "score ~ (-INFINITY|0)" + ], + "sWorker": [ + "clone_state ~ (UNDEFINED|DEMOTED)", + "roles == slave::worker:", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "final50", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp", + "pWorker": "pWorkerUp", + "sWorker": "sWorkerUp" + } + ] +} From cb26bf1e0f1741aa80566dee29895a48f4f9b5f3 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 30 Sep 2024 12:02:38 +0200 Subject: [PATCH 285/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 SAPHanaSR-tests-classic-ScaleUp.7: details --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 26 +++++++++---------- ...HanaSR-tests-angi-ScaleOut_on-fail-fence.7 | 16 ++++++++++-- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 14 +++++----- ...PHanaSR-tests-angi-ScaleUp_on-fail-fence.7 | 8 +++--- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 19 +++++++------- 5 files changed, 47 insertions(+), 36 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 33b270bd..2d2bd128 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2.4 .\" -.TH SAPHanaSR-tests-angi-ScaleOut 7 "18 Sep 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleOut 7 "30 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleOut \- Functional tests for SAPHanaSR Scale-Out. @@ -44,7 +44,7 @@ Freeze HANA NFS on primary site. Freeze HANA NFS on secondary site. .TP \fBkill_prim_indexserver\fP -Kill primary master indexserver, for susChkSrv.py. +Kill primary master indexserver, for susChkSrv.py (action_on_lost=kill). .TP \fBkill_prim_inst\fP Kill primary master instance. @@ -53,13 +53,13 @@ Kill primary master instance. Kill primary master node. .TP \fBkill_prim_pacemakerd\fP -Kill primary master node´s pacemakerd. +Kill primary master node´s pacemakerd (PCMK_fail_fast=yes). .TP \fBkill_prim_pacemkr-ctrld\fP -Kill primary master node´s pacemaker-controld. Not yet implemented. +Kill primary master node´s pacemaker-controld (PCMK_fail_fast=yes). .TP \fBkill_prim_worker_indexserver\fP -Kill primary worker indexserver, for susChkSrv.py. +Kill primary worker indexserver, for susChkSrv.py (action_on_lost=kill). .TP \fBkill_prim_worker_inst\fP Kill primary worker instance. @@ -68,16 +68,16 @@ Kill primary worker instance. Kill primary worker node. .TP \fBkill_prim_worker_pacemakerd\fP -Kill primary worker node´s pacemakerd. Not yet implemented. +Kill primary worker node´s pacemakerd. .TP \fBkill_prim_worker_pacemkr-ctrld\fP -Kill primary worker node´s pacemaker-controld. Not yet implemented. +Kill primary worker node´s pacemaker-controld. .TP \fBkill_prim_site\fP Kill primary site nodes. Not yet implemented. .TP \fBkill_secn_indexserver\fP -Kill secondary master indexserver, for susChkSrv.py. +Kill secondary master indexserver, for susChkSrv.py (action_on_lost=kill). .TP \fBkill_secn_inst\fP Kill secondary master instance. @@ -86,10 +86,10 @@ Kill secondary master instance. Kill secondary master node. .TP \fBkill_secn_pacemakerd\fP -Kill secondary master node´s pacemakerd. +Kill secondary master node´s pacemakerd (PCMK_fail_fast=yes). .TP \fBkill_secn_pacemkr-ctrld\fP -Kill secondary master node´s pacemaker-controld. Not yet implemented. +Kill secondary master node´s pacemaker-controld (PCMK_fail_fast=yes). .TP \fBkill_secn_site\fP Kill secondary site nodes. Not yet implemented. @@ -101,10 +101,10 @@ Kill secondary worker instance. Kill secondary worker node. .TP \fBkill_secn_worker_pacemakerd\fP -Kill secondary worker node´s pacemakerd. Not yet implemented. +Kill secondary worker node´s pacemakerd (PCMK_fail_fast=yes). .TP \fBkill_secn_worker_pacemkr-ctrld\fP -Kill secondary worker node´s pacemaker-controld. Not yet implemented. +Kill secondary worker node´s pacemaker-controld (PCMK_fail_fast=yes). .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. Not yet implemented. diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 index 23824e85..8d020400 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut_on-fail-fence.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2.4 .\" -.TH SAPHanaSR-tests-angi-ScaleOut_on-fail-fence 7 "02 Aug 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleOut_on-fail-fence 7 "30 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleOut_on-fail-fence \- Functional tests for SAPHanaSR Scale-Out with immediate fencing. @@ -33,6 +33,12 @@ Kill primary master instance, for SAPHanaController (ON_FAIL_ACTION=fence and fe \fBkill_prim_node_fencing_alert\fP Kill primary master node (fencing alert agent configured). .TP +\fBkill_prim_pacemakerd_fencing_alert\fP +Kill primary master node´s pacemakerd (PCMK_fail_fast=yes and fencing alert agent configured). +.TP +\fBkill_prim_pacemkr-ctrld_fencing_alert\fP +Kill primary master node´s pacemaker-controld (PCMK_fail_fast=yes and fencing alert agent configured). +.TP \fBkill_prim_worker_indexserver_fencing_alert\fP Kill primary worker indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .TP @@ -48,6 +54,12 @@ Kill secondary master indexserver, for susChkSrv.py (action_on_lost=fence and fe \fBkill_secn_node_fencing_alert\fP Kill secondary master node (fencing alert agent configured). .TP +\fBkill_secn_pacemakerd_fencing_alert\fP +Kill secondary master node´s pacemakerd (PCMK_fail_fast=yes and fencing alert agent configured). +.TP +\fBkill_secn_pacemkr-ctrld_fencing_alert\fP +Kill secondary master node´s pacemaker-controld (PCMK_fail_fast=yes and fencing alert agent configured). +.TP \fBkill_secn_worker_indexserver_fencing_alert\fP Kill secondary worker indexserver, for susChkSrv.py (action_on_lost=fence and fencing alert agent configured). .TP diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index a73c73ea..6a7b4d03 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -1,4 +1,4 @@ -.\" Version: 1.001 +.\" Version: 1.2.4 .\" .TH SAPHanaSR-tests-angi-ScaleUp 7 "18 Sep 2024" "" "SAPHanaSR-angi" .\" @@ -41,7 +41,7 @@ Freeze HANA FS on primary master node. Freeze HANA FS on secondary master node. .TP \fBkill_prim_indexserver\fP -Kill primary indexserver, for susChkSrv.py. +Kill primary indexserver, for susChkSrv.py (action_on_lost=kill). .TP \fBkill_prim_inst\fP Kill primary instance. @@ -50,13 +50,13 @@ Kill primary instance. Kill primary node. .TP \fBkill_prim_pacemakerd\fP -Kill primary pacemakerd. +Kill primary pacemakerd (PCMK_fail_fast=yes). .TP \fBkill_prim_pacemkr-ctrld\fP -Kill primary pacemaker-controld. +Kill primary pacemaker-controld (PCMK_fail_fast=yes). .TP \fBkill_secn_indexserver\fP -Kill secondary indexserver, for susChkSrv.py. +Kill secondary indexserver, for susChkSrv.py (action_on_lost=kill). .TP \fBkill_secn_inst\fP Kill secondary instance. @@ -65,10 +65,10 @@ Kill secondary instance. Kill secondary node. .TP \fBkill_secn_pacemakerd\fP -Kill secondary pacemakerd. +Kill secondary pacemakerd (PCMK_fail_fast=yes). .TP \fBkill_secn_pacemkr-ctrld\fP -Kill secondary pacemaker-controld. +Kill secondary pacemaker-controld (PCMK_fail_fast=yes). .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 index cd4d44e4..29a2a0d0 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp_on-fail-fence.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-angi-ScaleUp_on-fail-fence 7 "12 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-angi-ScaleUp_on-fail-fence 7 "30 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-angi-ScaleUp_on-fail-fence \- Functional tests for SAPHanaSR Scale-Up with immediate fencing. @@ -22,13 +22,13 @@ appropriate parameters. See manual page SAPHanaSR-testCluster(8). Overview on predefined functional tests specific for scale-up with immediate fencing: .TP \fBkill_prim_indexserver_fencing\fP -Kill primary indexserver, for susChkSrv.py (immediate fencing configured). +Kill primary indexserver, for susChkSrv.py (action_on_lost=fence). .TP \fBkill_prim_inst_fencing\fP -Kill primary instance, for SAPHanaController (immediate fencing configured). +Kill primary instance, for SAPHanaController (ON_FAIL_ACTION=fence). .TP \fBkill_secn_indexserver_fencing\fP -Kill secondary indexserver, for susChkSrv.py (immediate fencing configured). +Kill secondary indexserver, for susChkSrv.py (action_on_lost=fence). .PP More recommended tests, but not specific to immediate fencing, are listed in manual page SAPHanaSR-tests-angi-ScaleUp(7). diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 69fd08c0..22f16c63 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2.4 .\" -.TH SAPHanaSR-tests-classic-ScaleUp 7 "18 Sep 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-classic-ScaleUp 7 "30 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-classic-ScaleUp \- Functional tests for SAPHanaSR Scale-Up. @@ -20,7 +20,7 @@ Overview on predefined functional tests for classical SAPHanaSR scale-up: Blocked manual takeover, for susTkOver.py. .TP \fBblock_sr\fP -Block HANA SR and check SFAIL attribute; unblock to recover, for SAPHanaSR.py. +Block HANA SR and check SFAIL attribute; unblock to recover, for SAPHanaSR.py (action_on_lost=kill). .TP \fBflup\fP Like nop but very short sleep, just checking the test engine. @@ -29,7 +29,7 @@ Like nop but very short sleep, just checking the test engine. Free HANA log area on primary site. .TP \fBkill_prim_indexserver\fP -Kill primary indexserver, for susChkSrv.py. +Kill primary indexserver, for susChkSrv.py (action_on_lost=kill). .TP \fBkill_prim_inst\fP Kill primary instance. @@ -38,13 +38,13 @@ Kill primary instance. Kill primary node. .TP \fBkill_prim_pacemakerd\fP -Kill primary pacemakerd. +Kill primary pacemakerd (PCMK_fail_fast=yes). .TP \fBkill_prim_pacemkr-ctrld\fP -Kill primary pacemaker-controld. +Kill primary pacemaker-controld (PCMK_fail_fast=yes). .TP \fBkill_secn_indexserver\fP -Kill secondary indexserver, for susChkSrv.py. +Kill secondary indexserver, for susChkSrv.py (action_on_lost=kill). .TP \fBkill_secn_inst\fP Kill secondary instance. @@ -53,17 +53,16 @@ Kill secondary instance. Kill secondary node. .TP \fBkill_secn_pacemakerd\fP -Kill secondary pacemakerd. +Kill secondary pacemakerd (PCMK_fail_fast=yes). .TP \fBkill_secn_pacemkr-ctrld\fP -Kill secondary pacemaker-controld. +Kill secondary pacemaker-controld (PCMK_fail_fast=yes). .TP \fBmaintenance_cluster_bootstrap\fP Maintenance procedure, initially configuring cluster resources. Not yet implemented. .TP \fBmaintenance_cluster_hana_running\fP Maintenance procedure with stopping and restarting cluster, keep HANA running. -.\" former restart_cluster_hana_running .TP \fBmaintenance_cluster_turn_hana\fP Maintenance procedure, manually turning HANA sites. From 6a411c46d0ecf221b52823e91d22418095330b93 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 11:40:03 +0200 Subject: [PATCH 286/414] SAPHanaSR-ScaleOut_basic_cluster.7 susHanaSR.py.7: nameserver.ini --- man/SAPHanaSR-ScaleOut_basic_cluster.7 | 25 ++++++++++++------------- man/susHanaSR.py.7 | 3 ++- 2 files changed, 14 insertions(+), 14 deletions(-) diff --git a/man/SAPHanaSR-ScaleOut_basic_cluster.7 b/man/SAPHanaSR-ScaleOut_basic_cluster.7 index 5975b6c5..d5e68f35 100644 --- a/man/SAPHanaSR-ScaleOut_basic_cluster.7 +++ b/man/SAPHanaSR-ScaleOut_basic_cluster.7 @@ -140,31 +140,30 @@ susChkSrv.py(7). Please refer to SAP documentation before setting this parameters. .\" TODO check above .PP -\fB/hana/shared/$SID/global/hdb/custom/config/nameserver.ini\fR +\fB/hana/shared/${SID}/global/hdb/custom/config/nameserver.ini\fR .PP -.RS 2 -[landscape] - ... +\fB[landscape]\fR .br -master = suse11:31001 +\fBmaster = \fInode1\fB:31\fInr\fB1\fR .br -worker = suse11 suse12 +\fBworker = \fInode1 node2\fR .br -active_master = suse11:31001 +\fBactive_master = \fInode1\fB:31\fInr\fB1\fR .br -roles_suse11 = worker +\fBroles_\fInode1\fB = worker\fR .br -roles_suse12 = worker - ... -.RE +\fBroles_\fInode2\fB = worker\fR .PP For two-node scale-out HANA without standby nodes, this entry is needed at both sites that are managed by the Linux cluster. The HANA has to be stopped before the files can be edited. Do not copy the file between nodes. It might be necessary to un-register and re-register the secondary to make the change effective on the secondary site. -Please check SAP HANA documentation for details. In this example the master node -is suse11, the worker is suse12. +In the example, \fInode1\fR should be the master namerserver´s hostname, +\fInode2\fR the worker´s hostname, \fInr\fR the instance number. Crucial is to +define only one master namerserver per site, but no candidates. +Please check SAP HANA documentation for details. +.\" In this example the master node is suse11, the worker is suse12. The instance number is 00. .PP .\" .SH EXAMPLES diff --git a/man/susHanaSR.py.7 b/man/susHanaSR.py.7 index dfdda852..42be8872 100644 --- a/man/susHanaSR.py.7 +++ b/man/susHanaSR.py.7 @@ -137,7 +137,8 @@ The HANA has to be stopped before the files can be edited. Do not copy the file between nodes. It might be necessary to un-register and re-register the secondary to make the change effective on the secondary site. Please check SAP HANA documentation for details. In this example the master node -is suse11, the worker is suse12. +is suse11, the worker is suse12, the instance number is 00. See also +SAPHanaSR-ScaleOut_basic_cluster(7). .PP .RS 2 [landscape] From 1ace54c3ad59d4cd488330a0b2b9fff6af5a2b11 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 11:53:45 +0200 Subject: [PATCH 287/414] SAPHanaSR-ScaleOut_basic_cluster.7 SAPHanaSR_basic_cluster.7: PCMK_fail_fast --- man/SAPHanaSR-ScaleOut_basic_cluster.7 | 11 +++++++++++ man/SAPHanaSR_basic_cluster.7 | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/man/SAPHanaSR-ScaleOut_basic_cluster.7 b/man/SAPHanaSR-ScaleOut_basic_cluster.7 index d5e68f35..68380021 100644 --- a/man/SAPHanaSR-ScaleOut_basic_cluster.7 +++ b/man/SAPHanaSR-ScaleOut_basic_cluster.7 @@ -108,6 +108,17 @@ In case systemd-style init is used for the HANA database, it might be desired to have the SAP instance service stopping after pacemaker at system shutdown. Therefor a drop-in file for the pacemaker service might help. See examples below. .PP +\fB* pacemaker service basics\fR +.PP +\fBPCMK_fail_fast = yes\fR +.PP +The parameter PCMK_fail_fast in /etc/sysconfig/pacemaker specifies how pacemaker +reacts on failures of its subdaemons. Default "no" means to restart failed +subdaemons, while "yes" means fencing the node. Setting "yes" might help to avoid +undefined situations. See also SAPHanaSR-alert-fencing(8). +.br +Optional, default no +.PP \fB* SAP HANA Basics\fR .PP \fB/usr/sap/${SID}/SYS/global/hdb/custom/config/global.ini\fR diff --git a/man/SAPHanaSR_basic_cluster.7 b/man/SAPHanaSR_basic_cluster.7 index 04222416..8e9a063a 100644 --- a/man/SAPHanaSR_basic_cluster.7 +++ b/man/SAPHanaSR_basic_cluster.7 @@ -113,7 +113,7 @@ Therefor a drop-in file for the pacemaker service might help. See examples below .PP The parameter PCMK_fail_fast in /etc/sysconfig/pacemaker specifies how pacemaker reacts on failures of its subdaemons. Default "no" means to restart failed -subdaemons, while "yes" means fencing the node. Recommended is "yes" to avoid +subdaemons, while "yes" means fencing the node. Setting "yes" might help to avoid undefined situations. .br Optional, default no From 417930a104e26291f55df7ff7481237ee4e49621 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 11:57:56 +0200 Subject: [PATCH 288/414] SAPHanaSR-alert-fencing.8: PCMK_fail_fast --- man/SAPHanaSR-alert-fencing.8 | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/man/SAPHanaSR-alert-fencing.8 b/man/SAPHanaSR-alert-fencing.8 index 109fc142..74d8ab9f 100644 --- a/man/SAPHanaSR-alert-fencing.8 +++ b/man/SAPHanaSR-alert-fencing.8 @@ -1,4 +1,4 @@ -.\" Version: 1.001 +.\" Version: 1.2.4 .\" .TH SAPHanaSR-alert-fencing 7 "18 Sep 2024" "" "SAPHanaSR" .\" @@ -18,7 +18,7 @@ SAPHanaSR-alert-fencing on each active cluster node. The agent checks whether the local node belongs to the same HANA site as the fenced node. If so, it asks the cluster to fence the local node as well. .PP -This improves three use cases for HANA scale-out: +This improves for use cases for HANA scale-out: .br - HA/DR provider hook script susChkSrv.py action_on_lost=fence .br @@ -26,8 +26,10 @@ This improves three use cases for HANA scale-out: .br - resource agent SAPHanaFilesystem ON_FAIL_ACTION=fence .br -See also manual pages ocf_suse_SAPHanaController(7), ocf_suse_SAPHanaFilesystem(7) -and susChkSrv.py(7). +- pacemaker service PCMK_fail_fast=yes +.br +See also manual pages ocf_suse_SAPHanaController(7), ocf_suse_SAPHanaFilesystem(7), +SAPHanaSR-ScaleOut_basic_cluster(7) and susChkSrv.py(7). .PP .\" .SH SUPPORTED PARAMETERS From c63802f413b29cc32de1595a6154a8a0a9f34188 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 12:00:27 +0200 Subject: [PATCH 289/414] SAPHanaSR-alert-fencing.8: PCMK_fail_fast --- man/SAPHanaSR-alert-fencing.8 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/man/SAPHanaSR-alert-fencing.8 b/man/SAPHanaSR-alert-fencing.8 index 74d8ab9f..5bb8ec5e 100644 --- a/man/SAPHanaSR-alert-fencing.8 +++ b/man/SAPHanaSR-alert-fencing.8 @@ -18,7 +18,7 @@ SAPHanaSR-alert-fencing on each active cluster node. The agent checks whether the local node belongs to the same HANA site as the fenced node. If so, it asks the cluster to fence the local node as well. .PP -This improves for use cases for HANA scale-out: +This improves four use cases for HANA scale-out: .br - HA/DR provider hook script susChkSrv.py action_on_lost=fence .br @@ -134,6 +134,9 @@ the internal cache for host to site relation - do not touch this file .TP /etc/sysconfig/sbd config file for SBD daemon +.TP +/etc/sysconfig/pacermaker +config file for pacemaker daemon .PP .\" .SH REQUIREMENTS From 28c6900824162ff7f3c5832031e3a77b0feaae1a Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 13:24:50 +0200 Subject: [PATCH 290/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7: fixes --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 10 +++++++--- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 2 +- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 12 ++++++++---- 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 2d2bd128..a1b770fb 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -23,7 +23,7 @@ Overview on predefined functional tests for scale-out ERP: Blocked manual takeover, for susTkOver.py. .TP \fBblock_sr\fP -Block HANA SR between master nodes and check SFAIL attribute, unblock to recover, for susHanaSR.py and SAPHanaSR.py. +Block HANA SR between master nodes and check SFAIL attribute, unblock to recover, for susHanaSR.py. .TP \fBblock_sr_and_freeze_prim_master_nfs\fP Block HANA SR and freeze HANA NFS on primary master node. @@ -68,10 +68,10 @@ Kill primary worker instance. Kill primary worker node. .TP \fBkill_prim_worker_pacemakerd\fP -Kill primary worker node´s pacemakerd. +Kill primary worker node´s pacemakerd (PCMK_fail_fast=yes). .TP \fBkill_prim_worker_pacemkr-ctrld\fP -Kill primary worker node´s pacemaker-controld. +Kill primary worker node´s pacemaker-controld (PCMK_fail_fast=yes). .TP \fBkill_prim_site\fP Kill primary site nodes. Not yet implemented. @@ -175,12 +175,14 @@ Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .\" .SH BUGS +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , \fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , \fBSAPHanaSR-tests-angi-ScaleOut_on-fail-fence\fP(7) , @@ -189,10 +191,12 @@ Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH AUTHORS +.PP F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2023-2024 SUSE LLC .br The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 6a7b4d03..d3624d45 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -23,7 +23,7 @@ Overview on predefined functional tests for scale-up: Blocked manual takeover, for susTkOver.py. .TP \fBblock_sr\fP -Block HANA SR and check SFAIL attribute, unblock to recover, for susHanaSR.py and SAPHanaSR.py. +Block HANA SR and check SFAIL attribute, unblock to recover, for susHanaSR.py. .TP \fBblock_sr_and_freeze_prim_fs\fP Block HANA SR and freeze HANA FS on primary master node. diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 22f16c63..357cd162 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -20,7 +20,7 @@ Overview on predefined functional tests for classical SAPHanaSR scale-up: Blocked manual takeover, for susTkOver.py. .TP \fBblock_sr\fP -Block HANA SR and check SFAIL attribute; unblock to recover, for SAPHanaSR.py (action_on_lost=kill). +Block HANA SR and check SFAIL attribute; unblock to recover, for SAPHanaSR.py. .TP \fBflup\fP Like nop but very short sleep, just checking the test engine. @@ -102,7 +102,6 @@ Set secondary node standby and online again. .PP .\" .SH FILES -.\" .TP /usr/share/SAPHanaSR-tester/json/classic-ScaleUp/ functional tests for SAPHanaSR classic scale-up scenarios. @@ -115,7 +114,7 @@ script SAPHanaSR-showAttr from SAPHanaSR-angi. .PP .\" .SH REQUIREMENTS -.\" +.PP * The package SAPHanaSR-tester-client is needed on the cluster nodes. .PP * See also the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR(7). @@ -128,23 +127,28 @@ Please refer to the product documentation. .PP .\" .SH BUGS +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , \fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , \fBSAPHanaSR-tests-ScaleOut\fP(7) , -\fBSAPHanaSR\fP(7) , \fBSAPHanaSR-showAttr\fP(8) +\fBSAPHanaSR\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , +\fBSAPHanaSR-tester-client\fP(7) .PP .\" .SH AUTHORS +.PP F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2024 SUSE LLC .br The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. From 34e0843845dc5100e345c8510faf7d6e9c2a2563 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 13:39:27 +0200 Subject: [PATCH 291/414] SAPHanaSR-tests-basic-cluster.7: files section --- man-tester/SAPHanaSR-tests-basic-cluster.7 | 24 ++++++++++++++-------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-basic-cluster.7 b/man-tester/SAPHanaSR-tests-basic-cluster.7 index 1cd9f603..68123ad3 100644 --- a/man-tester/SAPHanaSR-tests-basic-cluster.7 +++ b/man-tester/SAPHanaSR-tests-basic-cluster.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2.4 .\" -.TH SAPHanaSR-tests-basic-cluster 7 "20 Nov 2023" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-basic-cluster 7 "30 Sep 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-basic-cluster \- Checking SAPHanaSR clusters basics. @@ -162,22 +162,24 @@ grep -e "NOPASSWD.*crm_attribute" -e "NOPASSWD.*SAPHanaSR-hookHelper" .PP .\" .SH FILES -.\" .TP /etc/hosts - +local hostname resolution .TP /etc/chrony.d/* - +config files for chrony daemon .TP /etc/modprobe.d/* .TP /etc/sysconfig/sbd - +config file for SBD daemon +.TP +/etc/sysconfig/pacemaker +config file for pacemaker daemon .TP /etc/corosync/corosync.conf - +config file for corosync daemon .TP /etc/sudoers, /etc/sudoers.d/* the sudo permissions configuration @@ -193,19 +195,21 @@ path to HANA tracefiles .PP .\" .SH REQUIREMENTS -.\" +.PP See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). Of course, the Linux cluster has certain requirements. Please refer to the product documentation. .PP .\" .SH BUGS +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR_basic_cluster\fP(7) , \fBSAPHanaSR-ScaleOut_basic_cluster\fP(7) , \fBsusHanaSR.py\fP(7) , \fBsusTkOver.py\fP(7) , \fBsusChkSrv.py\fP(7) , @@ -225,11 +229,13 @@ https://www.suse.com/releasenotes/ .PP .\" .SH AUTHORS +.PP F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT -(c) 2023 SUSE LLC +.PP +(c) 2023-2024 SUSE LLC .br The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. .br From cd839dcb29b4cb8135d7fa092f142834bd57e9da Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 13:41:04 +0200 Subject: [PATCH 292/414] SAPHanaSR-tests-basic-cluster.7: see also section --- man-tester/SAPHanaSR-tests-basic-cluster.7 | 1 - 1 file changed, 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-basic-cluster.7 b/man-tester/SAPHanaSR-tests-basic-cluster.7 index 68123ad3..ffd5ad75 100644 --- a/man-tester/SAPHanaSR-tests-basic-cluster.7 +++ b/man-tester/SAPHanaSR-tests-basic-cluster.7 @@ -217,7 +217,6 @@ Please report any other feedback and suggestions to feedback@suse.com. \fBcs_show_error_patterns\fP(8) , \fBcs_sum_base_config\fP(8) , \fBcs_show_sbd_devices\fP(8) , \fBsbd\fP(8) , \fBstonith_sbd\fP(8) , \fBsaptune\fP(8) , \fBchronyc\fP(8) , \fBsystemctl\fP(8) , \fBhosts\fP(5) , -\fBsystemctl\fP(8) , .br https://documentation.suse.com/sbp/sap/ , .br From 8e58a97d2ac31d3bd33d49e4c40265c5e0ef7973 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 13:51:32 +0200 Subject: [PATCH 293/414] SAPHanaSR-testCluster.8 SAPHanaSR-tester.7: see also, formatting --- man-tester/SAPHanaSR-testCluster.8 | 19 ++++++++++--------- man-tester/SAPHanaSR-tester.7 | 11 +++++++---- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/man-tester/SAPHanaSR-testCluster.8 b/man-tester/SAPHanaSR-testCluster.8 index 62057925..bb04c34b 100644 --- a/man-tester/SAPHanaSR-testCluster.8 +++ b/man-tester/SAPHanaSR-testCluster.8 @@ -1,4 +1,4 @@ -.\" Version: 1.001 +.\" Version: 1.2.4 .\" .TH SAPHanaSR-testCluster 8 "03 Apr 2024" "" "SAPHanaSR-angi" .\" @@ -7,14 +7,14 @@ SAPHanaSR-testCluster \- Run functional tests for SAPHanaSR clusters. .PP .\" .SH SYNOPSIS -.\" +.PP \fBSAPHanaSR-testCluster\fR [ --help | --version ] .br \fBSAPHanaSR-testCluster\fR \fIOPTION\fR [ \fIOPTION\fR ... ] .PP .\" .SH DESCRIPTION -.\" +.PP SAPHanaSR-testCluster is a tool to run one of the predefined test cases on a given test cluster. For that purpose it is called with options specifying the test case and the properties of the cluster to be tested. @@ -23,7 +23,6 @@ and test automation frameworks. .PP .\" .SH OPTIONS -.\" .TP --help print help message and exit. @@ -60,10 +59,10 @@ path to testcase description file. .TP --version print version and exit. - .PP .\" .SH RETURN CODES +.PP .B 0 Successful program execution. .br @@ -72,7 +71,6 @@ Usage, syntax or execution errors. .PP .\" .SH EXAMPLES -.\" .PP \fB*\fR Running a very basic functional test. .PP @@ -118,7 +116,6 @@ Test ID is 8585, logfile is test.log, debug output is omitted. .PP .\" .SH FILES -.\" .TP /usr/bin/SAPHanaSR-testCluster the program itself. @@ -152,31 +149,35 @@ shell scripts for un-easy tasks on the cluster nodes. .PP .\" .SH REQUIREMENTS -.\" +.PP See the REQUIREMENTS section in SAPHanaSR-tester(7) and SAPHanaSR-angi(7). Of course, HANA database and Linux cluster have certain requirements. Please refer to the product documentation. .PP .\" .SH BUGS +.PP In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , \fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-tests-angi-ScaleOut\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , -\fBcrm_mon\fP(8) , \fBcrm\fP(8) , \fBcs_clusterstate\fP(8) +\fBcrm_mon\fP(8) , \fBcrm\fP(8) , \fBcs_clusterstate\fP(8) , \fBcs_show_cluster_actions\fP(8) , .PP .\" .SH AUTHORS +.PP F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2023-2024 SUSE LLC .br The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. diff --git a/man-tester/SAPHanaSR-tester.7 b/man-tester/SAPHanaSR-tester.7 index 9645768f..1ca8a4d0 100644 --- a/man-tester/SAPHanaSR-tester.7 +++ b/man-tester/SAPHanaSR-tester.7 @@ -1,4 +1,4 @@ -.\" Version: 1.001 +.\" Version: 1.2.4 .\" .TH SAPHanaSR-tester 7 "04 Jul 2024" "" "SAPHanaSR-angi" .\" @@ -7,7 +7,7 @@ SAPHanaSR-tester \- Functional testing for SAPHanaSR clusters. .PP .\" .SH DESCRIPTION -.\" +.PP SAPHanaSR-tester is a suite of tools for automating functional tests of SAP HANA system replication HA clusters. .PP @@ -161,7 +161,6 @@ while read; do echo $REPLY; grep "name" $REPLY | head -1; done .PP .\" .SH FILES -.\" .TP /usr/share/SAPHanaSR-tester/json/angi-ScaleUp/ functional tests for SAPHanaSR-angi scale-up scenarios. @@ -192,7 +191,7 @@ SAPHanaSR-showAttr, compatible to SAPHanaSR-angi and SAPHanaSR-tester .PP .\" .SH REQUIREMENTS -.\" +.PP For the current version of the SAPHanaSR-tester, the capabilities are limited to the following: .PP @@ -246,6 +245,7 @@ Most tests are disruptive. .PP .\" .SH BUGS +.PP The SAPHanaSR-tester is under development. Syntax and formats are subject to change. .br @@ -255,6 +255,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO +.PP \fBSAPHanaSR-testCluster\fP(8) , \fBSAPHanaSR-tests-syntax\fP(5) , \fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-description_on-fail-fence\fP(7) , @@ -271,10 +272,12 @@ https://www.suse.com/releasenotes/ .PP .\" .SH AUTHORS +.PP F.Herschel, L.Pinne. .PP .\" .SH COPYRIGHT +.PP (c) 2023-2024 SUSE LLC .br The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. From 6bf57a2c45a5a30beef13e8c59b211b5903df91d Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 14:43:21 +0200 Subject: [PATCH 294/414] maintenance_with_standby_nodes.json standby_prim_node.json standby_secn_node.json: purpose, using defaults --- .../maintenance_with_standby_nodes.json | 7 +++-- .../classic-ScaleUp/standby_prim_node.json | 3 +- .../classic-ScaleUp/standby_secn_node.json | 28 ++++--------------- 3 files changed, 12 insertions(+), 26 deletions(-) diff --git a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json index 79f95341..2cf0b41d 100644 --- a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json @@ -3,8 +3,9 @@ "name": "standby+online secondary then standby+online primary", "purpose": [ "classic", - "ScaleUp" - "maintenance" + "ScaleUp", + "maintenance", + "standby" ], "start": "prereq10", "steps": [ @@ -40,10 +41,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srHook == SWAIT" ], - "pHost": "pHostUp", "sHost": [ "lpa_@@sid@@_lpt == 10", "clone_state == DEMOTED", diff --git a/test/json/classic-ScaleUp/standby_prim_node.json b/test/json/classic-ScaleUp/standby_prim_node.json index e77ee5f3..a4c8d873 100644 --- a/test/json/classic-ScaleUp/standby_prim_node.json +++ b/test/json/classic-ScaleUp/standby_prim_node.json @@ -3,7 +3,8 @@ "name": "standby primary node (and online again)", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "standby" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/standby_secn_node.json b/test/json/classic-ScaleUp/standby_secn_node.json index 40e52655..9a463ff9 100644 --- a/test/json/classic-ScaleUp/standby_secn_node.json +++ b/test/json/classic-ScaleUp/standby_secn_node.json @@ -3,7 +3,8 @@ "name": "standby secondary node (and online again)", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "standby" ], "start": "prereq10", "steps": [ @@ -26,19 +27,11 @@ "loop": 120, "wait": 2, "post": "osn", - "pSite": [ - "srHook == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srHook == SFAIL" ], - "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", - "clone_state == PROMOTED", - "roles == 4:P:master1:master:worker:master", - "sync_state == PRIM", - "score == 150" - ], "sHost": [ "lpa_@@sid@@_lpt == 10", "clone_state == UNDEFINED", @@ -54,20 +47,11 @@ "next": "final40", "loop": 120, "wait": 2, - "todo": "pHost+sHost to check site-name", - "pSite": [ - "srHook == PRIM" - ], + "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srHook == SWAIT" ], - "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", - "clone_state == PROMOTED", - "roles == 4:P:master1:master:worker:master", - "sync_state == PRIM", - "score == 150" - ], "sHost": [ "lpa_@@sid@@_lpt == 10", "clone_state == DEMOTED", From b6431194f2444bd635e67d0bd695b023785937b9 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 14:53:22 +0200 Subject: [PATCH 295/414] standby_prim_node.json: using defaults --- .../classic-ScaleUp/standby_prim_node.json | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/test/json/classic-ScaleUp/standby_prim_node.json b/test/json/classic-ScaleUp/standby_prim_node.json index a4c8d873..f78146c6 100644 --- a/test/json/classic-ScaleUp/standby_prim_node.json +++ b/test/json/classic-ScaleUp/standby_prim_node.json @@ -29,9 +29,6 @@ "pSite": [ "srHook == PRIM" ], - "sSite": [ - "srHook ~ (PRIM|SOK)" - ], "pHost": [ "lpa_@@sid@@_lpt > 1000000000", "clone_state == UNDEFINED", @@ -40,6 +37,9 @@ "sync_state == PRIM", "standby == on" ], + "sSite": [ + "srHook ~ (PRIM|SOK)" + ], "sHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(30)", "clone_state == PROMOTED", @@ -58,9 +58,6 @@ "pSite": [ "srHook == PRIM" ], - "sSite": [ - "srHook == PRIM" - ], "pHost": [ "lpa_@@sid@@_lpt == 10", "clone_state == UNDEFINED", @@ -69,13 +66,8 @@ "score == 150", "standby == on" ], - "sHost": [ - "lpa_@@sid@@_lpt > 1000000000", - "clone_state == PROMOTED", - "roles == 4:P:master1:master:worker:master", - "sync_state == PRIM", - "score == 150" - ] + "sSite": "pSiteUp", + "sHost": "pHostUp" }, { "step": "final40", @@ -84,7 +76,6 @@ "loop": 120, "wait": 2, "post": "cleanup", - "todo": "allow pointer to prereq10", "pSite": "sSiteUp", "sSite": "pSiteUp", "pHost": "sHostUp", From 876d8270362125b487f44ce1f61d06ca512388ba Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 15:00:06 +0200 Subject: [PATCH 296/414] standby_prim_node.json standby_secn_node.json maintenance_with_standby_nodes.json: purpose --- test/json/angi-ScaleUp/standby_prim_node.json | 2 +- test/json/angi-ScaleUp/standby_secn_node.json | 2 +- .../classic-ScaleUp/maintenance_with_standby_nodes.json | 7 +++++-- test/json/classic-ScaleUp/standby_prim_node.json | 5 ++++- test/json/classic-ScaleUp/standby_secn_node.json | 5 ++++- 5 files changed, 15 insertions(+), 6 deletions(-) diff --git a/test/json/angi-ScaleUp/standby_prim_node.json b/test/json/angi-ScaleUp/standby_prim_node.json index d4c9bd5d..ea44dd93 100644 --- a/test/json/angi-ScaleUp/standby_prim_node.json +++ b/test/json/angi-ScaleUp/standby_prim_node.json @@ -6,7 +6,7 @@ "ScaleUp", "standby", "primary", - "node", + "cluster", "maintenance" ], "start": "prereq10", diff --git a/test/json/angi-ScaleUp/standby_secn_node.json b/test/json/angi-ScaleUp/standby_secn_node.json index a0247ff8..7ce8752e 100644 --- a/test/json/angi-ScaleUp/standby_secn_node.json +++ b/test/json/angi-ScaleUp/standby_secn_node.json @@ -6,7 +6,7 @@ "ScaleUp", "standby", "secondary", - "node", + "cluster", "maintenance" ], "start": "prereq10", diff --git a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json index 2cf0b41d..7de5e7e1 100644 --- a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json @@ -4,8 +4,11 @@ "purpose": [ "classic", "ScaleUp", - "maintenance", - "standby" + "standby", + "primary", + "secondary", + "cluster", + "maintenance" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/standby_prim_node.json b/test/json/classic-ScaleUp/standby_prim_node.json index f78146c6..247db03f 100644 --- a/test/json/classic-ScaleUp/standby_prim_node.json +++ b/test/json/classic-ScaleUp/standby_prim_node.json @@ -4,7 +4,10 @@ "purpose": [ "classic", "ScaleUp", - "standby" + "standby", + "primary", + "cluster", + "maintenance" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/standby_secn_node.json b/test/json/classic-ScaleUp/standby_secn_node.json index 9a463ff9..1cfccef1 100644 --- a/test/json/classic-ScaleUp/standby_secn_node.json +++ b/test/json/classic-ScaleUp/standby_secn_node.json @@ -4,7 +4,10 @@ "purpose": [ "classic", "ScaleUp", - "standby" + "standby", + "secondary", + "cluster", + "maintenance" ], "start": "prereq10", "steps": [ From 96e07576847b36c86f644ecda6fceb0e3b3f38a9 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 1 Oct 2024 15:10:13 +0200 Subject: [PATCH 297/414] kill_prim_node.json kill_secn_node.json maintenance_cluster_hana_running.json maintenance_cluster_turn_hana.json restart_cluster.json restart_cluster_turn_hana.json: purpose --- test/json/classic-ScaleUp/kill_prim_node.json | 10 ++++------ test/json/classic-ScaleUp/kill_secn_node.json | 4 ++-- .../maintenance_cluster_hana_running.json | 3 ++- .../classic-ScaleUp/maintenance_cluster_turn_hana.json | 4 +++- test/json/classic-ScaleUp/restart_cluster.json | 5 +++-- .../classic-ScaleUp/restart_cluster_turn_hana.json | 4 +++- 6 files changed, 17 insertions(+), 13 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_node.json b/test/json/classic-ScaleUp/kill_prim_node.json index ccdaa041..bf765410 100644 --- a/test/json/classic-ScaleUp/kill_prim_node.json +++ b/test/json/classic-ScaleUp/kill_prim_node.json @@ -31,9 +31,6 @@ "pSite": [ "srHook ~ (PRIM|SWAIT|SREG)" ], - "sSite": [ - "srHook ~ (PRIM|SOK)" - ], "pHost": [ "lpa_@@sid@@_lpt ~ (1[6-9]........|20|10)", "clone_state is None", @@ -41,6 +38,9 @@ "score is None", "sync_state is None" ], + "sSite": [ + "srHook ~ (PRIM|SOK)" + ], "sHost": [ "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", "clone_state ~ (PROMOTED|DEMOTED)", @@ -59,15 +59,13 @@ "pSite": [ "srHook ~ (PRIM|SWAIT|SREG)" ], - "sSite": [ - "srHook == PRIM" - ], "pHost": [ "lpa_@@sid@@_lpt ~ (1[6-9]........|30|20|10)", "clone_state ~ (UNDEFINED|DEMOTED|WAITING4NODES)", "roles == 1:P:master1::worker:", "sync_state ~ (PRIM|SFAIL)" ], + "sSite": "pSiteUp", "sHost": [ "lpa_@@sid@@_lpt ~ (1[6-9]........|30)", "clone_state ~ (DEMOTED|PROMOTED)", diff --git a/test/json/classic-ScaleUp/kill_secn_node.json b/test/json/classic-ScaleUp/kill_secn_node.json index 483f479b..25a60ba9 100644 --- a/test/json/classic-ScaleUp/kill_secn_node.json +++ b/test/json/classic-ScaleUp/kill_secn_node.json @@ -28,11 +28,11 @@ "next": "step30", "loop": 180, "wait": 2, + "pHost": "pHostUp", "pSite": "pSiteUp", "sSite": [ "srHook == SFAIL" ], - "pHost": "pHostUp", "sHost": [ "lpa_@@sid@@_lpt == 10", "clone_state is None", @@ -48,10 +48,10 @@ "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", + "pHost": "pHostUp", "sSite": [ "srHook ~ (SFAIL|SWAIT|SOK)" ], - "pHost": "pHostUp", "sHost": [ "lpa_@@sid@@_lpt == 10", "clone_state ~ (UNDEFINED|DEMOTED)", diff --git a/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json b/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json index ba271333..48ac8bde 100644 --- a/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json +++ b/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json @@ -4,7 +4,8 @@ "purpose": [ "classic", "ScaleUp", - "maintenance" + "maintenance", + "cluster" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json b/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json index a8f51cf7..1f163a40 100644 --- a/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json +++ b/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json @@ -4,7 +4,9 @@ "purpose": [ "classic", "ScaleUp", - "maintenance" + "maintenance", + "cluster", + "hana" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/restart_cluster.json b/test/json/classic-ScaleUp/restart_cluster.json index d29220fe..82e4f2ef 100644 --- a/test/json/classic-ScaleUp/restart_cluster.json +++ b/test/json/classic-ScaleUp/restart_cluster.json @@ -1,9 +1,10 @@ { "test": "restart_cluster", - "name": "restart_cluster", + "name": "restart cluster", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "cluster" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/restart_cluster_turn_hana.json b/test/json/classic-ScaleUp/restart_cluster_turn_hana.json index 958361a6..11bd5d4f 100644 --- a/test/json/classic-ScaleUp/restart_cluster_turn_hana.json +++ b/test/json/classic-ScaleUp/restart_cluster_turn_hana.json @@ -3,7 +3,9 @@ "name": "restart_cluster_turn_hana", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "cluster", + "hana" ], "start": "prereq10", "steps": [ From 23ec0c4a863694dfaa33f6b56a0c189c10c4a63a Mon Sep 17 00:00:00 2001 From: lpinne Date: Fri, 18 Oct 2024 12:36:49 +0200 Subject: [PATCH 298/414] ocf_suse_SAPHana.7, ocf_suse_SAPHanaController.7: some options not experimental anymore --- man/ocf_suse_SAPHana.7 | 4 ++-- man/ocf_suse_SAPHanaController.7 | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/man/ocf_suse_SAPHana.7 b/man/ocf_suse_SAPHana.7 index f1af26b1..4eda844f 100644 --- a/man/ocf_suse_SAPHana.7 +++ b/man/ocf_suse_SAPHana.7 @@ -1,6 +1,6 @@ .\" Version: 0.160.1 .\" -.TH ocf_suse_SAPHana 7 "21 Jun 2024" "" "OCF resource agents" +.TH ocf_suse_SAPHana 7 "18 Oct 2024" "" "OCF resource agents" .\" .SH NAME SAPHana \- Manages takeover between two SAP HANA databases with system replication. @@ -119,7 +119,7 @@ Optional, well known directories will be searched by default. .RS 4 Define timeout how long a call to HANA to receive information can take. This could be e.g. landscapeHostConfiguration.py. There are some specific calls to HANA which have their own timeout values. For example the sr_takeover command does not timeout (inf). If the timeout is reached, the return code will be 124. If you increase the timeouts for HANA calls you should also adjust the operation timeouts of your Linux cluster resources. .br -Optional, experimental. Default value: 60. +Optional. Default value: 60. .RE .PP \fBINSTANCE_PROFILE\fR diff --git a/man/ocf_suse_SAPHanaController.7 b/man/ocf_suse_SAPHanaController.7 index eb4cbc9a..94966b78 100644 --- a/man/ocf_suse_SAPHanaController.7 +++ b/man/ocf_suse_SAPHanaController.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2.9 .\" -.TH ocf_suse_SAPHanaController 7 "20 Sep 2024" "" "OCF resource agents" +.TH ocf_suse_SAPHanaController 7 "18 Oct 2024" "" "OCF resource agents" .\" .SH NAME SAPHanaController \- Manages takeover between two SAP HANA databases with system replication. @@ -148,7 +148,7 @@ Values: [ proceed | fence ]. .br - fence: trigger stop failure and node fencing, if conditions are matched. .br -Experimental (Optional). Default value: proceed. +Optional. Default value: proceed. .RE .PP \fBPREFER_SITE_TAKEOVER\fR From 633e9a9920801c04b2b20071e7c05992c1ad5ee0 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 22 Oct 2024 16:19:09 +0200 Subject: [PATCH 299/414] susHanaSR.py.7: fixed grep --- man/susHanaSR.py.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/susHanaSR.py.7 b/man/susHanaSR.py.7 index 42be8872..a0cf2b05 100644 --- a/man/susHanaSR.py.7 +++ b/man/susHanaSR.py.7 @@ -175,7 +175,7 @@ To be executed on respective HANA primary site's master nameserver. .br ~> grep susHanaSR.srConnectionChanged.*called nameserver_*.trc .br -~> grep crm_attribute.*susHanaSR nameserver_*.trc +~> grep susHanaSR.*crm_attribute nameserver_*.trc .br # exit .RE From a2a7f39ee01a8fe9af26bf1a5b6ae038346d02a6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 08:44:02 +0200 Subject: [PATCH 300/414] global.ini_susChkSrv_fence: initial checkin --- srHook/global.ini_susChkSrv_fence | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 srHook/global.ini_susChkSrv_fence diff --git a/srHook/global.ini_susChkSrv_fence b/srHook/global.ini_susChkSrv_fence new file mode 100644 index 00000000..e26e73f1 --- /dev/null +++ b/srHook/global.ini_susChkSrv_fence @@ -0,0 +1,10 @@ +[ha_dr_provider_suschksrv] +provider = susChkSrv +path = /usr/share/SAPHanaSR-angi/ +execution_order = 3 +action_on_lost = fence +stop_timeout = 25 + +[trace] +ha_dr_suschksrv = info + From f58ce03c9c474ad27afa79c291ffd4a5d3958eca Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 08:46:46 +0200 Subject: [PATCH 301/414] 050_clone_con_fence_crm.txt: initial chekcin --- .../angi-ScaleUp/050_clone_con_fence_crm.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 crm_cfg/angi-ScaleUp/050_clone_con_fence_crm.txt diff --git a/crm_cfg/angi-ScaleUp/050_clone_con_fence_crm.txt b/crm_cfg/angi-ScaleUp/050_clone_con_fence_crm.txt new file mode 100644 index 00000000..22aaf2fe --- /dev/null +++ b/crm_cfg/angi-ScaleUp/050_clone_con_fence_crm.txt @@ -0,0 +1,17 @@ +# +# promotable clone (5) +# +primitive rsc_SAPHanaCon_@@SID@@_HDB@@INO@@ ocf:suse:SAPHanaController \ + op start interval=0 timeout=3600 \ + op stop interval=0 timeout=3600 \ + op promote interval=0 timeout=900 \ + op monitor interval=60 role=Promoted timeout=700 \ + op monitor interval=61 role=Unpromoted timeout=700 \ + params SID=@@SID@@ InstanceNumber=@@INO@@ PREFER_SITE_TAKEOVER=yes DUPLICATE_PRIMARY_TIMEOUT=600 AUTOMATED_REGISTER=yes ON_FAIL_ACTION=fence\ + meta priority=100 +# +clone mst_SAPHanaCon_@@SID@@_HDB@@INO@@ rsc_SAPHanaCon_@@SID@@_HDB@@INO@@ \ + meta clone-max=2 clone-node-max=1 interleave=true promotable=true maintenance=true +# +#################################################################### +# From 23df88ab9d6dd71c3f33b0e63ee1e77ed2117ce2 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 13:39:33 +0200 Subject: [PATCH 302/414] sct_test_unfreeze_secn_fs: initial checkin --- test/bin/sct_test_unfreeze_secn_fs | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100755 test/bin/sct_test_unfreeze_secn_fs diff --git a/test/bin/sct_test_unfreeze_secn_fs b/test/bin/sct_test_unfreeze_secn_fs new file mode 100755 index 00000000..5423de11 --- /dev/null +++ b/test/bin/sct_test_unfreeze_secn_fs @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_unfreeze_secn_fs - unfreeze fs in secondary side +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" + +echo "==== Un-Freeze SAP HANA FS ====" + +ssh "$currSecondary" 'fsfreeze --unfreeze /hana/shared/'"${SID}" +sleep 60 From 605fab2d3ea5785efff439f7e9a1811f35df43f4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 14:06:49 +0200 Subject: [PATCH 303/414] freeze_secn_fs.json: added sleep and unfreeze --- test/json/angi-ScaleUp/freeze_secn_fs.json | 33 ++++++++++++++++------ 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json index 26aca635..f980bf91 100644 --- a/test/json/angi-ScaleUp/freeze_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -26,10 +26,26 @@ }, { "step": "step20", - "name": "failure detected", + "name": "wait with frozen fs", "next": "step30", + "loop": 30, + "wait": 2, + "post": "sleep 120", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sSite": [ + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ] + }, + { + "step": "step30", + "name": "failure detected + unfreeze fs", + "next": "step40", "loop": 120, "wait": 2, + "post": "shell sct_test_unfreeze_prim_fs", "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ @@ -38,14 +54,13 @@ "srr == S", "srHook == SFAIL", "srPoll == SFAIL" - ], - "sHost": [] + ] }, { - "step": "step30", + "step": "step40", "name": "begin recover", - "next": "final40", - "loop": 300, + "next": "final60", + "loop": 120, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", @@ -60,14 +75,14 @@ "sHost": [ "clone_state ~ (DEMOTED|UNDEFINED)", "roles == master1::worker:", - "score ~ (100|145|150)" + "score == 100" ] }, { - "step": "final40", + "step": "final60", "name": "end recover", "next": "END", - "loop": 300, + "loop": 180, "wait": 2, "post": "cleanup", "pSite": "pSiteUp", From f3070f59a47e97b0c09fa192852db6f5c057f4c8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 14:07:32 +0200 Subject: [PATCH 304/414] sct_test_unfreeze_prim_fs: minor fix --- test/bin/sct_test_unfreeze_prim_fs | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/bin/sct_test_unfreeze_prim_fs b/test/bin/sct_test_unfreeze_prim_fs index 8c95e458..8c866bf2 100755 --- a/test/bin/sct_test_unfreeze_prim_fs +++ b/test/bin/sct_test_unfreeze_prim_fs @@ -1,6 +1,6 @@ #!/bin/bash # -# sct_test_unfreeze_prim_fs - freeze fs in primary side +# sct_test_unfreeze_prim_fs - unfreeze fs in primary side src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") @@ -9,7 +9,5 @@ currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | a echo "==== Un-Freeze SAP HANA FS ====" -ports="4${instNr}01,4${instNr}02,4${instNr}03" - ssh "$currPrimary" 'fsfreeze --unfreeze /hana/shared/'"${SID}" sleep 60 From 24c336a7b4b7cc57ff5c58d5888274a9ef2d28b1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 14:43:03 +0200 Subject: [PATCH 305/414] freeze_secn_fs.json --- test/json/angi-ScaleUp/freeze_secn_fs.json | 23 ++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json index f980bf91..41522813 100644 --- a/test/json/angi-ScaleUp/freeze_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -48,11 +48,15 @@ "post": "shell sct_test_unfreeze_prim_fs", "pSite": "pSiteUp", "pHost": "pHostUp", + "sHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "score == -INFINITY" + ], "sSite": [ - "lpt ~ (20|10)", - "lss == 1", + "lpt == 10", + "lss == 4", "srr == S", - "srHook == SFAIL", + "srHook ~ (SOK|SFAIL)", "srPoll == SFAIL" ] }, @@ -65,17 +69,16 @@ "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", + "sHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "score ~ (-3|100)" + ], "sSite": [ - "lpt ~ (20|10)", + "lpt == 10", "lss == 4", "srr == S", - "srHook ~ (SOK|SWAIT)", + "srHook ~ (SOK|SFAIL)", "srPoll ~ (SOK|SFAIL)" - ], - "sHost": [ - "clone_state ~ (DEMOTED|UNDEFINED)", - "roles == master1::worker:", - "score == 100" ] }, { From b033ce8f2c754f7aefd4889330d53982e4f245e0 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 15:25:28 +0200 Subject: [PATCH 306/414] freeze_secn_fs.json --- test/json/angi-ScaleUp/freeze_secn_fs.json | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json index 41522813..085b07c8 100644 --- a/test/json/angi-ScaleUp/freeze_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -33,6 +33,10 @@ "post": "sleep 120", "pSite": "pSiteUp", "pHost": "pHostUp", + "sHost": [ + "clone_state == DEMOTED", + "score == 100" + ], "sSite": [ "srr == S", "srHook == SFAIL", @@ -49,14 +53,14 @@ "pSite": "pSiteUp", "pHost": "pHostUp", "sHost": [ - "clone_state ~ (DEMOTED|UNDEFINED)", - "score == -INFINITY" + "clone_state == DEMOTED", + "score == 100" ], "sSite": [ "lpt == 10", "lss == 4", "srr == S", - "srHook ~ (SOK|SFAIL)", + "srHook == SFAIL", "srPoll == SFAIL" ] }, From 91496345e65195b6a250a7413f57d2216b8ae176 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 15:39:31 +0200 Subject: [PATCH 307/414] freeze_secn_fs.json --- test/json/angi-ScaleUp/freeze_secn_fs.json | 1 - 1 file changed, 1 deletion(-) diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json index 085b07c8..a3f2eae6 100644 --- a/test/json/angi-ScaleUp/freeze_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -70,7 +70,6 @@ "next": "final60", "loop": 120, "wait": 2, - "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", "sHost": [ From 8e61e3075fc817b321b97ebbadb15e3db2310e61 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 23 Oct 2024 15:49:26 +0200 Subject: [PATCH 308/414] angi tester: bin - *freeze_secn_fs scripts to report node where the freeze is started --- test/bin/sct_test_freeze_secn_fs | 2 +- test/bin/sct_test_unfreeze_secn_fs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/test/bin/sct_test_freeze_secn_fs b/test/bin/sct_test_freeze_secn_fs index f5640ace..8a5e67c5 100755 --- a/test/bin/sct_test_freeze_secn_fs +++ b/test/bin/sct_test_freeze_secn_fs @@ -7,7 +7,7 @@ dir_path=$(dirname "$full_path") source .test_properties currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" -echo "==== Freeze SAP HANA FS ====" +echo "==== Freeze SAP HANA FS on $currSecondary ====" ports="4${instNr}01,4${instNr}02,4${instNr}03" diff --git a/test/bin/sct_test_unfreeze_secn_fs b/test/bin/sct_test_unfreeze_secn_fs index 5423de11..5dc70443 100755 --- a/test/bin/sct_test_unfreeze_secn_fs +++ b/test/bin/sct_test_unfreeze_secn_fs @@ -7,7 +7,7 @@ dir_path=$(dirname "$full_path") source .test_properties currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" -echo "==== Un-Freeze SAP HANA FS ====" +echo "==== Un-Freeze SAP HANA FS on $currSecondary ====" ssh "$currSecondary" 'fsfreeze --unfreeze /hana/shared/'"${SID}" sleep 60 From 003cf8e2d731708f10f97cf6671158479daca9ff Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 23 Oct 2024 15:54:05 +0200 Subject: [PATCH 309/414] angi tester: freeze_secn_fs.json - fixed release post action --- test/json/angi-ScaleUp/freeze_secn_fs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json index a3f2eae6..7ac2d125 100644 --- a/test/json/angi-ScaleUp/freeze_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -49,7 +49,7 @@ "next": "step40", "loop": 120, "wait": 2, - "post": "shell sct_test_unfreeze_prim_fs", + "post": "shell sct_test_unfreeze_secn_fs", "pSite": "pSiteUp", "pHost": "pHostUp", "sHost": [ From cc8e56d8d5c178a35cacbf3343b6245060882f20 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 23 Oct 2024 16:06:27 +0200 Subject: [PATCH 310/414] angi tester: freeze_secn_fs.json - adapted check rules --- test/json/angi-ScaleUp/freeze_secn_fs.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_secn_fs.json index 7ac2d125..96d7da66 100644 --- a/test/json/angi-ScaleUp/freeze_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_secn_fs.json @@ -74,10 +74,10 @@ "pHost": "pHostUp", "sHost": [ "clone_state ~ (DEMOTED|UNDEFINED)", - "score ~ (-3|100)" + "score == 100" ], "sSite": [ - "lpt == 10", + "lpt ~ (10|30)", "lss == 4", "srr == S", "srHook ~ (SOK|SFAIL)", From 25bc6a2f303af31bc45ddbf5dcbaead97ebdc53e Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 23 Oct 2024 16:14:01 +0200 Subject: [PATCH 311/414] SAPHanaSR-tests-description.7 --- man-tester/SAPHanaSR-tests-description.7 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 090b83a6..554b01f0 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -1,6 +1,6 @@ .\" Version: 1.001 .\" -.TH SAPHanaSR-tests-description 7 "18 Sep 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-description 7 "23 Oct 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-description \- Functional tests for SAPHanaSR. @@ -213,9 +213,10 @@ Topology: ScaleUp (angi only). Prereq: Cluster and HANA are up and running, all good. .br Test: See ocf_suse_SAPHanaFilesystem(7). +Freeze is shorter than SAPHanaController monitor timeout. .br Expect: Primary keeps running. -HANA secondary restarted. +HANA secondary keeps running. SR SFAIL and finally SOK. No takeover. No fence. .br From 5cab010b75493a1280c8c608a7f7b006d183dc00 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 23 Oct 2024 18:49:03 +0200 Subject: [PATCH 312/414] angi tester: rename freeze_secn_fs.json to freeze_short_secn_fs.json json --- .../{freeze_secn_fs.json => freeze_short_secn_fs.json} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename test/json/angi-ScaleUp/{freeze_secn_fs.json => freeze_short_secn_fs.json} (100%) diff --git a/test/json/angi-ScaleUp/freeze_secn_fs.json b/test/json/angi-ScaleUp/freeze_short_secn_fs.json similarity index 100% rename from test/json/angi-ScaleUp/freeze_secn_fs.json rename to test/json/angi-ScaleUp/freeze_short_secn_fs.json From e61a67fa3b7a7a25bc6edbbfbaf1ecb680bd6d5f Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 23 Oct 2024 18:50:27 +0200 Subject: [PATCH 313/414] angi tester: rename freeze_secn_fs.json to freeze_short_secn_fs.json json --- test/json/angi-ScaleUp/freeze_short_secn_fs.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/angi-ScaleUp/freeze_short_secn_fs.json b/test/json/angi-ScaleUp/freeze_short_secn_fs.json index 96d7da66..fe829c1a 100644 --- a/test/json/angi-ScaleUp/freeze_short_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_short_secn_fs.json @@ -1,6 +1,6 @@ { - "test": "freeze_secn_fs", - "name": "freeze sap hana fs on secondary node", + "test": "freeze_short_secn_fs", + "name": "freeze sap hana fs on secondary node - short time period", "purpose": [ "angi", "ScaleUp", From 75fc7484e6dfbfd70ee77d5b66e08ff77d5ee379 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 23 Oct 2024 19:44:41 +0200 Subject: [PATCH 314/414] angi tester: freeze_long_secn_fs - new test case (very long runtime - approx 20 min) --- .../angi-ScaleUp/freeze_long_secn_fs.json | 98 +++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 test/json/angi-ScaleUp/freeze_long_secn_fs.json diff --git a/test/json/angi-ScaleUp/freeze_long_secn_fs.json b/test/json/angi-ScaleUp/freeze_long_secn_fs.json new file mode 100644 index 00000000..a331d59e --- /dev/null +++ b/test/json/angi-ScaleUp/freeze_long_secn_fs.json @@ -0,0 +1,98 @@ +{ + "test": "freeze_long_secn_fs", + "name": "freeze sap hana fs on secondary node - long time period - fencing", + "purpose": [ + "angi", + "ScaleUp", + "fs", + "freeze", + "secondary", + "node" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_freeze_secn_fs", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "wait with frozen fs", + "next": "step30", + "loop": 30, + "wait": 2, + "post": "sleep 120", + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sHost": [ + "clone_state == DEMOTED", + "score == 100" + ], + "sSite": [ + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ] + }, + { + "step": "step30", + "name": "failure detected + host fenced", + "next": "step40", + "loop": 700, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sHost": [ + "clone_state is None", + "roles is None", + "score is None" + ], + "sSite": [ + "srr == S", + "srHook == SFAIL", + "srPoll == SFAIL" + ] + }, + { + "step": "step40", + "name": "begin recover", + "next": "final60", + "loop": 120, + "wait": 2, + "pSite": "pSiteUp", + "pHost": "pHostUp", + "sHost": [ + "clone_state ~ (DEMOTED|UNDEFINED)", + "score == 100" + ], + "sSite": [ + "lpt ~ (10|30)", + "lss == 4", + "srr == S", + "srHook ~ (SOK|SFAIL)", + "srPoll ~ (SOK|SFAIL)" + ] + }, + { + "step": "final60", + "name": "end recover", + "next": "END", + "loop": 180, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 53b677f8c8995cc0c7790898735ef872cba2bc51 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Wed, 23 Oct 2024 20:20:19 +0200 Subject: [PATCH 315/414] angi tester: first tests with 'art'-flag which contains the aproximate run time (art) --- test/json/angi-ScaleUp/freeze_long_secn_fs.json | 2 +- test/json/angi-ScaleUp/freeze_short_secn_fs.json | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/test/json/angi-ScaleUp/freeze_long_secn_fs.json b/test/json/angi-ScaleUp/freeze_long_secn_fs.json index a331d59e..90a83819 100644 --- a/test/json/angi-ScaleUp/freeze_long_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_long_secn_fs.json @@ -9,7 +9,7 @@ "secondary", "node" ], - "todo": "please correct this file", + "art": "00:18:00", "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/freeze_short_secn_fs.json b/test/json/angi-ScaleUp/freeze_short_secn_fs.json index fe829c1a..87351a89 100644 --- a/test/json/angi-ScaleUp/freeze_short_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_short_secn_fs.json @@ -9,6 +9,7 @@ "secondary", "node" ], + "art": "00:04:10", "todo": "please correct this file", "start": "prereq10", "steps": [ From 9dc76498202b00398cfbb3d0b2514341fce70968 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 28 Oct 2024 18:00:41 +0100 Subject: [PATCH 316/414] SAPHanaController-scale-out.7 SAPHanaController-scale-up.7 SAPHanaSR-angi-scenarios.7: initial checkin --- man/SAPHanaController-scale-out.7 | 1 + man/SAPHanaController-scale-up.7 | 1 + man/SAPHanaSR-angi-scenarios.7 | 39 +++++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+) create mode 100644 man/SAPHanaController-scale-out.7 create mode 100644 man/SAPHanaController-scale-up.7 create mode 100644 man/SAPHanaSR-angi-scenarios.7 diff --git a/man/SAPHanaController-scale-out.7 b/man/SAPHanaController-scale-out.7 new file mode 100644 index 00000000..3aa4bcac --- /dev/null +++ b/man/SAPHanaController-scale-out.7 @@ -0,0 +1 @@ +.so man7/ocf_suse_SAPHanaController.7 diff --git a/man/SAPHanaController-scale-up.7 b/man/SAPHanaController-scale-up.7 new file mode 100644 index 00000000..31339779 --- /dev/null +++ b/man/SAPHanaController-scale-up.7 @@ -0,0 +1 @@ +.so man7/ocf_suse_SAPHana.7 diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 new file mode 100644 index 00000000..17f3e5c2 --- /dev/null +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -0,0 +1,39 @@ +.\" Version: 1.2 +.\" +.TH SAPHanaSR-angi-scenarios 7 "28 Oct 2024" "" "SAPHanaSR-angi" +.\" +.SH NAME +SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. +.PP +.\" +.SH DESCRIPTION +.PP + +.PP +.\" +.SH BUGS +.PP +In case of any problem, please use your favourite SAP support process to open +a request for the component BC-OP-LNX-SUSE. +Please report any other feedback and suggestions to feedback@suse.com. +.PP +.\" +.SH SEE ALSO +.PP +\fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR\fP(7) \fBSAPHanaSR-ScaleOut\fP(7) +.PP +.\" +.SH AUTHORS +.PP +A.Briel, F.Herschel, L.Pinne. +.PP +.\" +.SH COPYRIGHT +.PP +(c) 2024 SUSE LLC +.br +The package SAPHanaSR-angi comes with ABSOLUTELY NO WARRANTY. +.br +For details see the GNU General Public License at +http://www.gnu.org/licenses/gpl.html +.\" From 65a71b7095bf3a8c8ac50e31de6e8d2b89fd1a83 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 28 Oct 2024 18:32:44 +0100 Subject: [PATCH 317/414] SAPHanaSR-angi-scenarios.7: firt try --- man/SAPHanaSR-angi-scenarios.7 | 90 ++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 17f3e5c2..bce3140b 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -9,6 +9,96 @@ SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. .SH DESCRIPTION .PP + +.pp +Here's a simple table with boxes around every cell. +In the column specification, append +.b b +to make that item bold, which is typical for a +header. +.TS +tab(@) allbox center; +lb cb rb +l c r. +Left@Center@Right +one@two@three +four@five@six +seven@eight@nine +.TE +.pp +Here's a more complicated table that spans columns +and rows. Use +.b s +to span columns into each other, and +.b ^ +to span rows into each other: (reference: +.i "ANSI X3.9-1978" , +page 3-4s) +.TS +tab(@) allbox center; +c c s +^ c c +^ ^ c +^ ^ c +^ ^ c +^ ^ c +c s s. +Comment Lines@PROGRAM, FUNCTION, or SUBROUTINE +@FORMAT@IMPLICIT +@@Other Specification +@@DATA +@@Statement Function +@@Executable +END@@ +.TE +.pp +And an updated version of the table with additional +spans. Note that the column specification at the top +has one row per line, so we can match up the rows we +want: (reference: +.i "ANSI X3.9-1978" , +page 3-4) +.TS +tab(@) allbox center; +c c s s +^ c c c +^ ^ ^ c +^ ^ c c +^ ^ ^ c +c s s s. +Comment Lines@PROGRAM, FUNCTION, SUBROUTINE, or BLOCK DATA@@ +@FORMAT and ENTRY@PARAMETER@IMPLICIT +@@@Other Specifications +@@DATA@Statement Functions +@@@Executable +END@@@ +.TE + + + +.TS +box center tab(:); +Lz S | Rt +Ld| Cb| ^ +^ | Rz S. +left:r +l:center: +:right +.TE + + +.TS +center box tab(@); +cB | cB | cB +n | l | l. +Topology @ Scenario @ +_ +Scale-Up @ Perf-Opt @ +Scale-Up @ Cost-Opt @ +_ +Scale-Out @ Perf-Opt @ +.TE + .PP .\" .SH BUGS From 61dd74d658039ed945d9f03520a8d95836a5c291 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 08:55:05 +0100 Subject: [PATCH 318/414] SAPHanaTopology.7 SAPHanaFilesystem.7: initial checkin --- man/SAPHanaFilesystem.7 | 1 + man/SAPHanaTopology.7 | 1 + 2 files changed, 2 insertions(+) create mode 100644 man/SAPHanaFilesystem.7 create mode 100644 man/SAPHanaTopology.7 diff --git a/man/SAPHanaFilesystem.7 b/man/SAPHanaFilesystem.7 new file mode 100644 index 00000000..7027fd2c --- /dev/null +++ b/man/SAPHanaFilesystem.7 @@ -0,0 +1 @@ +.so man7/ocf_suse_SAPHanaFilesystem.7 diff --git a/man/SAPHanaTopology.7 b/man/SAPHanaTopology.7 new file mode 100644 index 00000000..9a164f22 --- /dev/null +++ b/man/SAPHanaTopology.7 @@ -0,0 +1 @@ +.so man7/ocf_suse_SAPHanaTopology.7 From 0ee091dcd7f15bad780997f184bb2739f9064aa3 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 10:58:29 +0100 Subject: [PATCH 319/414] SAPHanaSR-angi-scenarios.7: table --- man/SAPHanaSR-angi-scenarios.7 | 118 +++++++++------------------------ 1 file changed, 30 insertions(+), 88 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index bce3140b..5a0d53b0 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -1,4 +1,4 @@ -.\" Version: 1.2 +.\" Version: 1.2 .\" .TH SAPHanaSR-angi-scenarios 7 "28 Oct 2024" "" "SAPHanaSR-angi" .\" @@ -8,97 +8,39 @@ SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. .\" .SH DESCRIPTION .PP - - -.pp -Here's a simple table with boxes around every cell. -In the column specification, append -.b b -to make that item bold, which is typical for a -header. -.TS -tab(@) allbox center; -lb cb rb -l c r. -Left@Center@Right -one@two@three -four@five@six -seven@eight@nine -.TE -.pp -Here's a more complicated table that spans columns -and rows. Use -.b s -to span columns into each other, and -.b ^ -to span rows into each other: (reference: -.i "ANSI X3.9-1978" , -page 3-4s) +.\" TODO topology, scenario, variant +.PP +.\" see man tbl and https://technicallywewrite.com/2023/09/23/tblexample +.\" TODO reduce page width .TS tab(@) allbox center; -c c s +cb cb cb +c c c ^ c c -^ ^ c -^ ^ c -^ ^ c -^ ^ c -c s s. -Comment Lines@PROGRAM, FUNCTION, or SUBROUTINE -@FORMAT@IMPLICIT -@@Other Specification -@@DATA -@@Statement Function -@@Executable -END@@ -.TE -.pp -And an updated version of the table with additional -spans. Note that the column specification at the top -has one row per line, so we can match up the rows we -want: (reference: -.i "ANSI X3.9-1978" , -page 3-4) -.TS -tab(@) allbox center; -c c s s -^ c c c -^ ^ ^ c -^ ^ c c -^ ^ ^ c -c s s s. -Comment Lines@PROGRAM, FUNCTION, SUBROUTINE, or BLOCK DATA@@ -@FORMAT and ENTRY@PARAMETER@IMPLICIT -@@@Other Specifications -@@DATA@Statement Functions -@@@Executable -END@@@ -.TE - - - -.TS -box center tab(:); -Lz S | Rt -Ld| Cb| ^ -^ | Rz S. -left:r -l:center: -:right -.TE - - -.TS -center box tab(@); -cB | cB | cB -n | l | l. -Topology @ Scenario @ -_ -Scale-Up @ Perf-Opt @ -Scale-Up @ Cost-Opt @ -_ -Scale-Out @ Perf-Opt @ +^ c c +^ c c +^ c c +^ c c +c c c +^ c c +^ c c +^ c c. +Topology@Scenario@Status +Scale-Up@HANA perf-opt@Supported +@HANA perf-opt, 2nd read-enabled@Supported +@HANA perf-opt, multi-target, 3rd site outside cluster@Supported +@HANA perf-opt, multi-SID@Undocumented +@HANA perf-opt, w. S/4 ENSA2 in same cluster@Undocumented +@HANA cost-opt@Undocumented +Scale-Out@HANA perf-opt, up to 30 nodes w. standby@Undocumented +@HANA perf-opt, up to 12 nodes@Supported +@HANA perf-opt, 4 nodes, 2nd site read-enabled@Supported +@HANA perf-opt, multi-target, 3rd site outside cluster @Supported .TE +.PP +.\" TODO supported, undocumented +.\" TODO not supported .PP .\" .SH BUGS @@ -110,7 +52,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .\" .SH SEE ALSO .PP -\fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR\fP(7) \fBSAPHanaSR-ScaleOut\fP(7) +\fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR\fP(7) , \fBSAPHanaSR-ScaleOut\fP(7) .PP .\" .SH AUTHORS From df902679f46be67ad000bc636e601da31cd0b5a3 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 14:26:58 +0100 Subject: [PATCH 320/414] SAPHanaSR-angi-scenarios.7: details, examples --- man/SAPHanaSR-angi-scenarios.7 | 72 ++++++++++++++++++++++++++++++++-- 1 file changed, 69 insertions(+), 3 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 5a0d53b0..93bbc839 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -11,7 +11,6 @@ SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. .\" TODO topology, scenario, variant .PP .\" see man tbl and https://technicallywewrite.com/2023/09/23/tblexample -.\" TODO reduce page width .TS tab(@) allbox center; cb cb cb @@ -21,27 +20,94 @@ c c c ^ c c ^ c c ^ c c +^ c c +^ c c +^ c c c c c ^ c c ^ c c +^ c c +^ c c +^ c c +^ c c ^ c c. Topology@Scenario@Status Scale-Up@HANA perf-opt@Supported -@HANA perf-opt, 2nd read-enabled@Supported +@HANA perf-opt, 2nd site read-enabled@Supported @HANA perf-opt, multi-target, 3rd site outside cluster@Supported +@HANA perf-opt, multi-target, 3rd site inside cluster@Not Supported @HANA perf-opt, multi-SID@Undocumented @HANA perf-opt, w. S/4 ENSA2 in same cluster@Undocumented @HANA cost-opt@Undocumented +@HANA cost-opt, multi-target@Not Supported +@two HANA perf-opt clusters connected@Not Supported Scale-Out@HANA perf-opt, up to 30 nodes w. standby@Undocumented @HANA perf-opt, up to 12 nodes@Supported @HANA perf-opt, 4 nodes, 2nd site read-enabled@Supported -@HANA perf-opt, multi-target, 3rd site outside cluster @Supported +@HANA perf-opt, multi-target, 3rd site outside cluster@Supported +@HANA perf-opt, multi-target, 3rd site inside cluster@Not Supported +@HANA perf-opt, multi-SID@Not Supported +@HANA cost-opt@Not Supported +@two HANA perf-opt clusters connected@Not Supported .TE .PP .\" TODO supported, undocumented .\" TODO not supported .PP +.\" TODO syntax +.TS +tab(@) allbox center; +cb cb +c c +c c +c c +c c +c c +c c +c c +c c. +Symbol@Meaning +[ ]@Linux cluster + A B C@master nameserver node + a b c@worker node +\. @ standby node +=>@syncronous replication +->@asyncronous replication +'@primary IP address +"@secondary (read-enabled) IP address +.TE + +.PP +The scale-up performance-optimised multi-target scenario can be noted as +.br +\fB[ A' => B ] -> C\fR . +.PP +.\" +.SH EXAMPLES +.PP +\fB*\fR Examples for supported scenarios: +.TP +Scale-up performance-optimised multi-target +[ A' => B ] -> C +.TP +Scale-up cost-optimised +[ A' => B,Q ] +.TP +Scale-out performance-optimised multi-target read-enabled (ERP) +[ 'Aa => "Bb ] -> Cc -> Dd +.TP +Scale-out performance-optimised 8-node w. standby (BW) +[ 'Aaaaaaa. => Bbbbbbb. ] +.PP +\fB*\fR Examples for not supported scenarios: +.TP +Scale-up performance-optimised multi-target 3rd site in cluster +[ A' => B => C ] +.TP +Scale-out performance-optimised two clusters connected +[ 'Aa => Bb ] -> [ 'Cc => Dd ] +.PP .\" .SH BUGS .PP From 0c26b22110e84b5252d87538599670d976876309 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 14:57:09 +0100 Subject: [PATCH 321/414] SAPHanaSR-angi-scenarios.7: details, examples --- man/SAPHanaSR-angi-scenarios.7 | 39 ++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 93bbc839..29a2b448 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -8,6 +8,8 @@ SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. .\" .SH DESCRIPTION .PP +\fB* Scenarios overview\fB +.PP .\" TODO topology, scenario, variant .PP .\" see man tbl and https://technicallywewrite.com/2023/09/23/tblexample @@ -35,27 +37,34 @@ Topology@Scenario@Status Scale-Up@HANA perf-opt@Supported @HANA perf-opt, 2nd site read-enabled@Supported @HANA perf-opt, multi-target, 3rd site outside cluster@Supported -@HANA perf-opt, multi-target, 3rd site inside cluster@Not Supported +@HANA perf-opt, multi-target, 3rd site inside cluster@Non-supported @HANA perf-opt, multi-SID@Undocumented @HANA perf-opt, w. S/4 ENSA2 in same cluster@Undocumented @HANA cost-opt@Undocumented -@HANA cost-opt, multi-target@Not Supported -@two HANA perf-opt clusters connected@Not Supported +@HANA cost-opt, multi-target@Non-supported +@two HANA perf-opt clusters connected@Non-supported Scale-Out@HANA perf-opt, up to 30 nodes w. standby@Undocumented @HANA perf-opt, up to 12 nodes@Supported @HANA perf-opt, 4 nodes, 2nd site read-enabled@Supported @HANA perf-opt, multi-target, 3rd site outside cluster@Supported -@HANA perf-opt, multi-target, 3rd site inside cluster@Not Supported -@HANA perf-opt, multi-SID@Not Supported -@HANA cost-opt@Not Supported -@two HANA perf-opt clusters connected@Not Supported +@HANA perf-opt, multi-target, 3rd site inside cluster@Non-supported +@HANA perf-opt, multi-SID@Non-supported +@HANA cost-opt@Non-supported +@two HANA perf-opt clusters connected@Non-supported .TE - +.\" TODO align wording with "Supported HA Solutions" +.PP +The status "Supported" means, the scenario is known to work for the given topology. The setup has been tested and is documented in a setup guide. It is supported by SUSE. +.br +The status "Undocumented" means, the scenario is expected to work for the given topology. The setup is currently not documented in a setup guide. However, it is supported by SUSE. +.br +The status "Non-supported" means, the scenario is expected not to work. It is not supported by SUSE. .PP -.\" TODO supported, undocumented -.\" TODO not supported +For details on requirements and configuration of the scenarios, please refer to manual pages SAPHanaSR-angi(7), SAPHanaSR(7) and SAPHanaSR-ScaleOut(7), as well as the respective setup guides. .PP +\fB* Scenario notation\fB .\" TODO syntax +.PP .TS tab(@) allbox center; cb cb @@ -83,6 +92,10 @@ The scale-up performance-optimised multi-target scenario can be noted as .br \fB[ A' => B ] -> C\fR . .PP +\fB* Variants overview\fB +.PP +.\" TODO variants conservative, progressive +.PP .\" .SH EXAMPLES .PP @@ -118,7 +131,11 @@ Please report any other feedback and suggestions to feedback@suse.com. .\" .SH SEE ALSO .PP -\fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR\fP(7) , \fBSAPHanaSR-ScaleOut\fP(7) +\fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR\fP(7) , \fBSAPHanaSR-ScaleOut\fP(7) , +.br +https://documentation.suse.com/sles-sap/sap-ha-support/html/sap-ha-support/article-sap-ha-support.html , +.br +https://documentation.suse.com/sbp/sap-15/ .PP .\" .SH AUTHORS From 1d7831cce3acfcf5314cde3442087cdb4ccb9325 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 15:24:49 +0100 Subject: [PATCH 322/414] SAPHanaSR-angi-scenarios.7: details, examples --- man/SAPHanaSR-angi-scenarios.7 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 29a2b448..926a69da 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -99,7 +99,7 @@ The scale-up performance-optimised multi-target scenario can be noted as .\" .SH EXAMPLES .PP -\fB*\fR Examples for supported scenarios: +\fB* Examples for supported scenarios\fR .TP Scale-up performance-optimised multi-target [ A' => B ] -> C @@ -113,7 +113,7 @@ Scale-out performance-optimised multi-target read-enabled (ERP) Scale-out performance-optimised 8-node w. standby (BW) [ 'Aaaaaaa. => Bbbbbbb. ] .PP -\fB*\fR Examples for not supported scenarios: +\fB* Examples for non-supported scenarios\fR .TP Scale-up performance-optimised multi-target 3rd site in cluster [ A' => B => C ] From cb7d98db2eabf2bdc6cbc5e49d65cdb5db42cbda Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 15:44:29 +0100 Subject: [PATCH 323/414] SAPHanaSR-angi-scenarios.7: variants --- man/SAPHanaSR-angi-scenarios.7 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 926a69da..f1b29c4b 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -10,6 +10,7 @@ SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. .PP \fB* Scenarios overview\fB .PP +SAPHanaSR-angi covers both topologies, scale-up and scale-out. .\" TODO topology, scenario, variant .PP .\" see man tbl and https://technicallywewrite.com/2023/09/23/tblexample @@ -52,6 +53,7 @@ Scale-Out@HANA perf-opt, up to 30 nodes w. standby@Undocumented @HANA cost-opt@Non-supported @two HANA perf-opt clusters connected@Non-supported .TE + .\" TODO align wording with "Supported HA Solutions" .PP The status "Supported" means, the scenario is known to work for the given topology. The setup has been tested and is documented in a setup guide. It is supported by SUSE. @@ -95,6 +97,20 @@ The scale-up performance-optimised multi-target scenario can be noted as \fB* Variants overview\fB .PP .\" TODO variants conservative, progressive +SAPHanaSR-angi allows to define different variants of reaction on failures. +.PP +\fBConservative\fR – default configuration +.br +The cluster is patient, it prefers stopping HANA over fencing nodes. It does +not react on filesystem failures. +.PP +\fBProgressive\fR – alternative configuration +.br +The cluster reacts on failures of HANA or filesystem with fencing all nodes +of the affected site. Takeover time might be further reduced by using diskless SBD. +.PP +For details on configuration of the variants, please refer to manual pages +ocf_suse_SAPHanaController(7), ocf_suse_SAPHana(7), ocf_suse_SAPHanaFilesystem(7), SAPHanaSR-alert-fencing(8), susChkSrv.py(7). .PP .\" .SH EXAMPLES From bd26014d4fc68d647e99165c55ad52a4928a635e Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 15:48:29 +0100 Subject: [PATCH 324/414] SAPHanaSR-angi.7: SAPHanaSR-angi-scenarios(7) --- man/SAPHanaSR-angi.7 | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/man/SAPHanaSR-angi.7 b/man/SAPHanaSR-angi.7 index 3e8fe6e8..414ebcfb 100644 --- a/man/SAPHanaSR-angi.7 +++ b/man/SAPHanaSR-angi.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2 .\" -.TH SAPHanaSR 7 "08 May 2023" "" "SAPHanaSR-angi" +.TH SAPHanaSR 7 "04 Nov 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-angi \- SAP HANA SR - Advanced Next Generation Interface. @@ -37,8 +37,6 @@ The following SAP HANA SR scenarios are possible with SAPHanaSR-angi: * scale-out single-tenant or multi-tenant (MDC low isolation) for all the above .RE .PP -.B SAPHanaSR-angi is shipped as technology preview. -.PP .\" .SH REQUIREMENTS Please find information on specific requirements of Linux HA scenarios for SAP HANA @@ -61,6 +59,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .\" .SH SEE ALSO \fBSAPHanaSR\fP(7) , \fBSAPHanaSR-ScaleOut\fP(7) , +\fBSAPHanaSR-angi-scenarios\fP(7) , \fBocf_suse_SAPHanaTopology\fP(7) , \fBocf_suse_SAPHanaController\fP(7) , \fBocf_heartbeat_IPaddr2\fP(7) , \fBSAPHanaSR_basic_cluster\fP(7) , @@ -102,7 +101,7 @@ A.Briel, F.Herschel, L.Pinne. .\" .SH COPYRIGHT .br -(c) 2022-2023 SUSE LLC +(c) 2022-2024 SUSE LLC .br The package SAPHanaSR-angi comes with ABSOLUTELY NO WARRANTY. .br From 954117547b0c9cf2eee94ff607ad9c7d2b96bbd1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 15:57:43 +0100 Subject: [PATCH 325/414] SAPHanaSR-angi-scenarios.7: overview --- man/SAPHanaSR-angi-scenarios.7 | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index f1b29c4b..3b2de662 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -10,8 +10,9 @@ SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. .PP \fB* Scenarios overview\fB .PP -SAPHanaSR-angi covers both topologies, scale-up and scale-out. -.\" TODO topology, scenario, variant +SAPHanaSR-angi covers two topologies, scale-up and scale-out. On each topology, +several scenarios are supported. Finally, for most scenarios, two variants are +possible. The table below shows the known scenarios for each topology. .PP .\" see man tbl and https://technicallywewrite.com/2023/09/23/tblexample .TS From b826f1939880cd6f2a1fd33beab4663c2f3b8377 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 16:08:31 +0100 Subject: [PATCH 326/414] SAPHanaSR-angi-scenarios.7: overview --- man/SAPHanaSR-angi-scenarios.7 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 3b2de662..28feae52 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -54,7 +54,10 @@ Scale-Out@HANA perf-opt, up to 30 nodes w. standby@Undocumented @HANA cost-opt@Non-supported @two HANA perf-opt clusters connected@Non-supported .TE - +.PP +.RS 12 +Note: One additional Linux cluster node at 3rd site is needed for all scale-out scenarios. +.RE .\" TODO align wording with "Supported HA Solutions" .PP The status "Supported" means, the scenario is known to work for the given topology. The setup has been tested and is documented in a setup guide. It is supported by SUSE. From 7ae67f115e3799d794da537922d44fca18c78dd7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 16:14:26 +0100 Subject: [PATCH 327/414] SAPHanaSR-angi-scenarios.7: overview --- man/SAPHanaSR-angi-scenarios.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 28feae52..278d7aba 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -46,7 +46,7 @@ Scale-Up@HANA perf-opt@Supported @HANA cost-opt, multi-target@Non-supported @two HANA perf-opt clusters connected@Non-supported Scale-Out@HANA perf-opt, up to 30 nodes w. standby@Undocumented -@HANA perf-opt, up to 12 nodes@Supported +@HANA perf-opt, up to 12 nodes, no standby@Supported @HANA perf-opt, 4 nodes, 2nd site read-enabled@Supported @HANA perf-opt, multi-target, 3rd site outside cluster@Supported @HANA perf-opt, multi-target, 3rd site inside cluster@Non-supported From 3ac68c41113b3164e6dc02ff40f4b8b71bd45a75 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 4 Nov 2024 16:22:12 +0100 Subject: [PATCH 328/414] SAPHanaSR-angi-scenarios.7: syntax --- man/SAPHanaSR-angi-scenarios.7 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 278d7aba..fba456f2 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -86,7 +86,7 @@ Symbol@Meaning [ ]@Linux cluster A B C@master nameserver node a b c@worker node -\. @ standby node + _ @ standby node =>@syncronous replication ->@asyncronous replication '@primary IP address @@ -94,9 +94,9 @@ Symbol@Meaning .TE .PP -The scale-up performance-optimised multi-target scenario can be noted as +The scale-up performance-optimised multi-target scenario can be noted as: .br -\fB[ A' => B ] -> C\fR . +\fB[ A' => B ] -> C\fP .PP \fB* Variants overview\fB .PP @@ -131,7 +131,7 @@ Scale-out performance-optimised multi-target read-enabled (ERP) [ 'Aa => "Bb ] -> Cc -> Dd .TP Scale-out performance-optimised 8-node w. standby (BW) -[ 'Aaaaaaa. => Bbbbbbb. ] +[ 'Aaaaaaa_ => Bbbbbbb_ ] .PP \fB* Examples for non-supported scenarios\fR .TP From 76fe816957a111bf59e267303ae01632f893c09d Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 5 Nov 2024 08:35:40 +0100 Subject: [PATCH 329/414] SAPHanaSR-angi-scenarios.7: table, details --- man/SAPHanaSR-angi-scenarios.7 | 85 +++++++++++++++++++--------------- 1 file changed, 47 insertions(+), 38 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index fba456f2..7c17c8b5 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -8,68 +8,72 @@ SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. .\" .SH DESCRIPTION .PP -\fB* Scenarios overview\fB -.PP SAPHanaSR-angi covers two topologies, scale-up and scale-out. On each topology, several scenarios are supported. Finally, for most scenarios, two variants are -possible. The table below shows the known scenarios for each topology. +possible. +.PP +\fB* Scenarios overview\fB +.PP +The table below shows the known SUSE HA scenarios for HANA system replication +for the two HANA topologies. The current support status is also shown. .PP .\" see man tbl and https://technicallywewrite.com/2023/09/23/tblexample .TS tab(@) allbox center; cb cb cb c c c +^ c ^ +^ c ^ ^ c c +^ c ^ +^ c ^ +^ c ^ ^ c c -^ c c -^ c c -^ c c -^ c c -^ c c -^ c c +^ c ^ c c c +^ c ^ +^ c ^ ^ c c ^ c c -^ c c -^ c c -^ c c -^ c c -^ c c. +^ c ^ +^ c ^ +^ c ^. Topology@Scenario@Status -Scale-Up@HANA perf-opt@Supported -@HANA perf-opt, 2nd site read-enabled@Supported -@HANA perf-opt, multi-target, 3rd site outside cluster@Supported -@HANA perf-opt, multi-target, 3rd site inside cluster@Non-supported -@HANA perf-opt, multi-SID@Undocumented -@HANA perf-opt, w. S/4 ENSA2 in same cluster@Undocumented -@HANA cost-opt@Undocumented -@HANA cost-opt, multi-target@Non-supported -@two HANA perf-opt clusters connected@Non-supported -Scale-Out@HANA perf-opt, up to 30 nodes w. standby@Undocumented -@HANA perf-opt, up to 12 nodes, no standby@Supported -@HANA perf-opt, 4 nodes, 2nd site read-enabled@Supported -@HANA perf-opt, multi-target, 3rd site outside cluster@Supported -@HANA perf-opt, multi-target, 3rd site inside cluster@Non-supported -@HANA perf-opt, multi-SID@Non-supported -@HANA cost-opt@Non-supported -@two HANA perf-opt clusters connected@Non-supported +Scale-Up@perf-opt@Supported +@perf-opt, 2nd site read-enabled@Supported +@perf-opt, multi-target, 3rd site outside cluster@Supported +@perf-opt, multi-SID@Undocumented +@perf-opt, w. S/4 ENSA2 in same cluster@Undocumented +@cost-opt@Undocumented +@cost-opt, multi-target@Non-supported +@perf-opt, multi-target, 3rd site inside cluster@Non-supported +@two perf-opt clusters connected@Non-supported +Scale-Out@perf-opt, up to 12 nodes, no standby (BW)@Supported +@perf-opt, 4 nodes, 2nd site read-enabled (ERP)@Supported +@perf-opt, multi-target, 3rd site outside cluster@Supported +@perf-opt, up to 30 nodes w. standby (BW)@Undocumented +@perf-opt, multi-target, 3rd site inside cluster@Non-supported +@perf-opt, multi-SID@Non-supported +@cost-opt@Non-supported +@two perf-opt clusters connected@Non-supported .TE .PP -.RS 12 +.RS 8 Note: One additional Linux cluster node at 3rd site is needed for all scale-out scenarios. .RE .\" TODO align wording with "Supported HA Solutions" .PP -The status "Supported" means, the scenario is known to work for the given topology. The setup has been tested and is documented in a setup guide. It is supported by SUSE. +\fBSupported\fP - the scenario is known to work for the given topology. The setup has been tested and is documented in a setup guide. It is supported by SUSE. .br -The status "Undocumented" means, the scenario is expected to work for the given topology. The setup is currently not documented in a setup guide. However, it is supported by SUSE. +\fBUndocumented\fP - the scenario is expected to work for the given topology. The setup is currently not documented in a setup guide. However, it is supported by SUSE. .br -The status "Non-supported" means, the scenario is expected not to work. It is not supported by SUSE. +\fBNon-supported\fP - the scenario is expected not to work. It is not supported by SUSE. .PP For details on requirements and configuration of the scenarios, please refer to manual pages SAPHanaSR-angi(7), SAPHanaSR(7) and SAPHanaSR-ScaleOut(7), as well as the respective setup guides. .PP \fB* Scenario notation\fB -.\" TODO syntax +.PP +It might help to describe scenarios in a pseudo-visualising notation. .PP .TS tab(@) allbox center; @@ -96,7 +100,7 @@ Symbol@Meaning .PP The scale-up performance-optimised multi-target scenario can be noted as: .br -\fB[ A' => B ] -> C\fP +[ A' => B ] -> C .PP \fB* Variants overview\fB .PP @@ -114,7 +118,8 @@ The cluster reacts on failures of HANA or filesystem with fencing all nodes of the affected site. Takeover time might be further reduced by using diskless SBD. .PP For details on configuration of the variants, please refer to manual pages -ocf_suse_SAPHanaController(7), ocf_suse_SAPHana(7), ocf_suse_SAPHanaFilesystem(7), SAPHanaSR-alert-fencing(8), susChkSrv.py(7). +ocf_suse_SAPHanaController(7), ocf_suse_SAPHana(7), ocf_suse_SAPHanaFilesystem(7), SAPHanaSR-alert-fencing(8), susChkSrv.py(7), +SAPHanaSR_basic_cluster(7), SAPHanaSR-ScaleOut_basic_cluster(7). .PP .\" .SH EXAMPLES @@ -152,6 +157,10 @@ Please report any other feedback and suggestions to feedback@suse.com. .SH SEE ALSO .PP \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR\fP(7) , \fBSAPHanaSR-ScaleOut\fP(7) , +\fBocf_suse_SAPHanaController\fP(7) , \fBocf_suse_SAPHana\fP(7) , +\fBocf_suse_SAPHanaFilesystem\fP(7) , \fBSAPHanaSR-alert-fencing\fP(8) , +\fBsusChkSrv.py\fP(7) , \fBSAPHanaSR_basic_cluster\fP(7) , +\fBSAPHanaSR-ScaleOut_basic_cluster\fP(7) , .br https://documentation.suse.com/sles-sap/sap-ha-support/html/sap-ha-support/article-sap-ha-support.html , .br From a8ff4e08a6e357d5a679608fae43d4c4a0c8d972 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 5 Nov 2024 09:11:26 +0100 Subject: [PATCH 330/414] SAPHanaSR-angi-scenarios.7: details on Undocumented --- man/SAPHanaSR-angi-scenarios.7 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 7c17c8b5..1f7e126d 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -63,11 +63,16 @@ Note: One additional Linux cluster node at 3rd site is needed for all scale-out .RE .\" TODO align wording with "Supported HA Solutions" .PP -\fBSupported\fP - the scenario is known to work for the given topology. The setup has been tested and is documented in a setup guide. It is supported by SUSE. +\fBSupported\fP - the scenario is known to work for the given topology. The +setup has been tested and is documented in a setup guide. It is supported by +SUSE. .br -\fBUndocumented\fP - the scenario is expected to work for the given topology. The setup is currently not documented in a setup guide. However, it is supported by SUSE. +\fBUndocumented\fP - the scenario is expected to work for the given topology. +The setup is currently not documented in a setup guide. SUSE services are prepared to help with implementation. Once the setutp is working, it is supported by +SUSE. .br -\fBNon-supported\fP - the scenario is expected not to work. It is not supported by SUSE. +\fBNon-supported\fP - the scenario is expected not to work. It is not supported +by SUSE. .PP For details on requirements and configuration of the scenarios, please refer to manual pages SAPHanaSR-angi(7), SAPHanaSR(7) and SAPHanaSR-ScaleOut(7), as well as the respective setup guides. .PP From ac2c1612de4acf999d028280995711f5374bfcf7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 5 Nov 2024 11:39:25 +0100 Subject: [PATCH 331/414] all json: fixed typo prerequitsits --- test/json/angi-ScaleOut-BW/block_manual_takeover.json | 4 ++-- test/json/angi-ScaleOut-BW/free_log_area.json | 2 +- test/json/angi-ScaleOut-BW/kill_prim_indexserver.json | 2 +- test/json/angi-ScaleOut-BW/kill_prim_inst.json | 2 +- test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json | 2 +- test/json/angi-ScaleOut-BW/kill_prim_worker_node.json | 2 +- test/json/angi-ScaleOut-BW/kill_secn_indexserver.json | 2 +- test/json/angi-ScaleOut-BW/kill_secn_inst.json | 2 +- test/json/angi-ScaleOut-BW/kill_secn_node.json | 2 +- test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json | 2 +- test/json/angi-ScaleOut-BW/kill_secn_worker_node.json | 2 +- .../json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json | 2 +- .../angi-ScaleOut-BW/maintenance_with_standby_nodes.json | 4 ++-- test/json/angi-ScaleOut-BW/nop-false.json | 2 +- test/json/angi-ScaleOut-BW/nop.json | 2 +- test/json/angi-ScaleOut-BW/restart_cluster.json | 2 +- test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json | 2 +- test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json | 2 +- test/json/angi-ScaleOut-BW/standby_prim_node.json | 2 +- test/json/angi-ScaleOut-BW/standby_secn_node.json | 2 +- test/json/angi-ScaleOut/block_manual_takeover.json | 4 ++-- test/json/angi-ScaleOut/block_sr.json | 2 +- .../angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json | 2 +- test/json/angi-ScaleOut/fatal1.json | 2 +- test/json/angi-ScaleOut/fatal2.json | 2 +- test/json/angi-ScaleOut/flap.json | 2 +- test/json/angi-ScaleOut/flop.json | 2 +- test/json/angi-ScaleOut/flup.json | 2 +- test/json/angi-ScaleOut/free_log_area.json | 2 +- test/json/angi-ScaleOut/freeze_prim_master_nfs.json | 2 +- .../angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json | 2 +- test/json/angi-ScaleOut/freeze_prim_site_nfs.json | 2 +- test/json/angi-ScaleOut/freeze_secn_site_nfs.json | 2 +- test/json/angi-ScaleOut/kill_prim_indexserver.json | 2 +- .../angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_inst.json | 2 +- test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_node.json | 2 +- test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_worker_indexserver.json | 2 +- .../kill_prim_worker_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_worker_inst.json | 2 +- .../angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_prim_worker_node.json | 2 +- .../angi-ScaleOut/kill_prim_worker_node_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_secn_indexserver.json | 2 +- .../angi-ScaleOut/kill_secn_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_secn_inst.json | 2 +- test/json/angi-ScaleOut/kill_secn_node.json | 2 +- test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json | 2 +- .../kill_secn_worker_indexserver_fencing_alert.json | 2 +- test/json/angi-ScaleOut/kill_secn_worker_inst.json | 2 +- test/json/angi-ScaleOut/kill_secn_worker_node.json | 2 +- .../angi-ScaleOut/kill_secn_worker_node_fencing_alert.json | 2 +- .../json/angi-ScaleOut/maintenance_cluster_hana_running.json | 2 +- test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json | 2 +- test/json/angi-ScaleOut/maintenance_with_standby_nodes.json | 4 ++-- test/json/angi-ScaleOut/nop-false.json | 2 +- test/json/angi-ScaleOut/nop.json | 2 +- test/json/angi-ScaleOut/restart_cluster.json | 2 +- test/json/angi-ScaleOut/restart_cluster_hana_running.json | 2 +- test/json/angi-ScaleOut/restart_cluster_turn_hana.json | 2 +- test/json/angi-ScaleOut/standby_prim_node.json | 2 +- test/json/angi-ScaleOut/standby_secn_node.json | 2 +- test/json/angi-ScaleOut/standby_secn_worker_node.json | 2 +- test/json/classic-ScaleOut-BW/block_manual_takeover.json | 4 ++-- test/json/classic-ScaleOut-BW/free_log_area.json | 2 +- test/json/classic-ScaleOut-BW/kill_prim_indexserver.json | 2 +- test/json/classic-ScaleOut-BW/kill_prim_inst.json | 2 +- test/json/classic-ScaleOut-BW/kill_prim_node.json | 2 +- .../classic-ScaleOut-BW/kill_prim_worker_indexserver.json | 2 +- test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json | 2 +- test/json/classic-ScaleOut-BW/kill_prim_worker_node.json | 2 +- test/json/classic-ScaleOut-BW/kill_secn_indexserver.json | 2 +- test/json/classic-ScaleOut-BW/kill_secn_inst.json | 2 +- test/json/classic-ScaleOut-BW/kill_secn_node.json | 2 +- test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json | 2 +- test/json/classic-ScaleOut-BW/kill_secn_worker_node.json | 2 +- .../classic-ScaleOut-BW/maintenance_cluster_turn_hana.json | 2 +- .../classic-ScaleOut-BW/maintenance_with_standby_nodes.json | 4 ++-- test/json/classic-ScaleOut-BW/nop-false.json | 2 +- test/json/classic-ScaleOut-BW/nop.json | 2 +- test/json/classic-ScaleOut-BW/restart_cluster.json | 2 +- .../classic-ScaleOut-BW/restart_cluster_hana_running.json | 2 +- test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json | 2 +- test/json/classic-ScaleOut-BW/standby_prim_node.json | 2 +- test/json/classic-ScaleOut-BW/standby_secn_node.json | 2 +- test/json/classic-ScaleOut/block_manual_takeover.json | 4 ++-- test/json/classic-ScaleOut/flup.json | 2 +- test/json/classic-ScaleOut/free_log_area.json | 2 +- test/json/classic-ScaleOut/kill_prim_indexserver.json | 2 +- test/json/classic-ScaleOut/kill_prim_inst.json | 2 +- test/json/classic-ScaleOut/kill_prim_node.json | 2 +- test/json/classic-ScaleOut/kill_prim_worker_indexserver.json | 2 +- test/json/classic-ScaleOut/kill_prim_worker_inst.json | 2 +- test/json/classic-ScaleOut/kill_prim_worker_node.json | 2 +- test/json/classic-ScaleOut/kill_secn_indexserver.json | 2 +- test/json/classic-ScaleOut/kill_secn_inst.json | 2 +- test/json/classic-ScaleOut/kill_secn_node.json | 2 +- test/json/classic-ScaleOut/kill_secn_worker_inst.json | 2 +- test/json/classic-ScaleOut/kill_secn_worker_node.json | 2 +- .../json/classic-ScaleOut/maintenance_cluster_turn_hana.json | 2 +- .../classic-ScaleOut/maintenance_with_standby_nodes.json | 4 ++-- test/json/classic-ScaleOut/nop-false.json | 2 +- test/json/classic-ScaleOut/nop.json | 2 +- test/json/classic-ScaleOut/restart_cluster.json | 2 +- test/json/classic-ScaleOut/restart_cluster_hana_running.json | 2 +- test/json/classic-ScaleOut/restart_cluster_turn_hana.json | 2 +- test/json/classic-ScaleOut/standby_prim_node.json | 2 +- test/json/classic-ScaleOut/standby_secn_node.json | 2 +- test/json/classic-ScaleUp/block_manual_takeover.json | 4 ++-- test/json/classic-ScaleUp/block_sr.json | 2 +- test/json/classic-ScaleUp/flup.json | 2 +- test/json/classic-ScaleUp/free_log_area.json | 2 +- test/json/classic-ScaleUp/kill_prim_indexserver.json | 2 +- test/json/classic-ScaleUp/kill_prim_inst.json | 2 +- test/json/classic-ScaleUp/kill_prim_node.json | 2 +- test/json/classic-ScaleUp/kill_secn_indexserver.json | 2 +- test/json/classic-ScaleUp/kill_secn_inst.json | 2 +- test/json/classic-ScaleUp/kill_secn_node.json | 2 +- .../classic-ScaleUp/maintenance_cluster_hana_running.json | 2 +- test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json | 2 +- .../json/classic-ScaleUp/maintenance_with_standby_nodes.json | 5 ++--- test/json/classic-ScaleUp/nop.json | 2 +- test/json/classic-ScaleUp/one_stable_hour.json | 2 +- test/json/classic-ScaleUp/restart_cluster.json | 2 +- test/json/classic-ScaleUp/restart_cluster_turn_hana.json | 2 +- test/json/classic-ScaleUp/split_brain_prio.json | 2 +- test/json/classic-ScaleUp/standby_prim_node.json | 2 +- test/json/classic-ScaleUp/standby_secn_node.json | 2 +- test/json/faults/faulty-syntax-flep.json | 2 +- 131 files changed, 141 insertions(+), 142 deletions(-) diff --git a/test/json/angi-ScaleOut-BW/block_manual_takeover.json b/test/json/angi-ScaleOut-BW/block_manual_takeover.json index 1737ea3b..ca26a2d8 100644 --- a/test/json/angi-ScaleOut-BW/block_manual_takeover.json +++ b/test/json/angi-ScaleOut-BW/block_manual_takeover.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, @@ -17,7 +17,7 @@ }, { "step": "step20", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/free_log_area.json b/test/json/angi-ScaleOut-BW/free_log_area.json index 335a10c9..7715943c 100644 --- a/test/json/angi-ScaleOut-BW/free_log_area.json +++ b/test/json/angi-ScaleOut-BW/free_log_area.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_prim_indexserver.json b/test/json/angi-ScaleOut-BW/kill_prim_indexserver.json index 79e1d4a6..1fa4b1ac 100644 --- a/test/json/angi-ScaleOut-BW/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut-BW/kill_prim_indexserver.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_prim_inst.json b/test/json/angi-ScaleOut-BW/kill_prim_inst.json index 8cd45a3b..ab98ccc0 100644 --- a/test/json/angi-ScaleOut-BW/kill_prim_inst.json +++ b/test/json/angi-ScaleOut-BW/kill_prim_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json b/test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json index 1505f1d4..86608e6c 100644 --- a/test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json +++ b/test/json/angi-ScaleOut-BW/kill_prim_worker_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_prim_worker_node.json b/test/json/angi-ScaleOut-BW/kill_prim_worker_node.json index 16d89d5f..a839fa89 100644 --- a/test/json/angi-ScaleOut-BW/kill_prim_worker_node.json +++ b/test/json/angi-ScaleOut-BW/kill_prim_worker_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_indexserver.json b/test/json/angi-ScaleOut-BW/kill_secn_indexserver.json index 480f1c1d..eed5fb60 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_indexserver.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_inst.json b/test/json/angi-ScaleOut-BW/kill_secn_inst.json index 2ca436a1..6012936c 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_inst.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_node.json b/test/json/angi-ScaleOut-BW/kill_secn_node.json index f4328756..d6484927 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_node.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json b/test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json index b2fe001f..4178243b 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_worker_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/kill_secn_worker_node.json b/test/json/angi-ScaleOut-BW/kill_secn_worker_node.json index 1241a09e..8ca6366a 100644 --- a/test/json/angi-ScaleOut-BW/kill_secn_worker_node.json +++ b/test/json/angi-ScaleOut-BW/kill_secn_worker_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json index 7e88b5a4..d7e23e35 100644 --- a/test/json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut-BW/maintenance_cluster_turn_hana.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/maintenance_with_standby_nodes.json b/test/json/angi-ScaleOut-BW/maintenance_with_standby_nodes.json index 82ae24ef..fcd7dc8d 100644 --- a/test/json/angi-ScaleOut-BW/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleOut-BW/maintenance_with_standby_nodes.json @@ -7,7 +7,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites ssn", + "name": "test prerequisites ssn", "next": "step20", "loop": 1, "wait": 1, @@ -64,7 +64,7 @@ }, { "step": "step110", - "name": "test prerequitsites spn", + "name": "test prerequisites spn", "next": "step120", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/nop-false.json b/test/json/angi-ScaleOut-BW/nop-false.json index e19e9785..ae20be0f 100644 --- a/test/json/angi-ScaleOut-BW/nop-false.json +++ b/test/json/angi-ScaleOut-BW/nop-false.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/nop.json b/test/json/angi-ScaleOut-BW/nop.json index 5cb3c49b..f77a2e57 100644 --- a/test/json/angi-ScaleOut-BW/nop.json +++ b/test/json/angi-ScaleOut-BW/nop.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/restart_cluster.json b/test/json/angi-ScaleOut-BW/restart_cluster.json index 126d7b17..4be8f39f 100644 --- a/test/json/angi-ScaleOut-BW/restart_cluster.json +++ b/test/json/angi-ScaleOut-BW/restart_cluster.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json b/test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json index cd339808..fca1c6a7 100644 --- a/test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleOut-BW/restart_cluster_hana_running.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json b/test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json index 30001c92..c13099ee 100644 --- a/test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut-BW/restart_cluster_turn_hana.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/standby_prim_node.json b/test/json/angi-ScaleOut-BW/standby_prim_node.json index 228e0d15..99357fec 100644 --- a/test/json/angi-ScaleOut-BW/standby_prim_node.json +++ b/test/json/angi-ScaleOut-BW/standby_prim_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut-BW/standby_secn_node.json b/test/json/angi-ScaleOut-BW/standby_secn_node.json index a81cfa92..a14c8fef 100644 --- a/test/json/angi-ScaleOut-BW/standby_secn_node.json +++ b/test/json/angi-ScaleOut-BW/standby_secn_node.json @@ -7,7 +7,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/block_manual_takeover.json b/test/json/angi-ScaleOut/block_manual_takeover.json index ee476dc5..c0363fdf 100644 --- a/test/json/angi-ScaleOut/block_manual_takeover.json +++ b/test/json/angi-ScaleOut/block_manual_takeover.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, @@ -28,7 +28,7 @@ }, { "step": "step20", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/block_sr.json b/test/json/angi-ScaleOut/block_sr.json index 9f972f3e..671436d2 100644 --- a/test/json/angi-ScaleOut/block_sr.json +++ b/test/json/angi-ScaleOut/block_sr.json @@ -16,7 +16,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json index efb93e4a..2b0491c5 100644 --- a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json @@ -18,7 +18,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/fatal1.json b/test/json/angi-ScaleOut/fatal1.json index a6b820b2..d5d20d4e 100644 --- a/test/json/angi-ScaleOut/fatal1.json +++ b/test/json/angi-ScaleOut/fatal1.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/fatal2.json b/test/json/angi-ScaleOut/fatal2.json index 9413f3fd..ebc4b5a7 100644 --- a/test/json/angi-ScaleOut/fatal2.json +++ b/test/json/angi-ScaleOut/fatal2.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/flap.json b/test/json/angi-ScaleOut/flap.json index 4ff19181..9fd3df30 100644 --- a/test/json/angi-ScaleOut/flap.json +++ b/test/json/angi-ScaleOut/flap.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/flop.json b/test/json/angi-ScaleOut/flop.json index fd396dcb..0df55190 100644 --- a/test/json/angi-ScaleOut/flop.json +++ b/test/json/angi-ScaleOut/flop.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/flup.json b/test/json/angi-ScaleOut/flup.json index 68814bb4..f0bddd70 100644 --- a/test/json/angi-ScaleOut/flup.json +++ b/test/json/angi-ScaleOut/flup.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/free_log_area.json b/test/json/angi-ScaleOut/free_log_area.json index 6fe7553e..a6f7d109 100644 --- a/test/json/angi-ScaleOut/free_log_area.json +++ b/test/json/angi-ScaleOut/free_log_area.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json index ae021c76..85252170 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index c37c3697..6de4291c 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -17,7 +17,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json index ff53b3a8..1737247d 100644 --- a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json index f3a32819..f3a60a5d 100644 --- a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver.json b/test/json/angi-ScaleOut/kill_prim_indexserver.json index a15687b1..eb61f3a7 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 02a075c9..2d17b475 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -16,7 +16,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_inst.json b/test/json/angi-ScaleOut/kill_prim_inst.json index fe5c1aa8..d68e39dd 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_inst.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json index 1fd85fc5..4eb2b878 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_inst_fencing_alert.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step30", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_node.json b/test/json/angi-ScaleOut/kill_prim_node.json index 9ec298f4..310017de 100644 --- a/test/json/angi-ScaleOut/kill_prim_node.json +++ b/test/json/angi-ScaleOut/kill_prim_node.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json index 9185e3dd..c9948906 100644 --- a/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_node_fencing_alert.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json index be8e0ffe..c5353e35 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json index e08dea36..46f66198 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_indexserver_fencing_alert.json @@ -17,7 +17,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step30", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst.json b/test/json/angi-ScaleOut/kill_prim_worker_inst.json index 5727b2ed..307795ae 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index 39ace936..95618354 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step30", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node.json b/test/json/angi-ScaleOut/kill_prim_worker_node.json index 552c4e56..c3a4c4d9 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json index 5301a4da..2e2d8ca9 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_node_fencing_alert.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver.json b/test/json/angi-ScaleOut/kill_secn_indexserver.json index a339d664..715b3413 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index e18ee374..e67e0b11 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -17,7 +17,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_inst.json b/test/json/angi-ScaleOut/kill_secn_inst.json index 478385b8..7177a8e3 100644 --- a/test/json/angi-ScaleOut/kill_secn_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_inst.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_node.json b/test/json/angi-ScaleOut/kill_secn_node.json index 2e6a4994..2bd0bb96 100644 --- a/test/json/angi-ScaleOut/kill_secn_node.json +++ b/test/json/angi-ScaleOut/kill_secn_node.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json index 4aa26d86..33c4d169 100644 --- a/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_node_fencing_alert.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json index 890736b6..f3259935 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_indexserver_fencing_alert.json @@ -17,7 +17,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_worker_inst.json b/test/json/angi-ScaleOut/kill_secn_worker_inst.json index d5b039f3..8d5e1bc6 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_inst.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node.json b/test/json/angi-ScaleOut/kill_secn_worker_node.json index 9dcff7fe..58d34c29 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json index eb53ff44..8239c697 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_node_fencing_alert.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json index cf7bec0b..f2502d9f 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_hana_running.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json b/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json index 3d8ae115..f267700b 100644 --- a/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut/maintenance_cluster_turn_hana.json @@ -16,7 +16,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json b/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json index 65cd4e6c..c5b056b5 100644 --- a/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json +++ b/test/json/angi-ScaleOut/maintenance_with_standby_nodes.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites standby_secn_node", + "name": "test prerequisites standby_secn_node", "next": "step20", "loop": 1, "wait": 1, @@ -74,7 +74,7 @@ }, { "step": "step110", - "name": "test prerequitsites standby_prim_node", + "name": "test prerequisites standby_prim_node", "next": "step120", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/nop-false.json b/test/json/angi-ScaleOut/nop-false.json index 4735c43f..580e9fb1 100644 --- a/test/json/angi-ScaleOut/nop-false.json +++ b/test/json/angi-ScaleOut/nop-false.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/nop.json b/test/json/angi-ScaleOut/nop.json index 9e846b85..6108e40a 100644 --- a/test/json/angi-ScaleOut/nop.json +++ b/test/json/angi-ScaleOut/nop.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/restart_cluster.json b/test/json/angi-ScaleOut/restart_cluster.json index 87d6f26a..295096d0 100644 --- a/test/json/angi-ScaleOut/restart_cluster.json +++ b/test/json/angi-ScaleOut/restart_cluster.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/restart_cluster_hana_running.json b/test/json/angi-ScaleOut/restart_cluster_hana_running.json index dac951d9..3f3e0cdb 100644 --- a/test/json/angi-ScaleOut/restart_cluster_hana_running.json +++ b/test/json/angi-ScaleOut/restart_cluster_hana_running.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/restart_cluster_turn_hana.json b/test/json/angi-ScaleOut/restart_cluster_turn_hana.json index d6fdbf95..93c94f8b 100644 --- a/test/json/angi-ScaleOut/restart_cluster_turn_hana.json +++ b/test/json/angi-ScaleOut/restart_cluster_turn_hana.json @@ -15,7 +15,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/standby_prim_node.json b/test/json/angi-ScaleOut/standby_prim_node.json index dedd9e7e..cb7ca171 100644 --- a/test/json/angi-ScaleOut/standby_prim_node.json +++ b/test/json/angi-ScaleOut/standby_prim_node.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/standby_secn_node.json b/test/json/angi-ScaleOut/standby_secn_node.json index faebe676..0a61715c 100644 --- a/test/json/angi-ScaleOut/standby_secn_node.json +++ b/test/json/angi-ScaleOut/standby_secn_node.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/angi-ScaleOut/standby_secn_worker_node.json b/test/json/angi-ScaleOut/standby_secn_worker_node.json index b281359e..fcf51b98 100644 --- a/test/json/angi-ScaleOut/standby_secn_worker_node.json +++ b/test/json/angi-ScaleOut/standby_secn_worker_node.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/block_manual_takeover.json b/test/json/classic-ScaleOut-BW/block_manual_takeover.json index 1737ea3b..ca26a2d8 100644 --- a/test/json/classic-ScaleOut-BW/block_manual_takeover.json +++ b/test/json/classic-ScaleOut-BW/block_manual_takeover.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, @@ -17,7 +17,7 @@ }, { "step": "step20", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/free_log_area.json b/test/json/classic-ScaleOut-BW/free_log_area.json index 335a10c9..7715943c 100644 --- a/test/json/classic-ScaleOut-BW/free_log_area.json +++ b/test/json/classic-ScaleOut-BW/free_log_area.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_indexserver.json b/test/json/classic-ScaleOut-BW/kill_prim_indexserver.json index 197af4a8..a5e1270e 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_indexserver.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_indexserver.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_inst.json b/test/json/classic-ScaleOut-BW/kill_prim_inst.json index ad1bb278..fb5a0c0d 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_inst.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_node.json b/test/json/classic-ScaleOut-BW/kill_prim_node.json index c09cb7e6..b11abb7f 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_node.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_worker_indexserver.json b/test/json/classic-ScaleOut-BW/kill_prim_worker_indexserver.json index c19f027d..e810aa85 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_worker_indexserver.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_worker_indexserver.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json b/test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json index db7a6872..b77dbae4 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_worker_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_prim_worker_node.json b/test/json/classic-ScaleOut-BW/kill_prim_worker_node.json index 2aee728d..18de9882 100644 --- a/test/json/classic-ScaleOut-BW/kill_prim_worker_node.json +++ b/test/json/classic-ScaleOut-BW/kill_prim_worker_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_indexserver.json b/test/json/classic-ScaleOut-BW/kill_secn_indexserver.json index 480f1c1d..eed5fb60 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_indexserver.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_indexserver.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_inst.json b/test/json/classic-ScaleOut-BW/kill_secn_inst.json index f4f6946b..55d5079a 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_inst.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_node.json b/test/json/classic-ScaleOut-BW/kill_secn_node.json index f4328756..d6484927 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_node.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json b/test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json index d80fb066..8341b354 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_worker_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/kill_secn_worker_node.json b/test/json/classic-ScaleOut-BW/kill_secn_worker_node.json index 17be4272..d2f59657 100644 --- a/test/json/classic-ScaleOut-BW/kill_secn_worker_node.json +++ b/test/json/classic-ScaleOut-BW/kill_secn_worker_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/maintenance_cluster_turn_hana.json b/test/json/classic-ScaleOut-BW/maintenance_cluster_turn_hana.json index 7e88b5a4..d7e23e35 100644 --- a/test/json/classic-ScaleOut-BW/maintenance_cluster_turn_hana.json +++ b/test/json/classic-ScaleOut-BW/maintenance_cluster_turn_hana.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/maintenance_with_standby_nodes.json b/test/json/classic-ScaleOut-BW/maintenance_with_standby_nodes.json index f90deaf9..97c801d3 100644 --- a/test/json/classic-ScaleOut-BW/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleOut-BW/maintenance_with_standby_nodes.json @@ -8,7 +8,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites ssn", + "name": "test prerequisites ssn", "next": "step20", "loop": 1, "wait": 1, @@ -65,7 +65,7 @@ }, { "step": "step110", - "name": "test prerequitsites spn", + "name": "test prerequisites spn", "next": "step120", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/nop-false.json b/test/json/classic-ScaleOut-BW/nop-false.json index e19e9785..ae20be0f 100644 --- a/test/json/classic-ScaleOut-BW/nop-false.json +++ b/test/json/classic-ScaleOut-BW/nop-false.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/nop.json b/test/json/classic-ScaleOut-BW/nop.json index 5cb3c49b..f77a2e57 100644 --- a/test/json/classic-ScaleOut-BW/nop.json +++ b/test/json/classic-ScaleOut-BW/nop.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/restart_cluster.json b/test/json/classic-ScaleOut-BW/restart_cluster.json index 126d7b17..4be8f39f 100644 --- a/test/json/classic-ScaleOut-BW/restart_cluster.json +++ b/test/json/classic-ScaleOut-BW/restart_cluster.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/restart_cluster_hana_running.json b/test/json/classic-ScaleOut-BW/restart_cluster_hana_running.json index cd339808..fca1c6a7 100644 --- a/test/json/classic-ScaleOut-BW/restart_cluster_hana_running.json +++ b/test/json/classic-ScaleOut-BW/restart_cluster_hana_running.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json b/test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json index 30001c92..c13099ee 100644 --- a/test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json +++ b/test/json/classic-ScaleOut-BW/restart_cluster_turn_hana.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/standby_prim_node.json b/test/json/classic-ScaleOut-BW/standby_prim_node.json index 228e0d15..99357fec 100644 --- a/test/json/classic-ScaleOut-BW/standby_prim_node.json +++ b/test/json/classic-ScaleOut-BW/standby_prim_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut-BW/standby_secn_node.json b/test/json/classic-ScaleOut-BW/standby_secn_node.json index a81cfa92..a14c8fef 100644 --- a/test/json/classic-ScaleOut-BW/standby_secn_node.json +++ b/test/json/classic-ScaleOut-BW/standby_secn_node.json @@ -7,7 +7,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/block_manual_takeover.json b/test/json/classic-ScaleOut/block_manual_takeover.json index 40c52bb2..d19a12a4 100644 --- a/test/json/classic-ScaleOut/block_manual_takeover.json +++ b/test/json/classic-ScaleOut/block_manual_takeover.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, @@ -18,7 +18,7 @@ }, { "step": "step20", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/flup.json b/test/json/classic-ScaleOut/flup.json index 6cc0b31c..2bb87536 100644 --- a/test/json/classic-ScaleOut/flup.json +++ b/test/json/classic-ScaleOut/flup.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/free_log_area.json b/test/json/classic-ScaleOut/free_log_area.json index 28c4397a..8d44ea50 100644 --- a/test/json/classic-ScaleOut/free_log_area.json +++ b/test/json/classic-ScaleOut/free_log_area.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_prim_indexserver.json b/test/json/classic-ScaleOut/kill_prim_indexserver.json index 14c71bda..84e51c36 100644 --- a/test/json/classic-ScaleOut/kill_prim_indexserver.json +++ b/test/json/classic-ScaleOut/kill_prim_indexserver.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_prim_inst.json b/test/json/classic-ScaleOut/kill_prim_inst.json index ab5fdc5a..36d178b7 100644 --- a/test/json/classic-ScaleOut/kill_prim_inst.json +++ b/test/json/classic-ScaleOut/kill_prim_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_prim_node.json b/test/json/classic-ScaleOut/kill_prim_node.json index c53ead21..c50c8ff3 100644 --- a/test/json/classic-ScaleOut/kill_prim_node.json +++ b/test/json/classic-ScaleOut/kill_prim_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_prim_worker_indexserver.json b/test/json/classic-ScaleOut/kill_prim_worker_indexserver.json index 7c5b24ae..1d03763b 100644 --- a/test/json/classic-ScaleOut/kill_prim_worker_indexserver.json +++ b/test/json/classic-ScaleOut/kill_prim_worker_indexserver.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_prim_worker_inst.json b/test/json/classic-ScaleOut/kill_prim_worker_inst.json index 3b87f7f6..2263ae79 100644 --- a/test/json/classic-ScaleOut/kill_prim_worker_inst.json +++ b/test/json/classic-ScaleOut/kill_prim_worker_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_prim_worker_node.json b/test/json/classic-ScaleOut/kill_prim_worker_node.json index 3d084620..2210b07e 100644 --- a/test/json/classic-ScaleOut/kill_prim_worker_node.json +++ b/test/json/classic-ScaleOut/kill_prim_worker_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_secn_indexserver.json b/test/json/classic-ScaleOut/kill_secn_indexserver.json index 674a8d54..630b80a7 100644 --- a/test/json/classic-ScaleOut/kill_secn_indexserver.json +++ b/test/json/classic-ScaleOut/kill_secn_indexserver.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_secn_inst.json b/test/json/classic-ScaleOut/kill_secn_inst.json index 6e95e870..b804f8c8 100644 --- a/test/json/classic-ScaleOut/kill_secn_inst.json +++ b/test/json/classic-ScaleOut/kill_secn_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_secn_node.json b/test/json/classic-ScaleOut/kill_secn_node.json index 795f6eda..06433305 100644 --- a/test/json/classic-ScaleOut/kill_secn_node.json +++ b/test/json/classic-ScaleOut/kill_secn_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_secn_worker_inst.json b/test/json/classic-ScaleOut/kill_secn_worker_inst.json index 543f21ae..a16f60e3 100644 --- a/test/json/classic-ScaleOut/kill_secn_worker_inst.json +++ b/test/json/classic-ScaleOut/kill_secn_worker_inst.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/kill_secn_worker_node.json b/test/json/classic-ScaleOut/kill_secn_worker_node.json index 27bf6861..049e724d 100644 --- a/test/json/classic-ScaleOut/kill_secn_worker_node.json +++ b/test/json/classic-ScaleOut/kill_secn_worker_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/maintenance_cluster_turn_hana.json b/test/json/classic-ScaleOut/maintenance_cluster_turn_hana.json index 5c8edffe..c22c1f71 100644 --- a/test/json/classic-ScaleOut/maintenance_cluster_turn_hana.json +++ b/test/json/classic-ScaleOut/maintenance_cluster_turn_hana.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/maintenance_with_standby_nodes.json b/test/json/classic-ScaleOut/maintenance_with_standby_nodes.json index c6820724..51e1cd26 100644 --- a/test/json/classic-ScaleOut/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleOut/maintenance_with_standby_nodes.json @@ -8,7 +8,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites ssn", + "name": "test prerequisites ssn", "next": "step20", "loop": 1, "wait": 1, @@ -67,7 +67,7 @@ }, { "step": "step110", - "name": "test prerequitsites spn", + "name": "test prerequisites spn", "next": "step120", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/nop-false.json b/test/json/classic-ScaleOut/nop-false.json index 2a6b19f8..6a440fee 100644 --- a/test/json/classic-ScaleOut/nop-false.json +++ b/test/json/classic-ScaleOut/nop-false.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/nop.json b/test/json/classic-ScaleOut/nop.json index 9cc8a34e..fbdb85e2 100644 --- a/test/json/classic-ScaleOut/nop.json +++ b/test/json/classic-ScaleOut/nop.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/restart_cluster.json b/test/json/classic-ScaleOut/restart_cluster.json index d02b9963..4159bdd8 100644 --- a/test/json/classic-ScaleOut/restart_cluster.json +++ b/test/json/classic-ScaleOut/restart_cluster.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/restart_cluster_hana_running.json b/test/json/classic-ScaleOut/restart_cluster_hana_running.json index ebca3c98..98614417 100644 --- a/test/json/classic-ScaleOut/restart_cluster_hana_running.json +++ b/test/json/classic-ScaleOut/restart_cluster_hana_running.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/restart_cluster_turn_hana.json b/test/json/classic-ScaleOut/restart_cluster_turn_hana.json index 6cd11387..b5a31f5e 100644 --- a/test/json/classic-ScaleOut/restart_cluster_turn_hana.json +++ b/test/json/classic-ScaleOut/restart_cluster_turn_hana.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/standby_prim_node.json b/test/json/classic-ScaleOut/standby_prim_node.json index 2742e0c6..3eca7f98 100644 --- a/test/json/classic-ScaleOut/standby_prim_node.json +++ b/test/json/classic-ScaleOut/standby_prim_node.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleOut/standby_secn_node.json b/test/json/classic-ScaleOut/standby_secn_node.json index c5ace62e..79f3e638 100644 --- a/test/json/classic-ScaleOut/standby_secn_node.json +++ b/test/json/classic-ScaleOut/standby_secn_node.json @@ -7,7 +7,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/block_manual_takeover.json b/test/json/classic-ScaleUp/block_manual_takeover.json index e17ad1d9..1e4e23e3 100644 --- a/test/json/classic-ScaleUp/block_manual_takeover.json +++ b/test/json/classic-ScaleUp/block_manual_takeover.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, @@ -21,7 +21,7 @@ }, { "step": "step20", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/block_sr.json b/test/json/classic-ScaleUp/block_sr.json index 544b8655..b20a1491 100644 --- a/test/json/classic-ScaleUp/block_sr.json +++ b/test/json/classic-ScaleUp/block_sr.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/flup.json b/test/json/classic-ScaleUp/flup.json index b1eae72d..0ee05739 100644 --- a/test/json/classic-ScaleUp/flup.json +++ b/test/json/classic-ScaleUp/flup.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/free_log_area.json b/test/json/classic-ScaleUp/free_log_area.json index d6ac3e7f..dd1982e6 100644 --- a/test/json/classic-ScaleUp/free_log_area.json +++ b/test/json/classic-ScaleUp/free_log_area.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index be6f77f8..6a9ce38f 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/kill_prim_inst.json b/test/json/classic-ScaleUp/kill_prim_inst.json index bffaf4b0..b3c83b20 100644 --- a/test/json/classic-ScaleUp/kill_prim_inst.json +++ b/test/json/classic-ScaleUp/kill_prim_inst.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/kill_prim_node.json b/test/json/classic-ScaleUp/kill_prim_node.json index bf765410..1f98b20a 100644 --- a/test/json/classic-ScaleUp/kill_prim_node.json +++ b/test/json/classic-ScaleUp/kill_prim_node.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/kill_secn_indexserver.json b/test/json/classic-ScaleUp/kill_secn_indexserver.json index 8f716371..c01f5221 100644 --- a/test/json/classic-ScaleUp/kill_secn_indexserver.json +++ b/test/json/classic-ScaleUp/kill_secn_indexserver.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/kill_secn_inst.json b/test/json/classic-ScaleUp/kill_secn_inst.json index 010b05ec..04e7ce0d 100644 --- a/test/json/classic-ScaleUp/kill_secn_inst.json +++ b/test/json/classic-ScaleUp/kill_secn_inst.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/kill_secn_node.json b/test/json/classic-ScaleUp/kill_secn_node.json index 25a60ba9..61ff2e3e 100644 --- a/test/json/classic-ScaleUp/kill_secn_node.json +++ b/test/json/classic-ScaleUp/kill_secn_node.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json b/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json index 48ac8bde..5a357e8b 100644 --- a/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json +++ b/test/json/classic-ScaleUp/maintenance_cluster_hana_running.json @@ -11,7 +11,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json b/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json index 1f163a40..93ab7805 100644 --- a/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json +++ b/test/json/classic-ScaleUp/maintenance_cluster_turn_hana.json @@ -12,7 +12,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json index 7de5e7e1..37362145 100644 --- a/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json +++ b/test/json/classic-ScaleUp/maintenance_with_standby_nodes.json @@ -14,7 +14,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites ssn", + "name": "test prerequisites ssn", "next": "step20", "loop": 1, "wait": 1, @@ -42,7 +42,6 @@ "next": "step40", "loop": 120, "wait": 2, - "todo": "pHost+sHost to check site-name", "pSite": "pSiteUp", "pHost": "pHostUp", "sSite": [ @@ -69,7 +68,7 @@ }, { "step": "step110", - "name": "test prerequitsites spn", + "name": "test prerequisites spn", "next": "step120", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/nop.json b/test/json/classic-ScaleUp/nop.json index ed61e950..45e503c3 100644 --- a/test/json/classic-ScaleUp/nop.json +++ b/test/json/classic-ScaleUp/nop.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/one_stable_hour.json b/test/json/classic-ScaleUp/one_stable_hour.json index 51115df1..43472bfb 100644 --- a/test/json/classic-ScaleUp/one_stable_hour.json +++ b/test/json/classic-ScaleUp/one_stable_hour.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "stable10", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/restart_cluster.json b/test/json/classic-ScaleUp/restart_cluster.json index 82e4f2ef..94925006 100644 --- a/test/json/classic-ScaleUp/restart_cluster.json +++ b/test/json/classic-ScaleUp/restart_cluster.json @@ -10,7 +10,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/restart_cluster_turn_hana.json b/test/json/classic-ScaleUp/restart_cluster_turn_hana.json index 11bd5d4f..a3a89e03 100644 --- a/test/json/classic-ScaleUp/restart_cluster_turn_hana.json +++ b/test/json/classic-ScaleUp/restart_cluster_turn_hana.json @@ -11,7 +11,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/split_brain_prio.json b/test/json/classic-ScaleUp/split_brain_prio.json index d8bd8c71..606689e2 100644 --- a/test/json/classic-ScaleUp/split_brain_prio.json +++ b/test/json/classic-ScaleUp/split_brain_prio.json @@ -9,7 +9,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/standby_prim_node.json b/test/json/classic-ScaleUp/standby_prim_node.json index 247db03f..4ab15d30 100644 --- a/test/json/classic-ScaleUp/standby_prim_node.json +++ b/test/json/classic-ScaleUp/standby_prim_node.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/classic-ScaleUp/standby_secn_node.json b/test/json/classic-ScaleUp/standby_secn_node.json index 1cfccef1..595bc516 100644 --- a/test/json/classic-ScaleUp/standby_secn_node.json +++ b/test/json/classic-ScaleUp/standby_secn_node.json @@ -13,7 +13,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "step20", "loop": 1, "wait": 1, diff --git a/test/json/faults/faulty-syntax-flep.json b/test/json/faults/faulty-syntax-flep.json index abb53364..3edf0bb1 100644 --- a/test/json/faults/faulty-syntax-flep.json +++ b/test/json/faults/faulty-syntax-flep.json @@ -5,7 +5,7 @@ "steps": [ { "step": "prereq10", - "name": "test prerequitsites", + "name": "test prerequisites", "next": "final40", "loop": 1, "wait": 1, From 44302b3b48956313772a4e3572fa65e88d8dccd6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 5 Nov 2024 11:40:04 +0100 Subject: [PATCH 332/414] SAPHanaSR-angi-scenarios.7 --- man/SAPHanaSR-angi-scenarios.7 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index 1f7e126d..e5eea42a 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -66,11 +66,11 @@ Note: One additional Linux cluster node at 3rd site is needed for all scale-out \fBSupported\fP - the scenario is known to work for the given topology. The setup has been tested and is documented in a setup guide. It is supported by SUSE. -.br +.PP \fBUndocumented\fP - the scenario is expected to work for the given topology. The setup is currently not documented in a setup guide. SUSE services are prepared to help with implementation. Once the setutp is working, it is supported by SUSE. -.br +.PP \fBNon-supported\fP - the scenario is expected not to work. It is not supported by SUSE. .PP From 315485b8ad6c37cd62ba7c4fa03aea9c3f597899 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 6 Nov 2024 09:01:02 +0100 Subject: [PATCH 333/414] SAPHanaSR-angi-scenarios.7: wording --- man/SAPHanaSR-angi-scenarios.7 | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/man/SAPHanaSR-angi-scenarios.7 b/man/SAPHanaSR-angi-scenarios.7 index e5eea42a..a3cafd57 100644 --- a/man/SAPHanaSR-angi-scenarios.7 +++ b/man/SAPHanaSR-angi-scenarios.7 @@ -1,6 +1,6 @@ .\" Version: 1.2 .\" -.TH SAPHanaSR-angi-scenarios 7 "28 Oct 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-angi-scenarios 7 "05 Nov 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-angi-scenarios \- SAP HANA system replication scenarios. @@ -14,7 +14,7 @@ possible. .PP \fB* Scenarios overview\fB .PP -The table below shows the known SUSE HA scenarios for HANA system replication +The table shows the known SAPHanaSR-angi HA scenarios for HANA system replication for the two HANA topologies. The current support status is also shown. .PP .\" see man tbl and https://technicallywewrite.com/2023/09/23/tblexample @@ -58,7 +58,7 @@ Scale-Out@perf-opt, up to 12 nodes, no standby (BW)@Supported @two perf-opt clusters connected@Non-supported .TE .PP -.RS 8 +.RS 4 Note: One additional Linux cluster node at 3rd site is needed for all scale-out scenarios. .RE .\" TODO align wording with "Supported HA Solutions" @@ -68,11 +68,12 @@ setup has been tested and is documented in a setup guide. It is supported by SUSE. .PP \fBUndocumented\fP - the scenario is expected to work for the given topology. -The setup is currently not documented in a setup guide. SUSE services are prepared to help with implementation. Once the setutp is working, it is supported by -SUSE. +The setup is currently not documented in a setup guide. SUSE services are +prepared to help with implementation. Once the setutp is working, it could be +supported by SUSE. .PP \fBNon-supported\fP - the scenario is expected not to work. It is not supported -by SUSE. +by SUSE. .PP For details on requirements and configuration of the scenarios, please refer to manual pages SAPHanaSR-angi(7), SAPHanaSR(7) and SAPHanaSR-ScaleOut(7), as well as the respective setup guides. .PP From 9f49013389e9cff2df5ba3b58041775be253e5c7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 12 Nov 2024 09:18:07 +0100 Subject: [PATCH 334/414] SAPHanaSR_upgrade_to_angi.7: mentioned hana__glob_srMode --- man/SAPHanaSR_upgrade_to_angi.7 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/man/SAPHanaSR_upgrade_to_angi.7 b/man/SAPHanaSR_upgrade_to_angi.7 index 91181d2d..9ecea32c 100644 --- a/man/SAPHanaSR_upgrade_to_angi.7 +++ b/man/SAPHanaSR_upgrade_to_angi.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2 .\" -.TH SAPHanaSR_upgrade_to_angi 7 "08 Aug 2024" "" "SAPHanaSR" +.TH SAPHanaSR_upgrade_to_angi 7 "11 Nov 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR_upgrade_to_angi \- How to upgrade from SAPHanaSR or SAPHanaSR-ScaleOut to SAPHanaSR-angi. @@ -108,6 +108,8 @@ hana__glob_upd .br hana__glob_sync_state .br +hana__glob_srMode +.br hana__glob_srHook (in case of obsolete scale-out SAPHanaSR.py) .RE f. Site and global attributes will be added to property SAPHanaSR. From b59ebb6680f14ae9a9bc58407ec32bcb0876bc66 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 12 Nov 2024 09:21:39 +0100 Subject: [PATCH 335/414] SAPHanaSR_upgrade_to_angi.7: mentioned hana__glob_srmode --- man/SAPHanaSR_upgrade_to_angi.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/SAPHanaSR_upgrade_to_angi.7 b/man/SAPHanaSR_upgrade_to_angi.7 index 9ecea32c..e5a5b3d4 100644 --- a/man/SAPHanaSR_upgrade_to_angi.7 +++ b/man/SAPHanaSR_upgrade_to_angi.7 @@ -108,7 +108,7 @@ hana__glob_upd .br hana__glob_sync_state .br -hana__glob_srMode +hana__glob_srmode .br hana__glob_srHook (in case of obsolete scale-out SAPHanaSR.py) .RE From c9cb570951ef1d296a6b69cd265dd664ad4dc520 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 12 Nov 2024 11:11:58 +0100 Subject: [PATCH 336/414] SAPHanaSR-showAttr.8: hostname TODO --- man/SAPHanaSR-showAttr.8 | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/man/SAPHanaSR-showAttr.8 b/man/SAPHanaSR-showAttr.8 index cb023bd9..071fab8d 100644 --- a/man/SAPHanaSR-showAttr.8 +++ b/man/SAPHanaSR-showAttr.8 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2 .\" -.TH SAPHanaSR-showAttr 8 "09 Jul 2024" "" "SAPHanaSR" +.TH SAPHanaSR-showAttr 8 "11 Nov 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR-showAttr \- Shows Linux cluster attributes for SAP HANA system replication. @@ -131,6 +131,8 @@ Hostnames of HANA nodes managed by the Linux cluster. The hostname has to follow UNIX RFC 1178. Additional rules specific to SAP apply. E.g. length of hostname is limited to 13 characters. .\" TODO SAP note. +,\" TODO HANA installation guide says: 64 chars +.\" https://help.sap.com/docs/SAP_HANA_PLATFORM/2c1988d620e04368aa4103bf26f17727/a11bb836086748ae98d7d4bc1efdc79f.html .\" TODO still using remoteHost? See also the fields remoteHost and vhost. The Hosts section shows one line per host, containing details on that host and From e126fec3c1a33a95deef9e42467e6e805ff9907b Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 12 Nov 2024 12:13:17 +0100 Subject: [PATCH 337/414] SAPHanaSR_maintenance_examples.7: REQUIREMENTS --- man/SAPHanaSR_maintenance_examples.7 | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/man/SAPHanaSR_maintenance_examples.7 b/man/SAPHanaSR_maintenance_examples.7 index bbba9086..07ae1543 100644 --- a/man/SAPHanaSR_maintenance_examples.7 +++ b/man/SAPHanaSR_maintenance_examples.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2 .\" -.TH SAPHanaSR_maintenance_examples 7 "20 Sep 2024" "" "SAPHanaSR" +.TH SAPHanaSR_maintenance_examples 7 "11 Nov 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR_maintenance_examples \- maintenance examples for SAPHanaController. @@ -548,7 +548,9 @@ l. Finally check if everything looks fine. .\" .SH REQUIREMENTS .br -\fB*\fR For the current version of the resource agents that come with the software packages SAPHanaSR-angi, the support is limited to the scenarios and parameters described in the respective manual pages SAPHanaSR-angi(7), SAPHanaSR(7) and SAPHanaSR-ScaleOut(7). +\fB*\fR For the current version of the resource agents that come with the software +packages SAPHanaSR-angi, the support is limited to the scenarios and parameters +described in the respective manual pages SAPHanaSR-angi(7), SAPHanaSR(7) and SAPHanaSR-ScaleOut(7). .PP \fB*\fR Be patient. For detecting the overall HANA status, the Linux cluster needs a certain amount of time, depending on the HANA and the configured @@ -561,8 +563,8 @@ landscape status, and the HANA SR status. \fB*\fR Maintenance attributes for cluster, nodes and resources must not be mixed. .PP \fB*\fR The Linux cluster needs to be up and running to allow HA/DR provider events -being written into CIB attributes. The current HANA SR status might differ from CIB -srHook attribute after Linux cluster maintenance. +being written into CIB attributes. The current HANA SR status might differ from +CIB srHook attribute after Linux cluster maintenance. .PP \fB*\fR Manually activating an HANA primary, like start of HANA primary or takeover outside the Linux cluster creates risk of a duplicate-primary situation. The user @@ -576,10 +578,16 @@ maintenance mode. The user is responsible for data integrity. \fB*\fR HANA site names are discovered automatically when the RAs are activated the very first time. That exact site names have to be used later for all manual tasks. .PP +\fB*\fR Just shutting down the cluster or OS while HANA is running is not a valid +maintenance procedure. This is known to yield undesired results, particularly in +scale-out clusters. +.PP .\" .SH BUGS .\" TODO -In case of any problem, please use your favourite SAP support process to open a request for the component BC-OP-LNX-SUSE. Please report any other feedback and suggestions to feedback@suse.com. +In case of any problem, please use your favourite SAP support process to open a +request for the component BC-OP-LNX-SUSE. Please report any other feedback and +suggestions to feedback@suse.com. .PP .\" .SH SEE ALSO From 8083700f9ee9076926df2eeba75a29d4947e74c0 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 14 Nov 2024 14:18:56 +0100 Subject: [PATCH 338/414] SAPHanaSR_basic_cluster.7: protective IPaddress2 config --- man/SAPHanaSR_basic_cluster.7 | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/man/SAPHanaSR_basic_cluster.7 b/man/SAPHanaSR_basic_cluster.7 index 8e9a063a..6058392d 100644 --- a/man/SAPHanaSR_basic_cluster.7 +++ b/man/SAPHanaSR_basic_cluster.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2 .\" -.TH SAPHanaSR 7 "27 Sep 2024" "" "SAPHanaSR_basic_cluster" +.TH SAPHanaSR 7 "14 Nov 2024" "" "SAPHanaSR_basic_cluster" .\" .SH NAME SAPHanaSR_basic_cluster \- SAP HANA System Replication scale-up basic cluster configuration. @@ -222,8 +222,9 @@ property cib-bootstrap-options: \\ .PP \fB* crm simple IP address resource configuration\fR .PP -Let the Linux cluster manage one IP address and move that address along -with the HANA primary master nameserver. +Let the Linux cluster manage one IP address and move that address along with +the HANA primary master nameserver. Interval and timeout are set for friendly +conditions. .PP .RS 2 .br @@ -238,6 +239,31 @@ colocation col_ip_with_SLE_HDB00 \\ 2000: rsc_ip_SLE_HDB00:Started mst_SAPHanaCon_SLE_HDB00:Promoted .RE .PP +.PP +\fB* crm protective IP address resource configuration\fR +.PP +Let the Linux cluster manage one IP address and move that address along with +the HANA primary master nameserver. The resource should tolerate short absence +of (virtual) network cards. If a monitor and the resulting start fails, the +node should get fenced. This protects against risk of HANA dual-primary. This +configuration might be used in public cloud environments. +.PP +.RS 2 +.br +primitive rsc_ip_SLE_HDB00 IPaddr2 \\ +.br + op monitor interval=30 timeout=60 \\ +.br + op start timeout=90 on-fail=fence \\ +.\" TODO on-fail=standby? +.br + params ip=192.168.178.188 +.br +colocation col_ip_with_SLE_HDB00 \\ +.br + 2000: rsc_ip_SLE_HDB00:Started mst_SAPHanaCon_SLE_HDB00:Promoted +.RE +.PP .\" TODO seamless maintenance IP location \fB* crm IP address for active/active read-enabled resource configuration\fR .PP From d1ae4a6a8e84a9f71aaf8602fea06b761a6cca43 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 12:53:34 +0100 Subject: [PATCH 339/414] kill_prim_inst.json: adapted step30 for 15sp6 and rev.074 --- test/json/classic-ScaleUp/kill_prim_inst.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_inst.json b/test/json/classic-ScaleUp/kill_prim_inst.json index b3c83b20..c1142534 100644 --- a/test/json/classic-ScaleUp/kill_prim_inst.json +++ b/test/json/classic-ScaleUp/kill_prim_inst.json @@ -57,21 +57,21 @@ "srHook ~ (PRIM|SWAIT|SREG)" ], "sSite": [ - "srHook == PRIM" + "srHook ~ (PRIM|SOK)" ], "pHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(10)", - "clone_state ~ (UNDEFINED|DEMOTED)", + "clone_state ~ (UNDEFINED|DEMOTED|WAITING4LPA)", "roles == 1:P:master1::worker:", "sync_state ~ (PRIM|SOK)", - "score ~ (-9000|5)" + "score ~ (-9000|0|5)" ], "sHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(30)", "clone_state ~ (DEMOTED|PROMOTED)", "roles ~ 4:(S|P):master1:master:worker:master", "sync_state == SOK", - "score ~ (100|145)", + "score ~ (100|145|150)", "srah == T" ] }, From 7e2f4f7380f1170bbfc2bce7d6eebbaa11e3c6d8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 12:57:28 +0100 Subject: [PATCH 340/414] kill_prim_inst.json: adapted step30 for 15sp6 and rev.074 --- test/json/classic-ScaleUp/kill_prim_inst.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_inst.json b/test/json/classic-ScaleUp/kill_prim_inst.json index c1142534..f07152e3 100644 --- a/test/json/classic-ScaleUp/kill_prim_inst.json +++ b/test/json/classic-ScaleUp/kill_prim_inst.json @@ -23,7 +23,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 120, + "loop": 90, "wait": 2, "pSite": [ "srHook ~ (PRIM|SWAIT|SREG)" @@ -79,7 +79,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 120, + "loop": 150, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", From b3bf5417989d32c6a2a1b477a037cb3197545f5e Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 13:21:23 +0100 Subject: [PATCH 341/414] kill_prim_indexserver.json kill_prim_inst.json kill_secn_inst.json kill_secn_indexserver.json: purpose --- test/json/classic-ScaleUp/kill_prim_indexserver.json | 4 +++- test/json/classic-ScaleUp/kill_prim_inst.json | 4 +++- test/json/classic-ScaleUp/kill_secn_indexserver.json | 4 +++- test/json/classic-ScaleUp/kill_secn_inst.json | 6 ++++-- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index 6a9ce38f..7d0b64f8 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -3,7 +3,9 @@ "name": "Kill primary indexserver", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "primary", + "hana" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/kill_prim_inst.json b/test/json/classic-ScaleUp/kill_prim_inst.json index f07152e3..1c3a8173 100644 --- a/test/json/classic-ScaleUp/kill_prim_inst.json +++ b/test/json/classic-ScaleUp/kill_prim_inst.json @@ -3,7 +3,9 @@ "name": "Kill primary instance", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "primary", + "hana" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/kill_secn_indexserver.json b/test/json/classic-ScaleUp/kill_secn_indexserver.json index c01f5221..e7fd6fc8 100644 --- a/test/json/classic-ScaleUp/kill_secn_indexserver.json +++ b/test/json/classic-ScaleUp/kill_secn_indexserver.json @@ -3,7 +3,9 @@ "name": "Kill secondary indexserver", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "secondary", + "hana" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/kill_secn_inst.json b/test/json/classic-ScaleUp/kill_secn_inst.json index 04e7ce0d..356d5958 100644 --- a/test/json/classic-ScaleUp/kill_secn_inst.json +++ b/test/json/classic-ScaleUp/kill_secn_inst.json @@ -3,7 +3,9 @@ "name": "Kill secondary instance", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "secondary", + "hana" ], "start": "prereq10", "steps": [ @@ -23,7 +25,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 120, + "loop": 90, "wait": 2, "pSite": [ "srHook == PRIM" From c3844ce29f9dcab304400898975634e67a444dd0 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 14:35:01 +0100 Subject: [PATCH 342/414] split_brain_prio.json etc: failur detected loops=90 --- test/json/classic-ScaleUp/split_brain_prio.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/classic-ScaleUp/split_brain_prio.json b/test/json/classic-ScaleUp/split_brain_prio.json index 606689e2..b93747fb 100644 --- a/test/json/classic-ScaleUp/split_brain_prio.json +++ b/test/json/classic-ScaleUp/split_brain_prio.json @@ -23,7 +23,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 120, + "loop": 90, "wait": 2, "pSite": [ "srHook == PRIM" From 5460d17e47d1e26c31e71e7d34c370932b25e319 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 14:38:13 +0100 Subject: [PATCH 343/414] free_log_area.json: purpose --- test/json/angi-ScaleOut/free_log_area.json | 1 + test/json/angi-ScaleUp/free_log_area.json | 1 + test/json/classic-ScaleUp/free_log_area.json | 4 +++- 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/test/json/angi-ScaleOut/free_log_area.json b/test/json/angi-ScaleOut/free_log_area.json index a6f7d109..f6d16df7 100644 --- a/test/json/angi-ScaleOut/free_log_area.json +++ b/test/json/angi-ScaleOut/free_log_area.json @@ -6,6 +6,7 @@ "ScaleOut", "maintenance", "primary", + "hana", "logarea", "stability" ], diff --git a/test/json/angi-ScaleUp/free_log_area.json b/test/json/angi-ScaleUp/free_log_area.json index 18f9c671..68b4192b 100644 --- a/test/json/angi-ScaleUp/free_log_area.json +++ b/test/json/angi-ScaleUp/free_log_area.json @@ -6,6 +6,7 @@ "ScaleUp", "maintenance", "primary", + "hana", "logarea", "stability" ], diff --git a/test/json/classic-ScaleUp/free_log_area.json b/test/json/classic-ScaleUp/free_log_area.json index dd1982e6..c2afa6b2 100644 --- a/test/json/classic-ScaleUp/free_log_area.json +++ b/test/json/classic-ScaleUp/free_log_area.json @@ -3,7 +3,9 @@ "name": "free hana log area on primary site", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "primary", + "hana" ], "start": "prereq10", "steps": [ From f7c8e27c4e144a4d6687888825d5fdbb3565c898 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 14:56:28 +0100 Subject: [PATCH 344/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7 SAPHanaSR-tests-description.7: kill_prim_ipaddr --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 3 +++ man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 3 +++ man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 3 +++ man-tester/SAPHanaSR-tests-description.7 | 18 ++++++++++++++++++ 4 files changed, 27 insertions(+) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index a1b770fb..69a0f7b9 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -49,6 +49,9 @@ Kill primary master indexserver, for susChkSrv.py (action_on_lost=kill). \fBkill_prim_inst\fP Kill primary master instance. .TP +\fBkill_prim_ipaddr\fP +Kill primary HANA´s IP address once. Not yet implemented. +.TP \fBkill_prim_node\fP Kill primary master node. .TP diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index d3624d45..4389f23c 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -46,6 +46,9 @@ Kill primary indexserver, for susChkSrv.py (action_on_lost=kill). \fBkill_prim_inst\fP Kill primary instance. .TP +\fBkill_prim_ipaddr\fP +Kill primary HANA´s IP address once. Not yet implemented. +.TP \fBkill_prim_node\fP Kill primary node. .TP diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 357cd162..e83e4b43 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -34,6 +34,9 @@ Kill primary indexserver, for susChkSrv.py (action_on_lost=kill). \fBkill_prim_inst\fP Kill primary instance. .TP +\fBkill_prim_ipaddr\fP +Kill primary HANA´s IP address once. Not yet implemented. +.TP \fBkill_prim_node\fP Kill primary node. .TP diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 554b01f0..b54c9213 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -281,6 +281,24 @@ One takeover. No fencing. Comment: Application failure, main cluster case. .RE .PP +\fBkill_prim_ipaddr\fP +.RS 2 +Descr: Kill primary HANA´s IP address once. Not yet implemented. +.br +Topology: ScaleUp, ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: ip a d dev +.br +Expect: IP address is recovered. +All nodes stay online. +Primary and secondary HANA stay online. +No takeover. No fencing. +.br +Comment: +.RE +.PP \fBkill_prim_node\fP .RS 2 Descr: Kill primary node. From 3bc2e040e050bb1ff84d771a6f3c83606deae3ba Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 15:08:34 +0100 Subject: [PATCH 345/414] SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7: fixed typo, updates testcases --- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 4 ++-- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 4389f23c..76435d04 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -47,7 +47,7 @@ Kill primary indexserver, for susChkSrv.py (action_on_lost=kill). Kill primary instance. .TP \fBkill_prim_ipaddr\fP -Kill primary HANA´s IP address once. Not yet implemented. +Kill primary HANA´s IP address once. Not yet implemente22d. .TP \fBkill_prim_node\fP Kill primary node. @@ -102,7 +102,7 @@ Stop and restart cluster and HANA. .TP \fBrestart_cluster_turn_hana\fP Stop cluster and HANA, manually start and takeover HANA, start cluster. -.PP +.TP \fBsplit_brain_prio\fP Network split-brain with priority fencing. .TP diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index e83e4b43..6f570a4a 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -79,6 +79,12 @@ No operation - check, wait and check again (stability check). \fBone_stable_hour\fP Check regulary for one hour that there is no failure, like nop. .TP +\fBrestart_cluster\fP +Stop and restart cluster and HANA. +.TP +\fBrestart_cluster_turn_hana\fP +Stop cluster and HANA, manually start and takeover HANA, start cluster. +.TP \fBsplit_brain_prio\fP Network split-brain with priority fencing. .TP From 99b70f104d4886d7d9723bf47281666efcab49b7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 15:17:41 +0100 Subject: [PATCH 346/414] SAPHanaSR-tests-classic-ScaleUp.7: testcases --- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 3 --- 1 file changed, 3 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 6f570a4a..38161b43 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -82,9 +82,6 @@ Check regulary for one hour that there is no failure, like nop. \fBrestart_cluster\fP Stop and restart cluster and HANA. .TP -\fBrestart_cluster_turn_hana\fP -Stop cluster and HANA, manually start and takeover HANA, start cluster. -.TP \fBsplit_brain_prio\fP Network split-brain with priority fencing. .TP From 517f5b687b01671d2071d52d9b02417700ee5fee Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 16:12:58 +0100 Subject: [PATCH 347/414] sct_test_kill_prim_ipaddr: initial checkin --- test/bin/sct_test_kill_prim_ipaddr | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100755 test/bin/sct_test_kill_prim_ipaddr diff --git a/test/bin/sct_test_kill_prim_ipaddr b/test/bin/sct_test_kill_prim_ipaddr new file mode 100755 index 00000000..01a03470 --- /dev/null +++ b/test/bin/sct_test_kill_prim_ipaddr @@ -0,0 +1,19 @@ +#!/bin/bash +# +# sct_test_kill_prim_ipaddr - kill primary HANA´s IP address +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="150"/ { print $2 }' )" + +echo "==== Kill primary HANA´s IP address ====" + +# TODO fixme +IP=$( ssh "$currPrimary" "crm configure show | grep -A4 primitive.*IPaddr2| grep params.ip=" |\ + awk -F'=' '{print $2}' | awk -F' ' '{print $1} ) +IPNM=$( ssh "$currPrimary" "ip a s | grep '"${IP}"'" | awk '{print $2}' ) +NIC=$( ssh "$currPrimary" "ip a s | grep '"${IP}"'" | awk '{print $8}' ) + +ssh "$currPrimary" "ip a d '"${IPNM}"' dev '"${NIC}"'" +# sleep 60 From 9a9b79e741560f0fe783fe70b3171a7ab72f1fe0 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 16:16:24 +0100 Subject: [PATCH 348/414] kill_prim_ipaddr.json: initial checkin --- .../classic-ScaleUp/kill_prim_ipaddr.json | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 test/json/classic-ScaleUp/kill_prim_ipaddr.json diff --git a/test/json/classic-ScaleUp/kill_prim_ipaddr.json b/test/json/classic-ScaleUp/kill_prim_ipaddr.json new file mode 100644 index 00000000..e8c96f0b --- /dev/null +++ b/test/json/classic-ScaleUp/kill_prim_ipaddr.json @@ -0,0 +1,49 @@ +{ + "test": "kill_prim_ipaddr", + "name": "kill primary HANA´s IP address", + "purpose": [ + "classic", + "ScaleUp", + "primary", + "kill" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_ipaddr", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 90, + "wait": 2, + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pSite": "pSiteUp", + "pHost": "pHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 8f3101e11a0c75d229cf145dd89c96d5e3604bc0 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 16:17:37 +0100 Subject: [PATCH 349/414] SAPHanaSR-tests-classic-ScaleUp.7: kill_prim_ipaddr --- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 38161b43..5748d383 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -35,7 +35,7 @@ Kill primary indexserver, for susChkSrv.py (action_on_lost=kill). Kill primary instance. .TP \fBkill_prim_ipaddr\fP -Kill primary HANA´s IP address once. Not yet implemented. +Kill primary HANA´s IP address once. .TP \fBkill_prim_node\fP Kill primary node. From af490de90a7d1373a868960b8d22d3c1433fe715 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 16:20:41 +0100 Subject: [PATCH 350/414] kill_prim_ipaddr.json: initial checkin --- test/json/angi-ScaleUp/kill_prim_ipaddr.json | 49 ++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 test/json/angi-ScaleUp/kill_prim_ipaddr.json diff --git a/test/json/angi-ScaleUp/kill_prim_ipaddr.json b/test/json/angi-ScaleUp/kill_prim_ipaddr.json new file mode 100644 index 00000000..e90e986d --- /dev/null +++ b/test/json/angi-ScaleUp/kill_prim_ipaddr.json @@ -0,0 +1,49 @@ +{ + "test": "kill_prim_ipaddr", + "name": "kill primary HANA´s IP address", + "purpose": [ + "angi", + "ScaleUp", + "primary", + "kill" + ], + "todo": "please correct this file", + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_ipaddr", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 90, + "wait": 2, + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pSite": "pSiteUp", + "pHost": "pHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 4e22f5e111f28342fe4dae757ec8c16434665bcf Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 16:21:49 +0100 Subject: [PATCH 351/414] SAPHanaSR-tests-angi-ScaleUp.7: kill_prim_ipaddr --- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 76435d04..50d7e049 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -47,7 +47,7 @@ Kill primary indexserver, for susChkSrv.py (action_on_lost=kill). Kill primary instance. .TP \fBkill_prim_ipaddr\fP -Kill primary HANA´s IP address once. Not yet implemente22d. +Kill primary HANA´s IP address once. .TP \fBkill_prim_node\fP Kill primary node. From dd892b8f8a3da72cc02a8e6c332905172d1345d4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 16:24:44 +0100 Subject: [PATCH 352/414] sct_test_kill_prim_ipaddr: fixed --- test/bin/sct_test_kill_prim_ipaddr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/bin/sct_test_kill_prim_ipaddr b/test/bin/sct_test_kill_prim_ipaddr index 01a03470..4c180632 100755 --- a/test/bin/sct_test_kill_prim_ipaddr +++ b/test/bin/sct_test_kill_prim_ipaddr @@ -11,7 +11,7 @@ echo "==== Kill primary HANA´s IP address ====" # TODO fixme IP=$( ssh "$currPrimary" "crm configure show | grep -A4 primitive.*IPaddr2| grep params.ip=" |\ - awk -F'=' '{print $2}' | awk -F' ' '{print $1} ) + awk -F'=' '{print $2}' | awk -F' ' '{print $1}' ) IPNM=$( ssh "$currPrimary" "ip a s | grep '"${IP}"'" | awk '{print $2}' ) NIC=$( ssh "$currPrimary" "ip a s | grep '"${IP}"'" | awk '{print $8}' ) From 7391e253e50eea2a0a174ca5a2c3c79c7df83d12 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 16:30:45 +0100 Subject: [PATCH 353/414] sct_test_kill_prim_ipaddr: fixed --- test/bin/sct_test_kill_prim_ipaddr | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/bin/sct_test_kill_prim_ipaddr b/test/bin/sct_test_kill_prim_ipaddr index 4c180632..605233ca 100755 --- a/test/bin/sct_test_kill_prim_ipaddr +++ b/test/bin/sct_test_kill_prim_ipaddr @@ -1,6 +1,6 @@ #!/bin/bash # -# sct_test_kill_prim_ipaddr - kill primary HANA´s IP address +# sct_test_kill_prim_ipaddr - kill primary HANA´s IP address once src=${BASH_SOURCE[0]} full_path=$(readlink -f "$src") dir_path=$(dirname "$full_path") @@ -16,4 +16,5 @@ IPNM=$( ssh "$currPrimary" "ip a s | grep '"${IP}"'" | awk '{print $2}' ) NIC=$( ssh "$currPrimary" "ip a s | grep '"${IP}"'" | awk '{print $8}' ) ssh "$currPrimary" "ip a d '"${IPNM}"' dev '"${NIC}"'" -# sleep 60 +sleep 60 +# From 6de7961b7a7a0223086883e7044b48fc497bc8c2 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 18 Nov 2024 16:33:25 +0100 Subject: [PATCH 354/414] kill_prim_ipaddr.json: fixes --- test/json/angi-ScaleUp/kill_prim_ipaddr.json | 3 +-- test/json/classic-ScaleUp/kill_prim_ipaddr.json | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_prim_ipaddr.json b/test/json/angi-ScaleUp/kill_prim_ipaddr.json index e90e986d..b99aed02 100644 --- a/test/json/angi-ScaleUp/kill_prim_ipaddr.json +++ b/test/json/angi-ScaleUp/kill_prim_ipaddr.json @@ -1,13 +1,12 @@ { "test": "kill_prim_ipaddr", - "name": "kill primary HANA´s IP address", + "name": "kill primary HANA´s IP address once", "purpose": [ "angi", "ScaleUp", "primary", "kill" ], - "todo": "please correct this file", "start": "prereq10", "steps": [ { diff --git a/test/json/classic-ScaleUp/kill_prim_ipaddr.json b/test/json/classic-ScaleUp/kill_prim_ipaddr.json index e8c96f0b..5c0adcc7 100644 --- a/test/json/classic-ScaleUp/kill_prim_ipaddr.json +++ b/test/json/classic-ScaleUp/kill_prim_ipaddr.json @@ -1,13 +1,12 @@ { "test": "kill_prim_ipaddr", - "name": "kill primary HANA´s IP address", + "name": "kill primary HANA´s IP address once", "purpose": [ "classic", "ScaleUp", "primary", "kill" ], - "todo": "please correct this file", "start": "prereq10", "steps": [ { From 87f4a58a54cfdebd6ac30029421d8b4491f2c9a2 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 09:34:22 +0100 Subject: [PATCH 355/414] kill_prim_ipaddr.json: initial checkin --- test/json/angi-ScaleOut/kill_prim_ipaddr.json | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 test/json/angi-ScaleOut/kill_prim_ipaddr.json diff --git a/test/json/angi-ScaleOut/kill_prim_ipaddr.json b/test/json/angi-ScaleOut/kill_prim_ipaddr.json new file mode 100644 index 00000000..9c41ca1f --- /dev/null +++ b/test/json/angi-ScaleOut/kill_prim_ipaddr.json @@ -0,0 +1,49 @@ +{ + "test": "kill_prim_ipaddr", + "name": "kill primary HANA´s IP address once", + "purpose": [ + "angi", + "ScaleOut", + "primary", + "kill", + "network" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_prim_ipaddr", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 90, + "wait": 2, + "sSite": "sSiteUp", + "sHost": "sHostUp", + "pSite": "pSiteUp", + "pHost": "pHostUp" + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 150, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 1b975f0f49794f45a33c9529622611ee519bb7c9 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 09:35:16 +0100 Subject: [PATCH 356/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-description.7 SAPHanaSR-tests-syntax.5: updated purpose, testcases --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 2 +- man-tester/SAPHanaSR-tests-description.7 | 6 +- man-tester/SAPHanaSR-tests-syntax.5 | 64 +++++++++++++++++++++- 3 files changed, 65 insertions(+), 7 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 69a0f7b9..5c51854b 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -50,7 +50,7 @@ Kill primary master indexserver, for susChkSrv.py (action_on_lost=kill). Kill primary master instance. .TP \fBkill_prim_ipaddr\fP -Kill primary HANA´s IP address once. Not yet implemented. +Kill primary HANA´s IP address once. .TP \fBkill_prim_node\fP Kill primary master node. diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index b54c9213..6acb8f22 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2 .\" -.TH SAPHanaSR-tests-description 7 "23 Oct 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-description 7 "19 Nov 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-description \- Functional tests for SAPHanaSR. @@ -283,7 +283,7 @@ Comment: Application failure, main cluster case. .PP \fBkill_prim_ipaddr\fP .RS 2 -Descr: Kill primary HANA´s IP address once. Not yet implemented. +Descr: Kill primary HANA´s IP address once. .br Topology: ScaleUp, ScaleOut. .br diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index af34c51c..40b6acb0 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -1,6 +1,6 @@ -.\" Version: 1.001 +.\" Version: 1.2 .\" -.TH SAPHanaSR-tests-syntax 5 "12 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-syntax 5 "19 Nov 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-syntax \- Syntax for SAPHanaSR test cases and properties. @@ -42,8 +42,66 @@ test identifier, unique test description .TP \fBpurpose\fB -list of keywords, indicating which components and cases are tested +list of keywords, indicating which topology, components and case is tested by this test +.RS 8 .TP +angi +SAPHanaSR-angi +.TP +classic +SAPHanaSR or SAPHanaSR-ScaleOut +.TP +ScaleUp +scale-up topology +.TP +ScaleOut +scale-out topology +.TP +kill +kill something, for testing a failure +.TP +maintenance +test a maintenance procedure +.TP +cluster +test cluster failure +.TP +hana +test HANA failure +.TP +node +test node failure +.TP +network +test network failure +.TP +storage +test storage or IO stack failure +.TP +primary +test failure at primary site +.TP +secondary +test failure at secondary site +.TP +split-brain +test split-brain +.TP +fencing +test leads to node fencing +.TP +hadr +test HANA HA/DR provider hook script +.TP +master +test on HANA master nameserver node +.TP +worker +test on HANA worker node +.TP +alert +test alert agent +.RE \fBstart\fP name of step to start the test with .TP From f242749899af16dd145d5e4c0f5c5d75434ac666 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 09:36:59 +0100 Subject: [PATCH 357/414] free_log_area.json kill_prim_indexserver.json kill_prim_indexserver_fencing_alert.json kill_prim_inst.json kill_prim_worker_inst.json kill_prim_worker_inst_fencing_alert.json kill_secn_indexserver.json kill_secn_indexserver_fencing_alert.json kill_secn_inst.json kill_secn_worker_inst.json: angi-ScaleOut purpose unified --- test/json/angi-ScaleOut/free_log_area.json | 4 +--- test/json/angi-ScaleOut/kill_prim_indexserver.json | 4 ++-- .../angi-ScaleOut/kill_prim_indexserver_fencing_alert.json | 4 ++-- test/json/angi-ScaleOut/kill_prim_inst.json | 4 ++-- test/json/angi-ScaleOut/kill_prim_worker_inst.json | 4 ++-- .../angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json | 4 ++-- test/json/angi-ScaleOut/kill_secn_indexserver.json | 4 ++-- .../angi-ScaleOut/kill_secn_indexserver_fencing_alert.json | 4 ++-- test/json/angi-ScaleOut/kill_secn_inst.json | 2 +- test/json/angi-ScaleOut/kill_secn_worker_inst.json | 4 ++-- 10 files changed, 18 insertions(+), 20 deletions(-) diff --git a/test/json/angi-ScaleOut/free_log_area.json b/test/json/angi-ScaleOut/free_log_area.json index f6d16df7..7ca2ee93 100644 --- a/test/json/angi-ScaleOut/free_log_area.json +++ b/test/json/angi-ScaleOut/free_log_area.json @@ -4,11 +4,9 @@ "purpose": [ "angi", "ScaleOut", - "maintenance", "primary", "hana", - "logarea", - "stability" + "maintenance" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver.json b/test/json/angi-ScaleOut/kill_prim_indexserver.json index eb61f3a7..e35f8548 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver.json @@ -4,9 +4,9 @@ "purpose": [ "angi", "ScaleOut", - "kill", "primary", - "indexserver", + "kill", + "hana", "hadr", "susChkSrv" ], diff --git a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json index 2d17b475..caef6edc 100644 --- a/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_indexserver_fencing_alert.json @@ -4,9 +4,9 @@ "purpose": [ "angi", "ScaleOut", - "kill", "primary", - "indexserver", + "kill", + "hana", "hadr", "susChkSrv", "alert", diff --git a/test/json/angi-ScaleOut/kill_prim_inst.json b/test/json/angi-ScaleOut/kill_prim_inst.json index d68e39dd..8f85c358 100644 --- a/test/json/angi-ScaleOut/kill_prim_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_inst.json @@ -4,9 +4,9 @@ "purpose": [ "angi", "ScaleOut", - "kill", "primary", - "instance", + "kill", + "hana", "master" ], "start": "prereq10", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst.json b/test/json/angi-ScaleOut/kill_prim_worker_inst.json index 307795ae..027ee994 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst.json @@ -4,9 +4,9 @@ "purpose": [ "angi", "ScaleOut", - "kill", "primary", - "instance", + "kill", + "hana", "worker" ], "start": "prereq10", diff --git a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json index 95618354..f40c1111 100644 --- a/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_prim_worker_inst_fencing_alert.json @@ -4,9 +4,9 @@ "purpose": [ "angi", "ScaleOut", - "kill", - "instance", "primary", + "kill", + "hana", "worker", "alert", "fencing" diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver.json b/test/json/angi-ScaleOut/kill_secn_indexserver.json index 715b3413..38bc27e6 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver.json @@ -4,10 +4,10 @@ "purpose": [ "angi", "ScaleOut", - "kill", - "indexserver", "secondary", + "kill", "master", + "hana", "hadr", "susChkSrv" ], diff --git a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json index e67e0b11..9089fabb 100644 --- a/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json +++ b/test/json/angi-ScaleOut/kill_secn_indexserver_fencing_alert.json @@ -4,10 +4,10 @@ "purpose": [ "angi", "ScaleOut", - "kill", - "indexserver", "secondary", + "kill", "master", + "hana", "hadr", "susChkSrv", "alert", diff --git a/test/json/angi-ScaleOut/kill_secn_inst.json b/test/json/angi-ScaleOut/kill_secn_inst.json index 7177a8e3..b9d87600 100644 --- a/test/json/angi-ScaleOut/kill_secn_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_inst.json @@ -6,7 +6,7 @@ "ScaleOut", "kill", "secondary", - "instance", + "hana", "master" ], "start": "prereq10", diff --git a/test/json/angi-ScaleOut/kill_secn_worker_inst.json b/test/json/angi-ScaleOut/kill_secn_worker_inst.json index 8d5e1bc6..f7ef5ecc 100644 --- a/test/json/angi-ScaleOut/kill_secn_worker_inst.json +++ b/test/json/angi-ScaleOut/kill_secn_worker_inst.json @@ -4,9 +4,9 @@ "purpose": [ "angi", "ScaleOut", - "kill", "secondary", - "instance", + "kill", + "hana", "worker" ], "start": "prereq10", From a3d7c9035f3c0f80fc2a553b6bb130e8e956a2a8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 09:40:27 +0100 Subject: [PATCH 358/414] block_manual_takeover.json block_sr.json free_log_area.json kill_prim_indexserver.json kill_prim_indexserver_fencing.json kill_prim_inst.json kill_prim_ipaddr.json kill_prim_pacemkr-ctrld.json kill_secn_indexserver.json kill_secn_indexserver_fencing.json kill_secn_inst.json kill_secn_pacemkr-ctrld.json split_brain_prio.json: angi-ScaleUp unified purpose --- test/json/angi-ScaleUp/block_manual_takeover.json | 2 +- test/json/angi-ScaleUp/block_sr.json | 4 +++- test/json/angi-ScaleUp/free_log_area.json | 4 +--- test/json/angi-ScaleUp/kill_prim_indexserver.json | 4 +++- .../angi-ScaleUp/kill_prim_indexserver_fencing.json | 11 ++++++++++- test/json/angi-ScaleUp/kill_prim_inst.json | 4 ++-- test/json/angi-ScaleUp/kill_prim_ipaddr.json | 3 ++- test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json | 3 ++- test/json/angi-ScaleUp/kill_secn_indexserver.json | 6 ++++-- .../angi-ScaleUp/kill_secn_indexserver_fencing.json | 6 ++++-- test/json/angi-ScaleUp/kill_secn_inst.json | 4 ++-- test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json | 3 ++- test/json/angi-ScaleUp/split_brain_prio.json | 4 +++- 13 files changed, 39 insertions(+), 19 deletions(-) diff --git a/test/json/angi-ScaleUp/block_manual_takeover.json b/test/json/angi-ScaleUp/block_manual_takeover.json index dc36f2f6..017fefb7 100644 --- a/test/json/angi-ScaleUp/block_manual_takeover.json +++ b/test/json/angi-ScaleUp/block_manual_takeover.json @@ -1,6 +1,6 @@ { "test": "block_manual_takeover", - "name": "blocked manual takeover", + "name": "block manual takeover, using susTkOver.py", "purpose": [ "angi", "ScaleUp", diff --git a/test/json/angi-ScaleUp/block_sr.json b/test/json/angi-ScaleUp/block_sr.json index 5c5e09e3..86b00ed8 100644 --- a/test/json/angi-ScaleUp/block_sr.json +++ b/test/json/angi-ScaleUp/block_sr.json @@ -9,7 +9,9 @@ "secondary", "sr", "hadr", - "susHanaSR" + "susHanaSR", + "hana", + "network" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/free_log_area.json b/test/json/angi-ScaleUp/free_log_area.json index 68b4192b..5ba2f131 100644 --- a/test/json/angi-ScaleUp/free_log_area.json +++ b/test/json/angi-ScaleUp/free_log_area.json @@ -4,11 +4,9 @@ "purpose": [ "angi", "ScaleUp", - "maintenance", "primary", "hana", - "logarea", - "stability" + "maintenance" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver.json b/test/json/angi-ScaleUp/kill_prim_indexserver.json index 0b43116b..0550bb98 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver.json @@ -6,7 +6,9 @@ "ScaleUp", "kill", "primary", - "indexserver" + "hana", + "hadr", + "susChkSrv" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json index 9f5bc67f..3db26639 100644 --- a/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_prim_indexserver_fencing.json @@ -1,7 +1,16 @@ { "test": "kill_prim_indexserver_fencing", "name": "Kill primary indexserver with on-fail fencing", - "purpose": [ "angi", "ScaleUp", "kill", "primary", "indexserver", "fencing" ], + "purpose": [ + "angi", + "ScaleUp", + "primary", + "kill", + "hana", + "hadr", + "susChkSrv", + "fencing" + ], "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/kill_prim_inst.json b/test/json/angi-ScaleUp/kill_prim_inst.json index 4e504a6e..6a04d343 100644 --- a/test/json/angi-ScaleUp/kill_prim_inst.json +++ b/test/json/angi-ScaleUp/kill_prim_inst.json @@ -4,9 +4,9 @@ "purpose": [ "angi", "ScaleUp", - "kill", "primary", - "instance" + "kill", + "hana" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/kill_prim_ipaddr.json b/test/json/angi-ScaleUp/kill_prim_ipaddr.json index b99aed02..1e98856b 100644 --- a/test/json/angi-ScaleUp/kill_prim_ipaddr.json +++ b/test/json/angi-ScaleUp/kill_prim_ipaddr.json @@ -5,7 +5,8 @@ "angi", "ScaleUp", "primary", - "kill" + "kill", + "network" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json b/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json index 3f3249e5..d1e530f6 100644 --- a/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json +++ b/test/json/angi-ScaleUp/kill_prim_pacemkr-ctrld.json @@ -6,7 +6,8 @@ "ScaleUp", "primary", "kill", - "cluster" + "cluster", + "fencing" ], "todo": "please correct this file", "start": "prereq10", diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver.json b/test/json/angi-ScaleUp/kill_secn_indexserver.json index 15f91cbe..da9ec481 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver.json @@ -4,9 +4,11 @@ "purpose": [ "angi", "ScaleUp", - "kill", "secondary", - "indexserver" + "kill", + "hana", + "hadr", + "susChkSrv" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json index 58593a4b..c57a76f9 100644 --- a/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json +++ b/test/json/angi-ScaleUp/kill_secn_indexserver_fencing.json @@ -4,9 +4,11 @@ "purpose": [ "angi", "ScaleUp", - "kill", "secondary", - "indexserver", + "kill", + "hana", + "hadr", + "susChkSrv", "fencing" ], "start": "prereq10", diff --git a/test/json/angi-ScaleUp/kill_secn_inst.json b/test/json/angi-ScaleUp/kill_secn_inst.json index 438dd6df..c8d46756 100644 --- a/test/json/angi-ScaleUp/kill_secn_inst.json +++ b/test/json/angi-ScaleUp/kill_secn_inst.json @@ -4,9 +4,9 @@ "purpose": [ "angi", "ScaleUp", - "kill", "secondary", - "instance" + "kill", + "hana" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json b/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json index 9307f37b..b23b4624 100644 --- a/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json +++ b/test/json/angi-ScaleUp/kill_secn_pacemkr-ctrld.json @@ -6,7 +6,8 @@ "ScaleUp", "secondary", "kill", - "cluster" + "cluster", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/split_brain_prio.json b/test/json/angi-ScaleUp/split_brain_prio.json index a7d07c27..4c3a2ed9 100644 --- a/test/json/angi-ScaleUp/split_brain_prio.json +++ b/test/json/angi-ScaleUp/split_brain_prio.json @@ -8,7 +8,9 @@ "primary", "secondary", "cluster", - "hana" + "network", + "hana", + "fencing" ], "start": "prereq10", "steps": [ From 76ff6d7e27ecdaa6926655f0dec7013da94fe36e Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 09:42:10 +0100 Subject: [PATCH 359/414] block_manual_takeover.json block_sr.json free_log_area.json kill_prim_indexserver.json kill_prim_inst.json kill_prim_node.json kill_prim_pacemkr-ctrld.json kill_secn_indexserver.json kill_secn_inst.json kill_secn_node.json kill_secn_pacemkr-ctrld.json split_brain_prio.json: classic-ScaleUp unified purpose --- test/json/classic-ScaleUp/block_manual_takeover.json | 7 ++++++- test/json/classic-ScaleUp/block_sr.json | 8 ++++++++ test/json/classic-ScaleUp/free_log_area.json | 3 ++- test/json/classic-ScaleUp/kill_prim_indexserver.json | 5 ++++- test/json/classic-ScaleUp/kill_prim_inst.json | 1 + test/json/classic-ScaleUp/kill_prim_node.json | 3 ++- test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json | 3 ++- test/json/classic-ScaleUp/kill_secn_indexserver.json | 5 ++++- test/json/classic-ScaleUp/kill_secn_inst.json | 1 + test/json/classic-ScaleUp/kill_secn_node.json | 3 ++- test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json | 3 ++- test/json/classic-ScaleUp/split_brain_prio.json | 9 ++++++++- 12 files changed, 42 insertions(+), 9 deletions(-) diff --git a/test/json/classic-ScaleUp/block_manual_takeover.json b/test/json/classic-ScaleUp/block_manual_takeover.json index 1e4e23e3..12b53c91 100644 --- a/test/json/classic-ScaleUp/block_manual_takeover.json +++ b/test/json/classic-ScaleUp/block_manual_takeover.json @@ -1,9 +1,14 @@ { "test": "block_manual_takeover", - "name": "blocked manual takeover", + "name": "block manual takeover, using susTkOver.py", "purpose": [ "classic", "ScaleUp" + "maintenace", + "admin", + "block", + "susTkOver", + "hadr" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/block_sr.json b/test/json/classic-ScaleUp/block_sr.json index b20a1491..cf65d367 100644 --- a/test/json/classic-ScaleUp/block_sr.json +++ b/test/json/classic-ScaleUp/block_sr.json @@ -4,6 +4,14 @@ "purpose": [ "classic", "ScaleUp" + "block", + "primary", + "secondary", + "sr", + "hadr", + "SAPHanaSR", + "hana", + "network" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/free_log_area.json b/test/json/classic-ScaleUp/free_log_area.json index c2afa6b2..3ed10aea 100644 --- a/test/json/classic-ScaleUp/free_log_area.json +++ b/test/json/classic-ScaleUp/free_log_area.json @@ -5,7 +5,8 @@ "classic", "ScaleUp", "primary", - "hana" + "hana", + "maintenance" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index 7d0b64f8..3663b1be 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -5,7 +5,10 @@ "classic", "ScaleUp", "primary", - "hana" + "kill", + "hana", + "hadr", + "susChkSrv" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/kill_prim_inst.json b/test/json/classic-ScaleUp/kill_prim_inst.json index 1c3a8173..71d1283e 100644 --- a/test/json/classic-ScaleUp/kill_prim_inst.json +++ b/test/json/classic-ScaleUp/kill_prim_inst.json @@ -5,6 +5,7 @@ "classic", "ScaleUp", "primary", + "kill", "hana" ], "start": "prereq10", diff --git a/test/json/classic-ScaleUp/kill_prim_node.json b/test/json/classic-ScaleUp/kill_prim_node.json index 1f98b20a..9490253b 100644 --- a/test/json/classic-ScaleUp/kill_prim_node.json +++ b/test/json/classic-ScaleUp/kill_prim_node.json @@ -6,7 +6,8 @@ "ScaleUp", "primary", "kill", - "node" + "node", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json b/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json index c20c19de..fe9dee55 100644 --- a/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json +++ b/test/json/classic-ScaleUp/kill_prim_pacemkr-ctrld.json @@ -6,7 +6,8 @@ "ScaleUp", "primary", "kill", - "cluster" + "cluster", + "fencing" ], "todo": "please correct this file", "start": "prereq10", diff --git a/test/json/classic-ScaleUp/kill_secn_indexserver.json b/test/json/classic-ScaleUp/kill_secn_indexserver.json index e7fd6fc8..669d272a 100644 --- a/test/json/classic-ScaleUp/kill_secn_indexserver.json +++ b/test/json/classic-ScaleUp/kill_secn_indexserver.json @@ -5,7 +5,10 @@ "classic", "ScaleUp", "secondary", - "hana" + "kill", + "hana", + "hadr", + "susChkSrv" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/kill_secn_inst.json b/test/json/classic-ScaleUp/kill_secn_inst.json index 356d5958..98276404 100644 --- a/test/json/classic-ScaleUp/kill_secn_inst.json +++ b/test/json/classic-ScaleUp/kill_secn_inst.json @@ -5,6 +5,7 @@ "classic", "ScaleUp", "secondary", + "kill", "hana" ], "start": "prereq10", diff --git a/test/json/classic-ScaleUp/kill_secn_node.json b/test/json/classic-ScaleUp/kill_secn_node.json index 61ff2e3e..fe01481e 100644 --- a/test/json/classic-ScaleUp/kill_secn_node.json +++ b/test/json/classic-ScaleUp/kill_secn_node.json @@ -6,7 +6,8 @@ "ScaleUp", "secondary", "kill", - "node" + "node", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json b/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json index e3af921f..51acba67 100644 --- a/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json +++ b/test/json/classic-ScaleUp/kill_secn_pacemkr-ctrld.json @@ -6,7 +6,8 @@ "ScaleUp", "secondary", "kill", - "cluster" + "cluster", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/classic-ScaleUp/split_brain_prio.json b/test/json/classic-ScaleUp/split_brain_prio.json index b93747fb..292f52f8 100644 --- a/test/json/classic-ScaleUp/split_brain_prio.json +++ b/test/json/classic-ScaleUp/split_brain_prio.json @@ -3,7 +3,14 @@ "name": "split brain with prio fencing to simulate fence of secondary", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", + "split-brain", + "primary", + "secondary", + "cluster", + "network", + "hana", + "fencing" ], "start": "prereq10", "steps": [ From 817711fb4ddc8e92fa709db968f79d648ac631fd Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 09:52:42 +0100 Subject: [PATCH 360/414] SAPHanaSR-tests-syntax.5: pupose --- man-tester/SAPHanaSR-tests-syntax.5 | 50 ++++++++++++++--------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index 40b6acb0..9089cf8b 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -45,17 +45,26 @@ test description list of keywords, indicating which topology, components and case is tested by this test .RS 8 .TP +alert +test alert agent +.TP angi SAPHanaSR-angi .TP classic SAPHanaSR or SAPHanaSR-ScaleOut .TP -ScaleUp -scale-up topology +cluster +test cluster failure .TP -ScaleOut -scale-out topology +fencing +test leads to node fencing +.TP +hadr +test HANA HA/DR provider hook script +.TP +hana +test HANA failure .TP kill kill something, for testing a failure @@ -63,44 +72,35 @@ kill something, for testing a failure maintenance test a maintenance procedure .TP -cluster -test cluster failure -.TP -hana -test HANA failure -.TP -node -test node failure +master +test on HANA master nameserver node .TP network test network failure .TP -storage -test storage or IO stack failure +node +test node failure .TP primary test failure at primary site .TP +ScaleOut +scale-out topology +.TP +ScaleUp +scale-up topology +.TP secondary test failure at secondary site .TP split-brain test split-brain .TP -fencing -test leads to node fencing -.TP -hadr -test HANA HA/DR provider hook script -.TP -master -test on HANA master nameserver node +storage +test storage or IO stack failure .TP worker test on HANA worker node -.TP -alert -test alert agent .RE \fBstart\fP name of step to start the test with From 95c5d169ad63018b4c093c7f9a25bcb8d89becc1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 09:59:54 +0100 Subject: [PATCH 361/414] SAPHanaSR-tests-syntax.5: pupose --- man-tester/SAPHanaSR-tests-syntax.5 | 43 ++++++++++++++++------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index 9089cf8b..ac6f338c 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -46,62 +46,67 @@ list of keywords, indicating which topology, components and case is tested by th .RS 8 .TP alert -test alert agent +- test alert agent .TP angi -SAPHanaSR-angi +- SAPHanaSR-angi .TP classic -SAPHanaSR or SAPHanaSR-ScaleOut +- SAPHanaSR or SAPHanaSR-ScaleOut .TP cluster -test cluster failure +- test cluster failure .TP fencing -test leads to node fencing +- test leads to node fencing .TP hadr -test HANA HA/DR provider hook script +- test HANA HA/DR provider hook script .TP hana -test HANA failure +- test HANA failure .TP kill -kill something, for testing a failure +- kill something, for testing a failure .TP maintenance -test a maintenance procedure +- test a maintenance procedure .TP master -test on HANA master nameserver node +- test on HANA master nameserver node .TP network -test network failure +- test network failure .TP node -test node failure +- test node failure .TP primary -test failure at primary site +- test failure at primary site +.TP +protective +- configuration variant "protective" .TP ScaleOut -scale-out topology +- scale-out topology .TP ScaleUp -scale-up topology +- scale-up topology .TP secondary -test failure at secondary site +- test failure at secondary site .TP split-brain -test split-brain +- test split-brain .TP storage -test storage or IO stack failure +- test storage or IO stack failure .TP worker -test on HANA worker node +- test on HANA worker node .RE +.\" TODO script to list/find testcases by purpose +.PP \fBstart\fP name of step to start the test with .TP From 562ac836cbc73a1aa4c94bb585bc51fd11f24fbd Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 10:17:56 +0100 Subject: [PATCH 362/414] block_sr_and_freeze_prim_fs.json freeze_long_secn_fs.json freeze_prim_fs.json freeze_short_secn_fs.json: angi-ScaleUp unified purpose --- test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json | 6 +++--- test/json/angi-ScaleUp/freeze_long_secn_fs.json | 9 ++++----- test/json/angi-ScaleUp/freeze_prim_fs.json | 7 +++---- test/json/angi-ScaleUp/freeze_short_secn_fs.json | 7 +++---- 4 files changed, 13 insertions(+), 16 deletions(-) diff --git a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json index 4f5fb5e3..bc05151d 100644 --- a/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/block_sr_and_freeze_prim_fs.json @@ -4,10 +4,10 @@ "purpose": [ "angi", "ScaleUp", - "maintenace", - "admin", + "primary", "block", - "fs", + "freeze", + "storage", "susHanaSR", "hadr" ], diff --git a/test/json/angi-ScaleUp/freeze_long_secn_fs.json b/test/json/angi-ScaleUp/freeze_long_secn_fs.json index 90a83819..b3f01ff1 100644 --- a/test/json/angi-ScaleUp/freeze_long_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_long_secn_fs.json @@ -1,15 +1,14 @@ { "test": "freeze_long_secn_fs", - "name": "freeze sap hana fs on secondary node - long time period - fencing", + "name": "freeze sap hana fs on secondary node - long time - fencing", "purpose": [ "angi", "ScaleUp", - "fs", - "freeze", "secondary", - "node" + "storage", + "freeze", + "fencing" ], - "art": "00:18:00", "start": "prereq10", "steps": [ { diff --git a/test/json/angi-ScaleUp/freeze_prim_fs.json b/test/json/angi-ScaleUp/freeze_prim_fs.json index aee4bb21..4e32dc21 100644 --- a/test/json/angi-ScaleUp/freeze_prim_fs.json +++ b/test/json/angi-ScaleUp/freeze_prim_fs.json @@ -4,11 +4,10 @@ "purpose": [ "angi", "ScaleUp", - "fs", - "freeze", "primary", - "master", - "node" + "storage", + "freeze", + "fencing" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleUp/freeze_short_secn_fs.json b/test/json/angi-ScaleUp/freeze_short_secn_fs.json index 87351a89..0f362b99 100644 --- a/test/json/angi-ScaleUp/freeze_short_secn_fs.json +++ b/test/json/angi-ScaleUp/freeze_short_secn_fs.json @@ -1,13 +1,12 @@ { "test": "freeze_short_secn_fs", - "name": "freeze sap hana fs on secondary node - short time period", + "name": "freeze sap hana fs on secondary node - short time", "purpose": [ "angi", "ScaleUp", - "fs", - "freeze", "secondary", - "node" + "storage", + "freeze" ], "art": "00:04:10", "todo": "please correct this file", From 4a9e10f474d7c9b8f937546c13eceaad7d7a7fd4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 10:18:13 +0100 Subject: [PATCH 363/414] SAPHanaSR-tests-syntax.5: purpose --- man-tester/SAPHanaSR-tests-syntax.5 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index ac6f338c..b0190982 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -96,6 +96,9 @@ ScaleUp secondary - test failure at secondary site .TP +site +- failure of complete site (all nodes) +.TP split-brain - test split-brain .TP From 0c20a21b52c1095a22137ad05b7b97c9d12ee4fe Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 10:19:16 +0100 Subject: [PATCH 364/414] block_sr_and_freeze_prim_master_nfs.json freeze_prim_master_nfs.json freeze_prim_master_nfs_fencing_alert.json freeze_prim_site_nfs.json freeze_secn_site_nfs.json: angi-ScaleOut: unified purpose --- .../block_sr_and_freeze_prim_master_nfs.json | 6 +++--- test/json/angi-ScaleOut/freeze_prim_master_nfs.json | 10 ++++++---- .../freeze_prim_master_nfs_fencing_alert.json | 11 +++++++---- test/json/angi-ScaleOut/freeze_prim_site_nfs.json | 9 +++++---- test/json/angi-ScaleOut/freeze_secn_site_nfs.json | 9 +++++---- 5 files changed, 26 insertions(+), 19 deletions(-) diff --git a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json index 2b0491c5..b27cfc0d 100644 --- a/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/block_sr_and_freeze_prim_master_nfs.json @@ -4,12 +4,12 @@ "purpose": [ "angi", "ScaleOut", + "primary", "block", "freeze", - "primary", "master", - "node", - "fs", + "network", + "storage", "nfs", "susHanaSR", "hadr" diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json index 85252170..e0048a9c 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs.json @@ -4,12 +4,14 @@ "purpose": [ "angi", "ScaleOut", - "fs", - "nfs", - "freeze", "primary", + "freeze", "master", - "node" + "network", + "storage", + "nfs", + "susHanaSR", + "hadr" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json index 6de4291c..72e4e183 100644 --- a/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json +++ b/test/json/angi-ScaleOut/freeze_prim_master_nfs_fencing_alert.json @@ -4,12 +4,15 @@ "purpose": [ "angi", "ScaleOut", - "fs", - "nfs", - "freeze", "primary", + "block", + "freeze", "master", - "node", + "network", + "storage", + "nfs", + "susHanaSR", + "hadr", "alert", "fencing" ], diff --git a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json index 1737247d..81c58fc4 100644 --- a/test/json/angi-ScaleOut/freeze_prim_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_prim_site_nfs.json @@ -4,11 +4,12 @@ "purpose": [ "angi", "ScaleOut", - "fs", - "nfs", - "freeze", "primary", - "site" + "freeze", + "site", + "network", + "storage", + "nfs" ], "start": "prereq10", "steps": [ diff --git a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json index f3a60a5d..d90bf0e8 100644 --- a/test/json/angi-ScaleOut/freeze_secn_site_nfs.json +++ b/test/json/angi-ScaleOut/freeze_secn_site_nfs.json @@ -4,11 +4,12 @@ "purpose": [ "angi", "ScaleOut", - "fs", - "nfs", - "freeze", "secondary", - "site" + "freeze", + "site", + "network", + "storage", + "nfs" ], "todo": "please correct this file", "start": "prereq10", From 0292ed23359feb1a76a0d2e57fcc721ecfa90763 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 19 Nov 2024 10:25:04 +0100 Subject: [PATCH 365/414] sct_test_kill_prim_ipaddr --- test/bin/sct_test_kill_prim_ipaddr | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/bin/sct_test_kill_prim_ipaddr b/test/bin/sct_test_kill_prim_ipaddr index 605233ca..e94a8df1 100755 --- a/test/bin/sct_test_kill_prim_ipaddr +++ b/test/bin/sct_test_kill_prim_ipaddr @@ -9,7 +9,7 @@ currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | a echo "==== Kill primary HANA´s IP address ====" -# TODO fixme +# TODO could property ipAddr be used? IP=$( ssh "$currPrimary" "crm configure show | grep -A4 primitive.*IPaddr2| grep params.ip=" |\ awk -F'=' '{print $2}' | awk -F' ' '{print $1}' ) IPNM=$( ssh "$currPrimary" "ip a s | grep '"${IP}"'" | awk '{print $2}' ) From da4722aad2d205e25eca2d6cab2b4ad30bc565a1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 20 Nov 2024 10:12:07 +0100 Subject: [PATCH 366/414] SAPHanaSR_upgrade_to_angi.7: hana__vhost not removed --- man/SAPHanaSR_upgrade_to_angi.7 | 2 -- 1 file changed, 2 deletions(-) diff --git a/man/SAPHanaSR_upgrade_to_angi.7 b/man/SAPHanaSR_upgrade_to_angi.7 index e5a5b3d4..a6993ed4 100644 --- a/man/SAPHanaSR_upgrade_to_angi.7 +++ b/man/SAPHanaSR_upgrade_to_angi.7 @@ -38,8 +38,6 @@ c. Tools are placed in /usr/bin/ instead of /usr/sbin/. .br d. Node attributes will be removed. .RS 4 -hana__vhost -.br hana__site .br hana__remoteHost From eb56c4736eb96e7d70bbfcb81677db97179b0deb Mon Sep 17 00:00:00 2001 From: lpinne Date: Wed, 20 Nov 2024 10:36:12 +0100 Subject: [PATCH 367/414] SAPHanaSR_upgrade_to_angi.7: aligned scale-up, scale-out, angi, also bsc #1232717 --- man/SAPHanaSR_upgrade_to_angi.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man/SAPHanaSR_upgrade_to_angi.7 b/man/SAPHanaSR_upgrade_to_angi.7 index a6993ed4..92d7ff1e 100644 --- a/man/SAPHanaSR_upgrade_to_angi.7 +++ b/man/SAPHanaSR_upgrade_to_angi.7 @@ -1,6 +1,6 @@ .\" Version: 1.2 .\" -.TH SAPHanaSR_upgrade_to_angi 7 "11 Nov 2024" "" "SAPHanaSR" +.TH SAPHanaSR_upgrade_to_angi 7 "20 Nov 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR_upgrade_to_angi \- How to upgrade from SAPHanaSR or SAPHanaSR-ScaleOut to SAPHanaSR-angi. From 1b1ea18795260219813d5a5c1df29af53933bf75 Mon Sep 17 00:00:00 2001 From: lpinne Date: Thu, 21 Nov 2024 17:16:37 +0100 Subject: [PATCH 368/414] SAPHanaSR_basic_cluster.7: examples --- man/SAPHanaSR_basic_cluster.7 | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/man/SAPHanaSR_basic_cluster.7 b/man/SAPHanaSR_basic_cluster.7 index 6058392d..a49f19c8 100644 --- a/man/SAPHanaSR_basic_cluster.7 +++ b/man/SAPHanaSR_basic_cluster.7 @@ -242,11 +242,12 @@ colocation col_ip_with_SLE_HDB00 \\ .PP \fB* crm protective IP address resource configuration\fR .PP -Let the Linux cluster manage one IP address and move that address along with -the HANA primary master nameserver. The resource should tolerate short absence -of (virtual) network cards. If a monitor and the resulting start fails, the -node should get fenced. This protects against risk of HANA dual-primary. This -configuration might be used in public cloud environments. +Let the Linux cluster manage one IP address. The resource should tolerate short +absence of (virtual) network cards. If a monitor and the resulting start fails, +the node should get fenced. This protects against risk of HANA dual-primary. +This configuration might be used in public cloud environments. A colocation +constraint between this IP address resource and the HANA primary master +nameserver is needed as well, see respective examples. .PP .RS 2 .br @@ -258,13 +259,14 @@ primitive rsc_ip_SLE_HDB00 IPaddr2 \\ .\" TODO on-fail=standby? .br params ip=192.168.178.188 -.br -colocation col_ip_with_SLE_HDB00 \\ -.br - 2000: rsc_ip_SLE_HDB00:Started mst_SAPHanaCon_SLE_HDB00:Promoted .RE .PP -.\" TODO seamless maintenance IP location +.\" TODO \fB crm IP address colocation for seamless maintenance +.\" .PP +.\" The IP address is moved along with the HANA primary master nameserver. +.\" The location is determined from the hana__roles attribute. +.\" classic: location loc_ip_with_SAPHana rsc_ip_HXE_HDB00 rule 3000: hana_hxe_roles eq 4:P:master1:master:worker:master +.\" .PP \fB* crm IP address for active/active read-enabled resource configuration\fR .PP Let the Linux cluster manage an additional IP address and move that address @@ -326,7 +328,7 @@ colocation col_ip_with_SLE_HDB00 \\ \fB* crm MailTo resource configuration\fR .PP The HANA landscape status is stored inside CIB as attribute hana__roles. -A healthy HANA master looks like "4:P:master1:master:worker:master". +A healthy HANA master looks like "master1:master:worker:master". First field is the HANA landscape status. If that status goes to 3 or 2, something has happened to HANA, but the cluster will not perform a takeover. Status 1 will trigger a takeover, status 0 indicates an undefined fatal failure. @@ -342,9 +344,14 @@ primitive rsc_mailto_HA1_HDB10 MailTo \\ .br op monitor timeout=10 interval=30 depth=0 \\ .br -location loc_mailto_HA1_HDB10_with_prim rsc_mailto_HA1_HDB10 \\ +location loc_mailto_HA1_HDB10_with_sane rsc_mailto_HA1_HDB10 \\ +.br + rule 90000: hana_ha1_roles eq master1:master:worker:master +.br +colocation col_mailto_HA1_HDB10_with_prim \\ .br - rule hana_ha1_roles eq 4:P:master1:master:worker:master + 3000: rsc_mailto_HA1_HDB10:Started mst_SAPHanaCon_HA1_HDB10:Promoted +.\" TODO fix above .RE .PP \fB* check how resource stickiness affects promotion scoring\fR From 6eca49c1758d3eeb9d1a7d0f86351cf3ac2f68d8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Sat, 23 Nov 2024 12:09:21 +0100 Subject: [PATCH 369/414] SAPHanaSR-tester.7: requirements --- man-tester/SAPHanaSR-tester.7 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/man-tester/SAPHanaSR-tester.7 b/man-tester/SAPHanaSR-tester.7 index 1ca8a4d0..a5d7a032 100644 --- a/man-tester/SAPHanaSR-tester.7 +++ b/man-tester/SAPHanaSR-tester.7 @@ -1,6 +1,6 @@ .\" Version: 1.2.4 .\" -.TH SAPHanaSR-tester 7 "04 Jul 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tester 7 "20 Nov 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tester \- Functional testing for SAPHanaSR clusters. @@ -205,6 +205,9 @@ with additional package SAPHanaSR-tester-client is supported. \fB*\fP Scale-up setups with or without multi-target replication. No scale-up multi-SID (MCOS) setups. .PP +\fB*\fP The tester checks cluster attributes via SAPHanaSR-showAttr. It only +detects an status represented by those attributes. +.PP \fB*\fP Scale-out setups with or without multi-target replication. No HANA host auto-failover. .PP @@ -218,7 +221,8 @@ login as database user SYSTEM into the HANA database. This is only needed for some test cases. .PP \fB*\fP Package python3-paramiko is needed on the tester machine for the -tester´s multi-node feature. +tester´s multi-node feature. The cluster nodes need to run an openssh-server +compatible to that python3-paramiko. .PP \fB*\fP Package ClusterTools2 is needed on the cluster nodes. .PP From e434b9d44fc2914b155722c401a9adae91a8e7c1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Sat, 23 Nov 2024 12:27:35 +0100 Subject: [PATCH 370/414] SAPHanaSR-ScaleOut_basic_cluster.7 SAPHanaSR_basic_cluster.7: protective IPaddr2 example --- man/SAPHanaSR-ScaleOut_basic_cluster.7 | 29 ++++++++++++++++++++++++-- man/SAPHanaSR_basic_cluster.7 | 13 +++++++----- 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/man/SAPHanaSR-ScaleOut_basic_cluster.7 b/man/SAPHanaSR-ScaleOut_basic_cluster.7 index 68380021..10033a8b 100644 --- a/man/SAPHanaSR-ScaleOut_basic_cluster.7 +++ b/man/SAPHanaSR-ScaleOut_basic_cluster.7 @@ -1,6 +1,6 @@ -.88\" Version: 1.001 +.88\" Version: 1.2 .\" -.TH SAPHanaSR-ScaleOut_basic_cluster 7 "27 Sep 2024" "" "SAPHanaSR" +.TH SAPHanaSR-ScaleOut_basic_cluster 7 "20 Nov 2024" "" "SAPHanaSR" .\" .SH NAME SAPHanaSR-ScaleOut_basic_cluster \- SAP HANA System Replication scale-out basic cluster configuration. @@ -294,6 +294,31 @@ colocation col_ip_with_SLE_HDB00 \\ 2000: rsc_ip_SLE_HDB00:Started mst_SAPHanaCon_SLE_HDB00:Promoted .RE .PP +\fB* crm protective IP address resource configuration\fR +.PP +Let the Linux cluster manage one IP address. The resource should tolerate short +absence of (virtual) network cards. If a monitor and the resulting start fails, +the node should get fenced. This protects against risk of HANA dual-primary. +A colocation constraint between this IP address resource and the HANA primary +master nameserver is needed as well, see respective examples. +.PP +.RS 2 +.br +primitive rsc_ip_SLE_HDB00 IPaddr2 \\ +.br + op monitor interval=30 timeout=60 \\ +.br + op start timeout=90 on-fail=fence \\ +.\" TODO on-fail=standby? +.br + params ip=192.168.178.188 cidr_netmask=32 +.RE +.PP +This configuration might be used in public cloud environments where virtual NICs +might be expected to disappear temporarily. Of course, it would be better to not +let NICs dissapear in production. I.e. by adding redundancy to the network or by +setting the cluster into maintenance. +.PP \fB* crm IP address for active/active read-enabled resource configuration\fR .PP Let the Linux cluster manage an additional IP address and move that address diff --git a/man/SAPHanaSR_basic_cluster.7 b/man/SAPHanaSR_basic_cluster.7 index a49f19c8..80df586c 100644 --- a/man/SAPHanaSR_basic_cluster.7 +++ b/man/SAPHanaSR_basic_cluster.7 @@ -239,15 +239,13 @@ colocation col_ip_with_SLE_HDB00 \\ 2000: rsc_ip_SLE_HDB00:Started mst_SAPHanaCon_SLE_HDB00:Promoted .RE .PP -.PP \fB* crm protective IP address resource configuration\fR .PP Let the Linux cluster manage one IP address. The resource should tolerate short absence of (virtual) network cards. If a monitor and the resulting start fails, the node should get fenced. This protects against risk of HANA dual-primary. -This configuration might be used in public cloud environments. A colocation -constraint between this IP address resource and the HANA primary master -nameserver is needed as well, see respective examples. +A colocation constraint between this IP address resource and the HANA primary +master nameserver is needed as well, see respective examples. .PP .RS 2 .br @@ -258,9 +256,14 @@ primitive rsc_ip_SLE_HDB00 IPaddr2 \\ op start timeout=90 on-fail=fence \\ .\" TODO on-fail=standby? .br - params ip=192.168.178.188 + params ip=192.168.178.188 cidr_netmask=32 .RE .PP +This configuration might be used in public cloud environments where virtual NICs +might be expected to disappear temporarily. Of course, it would be better to not +let NICs dissapear in production. I.e. by adding redundancy to the network or by +setting the cluster into maintenance. +.PP .\" TODO \fB crm IP address colocation for seamless maintenance .\" .PP .\" The IP address is moved along with the HANA primary master nameserver. From 18454a100a32081abff4cf1cb1d43279751eeab1 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 08:32:19 +0100 Subject: [PATCH 371/414] SAPHanaSR-testCluster.8 --password --- man-tester/SAPHanaSR-testCluster.8 | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-testCluster.8 b/man-tester/SAPHanaSR-testCluster.8 index bb04c34b..5df488b1 100644 --- a/man-tester/SAPHanaSR-testCluster.8 +++ b/man-tester/SAPHanaSR-testCluster.8 @@ -1,6 +1,6 @@ .\" Version: 1.2.4 .\" -.TH SAPHanaSR-testCluster 8 "03 Apr 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-testCluster 8 "24 Nov 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-testCluster \- Run functional tests for SAPHanaSR clusters. @@ -39,6 +39,9 @@ print and log debug messages. --logFile \fIFILE\fP path to log file. .TP +--password \fIPASSWORD\fP +remote root user´s password (for debugging only). +.TP --printTestProperties print test properties and exit. .TP From 5727b7821e2ab7600ae201f545431fdb928630df Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 10:21:52 +0100 Subject: [PATCH 372/414] SAPHanaSR-tests-syntax.5: purpose --- man-tester/SAPHanaSR-tests-syntax.5 | 125 ++++++++++++++-------------- 1 file changed, 63 insertions(+), 62 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index b0190982..f4997af2 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -42,110 +42,111 @@ test identifier, unique test description .TP \fBpurpose\fB -list of keywords, indicating which topology, components and case is tested by this test -.RS 8 +list of keywords, indicating which topology, components and case is tested, see below - [ angi | classic ] [ ScaleUp | ScaleOut ] [ master | worker ] [ ... ] +.TP +\fBstart\fP +name of step to start the test with +.TP +\fBcomment\fP +comment, just a string +.TP +\fBsteps\fP +test steps - [ step | name | next | loop | wait | post | comment | ] +.TP +\fBstep\fP +step identifier, unique +.TP +\fBname\fP +step description +.TP +\fBnext\fP +name of step to do next +.TP +\fBloop\fP +maximum number of loops to wait and check for status +.TP +\fBwait\fP +how many seconds to wait for each loop TODO +.TP +\fBcomment\fP +comment, just a string +.TP +\fBstatus\fP +status definition, see below +.TP +\fBstart\fP +name of step to start the test with +.TP +\fBcomment\fP +comment, just a string +.PP +\fB*\fP Test purpose +.\" TODO script to list/find testcases by purpose +.PP +TODO .TP alert -- test alert agent +test alert agent .TP angi -- SAPHanaSR-angi +SAPHanaSR-angi .TP classic -- SAPHanaSR or SAPHanaSR-ScaleOut +SAPHanaSR or SAPHanaSR-ScaleOut .TP cluster -- test cluster failure +test cluster failure .TP fencing -- test leads to node fencing +test leads to node fencing .TP hadr -- test HANA HA/DR provider hook script +test HANA HA/DR provider hook script .TP hana -- test HANA failure +test HANA failure .TP kill -- kill something, for testing a failure +kill something, for testing a failure .TP maintenance -- test a maintenance procedure +test a maintenance procedure .TP master -- test on HANA master nameserver node +test on HANA master nameserver node .TP network -- test network failure +test network failure .TP node -- test node failure +test node failure .TP primary -- test failure at primary site +test failure at primary site .TP protective -- configuration variant "protective" +configuration variant "protective" .TP ScaleOut -- scale-out topology +scale-out topology .TP ScaleUp -- scale-up topology +scale-up topology .TP secondary -- test failure at secondary site +test failure at secondary site .TP site -- failure of complete site (all nodes) +failure of complete site (all nodes) .TP split-brain -- test split-brain +test split-brain .TP storage -- test storage or IO stack failure +test storage or IO stack failure .TP worker -- test on HANA worker node -.RE -.\" TODO script to list/find testcases by purpose -.PP -\fBstart\fP -name of step to start the test with -.TP -\fBcomment\fP -comment, just a string -.TP -\fBsteps\fP -test steps, see below -.PP -\fBsteps\fP -.PP -TODO -[ step | name | next | loop | wait | post | comment | ] -.PP -.TP -\fBstep\fP -step identifier, unique -.TP -\fBname\fP -step description -.TP -\fBnext\fP -name of step to do next -.TP -\fBloop\fP -maximum number of loops to wait and check for status -.TP -\fBwait\fP -how many seconds to wait for each loop TODO -.TP -\fBcomment\fP -comment, just a string -.TP -\fBstatus\fP -status definition, see below -.PP +test on HANA worker node .PP \fB*\fP Test step status .PP From efb7186a4fa1a703237f468947544e2f5491b3e5 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 11:20:54 +0100 Subject: [PATCH 373/414] SAPHanaSR-tests-syntax.5: formatting --- man-tester/SAPHanaSR-tests-syntax.5 | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index f4997af2..407bdb6d 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -345,7 +345,6 @@ execute command .TP sleep sleep some seconds -.RE .PP See also manual pages SAPHanaSR-tests-angi-ScaleUp(7), SAPHanaSR-tests-angi-ScaleOut(7) and SAPHanaSR-tests-description(7). @@ -360,19 +359,21 @@ The test cases on the other hand are mostly similar for all test systems. TODO .br { +.RS 5 .br - "sid": "\fISID\fP", +"sid": "\fISID\fP", .br - "instNo": "\fINR\fP", +"instNo": "\fINR\fP", .br - "mstResource": "\fISTRING\fP", +"mstResource": "\fISTRING\fP", .br - "clnResource": "\fISTRING\fP", +"clnResource": "\fISTRING\fP", .br - "ipAddr": "\fIIPADDRESS\fP", +"ipAddr": "\fIIPADDRESS\fP", .br - "userKey": "\fISTRING\fP" +"userKey": "\fISTRING\fP" .br +.RE } .PP See also EXAMPLES section in manual page SAPHanaSR-tester(7). @@ -429,7 +430,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .SH SEE ALSO \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-testCluster\fP(8) , \fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-tests-angi-ScaleOut\fP(7) , -\fBSAPHanaSR-tests-definition\fP(7) , +\fBSAPHanaSR-tests-classic-ScaleUp\fP(7) , \fBSAPHanaSR-tests-definition\fP(7) , \fBSAPHanaSR-tests-definition_on-fail-fence\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , .br From 328f7ec2b638da99f7919fc919a934273b6a3278 Mon Sep 17 00:00:00 2001 From: Fabian Herschel Date: Mon, 25 Nov 2024 13:43:02 +0100 Subject: [PATCH 374/414] tester: tester/SAPHanaSR-testCluster, tester/saphana_sr_test.py: add password-based login as debug and fallback --- test/tester/SAPHanaSR-testCluster | 5 ++++ test/tester/saphana_sr_test.py | 48 +++++++++++++------------------ 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/test/tester/SAPHanaSR-testCluster b/test/tester/SAPHanaSR-testCluster index 17376c2c..7aebd654 100755 --- a/test/tester/SAPHanaSR-testCluster +++ b/test/tester/SAPHanaSR-testCluster @@ -42,6 +42,7 @@ parser.add_argument("--printTestProperties", help="print test properties and exi action="store_true") parser.add_argument("--debug", help="output and log debug messages", action="store_true") parser.add_argument("--version", help="output version and exit", action="store_true") +parser.add_argument("--password", help="optinal ssh password, if key based authentication is not used"), args = parser.parse_args() if args.version: print(f"SAPHanaSR-tester {test01.version}") @@ -78,6 +79,10 @@ if args.printTestProperties: if args.debug: test01.config['debug'] = args.debug test01.message("PARAM: DEBUG activated") +if args.password: + test01.config['password' ]= args.password +else: + test01.config['password'] = "bla bla" while test01.run['count'] <= test01.config['repeat']: # test01.message(f"count: {test01.run['count']}") diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index 9c160f66..d0baf104 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -77,7 +77,8 @@ def __init__(self, *args, **kwargs): 'remote_node': None, 'remote_nodes': [], 'printTestProperties': False, - 'debug': False + 'debug': False, + 'password': None } self.dict_sr = {} self.test_data = {} @@ -188,7 +189,7 @@ def read_saphana_sr(self): sr_out = local_sr.stdout.decode() break else: - result_sr = self.__do_ssh__(remote_node, "root", cmd, timeout=15) + result_sr = self.__do_ssh__(remote_node, "root", cmd, timeout=15, password=self.config['password']) if result_sr[2] != 20000: if switched_remote: self.message(f"STATUS: get data from {remote_node}") @@ -692,7 +693,7 @@ def action_call(self, action_name, cmd, remote): self.message("ACTION: {} LOCAL: {} rc={}".format(action_name, cmd, action_rc)) else: self.message("ACTION: {} REMOTE at {}: {}".format(action_name, remote, cmd)) - a_result = self.__do_ssh__(remote, "root", cmd) + a_result = self.__do_ssh__(remote, "root", cmd, password=self.config['password']) action_rc = a_result[2] self.message("ACTION: {} REMOTE at {}: {} rc={}".format(action_name, remote, cmd, action_rc)) return action_rc @@ -808,33 +809,24 @@ def __do_ssh__(self, remote_host, user, cmd, **kwargs): returns a tuple ( stdout-string, stderr, string, rc ) """ ssh_timeout = kwargs.get('timeout', None) + ssh_password = kwargs.get('password', None) if remote_host: - try: - ssh_client = paramiko.SSHClient() - ssh_client.load_system_host_keys() + ssh_client = paramiko.SSHClient() + ssh_client.load_system_host_keys() + if ssh_password: + ssh_client.connect(remote_host, username=user, password=ssh_password, timeout=10) + else: ssh_client.connect(remote_host, username=user, timeout=10) - cmd_timeout=f"timeout={ssh_timeout}" - #(cmd_stdout, cmd_stderr) = ssh_client.exec_command(cmd, cmd_timeout)[1:] - self.debug(f"DEBUG: ssh cmd '{cmd}' timeout={ssh_timeout}") - (cmd_stdout, cmd_stderr) = ssh_client.exec_command(cmd, timeout=ssh_timeout)[1:] - result_stdout = cmd_stdout.read().decode("utf8") - result_stderr = cmd_stderr.read().decode("utf8") - result_rc = cmd_stdout.channel.recv_exit_status() - check_result = (result_stdout, result_stderr, result_rc) - ssh_client.close() - self.debug(f"DEBUG: ssh cmd '{cmd}' {user}@{remote_host}: return code {result_rc}") - except paramiko.ssh_exception.SSHException as para_err: - if self.config['dump_failures']: - print("") - self.message(f"FAILURE01: ssh connection to {user}@{remote_host}: {para_err}") - check_result=("", "", 20000) - # pylint: disable=broad-exception-caught - except Exception as ssh_muell: - # except Exception as ssh_muell: - if self.config['dump_failures']: - print("") - self.message(f"FAILURE02: ssh connection to {user}@{remote_host}: {ssh_muell}") - check_result=("", "", 20000) + cmd_timeout=f"timeout={ssh_timeout}" + #(cmd_stdout, cmd_stderr) = ssh_client.exec_command(cmd, cmd_timeout)[1:] + self.debug(f"DEBUG: ssh cmd '{cmd}' timeout={ssh_timeout}") + (cmd_stdout, cmd_stderr) = ssh_client.exec_command(cmd, timeout=ssh_timeout)[1:] + result_stdout = cmd_stdout.read().decode("utf8") + result_stderr = cmd_stderr.read().decode("utf8") + result_rc = cmd_stdout.channel.recv_exit_status() + check_result = (result_stdout, result_stderr, result_rc) + ssh_client.close() + self.debug(f"DEBUG: ssh cmd '{cmd}' {user}@{remote_host}: return code {result_rc}") else: self.message("FAILURE: ssh connection to failed - remote_host not specified") check_result=("", "", 20000) From 078405dbb68aa7fcc1e0faa3f05ef4c7cee11ab4 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 16:31:08 +0100 Subject: [PATCH 375/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7 SAPHanaSR-tests-description.7: kill_prim_nameserver --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 3 +++ man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 3 +++ man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 3 +++ man-tester/SAPHanaSR-tests-description.7 | 20 +++++++++++++++++++- 4 files changed, 28 insertions(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 5c51854b..3e619971 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -52,6 +52,9 @@ Kill primary master instance. \fBkill_prim_ipaddr\fP Kill primary HANA´s IP address once. .TP +\fBkill_prim_nameserver\fP +Kill primary master nameserver. Not yet implemented. +.TP \fBkill_prim_node\fP Kill primary master node. .TP diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 50d7e049..7a05b443 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -49,6 +49,9 @@ Kill primary instance. \fBkill_prim_ipaddr\fP Kill primary HANA´s IP address once. .TP +\fBkill_prim_nameserver\fP +Kill primary nameserver. Not yet implemented. +.TP \fBkill_prim_node\fP Kill primary node. .TP diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 5748d383..1324c125 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -37,6 +37,9 @@ Kill primary instance. \fBkill_prim_ipaddr\fP Kill primary HANA´s IP address once. .TP +\fBkill_prim_nameserver\fP +Kill primary nameserver. Not yet implemented. +.TP \fBkill_prim_node\fP Kill primary node. .TP diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 6acb8f22..9cbb9489 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -1,6 +1,6 @@ .\" Version: 1.2 .\" -.TH SAPHanaSR-tests-description 7 "19 Nov 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-description 7 "26 Nov 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-description \- Functional tests for SAPHanaSR. @@ -299,6 +299,24 @@ No takeover. No fencing. Comment: .RE .PP +\fBkill_prim_nameserver\fP +.RS 2 +Descr: Kill primary nameserver. +On scale-out, kill primary master nameserver (not yet implemented). +.br +Topology: ScaleUp, ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -9 hdbnameserver +.br +Expect: Primary (master) nameserver restarted. +HANA primary temporarily degraded (lss=2), no Linux cluster resource failure +No takeover. No fencing. +.br +Comment: Application failure, HANA recovers on its own. +.RE +.PP \fBkill_prim_node\fP .RS 2 Descr: Kill primary node. From 605b6dc13d5c827a7c4bf2e8f4d750b2d8228822 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 17:07:39 +0100 Subject: [PATCH 376/414] block_sr.json: fixed missing , --- test/json/classic-ScaleUp/block_sr.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/classic-ScaleUp/block_sr.json b/test/json/classic-ScaleUp/block_sr.json index cf65d367..be206098 100644 --- a/test/json/classic-ScaleUp/block_sr.json +++ b/test/json/classic-ScaleUp/block_sr.json @@ -3,7 +3,7 @@ "name": "block sr and check SFAIL attribute; unblock to recover", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", "block", "primary", "secondary", From 2a5ab300940742aebb51e65bb4e00a3c93132eeb Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 17:27:45 +0100 Subject: [PATCH 377/414] sct_test_kill_secn_nameserver classic-ScaleUp/kill_secn_nameserver.json: initial checkin --- test/bin/sct_test_kill_secn_nameserver | 13 +++ .../classic-ScaleUp/kill_secn_nameserver.json | 92 +++++++++++++++++++ 2 files changed, 105 insertions(+) create mode 100755 test/bin/sct_test_kill_secn_nameserver create mode 100644 test/json/classic-ScaleUp/kill_secn_nameserver.json diff --git a/test/bin/sct_test_kill_secn_nameserver b/test/bin/sct_test_kill_secn_nameserver new file mode 100755 index 00000000..f277d3fe --- /dev/null +++ b/test/bin/sct_test_kill_secn_nameserver @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_secn_nameserver - kill secondary master nameserver +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" + +echo "==== Kill nameserver ====" + +ssh "$currSecondary" 'pkill -f -u $sidadm --signal 11 hdbnameserver' +# sleep 60 diff --git a/test/json/classic-ScaleUp/kill_secn_nameserver.json b/test/json/classic-ScaleUp/kill_secn_nameserver.json new file mode 100644 index 00000000..34420035 --- /dev/null +++ b/test/json/classic-ScaleUp/kill_secn_nameserver.json @@ -0,0 +1,92 @@ +{ + "test": "kill_secn_nameserver", + "name": "Kill secondary master nameserver", + "purpose": [ + "classic", + "ScaleUp", + "secondary", + "kill", + "hana" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_nameserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "step30", + "loop": 120, + "wait": 2, + "pSite": [ + "srHook == PRIM" + ], + "sSite": [ + "srHook == SFAIL" + ], + "pHost": [ + "lpa_@@sid@@_lpt > 1000000000", + "clone_state == PROMOTED", + "roles == 4:P:master1:master:worker:master", + "sync_state == PRIM", + "score == 150" + ], + "sHost": [ + "lpa_@@sid@@_lpt ~ (10|30)", + "clone_state == DEMOTED", + "roles ~ (1|2):S:master1::worker:", + "sync_state ~ (SFAIL|SOK)", + "score ~ (-INFINITY|0)" + ] + }, + { + "step": "step30", + "name": "begin recover", + "next": "final40", + "loop": 120, + "wait": 2, + "pSite": [ + "srHook == PRIM" + ], + "sSite": [ + "srHook ~ (SFAIL|SWAIT)" + ], + "pHost": [ + "lpa_@@sid@@_lpt > 1000000000", + "clone_state == PROMOTED", + "roles == 4:P:master1:master:worker:master", + "sync_state == PRIM", + "score == 150" + ], + "sHost": [ + "lpa_@@sid@@_lpt == 10", + "clone_state == UNDEFINED", + "roles == 1:S:master1::worker:", + "sync_state ~ (SFAIL|SOK)", + "score ~ (-INFINITY|0|-1)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 120, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From fb8b5d7963242ed36e4cbe41ce218f6d2ecbfcb7 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 17:40:01 +0100 Subject: [PATCH 378/414] kill_prim_indexserver.json: step30 fix --- test/json/classic-ScaleUp/kill_prim_indexserver.json | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index 3663b1be..f98c70f9 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -55,7 +55,7 @@ "step": "step30", "name": "begin recover", "next": "final40", - "loop": 120, + "loop": 150, "wait": 2, "todo": "pHost+sHost to check site-name", "pSite": [ @@ -65,10 +65,9 @@ "srHook == PRIM" ], "pHost": [ - "lpa_@@sid@@_lpt >~ 1000000000:(30|10)", - "clone_state ~ (WAITING4LPA|DEMOTED)", + "lpa_@@sid@@_lpt >~ 1000000000:(30|20|10)", + "clone_state ~ (UNDEFINED|DEMOTED)", "roles == 1:P:master1::worker:", - "sync_state ~ (PRIM|SFAIL)", "score ~ (-9000|0)" ], "sHost": [ @@ -76,7 +75,6 @@ "clone_state ~ (DEMOTED|PROMOTED)", "roles ~ 4:(S|P):master1:master:worker:master", "score ~ (100|150)", - "sync_state == SOK", "srah == T" ] }, From 6613a9c006b5779fbae66e6338ea20354a31f6c8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 17:52:16 +0100 Subject: [PATCH 379/414] kill_prim_indexserver.json: step30 fix --- test/json/classic-ScaleUp/kill_prim_indexserver.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index f98c70f9..154e122c 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -66,7 +66,7 @@ ], "pHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(30|20|10)", - "clone_state ~ (UNDEFINED|DEMOTED)", + "clone_state ~ (WAITING4LPA|UNDEFINED|DEMOTED)", "roles == 1:P:master1::worker:", "score ~ (-9000|0)" ], From 2382c58bb7b4bc4c528170ecd51ce12c4425e58b Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 17:59:23 +0100 Subject: [PATCH 380/414] kill_prim_indexserver.json: step30 fix --- test/json/classic-ScaleUp/kill_prim_indexserver.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index 154e122c..5cd8e4ac 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -28,7 +28,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 180, + "loop": 150, "wait": 2, "pSite": [ "srHook ~ (PRIM|SWAIT)" @@ -82,7 +82,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 120, + "loop": 180, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", From 24926324039487280b6d44400275f50b2b61e404 Mon Sep 17 00:00:00 2001 From: lpinne Date: Mon, 25 Nov 2024 18:01:59 +0100 Subject: [PATCH 381/414] kill_prim_indexserver.json: step20 loops=120 --- test/json/classic-ScaleUp/kill_prim_indexserver.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index 5cd8e4ac..34f0d8cb 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -28,7 +28,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 150, + "loop": 120, "wait": 2, "pSite": [ "srHook ~ (PRIM|SWAIT)" From af456c133e786dc6432cd69da5376bb81f0f3b2b Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 08:49:01 +0100 Subject: [PATCH 382/414] SAPHanaSR-tester.7: typo --- man-tester/SAPHanaSR-tester.7 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tester.7 b/man-tester/SAPHanaSR-tester.7 index a5d7a032..c1113079 100644 --- a/man-tester/SAPHanaSR-tester.7 +++ b/man-tester/SAPHanaSR-tester.7 @@ -89,7 +89,7 @@ node1 and node2, SID is Q42, instance number is 85, HANA´s virtual IP address i .br # zypper in python3-paramiko .br -# ssh-kegen -t rsa -b 4096 +# ssh-keygen -t rsa -b 4096 .br # ssh-copy-id root@node1 .br From a9eecbd5f9964f9e7897c4c5fc5f48efb3e6766f Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 13:07:32 +0100 Subject: [PATCH 383/414] kill_prim_indexserver.json: step20 --- test/json/classic-ScaleUp/kill_prim_indexserver.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index 34f0d8cb..cd9f5ab1 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -40,14 +40,12 @@ "lpa_@@sid@@_lpt > 1000000000", "clone_state ~ (PROMOTED|WAITING4LPA|UNDEFINED)", "roles == 1:P:master1::worker:", - "sync_state == PRIM", "score ~ (150|5|-9000)" ], "sHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(30)", "clone_state ~ (PROMOTED|DEMOTED)", "roles == 4:S:master1:master:worker:master", - "sync_state == SOK", "score ~ (100|145)" ] }, From 6f40f7ffffb3590686b9488fd6d9d6b2910d0468 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 13:24:48 +0100 Subject: [PATCH 384/414] SAPHanaSR-tests-angi-ScaleOut.7 SAPHanaSR-tests-angi-ScaleUp.7 SAPHanaSR-tests-classic-ScaleUp.7: kill_secn_nameserver --- man-tester/SAPHanaSR-tests-angi-ScaleOut.7 | 3 +++ man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 3 +++ man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 5 ++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 index 3e619971..43508fc9 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleOut.7 @@ -88,6 +88,9 @@ Kill secondary master indexserver, for susChkSrv.py (action_on_lost=kill). \fBkill_secn_inst\fP Kill secondary master instance. .TP +\fBkill_secn_nameserver\fP +Kill secondary master nameserver. Not yet implemented. +.TP \fBkill_secn_node\fP Kill secondary master node. .TP diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 7a05b443..67e4a176 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -67,6 +67,9 @@ Kill secondary indexserver, for susChkSrv.py (action_on_lost=kill). \fBkill_secn_inst\fP Kill secondary instance. .TP +\fBkill_secn_nameserver\fP +Kill secondary nameserver. Not yet implemented. +.TP \fBkill_secn_node\fP Kill secondary node. .TP diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index 1324c125..ce4f567a 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -1,6 +1,6 @@ .\" Version: 1.2.4 .\" -.TH SAPHanaSR-tests-classic-ScaleUp 7 "30 Sep 2024" "" "SAPHanaSR-angi" +.TH SAPHanaSR-tests-classic-ScaleUp 7 "26 Nov 2024" "" "SAPHanaSR-angi" .\" .SH NAME SAPHanaSR-tests-classic-ScaleUp \- Functional tests for SAPHanaSR Scale-Up. @@ -55,6 +55,9 @@ Kill secondary indexserver, for susChkSrv.py (action_on_lost=kill). \fBkill_secn_inst\fP Kill secondary instance. .TP +\fBkill_secn_nameserver\fP +Kill secondary nameserver. +.TP \fBkill_secn_node\fP Kill secondary node. .TP From 5f8b51633cdabb7c497d5aaf105034099f49c125 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 13:31:36 +0100 Subject: [PATCH 385/414] SAPHanaSR-tests-description.7: kill_secn_nameserver --- man-tester/SAPHanaSR-tests-description.7 | 30 ++++++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-description.7 b/man-tester/SAPHanaSR-tests-description.7 index 9cbb9489..ddd644bc 100644 --- a/man-tester/SAPHanaSR-tests-description.7 +++ b/man-tester/SAPHanaSR-tests-description.7 @@ -270,7 +270,7 @@ Topology: ScaleUp, ScaleOut. .br Prereq: Cluster and HANA are up and running, all good. .br -Test: HDB kill +Test: HDB kill-9 .br Expect: Primary (master) node stays online. HANA primary (master) stopped and finally started as secondary. @@ -308,10 +308,10 @@ Topology: ScaleUp, ScaleOut. .br Prereq: Cluster and HANA are up and running, all good. .br -Test: killall -9 hdbnameserver +Test: killall -11 hdbnameserver .br Expect: Primary (master) nameserver restarted. -HANA primary temporarily degraded (lss=2), no Linux cluster resource failure +HANA primary temporarily degraded (lss=2), no Linux cluster resource failure. No takeover. No fencing. .br Comment: Application failure, HANA recovers on its own. @@ -402,7 +402,7 @@ Topology: ScaleOut. .br Prereq: Cluster and HANA are up and running, all good. .br -Test: HDB kill +Test: HDB kill-9 .br Expect: HANA primary stopped and finally started as secondary. HANA secondary becomes finally primary. @@ -495,7 +495,7 @@ Topology: ScaleUp, ScaleOut. .br Prereq: Cluster and HANA are up and running, all good. .br -Test: HDB kill +Test: HDB kill-9 .br Expect: HANA secondary stopped and finally online. HANA primary stays online. @@ -505,6 +505,26 @@ No takeover. No fencing. Comment: Application failure, main cluster case. .RE .PP +\fBkill_secn_nameserver\fP +.RS 2 +Descr: Kill secondary nameserver. +On scale-out, kill secondary master nameserver (not yet implemented). +.br +Topology: ScaleUp, ScaleOut. +.br +Prereq: Cluster and HANA are up and running, all good. +.br +Test: killall -11 hdbnameserver +.br +Expect: Secondary (master) nameserver restarted. +HANA secondary temporarily degraded (lss=2), no Linux cluster resource failure. +HANA primary stays online. +SR SFAIL and finally SOK. +No takeover. No fencing. +.br +Comment: Application failure, HANA recovers on its own. +.RE +.PP \fBkill_secn_node\fP .RS 2 Descr: Kill secondary node. From baeb5f3a2f6adf5a12097e612d1c8cf427d8e1ca Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 13:54:43 +0100 Subject: [PATCH 386/414] kill_secn_nameserver.json sct_test_kill_secn_nameserver: fixed --- test/bin/sct_test_kill_secn_nameserver | 2 +- .../kill_prim_indexserver.json | 4 +- .../classic-ScaleUp/kill_secn_nameserver.json | 37 +++---------------- 3 files changed, 8 insertions(+), 35 deletions(-) diff --git a/test/bin/sct_test_kill_secn_nameserver b/test/bin/sct_test_kill_secn_nameserver index f277d3fe..1b8a5990 100755 --- a/test/bin/sct_test_kill_secn_nameserver +++ b/test/bin/sct_test_kill_secn_nameserver @@ -9,5 +9,5 @@ currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | echo "==== Kill nameserver ====" -ssh "$currSecondary" 'pkill -f -u $sidadm --signal 11 hdbnameserver' +ssh "$currSecondary" 'pkill -f -u '"${sidadm}"' -11 hdbnameserver' # sleep 60 diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index cd9f5ab1..9562c93b 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -1,6 +1,6 @@ { "test": "kill_prim_indexserver", - "name": "Kill primary indexserver", + "name": "Kill primary master indexserver", "purpose": [ "classic", "ScaleUp", @@ -28,7 +28,7 @@ "step": "step20", "name": "failure detected", "next": "step30", - "loop": 120, + "loop": 90, "wait": 2, "pSite": [ "srHook ~ (PRIM|SWAIT)" diff --git a/test/json/classic-ScaleUp/kill_secn_nameserver.json b/test/json/classic-ScaleUp/kill_secn_nameserver.json index 34420035..285e66c4 100644 --- a/test/json/classic-ScaleUp/kill_secn_nameserver.json +++ b/test/json/classic-ScaleUp/kill_secn_nameserver.json @@ -25,14 +25,14 @@ { "step": "step20", "name": "failure detected", - "next": "step30", - "loop": 120, + "next": "final40", + "loop": 90, "wait": 2, "pSite": [ "srHook == PRIM" ], "sSite": [ - "srHook == SFAIL" + "srHook ~ (SFAIL|SOK)" ], "pHost": [ "lpa_@@sid@@_lpt > 1000000000", @@ -44,36 +44,9 @@ "sHost": [ "lpa_@@sid@@_lpt ~ (10|30)", "clone_state == DEMOTED", - "roles ~ (1|2):S:master1::worker:", - "sync_state ~ (SFAIL|SOK)", - "score ~ (-INFINITY|0)" - ] - }, - { - "step": "step30", - "name": "begin recover", - "next": "final40", - "loop": 120, - "wait": 2, - "pSite": [ - "srHook == PRIM" - ], - "sSite": [ - "srHook ~ (SFAIL|SWAIT)" - ], - "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", - "clone_state == PROMOTED", - "roles == 4:P:master1:master:worker:master", - "sync_state == PRIM", - "score == 150" - ], - "sHost": [ - "lpa_@@sid@@_lpt == 10", - "clone_state == UNDEFINED", - "roles == 1:S:master1::worker:", + "roles == 2:S:master1:master:worker:master", "sync_state ~ (SFAIL|SOK)", - "score ~ (-INFINITY|0|-1)" + "score ~ (100|-INFINITY)" ] }, { From d8ea2c8fd35b42ee15818112d44835da2827ae59 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 14:03:26 +0100 Subject: [PATCH 387/414] SAPHanaSR-tests-angi-ScaleUp.7 angi-ScaleUp/kill_secn_nameserver.json --- man-tester/SAPHanaSR-tests-angi-ScaleUp.7 | 2 +- .../angi-ScaleUp/kill_secn_nameserver.json | 69 +++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 test/json/angi-ScaleUp/kill_secn_nameserver.json diff --git a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 index 67e4a176..fd265327 100644 --- a/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-angi-ScaleUp.7 @@ -68,7 +68,7 @@ Kill secondary indexserver, for susChkSrv.py (action_on_lost=kill). Kill secondary instance. .TP \fBkill_secn_nameserver\fP -Kill secondary nameserver. Not yet implemented. +Kill secondary nameserver. .TP \fBkill_secn_node\fP Kill secondary node. diff --git a/test/json/angi-ScaleUp/kill_secn_nameserver.json b/test/json/angi-ScaleUp/kill_secn_nameserver.json new file mode 100644 index 00000000..986d32c5 --- /dev/null +++ b/test/json/angi-ScaleUp/kill_secn_nameserver.json @@ -0,0 +1,69 @@ +{ + "test": "kill_secn_nameserver", + "name": "Kill secondary master nameserver", + "purpose": [ + "angi", + "ScaleUp", + "secondary", + "kill", + "hana" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_nameserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 90, + "wait": 2, + "pSite": [ + "lpt > 1000000000", + "lss == 4", + "srr == P", + "srHook == PRIM", + "srPoll == PRIM" + + ], + "sSite": [ + "lpt ~ (10|30)", + "lss == 2", + "srr == S", + "srHook ~ (SFAIL|SOK)" + ], + "pHost": [ + "clone_state == PROMOTED", + "roles == master1:master:worker:master", + "score == 150" + ], + "sHost": [ + "clone_state == DEMOTED", + "roles == master1:master:worker:master", + "score ~ (100|-INFINITY)" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 120, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 06ec1565af4d42fe5724e6ee990c297655d2aa12 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 14:16:15 +0100 Subject: [PATCH 388/414] SAPHanaSR-tests-classic-ScaleUp.7 sct_test_kill_prim_nameserver classic-ScaleUp/kill_prim_nameserver.json --- man-tester/SAPHanaSR-tests-classic-ScaleUp.7 | 2 +- test/bin/sct_test_kill_prim_nameserver | 13 ++++ .../classic-ScaleUp/kill_prim_nameserver.json | 65 +++++++++++++++++++ 3 files changed, 79 insertions(+), 1 deletion(-) create mode 100755 test/bin/sct_test_kill_prim_nameserver create mode 100644 test/json/classic-ScaleUp/kill_prim_nameserver.json diff --git a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 index ce4f567a..68202b75 100644 --- a/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 +++ b/man-tester/SAPHanaSR-tests-classic-ScaleUp.7 @@ -38,7 +38,7 @@ Kill primary instance. Kill primary HANA´s IP address once. .TP \fBkill_prim_nameserver\fP -Kill primary nameserver. Not yet implemented. +Kill primary nameserver. .TP \fBkill_prim_node\fP Kill primary node. diff --git a/test/bin/sct_test_kill_prim_nameserver b/test/bin/sct_test_kill_prim_nameserver new file mode 100755 index 00000000..fe5dc360 --- /dev/null +++ b/test/bin/sct_test_kill_prim_nameserver @@ -0,0 +1,13 @@ +#!/bin/bash +# +# sct_test_kill_prim_nameserver - kill primary master nameserver +src=${BASH_SOURCE[0]} +full_path=$(readlink -f "$src") +dir_path=$(dirname "$full_path") +source .test_properties +currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="150"/ { print $2 }' )" + +echo "==== Kill nameserver ====" + +ssh "$currPrimary" 'pkill -f -u '"${sidadm}"' -11 hdbnameserver' +# sleep 60 diff --git a/test/json/classic-ScaleUp/kill_prim_nameserver.json b/test/json/classic-ScaleUp/kill_prim_nameserver.json new file mode 100644 index 00000000..681960e1 --- /dev/null +++ b/test/json/classic-ScaleUp/kill_prim_nameserver.json @@ -0,0 +1,65 @@ +{ + "test": "kill_prim_nameserver", + "name": "Kill primary master nameserver", + "purpose": [ + "classic", + "ScaleUp", + "primary", + "kill", + "hana" + ], + "start": "prereq10", + "steps": [ + { + "step": "prereq10", + "name": "test prerequisites", + "next": "step20", + "loop": 1, + "wait": 1, + "post": "shell sct_test_kill_secn_nameserver", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + }, + { + "step": "step20", + "name": "failure detected", + "next": "final40", + "loop": 90, + "wait": 2, + "pSite": [ + "srHook == PRIM" + ], + "sSite": [ + "srHook == SOK" + ], + "pHost": [ + "lpa_@@sid@@_lpt > 1000000000", + "clone_state == PROMOTED", + "roles == 2:P:master1:master:worker:master", + "sync_state == PRIM", + "score == 150" + ], + "sHost": [ + "lpa_@@sid@@_lpt == 30", + "clone_state == DEMOTED", + "roles == 4:S:master1:master:worker:master", + "sync_state == SOK", + "score == 100" + ] + }, + { + "step": "final40", + "name": "end recover", + "next": "END", + "loop": 120, + "wait": 2, + "post": "cleanup", + "pSite": "pSiteUp", + "sSite": "sSiteUp", + "pHost": "pHostUp", + "sHost": "sHostUp" + } + ] +} From 381454cb05a56e74eb328ba855e59e09300ac0ab Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 14:48:19 +0100 Subject: [PATCH 389/414] saphana_sr_test.py: added kill_prim_nameserver, kill_secn_indexserver --- test/tester/saphana_sr_test.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/test/tester/saphana_sr_test.py b/test/tester/saphana_sr_test.py index d0baf104..58497a37 100644 --- a/test/tester/saphana_sr_test.py +++ b/test/tester/saphana_sr_test.py @@ -6,7 +6,7 @@ saphanasrtest.py Author: Fabian Herschel, Mar 2023 License: GNU General Public License (GPL) - Copyright: (c) 2023 SUSE LLC + Copyright: (c) 2023,2024 SUSE LLC """ import time @@ -727,6 +727,12 @@ def action_on_hana(self, action_name): elif action_name == "kill_secn_worker_indexserver": remote = self.topolo['sWorker'] cmd = "pkill -f -u {}adm --signal 11 hdbindexserver".format(test_sid.lower()) + elif action_name == "kill_prim_nameserver": + remote = self.topolo['pHost'] + cmd = "pkill -f -u {}adm --signal 11 hdbnameserver".format(test_sid.lower()) + elif action_name == "kill_secn_nameserver": + remote = self.topolo['sHost'] + cmd = "pkill -f -u {}adm --signal 11 hdbnameserver".format(test_sid.lower()) elif action_name == "bmt": remote = self.topolo['sHost'] cmd = "su - {}adm -c 'hdbnsutil -sr_takeover'".format(test_sid.lower()) @@ -794,8 +800,7 @@ def action(self, action_name): action_rc = 0 if action_name == "": action_rc = 0 - elif action_name_short in ("kill_prim_inst", "kill_prim_worker_inst", "kill_secn_inst", "kill_secn_worker_inst", "kill_prim_indexserver", "kill_secn_indexserver", - "kill_prim_worker_indexserver", "kill_secn_worker_indexserver" , "bmt"): + elif action_name_short in ("kill_prim_inst", "kill_prim_worker_inst", "kill_secn_inst", "kill_secn_worker_inst", "kill_prim_indexserver", "kill_secn_indexserver", "kill_prim_worker_indexserver", "kill_secn_worker_indexserver", "kill_prim_nameserver", "kill_secn_nameserver", "bmt"): action_rc = self.action_on_hana(action_name) elif action_name_short in ("ssn", "osn", "spn", "opn", "cleanup", "kill_secn_node", "kill_secn_worker_node", "kill_prim_node", "kill_prim_worker_node", "simulate_split_brain","standby_secn_worker_node", "online_secn_worker_node"): action_rc = self.action_on_cluster(action_name) From 09fa4846ac66bdda08e7f080b08eb50f3a3335d8 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 14:51:11 +0100 Subject: [PATCH 390/414] kill_prim_nameserver.json kill_secn_nameserver.json: mentioned internal functions --- test/json/classic-ScaleUp/kill_prim_nameserver.json | 3 ++- test/json/classic-ScaleUp/kill_secn_nameserver.json | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/test/json/classic-ScaleUp/kill_prim_nameserver.json b/test/json/classic-ScaleUp/kill_prim_nameserver.json index 681960e1..82969d54 100644 --- a/test/json/classic-ScaleUp/kill_prim_nameserver.json +++ b/test/json/classic-ScaleUp/kill_prim_nameserver.json @@ -16,7 +16,8 @@ "next": "step20", "loop": 1, "wait": 1, - "post": "shell sct_test_kill_secn_nameserver", + "todo": "use internal test_kill_prim_nameserver instead", + "post": "shell sct_test_kill_prim_nameserver", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", diff --git a/test/json/classic-ScaleUp/kill_secn_nameserver.json b/test/json/classic-ScaleUp/kill_secn_nameserver.json index 285e66c4..e8b2de61 100644 --- a/test/json/classic-ScaleUp/kill_secn_nameserver.json +++ b/test/json/classic-ScaleUp/kill_secn_nameserver.json @@ -16,6 +16,7 @@ "next": "step20", "loop": 1, "wait": 1, + "todo": "use internal test_kill_secn_nameserver instead", "post": "shell sct_test_kill_secn_nameserver", "pSite": "pSiteUp", "sSite": "sSiteUp", From 958e599b5e9625c118a3832a116a9ebd7c766089 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 15:35:52 +0100 Subject: [PATCH 391/414] kill_prim_indexserver.json: fixed --- .../classic-ScaleUp/kill_prim_indexserver.json | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/test/json/classic-ScaleUp/kill_prim_indexserver.json b/test/json/classic-ScaleUp/kill_prim_indexserver.json index 9562c93b..09ef3964 100644 --- a/test/json/classic-ScaleUp/kill_prim_indexserver.json +++ b/test/json/classic-ScaleUp/kill_prim_indexserver.json @@ -31,21 +31,23 @@ "loop": 90, "wait": 2, "pSite": [ - "srHook ~ (PRIM|SWAIT)" + "srHook ~ (PRIM|SWAIT|SREG)" ], "sSite": [ "srHook ~ (PRIM|SOK)" ], "pHost": [ - "lpa_@@sid@@_lpt > 1000000000", + "lpa_@@sid@@_lpt >~ 1000000000:(20)", "clone_state ~ (PROMOTED|WAITING4LPA|UNDEFINED)", "roles == 1:P:master1::worker:", - "score ~ (150|5|-9000)" + "sync_state == PRIM", + "score ~ (0|5|-9000)" ], "sHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(30)", "clone_state ~ (PROMOTED|DEMOTED)", "roles == 4:S:master1:master:worker:master", + "sync_state == SOK", "score ~ (100|145)" ] }, @@ -60,19 +62,19 @@ "srHook ~ (PRIM|SWAIT|SREG)" ], "sSite": [ - "srHook == PRIM" + "srHook ~ (PRIM|SOK)" ], "pHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(30|20|10)", "clone_state ~ (WAITING4LPA|UNDEFINED|DEMOTED)", "roles == 1:P:master1::worker:", - "score ~ (-9000|0)" + "score ~ (0|5|-9000)" ], "sHost": [ "lpa_@@sid@@_lpt >~ 1000000000:(30)", "clone_state ~ (DEMOTED|PROMOTED)", "roles ~ 4:(S|P):master1:master:worker:master", - "score ~ (100|150)", + "score ~ (100|145|150)", "srah == T" ] }, From 154678a10f5ce490b46439979b39480f5cdae626 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 15:51:13 +0100 Subject: [PATCH 392/414] SAPHanaSR-checkJson.8: initial checkin --- man-tester/SAPHanaSR-checkJson.8 | 91 ++++++++++++++++++++++++++++++ man-tester/SAPHanaSR-testCluster.8 | 2 +- 2 files changed, 92 insertions(+), 1 deletion(-) create mode 100644 man-tester/SAPHanaSR-checkJson.8 diff --git a/man-tester/SAPHanaSR-checkJson.8 b/man-tester/SAPHanaSR-checkJson.8 new file mode 100644 index 00000000..bba01818 --- /dev/null +++ b/man-tester/SAPHanaSR-checkJson.8 @@ -0,0 +1,91 @@ +.\" Version: 1.2.4 +.\" +.TH SAPHanaSR-checkJson 8 "26 Nov 2024" "" "SAPHanaSR-angi" +.\" TODO SAPHanaSR-testJson ? +.\" +.SH NAME +SAPHanaSR-checkJson \- Check syntax of SAPHanaSR-tester JSON file. +.PP +.\" +.SH SYNOPSIS +.PP +\fBSAPHanaSR-checkJson\fR [ --help | --version ] +.br +\fBSAPHanaSR-checkJson\fR --file \fIFILE\fR [ --quiet ] +.PP +.\" +.SH DESCRIPTION +.PP +SAPHanaSR-checkJson is a tool for checking the syntax of SAPHanaSR-tester JSON files. +.PP +.\" +.SH OPTIONS +.TP +--help +print help message and exit. +.TP +--file \fIFILE\fP +specify the JSON file to check. +.TP +--quiet +do not output JSON data on success. +.TP +--version +print version and exit. +.PP +.\" +.SH RETURN CODES +.PP +.B 0 +Successful program execution. +.br +.B >0 +Usage, syntax or execution errors. +.PP +.\" +.PP +.\" +.SH EXAMPLES +.PP +TODO +.PP +.\" +.SH FILES +.TP +/usr/bin/SAPHanaSR-checkJson +the program itself. +.PP +.\" +.SH REQUIREMENTS +.PP +See the REQUIREMENTS section in SAPHanaSR-tester(7). +.PP +.\" +.SH BUGS +.PP +In case of any problem, please use your favourite SAP support process to open +a request for the component BC-OP-LNX-SUSE. +Please report any other feedback and suggestions to feedback@suse.com. +.PP +.\" +.SH SEE ALSO +.PP +\fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , +\fBSAPHanaSR-tests-classic-ScaleUp\fP(7) , +\fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-tests-angi-ScaleOut\fP(7) +.PP +.\" +.SH AUTHORS +.PP +F.Herschel, L.Pinne. +.PP +.\" +.SH COPYRIGHT +.PP +(c) 2023-2024 SUSE LLC +.br +The package SAPHanaSR-tester comes with ABSOLUTELY NO WARRANTY. +.br +For details see the GNU General Public License at +http://www.gnu.org/licenses/gpl.html +.\" diff --git a/man-tester/SAPHanaSR-testCluster.8 b/man-tester/SAPHanaSR-testCluster.8 index 5df488b1..8702927a 100644 --- a/man-tester/SAPHanaSR-testCluster.8 +++ b/man-tester/SAPHanaSR-testCluster.8 @@ -168,7 +168,7 @@ Please report any other feedback and suggestions to feedback@suse.com. .SH SEE ALSO .PP \fBSAPHanaSR-tester\fP(7) , \fBSAPHanaSR-tests-syntax\fP(5) , -\fBSAPHanaSR-tests-description\fP(7) , +\fBSAPHanaSR-tests-description\fP(7) , \fBSAPHanaSR-tests-classic-ScaleUp\fP(7) , \fBSAPHanaSR-tests-angi-ScaleUp\fP(7) , \fBSAPHanaSR-tests-angi-ScaleOut\fP(7) , \fBSAPHanaSR-angi\fP(7) , \fBSAPHanaSR-showAttr\fP(8) , \fBcrm_mon\fP(8) , \fBcrm\fP(8) , \fBcs_clusterstate\fP(8) , \fBcs_show_cluster_actions\fP(8) , From a593ebd40de20890d840dad5608c90d43c5924a6 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 16:33:26 +0100 Subject: [PATCH 393/414] block_manual_takeover.json: fixed missing , --- test/json/classic-ScaleUp/block_manual_takeover.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/classic-ScaleUp/block_manual_takeover.json b/test/json/classic-ScaleUp/block_manual_takeover.json index 12b53c91..20ec7228 100644 --- a/test/json/classic-ScaleUp/block_manual_takeover.json +++ b/test/json/classic-ScaleUp/block_manual_takeover.json @@ -3,7 +3,7 @@ "name": "block manual takeover, using susTkOver.py", "purpose": [ "classic", - "ScaleUp" + "ScaleUp", "maintenace", "admin", "block", From fdf9f15cd08ebc974f2bff34810fba960b5a3139 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 16:44:13 +0100 Subject: [PATCH 394/414] kill_secn_nameserver.json kill_prim_nameserver.json: internal function instead of shell script --- test/json/angi-ScaleUp/kill_secn_nameserver.json | 2 +- test/json/classic-ScaleUp/kill_prim_nameserver.json | 3 +-- test/json/classic-ScaleUp/kill_secn_nameserver.json | 3 +-- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/test/json/angi-ScaleUp/kill_secn_nameserver.json b/test/json/angi-ScaleUp/kill_secn_nameserver.json index 986d32c5..112b2978 100644 --- a/test/json/angi-ScaleUp/kill_secn_nameserver.json +++ b/test/json/angi-ScaleUp/kill_secn_nameserver.json @@ -16,7 +16,7 @@ "next": "step20", "loop": 1, "wait": 1, - "post": "shell sct_test_kill_secn_nameserver", + "post": "kill_secn_nameserver", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", diff --git a/test/json/classic-ScaleUp/kill_prim_nameserver.json b/test/json/classic-ScaleUp/kill_prim_nameserver.json index 82969d54..09fe7cf1 100644 --- a/test/json/classic-ScaleUp/kill_prim_nameserver.json +++ b/test/json/classic-ScaleUp/kill_prim_nameserver.json @@ -16,8 +16,7 @@ "next": "step20", "loop": 1, "wait": 1, - "todo": "use internal test_kill_prim_nameserver instead", - "post": "shell sct_test_kill_prim_nameserver", + "post": "shell kill_prim_nameserver", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", diff --git a/test/json/classic-ScaleUp/kill_secn_nameserver.json b/test/json/classic-ScaleUp/kill_secn_nameserver.json index e8b2de61..59acc90e 100644 --- a/test/json/classic-ScaleUp/kill_secn_nameserver.json +++ b/test/json/classic-ScaleUp/kill_secn_nameserver.json @@ -16,8 +16,7 @@ "next": "step20", "loop": 1, "wait": 1, - "todo": "use internal test_kill_secn_nameserver instead", - "post": "shell sct_test_kill_secn_nameserver", + "post": "kill_secn_nameserver", "pSite": "pSiteUp", "sSite": "sSiteUp", "pHost": "pHostUp", From aca0add342cd26bd51bd947d6b7f0fe3b7f50b40 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 16:46:02 +0100 Subject: [PATCH 395/414] sct_test_kill_prim_nameserver sct_test_kill_secn_nameserver: replaced by internal function --- test/bin/sct_test_kill_prim_nameserver | 13 ------------- test/bin/sct_test_kill_secn_nameserver | 13 ------------- 2 files changed, 26 deletions(-) delete mode 100755 test/bin/sct_test_kill_prim_nameserver delete mode 100755 test/bin/sct_test_kill_secn_nameserver diff --git a/test/bin/sct_test_kill_prim_nameserver b/test/bin/sct_test_kill_prim_nameserver deleted file mode 100755 index fe5dc360..00000000 --- a/test/bin/sct_test_kill_prim_nameserver +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# -# sct_test_kill_prim_nameserver - kill primary master nameserver -src=${BASH_SOURCE[0]} -full_path=$(readlink -f "$src") -dir_path=$(dirname "$full_path") -source .test_properties -currPrimary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="150"/ { print $2 }' )" - -echo "==== Kill nameserver ====" - -ssh "$currPrimary" 'pkill -f -u '"${sidadm}"' -11 hdbnameserver' -# sleep 60 diff --git a/test/bin/sct_test_kill_secn_nameserver b/test/bin/sct_test_kill_secn_nameserver deleted file mode 100755 index 1b8a5990..00000000 --- a/test/bin/sct_test_kill_secn_nameserver +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/bash -# -# sct_test_kill_secn_nameserver - kill secondary master nameserver -src=${BASH_SOURCE[0]} -full_path=$(readlink -f "$src") -dir_path=$(dirname "$full_path") -source .test_properties -currSecondary="$(ssh "${node01}" "/usr/bin/SAPHanaSR-showAttr --format=tester" | awk -F'/' '/score="100"/ { print $2 }' )" - -echo "==== Kill nameserver ====" - -ssh "$currSecondary" 'pkill -f -u '"${sidadm}"' -11 hdbnameserver' -# sleep 60 From ea4fd531c035b0e2def123293403e1ba45859c19 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 16:54:39 +0100 Subject: [PATCH 396/414] kill_prim_inst.json: increased final40 loops to 180 --- test/json/classic-ScaleUp/kill_prim_inst.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/json/classic-ScaleUp/kill_prim_inst.json b/test/json/classic-ScaleUp/kill_prim_inst.json index 71d1283e..cb0d3205 100644 --- a/test/json/classic-ScaleUp/kill_prim_inst.json +++ b/test/json/classic-ScaleUp/kill_prim_inst.json @@ -82,7 +82,7 @@ "step": "final40", "name": "end recover", "next": "END", - "loop": 150, + "loop": 180, "wait": 2, "post": "cleanup", "remark": "pXXX and sXXX are now exchanged", From 948585a2b4d607558ba44e626001de4e98b5558c Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 17:28:26 +0100 Subject: [PATCH 397/414] SAPHanaSR-tests-syntax.5: kill_prm_nameserver kill_secn_nameserver --- man-tester/SAPHanaSR-tests-syntax.5 | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index 407bdb6d..ede31b99 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -304,18 +304,24 @@ kill secondary instance (scale-out: secondary master instance) kill_secn_worker_inst kill worker secondary instance (scale-out) .TP -kill_prim_indexserver -kill primary indexserver (scale-out: primary master indexserver) -.TP kill_secn_indexserver kill secondary indexserver (scale-out: secondary master indexserver) .TP +kill_prim_nameserver +kill primary nameserver (scale-out: primary master nameserver) +.TP kill_prim_worker_indexserver kill primary worker indexserver (scale-out) .TP kill_secn_worker_indexserver kill secondary worker indexserver (scale-out) .TP +kill_secn_nameserver +kill secondary nameserver (scale-out: secondary master nameserver) +.TP +kill_prim_nameserver +kill primary nameserver (scale-out: primary master nameserver) +.TP simulate_split_brain break corosync communcation .TP From 4bd54ab5dd04aa16deb25b3afc6966da18c60c99 Mon Sep 17 00:00:00 2001 From: lpinne Date: Tue, 26 Nov 2024 17:30:08 +0100 Subject: [PATCH 398/414] SAPHanaSR-tests-syntax.5: kill_prm_nameserver kill_secn_nameserver --- man-tester/SAPHanaSR-tests-syntax.5 | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/man-tester/SAPHanaSR-tests-syntax.5 b/man-tester/SAPHanaSR-tests-syntax.5 index ede31b99..73473693 100644 --- a/man-tester/SAPHanaSR-tests-syntax.5 +++ b/man-tester/SAPHanaSR-tests-syntax.5 @@ -307,9 +307,6 @@ kill worker secondary instance (scale-out) kill_secn_indexserver kill secondary indexserver (scale-out: secondary master indexserver) .TP -kill_prim_nameserver -kill primary nameserver (scale-out: primary master nameserver) -.TP kill_prim_worker_indexserver kill primary worker indexserver (scale-out) .TP @@ -344,7 +341,7 @@ online_secn_worker_node online secondary worker node (scale-out) .TP script