blob: a6726d712b8c5f7aaa8fb74f81cb02276a973a9c (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
|
@resource
Feature: Use "crm configure set" to update attributes and operations
Tag @clean means need to stop cluster service if the service is available
Need nodes: hanode1 hanode2
Background: Setup cluster and configure some resources
Given Cluster service is "stopped" on "hanode1"
When Run "crm cluster init -y" on "hanode1"
Then Cluster service is "started" on "hanode1"
When Run "crm cluster join -c hanode1 -y" on "hanode2"
Then Cluster service is "started" on "hanode2"
When Run "crm configure primitive d Dummy op monitor interval=3s" on "hanode1"
Then Resource "d" type "Dummy" is "Started"
When Run "crm configure primitive vip IPaddr2 params ip=@vip.0 op monitor interval=3s" on "hanode1"
Then Resource "vip" type "IPaddr2" is "Started"
And Cluster virtual IP is "@vip.0"
When Run "crm configure primitive s ocf:pacemaker:Stateful op monitor role=Promoted interval=3s op monitor role=Unpromoted interval=5s" on "hanode1"
Then Resource "s" type "Stateful" is "Started"
@clean
Scenario: Validation, input the wrong parameters
When Try "crm configure set path"
Then Except "ERROR: configure.set: Expected (path value), takes exactly 2 arguments (1 given)"
When Try "crm configure set xxxx value"
Then Except "ERROR: configure.set: Invalid path: "xxxx"; Valid path: "id.[op_type.][interval.]name""
When Try "crm configure set xxxx.name value"
Then Except "ERROR: configure.set: Object xxxx not found"
When Try "crm configure set d.name value"
Then Except "ERROR: configure.set: Attribute not found: d.name"
When Try "crm configure set d.monitor.100.timeout 10"
Then Except "ERROR: configure.set: Operation "monitor" interval "100" not found for resource d"
When Try "crm configure set s.monitor.interval 20"
Then Except "ERROR: configure.set: Should specify interval of monitor"
@clean
Scenario: Using configure.set to update resource parameters and operation values
When Run "crm configure set vip.ip @vip.0" on "hanode1"
Then Cluster virtual IP is "@vip.0"
When Run "crm configure set d.monitor.on-fail ignore" on "hanode1"
And Run "crm configure show d" on "hanode1"
Then Expected "on-fail=ignore" in stdout
When Run "crm configure set s.monitor.5s.interval 20s" on "hanode1"
And Run "crm configure show s" on "hanode1"
Then Expected "interval=20s" in stdout
When Run "crm configure set op-options.timeout 101" on "hanode1"
And Run "crm configure show op-options" on "hanode1"
Then Expected "timeout=101" in stdout
@clean
Scenario: Parse node and lifetime correctly (bsc#1192618)
Given Resource "d" is started on "hanode1"
# move <res> <node>
When Run "crm resource move d hanode2" on "hanode1"
When Run "sleep 2" on "hanode1"
Then Resource "d" is started on "hanode2"
When Run "crm resource clear d" on "hanode1"
# move <res> <node> force
When Run "crm resource move d hanode1" on "hanode1"
When Run "sleep 2" on "hanode1"
Then Resource "d" is started on "hanode1"
When Run "crm resource clear d" on "hanode1"
# move <res> force
When Run "crm resource move d force" on "hanode1"
When Run "sleep 2" on "hanode1"
Then Resource "d" is started on "hanode2"
When Run "crm resource clear d" on "hanode1"
# move <res> <lifetime> force
When Run "crm resource move d PT5M force" on "hanode1"
When Run "sleep 2" on "hanode1"
Then Resource "d" is started on "hanode1"
When Run "crm resource clear d" on "hanode1"
# move <res> <node> <lifetime>
When Run "crm resource move d hanode2 PT5M" on "hanode1"
When Run "sleep 2" on "hanode1"
Then Resource "d" is started on "hanode2"
When Run "crm resource clear d" on "hanode1"
# move <res> <node> <lifetime> force
When Run "crm resource move d hanode1 PT5M force" on "hanode1"
When Run "sleep 2" on "hanode1"
Then Resource "d" is started on "hanode1"
When Run "crm resource clear d" on "hanode1"
When Try "crm resource move d hanode2 PT5M force xxx"
Then Except "ERROR: resource.move: usage: move <rsc> [<node>] [<lifetime>] [force]"
When Try "crm resource move d hanode2 PT5M forcd"
Then Except "ERROR: resource.move: usage: move <rsc> [<node>] [<lifetime>] [force]"
When Try "crm resource move d xxxx PT5M force"
Then Except "ERROR: resource.move: Not our node: xxxx"
When Try "crm resource move d"
Then Except "ERROR: resource.move: No target node: Move requires either a target node or 'force'"
@clean
Scenario: promote and demote promotable clone resource (bsc#1194125)
When Run "crm configure primitive s2 ocf:pacemaker:Stateful op monitor role=Promoted interval=3s op monitor role=Unpromoted interval=5s" on "hanode1"
And Run "crm configure clone p2 s2 meta promotable=true" on "hanode1"
And Run "crm resource demote p2" on "hanode1"
Then Run "sleep 2;! crm_resource --locate -r p2|grep -E 'Master|Promoted'" OK
When Run "crm resource promote p2" on "hanode2"
Then Run "sleep 2;crm_resource --locate -r p2|grep -E 'Master|Promoted'" OK
@clean
Scenario: operation warning
When Run "crm configure primitive id=d2 Dummy op start interval=5s" on "hanode1"
Then Expected "WARNING: d2: Specified interval for start is 5s, it must be 0" in stderr
When Run "crm configure primitive id=d3 Dummy op monitor interval=0" on "hanode1"
Then Expected "WARNING: d3: interval in monitor should be larger than 0, advised is 10s" in stderr
When Run "crm configure primitive s2 ocf:pacemaker:Stateful op monitor role=Promoted interval=3s op monitor role=Unpromoted interval=3s" on "hanode1"
Then Expected "WARNING: s2: interval in monitor must be unique, advised is 11s" in stderr
When Run "crm configure primitive id=d4 Dummy op start timeout=10s" on "hanode1"
Then Expected "WARNING: d4: specified timeout 10s for start is smaller than the advised 20s" in stderr
@clean
Scenario: trace ra with specific directory
When Run "crm resource trace d monitor" on "hanode1"
Then Expected "Trace for d:monitor is written to /var/lib/heartbeat/trace_ra/Dummy" in stdout
When Wait "10" seconds
Then Run "bash -c 'ls /var/lib/heartbeat/trace_ra/Dummy/d.monitor.*'" OK
When Run "crm resource untrace d" on "hanode1"
Then Expected "Stop tracing d" in stdout
When Run "crm resource trace d monitor /trace_log_d" on "hanode1"
Then Expected "Trace for d:monitor is written to /trace_log_d/Dummy" in stdout
When Wait "10" seconds
Then Run "bash -c 'ls /trace_log_d/Dummy/d.monitor.*'" OK
When Run "crm resource untrace d" on "hanode1"
Then Expected "Stop tracing d" in stdout
@clean
Scenario: Add promotable=true and interleave=true automatically (bsc#1205522)
When Run "crm configure primitive s2 ocf:pacemaker:Stateful" on "hanode1"
And Run "crm configure clone p2 s2" on "hanode1"
Then Run "sleep 2;crm configure show|grep -A1 'clone p2 s2'|grep 'promotable=true interleave=true'" OK
When Run "crm configure primitive s3 ocf:pacemaker:Stateful" on "hanode1"
And Run "crm configure clone p3 s3 meta promotable=false" on "hanode1"
Then Run "sleep 2;crm configure show|grep -A1 'clone p3 s3'|grep 'promotable=false interleave=true'" OK
When Run "crm configure primitive d2 Dummy" on "hanode1"
And Run "crm configure clone p4 d2" on "hanode1"
Then Run "sleep 2;crm configure show|grep -A1 'clone p4 d2'|grep 'interleave=true'" OK
@clean
Scenario: Run rsctest
When Run "crm resource stop d vip" on "hanode1"
When Run "crm configure rsctest d vip" on "hanode1"
Then Expected multiple lines in output
"""
INFO: Probing resources
INFO: Testing on hanode1: d vip
INFO: Testing on hanode2: d vip
"""
|