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