Revision b5f33afa qa/qa_rapi.py
b/qa/qa_rapi.py | ||
---|---|---|
377 | 377 |
_VerifyInstance(instance_data) |
378 | 378 |
|
379 | 379 |
_DoTests([ |
380 |
("/2/instances/%s" % instance["name"], _VerifyInstance, "GET", None),
|
|
380 |
("/2/instances/%s" % instance.name, _VerifyInstance, "GET", None),
|
|
381 | 381 |
("/2/instances", _VerifyInstancesList, "GET", None), |
382 | 382 |
("/2/instances?bulk=1", _VerifyInstancesBulk, "GET", None), |
383 |
("/2/instances/%s/activate-disks" % instance["name"],
|
|
383 |
("/2/instances/%s/activate-disks" % instance.name,
|
|
384 | 384 |
_VerifyReturnsJob, "PUT", None), |
385 |
("/2/instances/%s/deactivate-disks" % instance["name"],
|
|
385 |
("/2/instances/%s/deactivate-disks" % instance.name,
|
|
386 | 386 |
_VerifyReturnsJob, "PUT", None), |
387 | 387 |
]) |
388 | 388 |
|
389 | 389 |
# Test OpBackupPrepare |
390 | 390 |
(job_id, ) = _DoTests([ |
391 | 391 |
("/2/instances/%s/prepare-export?mode=%s" % |
392 |
(instance["name"], constants.EXPORT_MODE_REMOTE),
|
|
392 |
(instance.name, constants.EXPORT_MODE_REMOTE),
|
|
393 | 393 |
_VerifyReturnsJob, "PUT", None), |
394 | 394 |
]) |
395 | 395 |
|
... | ... | |
571 | 571 |
|
572 | 572 |
if use_client: |
573 | 573 |
job_id = _rapi_client.CreateInstance(constants.INSTANCE_CREATE, |
574 |
instance["name"],
|
|
574 |
instance.name,
|
|
575 | 575 |
constants.DT_PLAIN, |
576 | 576 |
disks, nics, |
577 | 577 |
os=qa_config.get("os"), |
... | ... | |
581 | 581 |
body = { |
582 | 582 |
"__version__": 1, |
583 | 583 |
"mode": constants.INSTANCE_CREATE, |
584 |
"name": instance["name"],
|
|
584 |
"name": instance.name,
|
|
585 | 585 |
"os_type": qa_config.get("os"), |
586 | 586 |
"disk_template": constants.DT_PLAIN, |
587 | 587 |
"pnode": node.primary, |
... | ... | |
606 | 606 |
def TestRapiInstanceRemove(instance, use_client): |
607 | 607 |
"""Test removing instance via RAPI""" |
608 | 608 |
if use_client: |
609 |
job_id = _rapi_client.DeleteInstance(instance["name"])
|
|
609 |
job_id = _rapi_client.DeleteInstance(instance.name)
|
|
610 | 610 |
else: |
611 | 611 |
(job_id, ) = _DoTests([ |
612 |
("/2/instances/%s" % instance["name"], _VerifyReturnsJob, "DELETE", None),
|
|
612 |
("/2/instances/%s" % instance.name, _VerifyReturnsJob, "DELETE", None),
|
|
613 | 613 |
]) |
614 | 614 |
|
615 | 615 |
_WaitForRapiJob(job_id) |
... | ... | |
623 | 623 |
" test") |
624 | 624 |
return |
625 | 625 |
# Move to secondary node |
626 |
_WaitForRapiJob(_rapi_client.MigrateInstance(instance["name"]))
|
|
626 |
_WaitForRapiJob(_rapi_client.MigrateInstance(instance.name))
|
|
627 | 627 |
qa_utils.RunInstanceCheck(instance, True) |
628 | 628 |
# And back to previous primary |
629 |
_WaitForRapiJob(_rapi_client.MigrateInstance(instance["name"]))
|
|
629 |
_WaitForRapiJob(_rapi_client.MigrateInstance(instance.name))
|
|
630 | 630 |
|
631 | 631 |
|
632 | 632 |
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG) |
... | ... | |
637 | 637 |
" test") |
638 | 638 |
return |
639 | 639 |
# Move to secondary node |
640 |
_WaitForRapiJob(_rapi_client.FailoverInstance(instance["name"]))
|
|
640 |
_WaitForRapiJob(_rapi_client.FailoverInstance(instance.name))
|
|
641 | 641 |
qa_utils.RunInstanceCheck(instance, True) |
642 | 642 |
# And back to previous primary |
643 |
_WaitForRapiJob(_rapi_client.FailoverInstance(instance["name"]))
|
|
643 |
_WaitForRapiJob(_rapi_client.FailoverInstance(instance.name))
|
|
644 | 644 |
|
645 | 645 |
|
646 | 646 |
@InstanceCheck(INST_UP, INST_DOWN, FIRST_ARG) |
647 | 647 |
def TestRapiInstanceShutdown(instance): |
648 | 648 |
"""Test stopping an instance via RAPI""" |
649 |
_WaitForRapiJob(_rapi_client.ShutdownInstance(instance["name"]))
|
|
649 |
_WaitForRapiJob(_rapi_client.ShutdownInstance(instance.name))
|
|
650 | 650 |
|
651 | 651 |
|
652 | 652 |
@InstanceCheck(INST_DOWN, INST_UP, FIRST_ARG) |
653 | 653 |
def TestRapiInstanceStartup(instance): |
654 | 654 |
"""Test starting an instance via RAPI""" |
655 |
_WaitForRapiJob(_rapi_client.StartupInstance(instance["name"]))
|
|
655 |
_WaitForRapiJob(_rapi_client.StartupInstance(instance.name))
|
|
656 | 656 |
|
657 | 657 |
|
658 | 658 |
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG) |
... | ... | |
673 | 673 |
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG) |
674 | 674 |
def TestRapiInstanceReinstall(instance): |
675 | 675 |
"""Test reinstalling an instance via RAPI""" |
676 |
_WaitForRapiJob(_rapi_client.ReinstallInstance(instance["name"]))
|
|
676 |
_WaitForRapiJob(_rapi_client.ReinstallInstance(instance.name))
|
|
677 | 677 |
# By default, the instance is started again |
678 | 678 |
qa_utils.RunInstanceCheck(instance, True) |
679 | 679 |
|
680 | 680 |
# Reinstall again without starting |
681 |
_WaitForRapiJob(_rapi_client.ReinstallInstance(instance["name"],
|
|
681 |
_WaitForRapiJob(_rapi_client.ReinstallInstance(instance.name,
|
|
682 | 682 |
no_startup=True)) |
683 | 683 |
|
684 | 684 |
|
... | ... | |
690 | 690 |
" skipping test") |
691 | 691 |
return |
692 | 692 |
fn = _rapi_client.ReplaceInstanceDisks |
693 |
_WaitForRapiJob(fn(instance["name"],
|
|
693 |
_WaitForRapiJob(fn(instance.name,
|
|
694 | 694 |
mode=constants.REPLACE_DISK_AUTO, disks=[])) |
695 |
_WaitForRapiJob(fn(instance["name"],
|
|
695 |
_WaitForRapiJob(fn(instance.name,
|
|
696 | 696 |
mode=constants.REPLACE_DISK_SEC, disks="0")) |
697 | 697 |
|
698 | 698 |
|
... | ... | |
702 | 702 |
default_hv = qa_config.GetDefaultHypervisor() |
703 | 703 |
|
704 | 704 |
def _ModifyInstance(**kwargs): |
705 |
_WaitForRapiJob(_rapi_client.ModifyInstance(instance["name"], **kwargs))
|
|
705 |
_WaitForRapiJob(_rapi_client.ModifyInstance(instance.name, **kwargs))
|
|
706 | 706 |
|
707 | 707 |
_ModifyInstance(beparams={ |
708 | 708 |
constants.BE_VCPUS: 3, |
... | ... | |
731 | 731 |
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG) |
732 | 732 |
def TestRapiInstanceConsole(instance): |
733 | 733 |
"""Test getting instance console information via RAPI""" |
734 |
result = _rapi_client.GetInstanceConsole(instance["name"])
|
|
734 |
result = _rapi_client.GetInstanceConsole(instance.name)
|
|
735 | 735 |
console = objects.InstanceConsole.FromDict(result) |
736 | 736 |
AssertEqual(console.Validate(), True) |
737 |
AssertEqual(console.instance, qa_utils.ResolveInstanceName(instance["name"]))
|
|
737 |
AssertEqual(console.instance, qa_utils.ResolveInstanceName(instance.name))
|
|
738 | 738 |
|
739 | 739 |
|
740 | 740 |
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG) |
741 | 741 |
def TestRapiStoppedInstanceConsole(instance): |
742 | 742 |
"""Test getting stopped instance's console information via RAPI""" |
743 | 743 |
try: |
744 |
_rapi_client.GetInstanceConsole(instance["name"])
|
|
744 |
_rapi_client.GetInstanceConsole(instance.name)
|
|
745 | 745 |
except rapi.client.GanetiApiError, err: |
746 | 746 |
AssertEqual(err.code, 503) |
747 | 747 |
else: |
... | ... | |
782 | 782 |
pnode = inodes[0] |
783 | 783 |
# note: pnode:snode are the *current* nodes, so we move it first to |
784 | 784 |
# tnode:pnode, then back to pnode:snode |
785 |
for si, di, pn, sn in [(src_instance["name"], dest_instance["name"],
|
|
785 |
for si, di, pn, sn in [(src_instance.name, dest_instance.name,
|
|
786 | 786 |
tnode.primary, pnode.primary), |
787 |
(dest_instance["name"], src_instance["name"],
|
|
787 |
(dest_instance.name, src_instance.name,
|
|
788 | 788 |
pnode.primary, snode.primary)]: |
789 | 789 |
cmd = [ |
790 | 790 |
"../tools/move-instance", |
Also available in: Unified diff