Revision abb24834
b/qa/qa_node.py | ||
---|---|---|
232 | 232 |
"""gnt-node power""" |
233 | 233 |
master = qa_config.GetMasterNode() |
234 | 234 |
|
235 |
# Find first non master node for tests |
|
236 |
for node in qa_config.get('nodes'): |
|
237 |
if node != master: |
|
238 |
node_name = node["primary"] |
|
239 |
break |
|
240 |
|
|
235 | 241 |
(oob_path, verify_path, |
236 | 242 |
data_path, exit_code_path) = _CreateOobScriptStructure() |
237 | 243 |
|
... | ... | |
242 | 248 |
# No data, exit 0 |
243 | 249 |
_UpdateOobFile(exit_code_path, "0") |
244 | 250 |
|
245 |
AssertCommand(["gnt-node", "power", "on", master["primary"]])
|
|
246 |
_AssertOobCall(verify_path, "power-on %s" % master["primary"])
|
|
251 |
AssertCommand(["gnt-node", "power", "on", node_name])
|
|
252 |
_AssertOobCall(verify_path, "power-on %s" % node_name)
|
|
247 | 253 |
|
248 |
AssertCommand(["gnt-node", "power", "off", master["primary"]])
|
|
249 |
_AssertOobCall(verify_path, "power-off %s" % master["primary"])
|
|
254 |
AssertCommand(["gnt-node", "power", "off", node_name])
|
|
255 |
_AssertOobCall(verify_path, "power-off %s" % node_name)
|
|
250 | 256 |
|
251 |
AssertCommand(["gnt-node", "power", "cycle", master["primary"]]) |
|
252 |
_AssertOobCall(verify_path, "power-cycle %s" % master["primary"]) |
|
257 |
# Verify we can't transform back to online when not yet powered on |
|
258 |
AssertCommand(["gnt-node", "modify", "-O", "no", node_name], |
|
259 |
fail=True) |
|
260 |
# Now reset state |
|
261 |
AssertCommand(["gnt-node", "modify", "-O", "no", "--node-powered", "yes", |
|
262 |
node_name]) |
|
263 |
|
|
264 |
AssertCommand(["gnt-node", "power", "cycle", node_name]) |
|
265 |
_AssertOobCall(verify_path, "power-cycle %s" % node_name) |
|
253 | 266 |
|
254 | 267 |
# This command should fail as it expects output which isn't provided yet |
255 | 268 |
# But it should have called the oob helper nevermind |
256 |
AssertCommand(["gnt-node", "power", "status", master["primary"]],
|
|
269 |
AssertCommand(["gnt-node", "power", "status", node_name],
|
|
257 | 270 |
fail=True) |
258 |
_AssertOobCall(verify_path, "power-status %s" % master["primary"])
|
|
271 |
_AssertOobCall(verify_path, "power-status %s" % node_name)
|
|
259 | 272 |
|
260 | 273 |
# Data, exit 0 |
261 | 274 |
_UpdateOobFile(data_path, serializer.DumpJson({ "powered": True })) |
262 | 275 |
|
263 |
AssertCommand(["gnt-node", "power", "status", master["primary"]])
|
|
264 |
_AssertOobCall(verify_path, "power-status %s" % master["primary"])
|
|
276 |
AssertCommand(["gnt-node", "power", "status", node_name])
|
|
277 |
_AssertOobCall(verify_path, "power-status %s" % node_name)
|
|
265 | 278 |
|
266 |
AssertCommand(["gnt-node", "power", "on", master["primary"]], fail=True)
|
|
267 |
_AssertOobCall(verify_path, "power-on %s" % master["primary"])
|
|
279 |
AssertCommand(["gnt-node", "power", "on", node_name], fail=True)
|
|
280 |
_AssertOobCall(verify_path, "power-on %s" % node_name)
|
|
268 | 281 |
|
269 |
AssertCommand(["gnt-node", "power", "off", master["primary"]], fail=True) |
|
270 |
_AssertOobCall(verify_path, "power-off %s" % master["primary"]) |
|
282 |
try: |
|
283 |
AssertCommand(["gnt-node", "power", "off", node_name], fail=True) |
|
284 |
_AssertOobCall(verify_path, "power-off %s" % node_name) |
|
285 |
finally: |
|
286 |
AssertCommand(["gnt-node", "modify", "-O", "no", node_name]) |
|
271 | 287 |
|
272 |
AssertCommand(["gnt-node", "power", "cycle", master["primary"]], fail=True)
|
|
273 |
_AssertOobCall(verify_path, "power-cycle %s" % master["primary"])
|
|
288 |
AssertCommand(["gnt-node", "power", "cycle", node_name], fail=True)
|
|
289 |
_AssertOobCall(verify_path, "power-cycle %s" % node_name)
|
|
274 | 290 |
|
275 | 291 |
# Data, exit 1 (all should fail) |
276 | 292 |
_UpdateOobFile(exit_code_path, "1") |
277 | 293 |
|
278 |
AssertCommand(["gnt-node", "power", "on", master["primary"]], fail=True)
|
|
279 |
_AssertOobCall(verify_path, "power-on %s" % master["primary"])
|
|
294 |
AssertCommand(["gnt-node", "power", "on", node_name], fail=True)
|
|
295 |
_AssertOobCall(verify_path, "power-on %s" % node_name)
|
|
280 | 296 |
|
281 |
AssertCommand(["gnt-node", "power", "off", master["primary"]], fail=True) |
|
282 |
_AssertOobCall(verify_path, "power-off %s" % master["primary"]) |
|
297 |
try: |
|
298 |
AssertCommand(["gnt-node", "power", "off", node_name], fail=True) |
|
299 |
_AssertOobCall(verify_path, "power-off %s" % node_name) |
|
300 |
finally: |
|
301 |
AssertCommand(["gnt-node", "modify", "-O", "no", node_name]) |
|
283 | 302 |
|
284 |
AssertCommand(["gnt-node", "power", "cycle", master["primary"]], fail=True)
|
|
285 |
_AssertOobCall(verify_path, "power-cycle %s" % master["primary"])
|
|
303 |
AssertCommand(["gnt-node", "power", "cycle", node_name], fail=True)
|
|
304 |
_AssertOobCall(verify_path, "power-cycle %s" % node_name)
|
|
286 | 305 |
|
287 |
AssertCommand(["gnt-node", "power", "status", master["primary"]],
|
|
306 |
AssertCommand(["gnt-node", "power", "status", node_name],
|
|
288 | 307 |
fail=True) |
289 |
_AssertOobCall(verify_path, "power-status %s" % master["primary"])
|
|
308 |
_AssertOobCall(verify_path, "power-status %s" % node_name)
|
|
290 | 309 |
|
291 | 310 |
# No data, exit 1 (all should fail) |
292 | 311 |
_UpdateOobFile(data_path, "") |
293 |
AssertCommand(["gnt-node", "power", "on", master["primary"]], fail=True)
|
|
294 |
_AssertOobCall(verify_path, "power-on %s" % master["primary"])
|
|
312 |
AssertCommand(["gnt-node", "power", "on", node_name], fail=True)
|
|
313 |
_AssertOobCall(verify_path, "power-on %s" % node_name)
|
|
295 | 314 |
|
296 |
AssertCommand(["gnt-node", "power", "off", master["primary"]], fail=True) |
|
297 |
_AssertOobCall(verify_path, "power-off %s" % master["primary"]) |
|
315 |
try: |
|
316 |
AssertCommand(["gnt-node", "power", "off", node_name], fail=True) |
|
317 |
_AssertOobCall(verify_path, "power-off %s" % node_name) |
|
318 |
finally: |
|
319 |
AssertCommand(["gnt-node", "modify", "-O", "no", node_name]) |
|
298 | 320 |
|
299 |
AssertCommand(["gnt-node", "power", "cycle", master["primary"]], fail=True)
|
|
300 |
_AssertOobCall(verify_path, "power-cycle %s" % master["primary"])
|
|
321 |
AssertCommand(["gnt-node", "power", "cycle", node_name], fail=True)
|
|
322 |
_AssertOobCall(verify_path, "power-cycle %s" % node_name)
|
|
301 | 323 |
|
302 |
AssertCommand(["gnt-node", "power", "status", master["primary"]],
|
|
324 |
AssertCommand(["gnt-node", "power", "status", node_name],
|
|
303 | 325 |
fail=True) |
304 |
_AssertOobCall(verify_path, "power-status %s" % master["primary"])
|
|
326 |
_AssertOobCall(verify_path, "power-status %s" % node_name)
|
|
305 | 327 |
|
306 | 328 |
# Different OOB script for node |
307 | 329 |
verify_path2 = qa_utils.UploadData(master["primary"], "") |
... | ... | |
311 | 333 |
|
312 | 334 |
try: |
313 | 335 |
AssertCommand(["gnt-node", "modify", "--node-parameters", |
314 |
"oob_program=%s" % oob_path2, master["primary"]])
|
|
315 |
AssertCommand(["gnt-node", "power", "on", master["primary"]])
|
|
316 |
_AssertOobCall(verify_path2, "power-on %s" % master["primary"])
|
|
336 |
"oob_program=%s" % oob_path2, node_name])
|
|
337 |
AssertCommand(["gnt-node", "power", "on", node_name])
|
|
338 |
_AssertOobCall(verify_path2, "power-on %s" % node_name)
|
|
317 | 339 |
finally: |
318 | 340 |
AssertCommand(["gnt-node", "modify", "--node-parameters", |
319 |
"oob_program=default", master["primary"]])
|
|
341 |
"oob_program=default", node_name])
|
|
320 | 342 |
AssertCommand(["rm", "-f", oob_path2, verify_path2]) |
321 | 343 |
finally: |
322 | 344 |
AssertCommand(["gnt-cluster", "modify", "--node-parameters", |
Also available in: Unified diff