summaryrefslogtreecommitdiffstats
path: root/tools/ocft/sg_persist
diff options
context:
space:
mode:
Diffstat (limited to 'tools/ocft/sg_persist')
-rw-r--r--tools/ocft/sg_persist225
1 files changed, 225 insertions, 0 deletions
diff --git a/tools/ocft/sg_persist b/tools/ocft/sg_persist
new file mode 100644
index 0000000..f11d36d
--- /dev/null
+++ b/tools/ocft/sg_persist
@@ -0,0 +1,225 @@
+# sg_persist
+# Before use sg_persist ocft test case you have to prepare to make pacemaker
+# can be started successfully because sg_persist RA needs to use the result of
+# `crm_node -i` as sg_persist register key.
+
+CONFIG
+ Agent sg_persist
+ AgentRoot /usr/lib/ocf/resource.d/heartbeat
+ InstallPackage sg3_utils
+ HangTimeout 20
+
+VARIABLE
+
+ # Please set the disk you want to test
+ #OCFT_DEVS="/dev/disk/by-id/scsi-14945540000000000844965720e6e555176b19461345d68d5"
+ OCFT_DEVS=
+
+ # please set the IP addrees of the other server.
+ IP_2=
+
+SETUP-AGENT
+ # start pacemaker to get node_id through crm_node -i
+ systemctl start pacemaker
+
+CLEANUP-AGENT
+
+CASE-BLOCK required_args
+ Env HA_SBIN_DIR=""
+ Env OCF_RESKEY_devs="$OCFT_DEVS"
+ Env OCF_RESKEY_reservation_type=1
+ Env OCF_RESKEY_CRM_meta_notify=true
+ Env OCF_RESKEY_CRM_meta_master_max=1
+
+CASE-BLOCK required_args_error
+ Env HA_SBIN_DIR=""
+ Env OCF_RESKEY_devs="$OCFT_DEVS"
+ Env OCF_RESKEY_reservation_type=1
+ Env OCF_RESKEY_CRM_meta_notify=true
+ Env OCF_RESKEY_CRM_meta_master_max=2
+
+CASE-BLOCK required_args_type_5
+ Env HA_SBIN_DIR=""
+ Env OCF_RESKEY_devs="$OCFT_DEVS"
+ Env OCF_RESKEY_reservation_type=5
+ Env OCF_RESKEY_CRM_meta_notify=true
+ Env OCF_RESKEY_CRM_meta_master_max=1
+
+CASE-BLOCK required_args_type_7
+ Env HA_SBIN_DIR=""
+ Env OCF_RESKEY_devs="$OCFT_DEVS"
+ Env OCF_RESKEY_reservation_type=7
+ Env OCF_RESKEY_CRM_meta_notify=true
+ Env OCF_RESKEY_CRM_meta_master_max=2
+
+CASE-BLOCK default_status
+ AgentRun stop
+
+CASE-BLOCK prepare
+ Include required_args
+ Include default_status
+
+CASE-BLOCK prepare_type_5
+ Include required_args_type_5
+ Include default_status
+
+CASE-BLOCK prepare_type_7
+ Include required_args_type_7
+ Include default_status
+
+CASE "check base env"
+ Include prepare
+ AgentRun start OCF_SUCCESS
+
+CASE "check base env: unset 'OCF_RESKEY_sg_persist_devs'"
+ Include prepare
+ Unenv OCF_RESKEY_devs
+ AgentRun start OCF_ERR_INSTALLED
+
+CASE "validate all"
+ Include required_args
+ AgentRun validate-all OCF_SUCCESS
+
+CASE "validate all--type:5"
+ Include required_args_type_5
+ AgentRun validate-all OCF_SUCCESS
+
+CASE "validate all--type:7"
+ Include required_args_type_7
+ AgentRun validate-all OCF_SUCCESS
+
+CASE "validate all--error configured"
+ Include required_args_error
+ AgentRun validate-all OCF_ERR_CONFIGURED
+
+CASE "normal start"
+ Include prepare
+ AgentRun start OCF_SUCCESS
+
+CASE "normal stop"
+ Include prepare
+ AgentRun start
+ AgentRun stop OCF_SUCCESS
+
+CASE "double start"
+ Include prepare
+ AgentRun start
+ AgentRun start OCF_SUCCESS
+
+CASE "double stop"
+ Include prepare
+ AgentRun stop
+ AgentRun stop OCF_SUCCESS
+
+CASE "monitor when running"
+ Include prepare
+ AgentRun start
+ AgentRun monitor OCF_SUCCESS
+
+CASE "monitor when not running"
+ Include prepare
+ AgentRun stop
+ AgentRun monitor OCF_NOT_RUNNING
+
+CASE "Primary/Secondary monitor"
+ Include prepare
+ AgentRun start
+ AgentRun promote
+ AgentRun monitor OCF_RUNNING_MASTER
+ AgentRun demote
+ AgentRun monitor OCF_SUCCESS
+ AgentRun stop
+
+CASE "promote/demote test in single-primary mode"
+ Include prepare
+ Include@$IP_2 prepare
+
+ # start
+ AgentRun start
+ AgentRun@$IP_2 start
+
+ # promote local first
+ AgentRun promote OCF_SUCCESS
+
+ # demote local prepare for remote promote
+ AgentRun demote
+
+ # remote promote
+ AgentRun@$IP_2 promote OCF_SUCCESS
+ AgentRun@$IP_2 monitor OCF_RUNNING_MASTER
+ AgentRun monitor OCF_SUCCESS
+
+ # promote local then promote(by preempt) remote, which will cause local OCF_NOT_RUNNING
+ AgentRun promote OCF_SUCCESS
+ AgentRun monitor OCF_RUNNING_MASTER
+ AgentRun@$IP_2 monitor OCF_NOT_RUNNING
+
+ # remove all reservation registration
+ AgentRun demote
+ AgentRun stop
+ AgentRun@$IP_2 stop
+
+
+CASE "normal start--type 5"
+ Include prepare_type_5
+ Include@$IP_2 prepare_type_5
+ AgentRun start OCF_SUCCESS
+ AgentRun@$IP_2 start OCF_SUCCESS
+
+CASE "promote/demote test in single-primary mode"
+ Include prepare_type_5
+ Include@$IP_2 prepare_type_5
+
+ # start
+ AgentRun start
+ AgentRun@$IP_2 start
+
+ # promote local first
+ AgentRun promote OCF_SUCCESS
+ AgentRun monitor OCF_RUNNING_MASTER
+
+ # demote local prepare for remote promote
+ AgentRun demote
+ # remote promote
+ AgentRun@$IP_2 promote OCF_SUCCESS
+ AgentRun@$IP_2 monitor OCF_RUNNING_MASTER
+ AgentRun monitor OCF_SUCCESS
+
+ # promote local then promote(by preempt) remote, which will cause local OCF_NOT_RUNNING
+ AgentRun promote OCF_SUCCESS
+ AgentRun monitor OCF_RUNNING_MASTER
+ AgentRun@$IP_2 monitor OCF_NOT_RUNNING
+
+ # remove all reservation registration
+ AgentRun demote
+ AgentRun stop
+ AgentRun@$IP_2 stop
+
+CASE "normal start--type 7: 2 masters"
+ Include prepare_type_7
+ Include@$IP_2 prepare_type_7
+ AgentRun start OCF_SUCCESS
+ AgentRun@$IP_2 start OCF_SUCCESS
+
+
+CASE "Primary/Primary monitor--type 7"
+ Include prepare_type_7
+ Include@$IP_2 prepare_type_7
+
+ AgentRun start OCF_SUCCESS
+ AgentRun@$IP_2 start OCF_SUCCESS
+
+ AgentRun promote OCF_SUCCESS
+ AgentRun monitor OCF_RUNNING_MASTER
+
+ AgentRun@$IP_2 promote OCF_SUCCESS
+ AgentRun monitor OCF_RUNNING_MASTER
+ AgentRun@$IP_2 monitor OCF_RUNNING_MASTER
+
+ AgentRun demote OCF_SUCCESS
+ AgentRun monitor OCF_NOT_RUNNING
+ AgentRun@$IP_2 demote OCF_SUCCESS
+ AgentRun@$IP_2 monitor OCF_NOT_RUNNING
+
+ AgentRun stop
+ AgentRun@$IP_2 stop