Skip to content
Snippets Groups Projects
Commit 8cb70e56 authored by Michael Hanselmann's avatar Michael Hanselmann
Browse files

RAPI QA: Test instance creation/removal via RAPI


Signed-off-by: default avatarMichael Hanselmann <hansmi@google.com>
Reviewed-by: default avatarIustin Pop <iustin@google.com>
parent 94e63ca1
No related branches found
No related tags found
No related merge requests found
......@@ -307,6 +307,12 @@ def main():
if qa_rapi.Enabled():
RunTest(qa_rapi.TestNode, pnode)
if qa_config.TestEnabled("instance-add-plain-disk"):
rapi_instance = RunTest(qa_rapi.TestRapiInstanceAdd, pnode)
RunCommonInstanceTests(rapi_instance)
RunTest(qa_rapi.TestRapiInstanceRemove, rapi_instance)
del rapi_instance
if qa_config.TestEnabled('instance-add-plain-disk'):
instance = RunTest(qa_instance.TestInstanceAddWithPlainDisk, pnode)
RunCommonInstanceTests(instance)
......
......@@ -288,3 +288,60 @@ def TestTags(kind, name, tags):
_DoTests([
(uri, _VerifyTags, 'GET', None),
])
def _WaitForRapiJob(job_id):
"""Waits for a job to finish.
"""
master = qa_config.GetMasterNode()
def _VerifyJob(data):
AssertEqual(data["id"], job_id)
for field in JOB_FIELDS:
AssertIn(field, data)
_DoTests([
("/2/jobs/%s" % job_id, _VerifyJob, "GET", None),
])
# FIXME: Use "gnt-job watch" until RAPI supports waiting for job
cmd = ["gnt-job", "watch", str(job_id)]
AssertEqual(StartSSH(master["primary"],
utils.ShellQuoteArgs(cmd)).wait(), 0)
def TestRapiInstanceAdd(node):
"""Test adding a new instance via RAPI"""
instance = qa_config.AcquireInstance()
try:
body = {
"name": instance["name"],
"os": qa_config.get("os"),
"disk_template": constants.DT_PLAIN,
"pnode": node["primary"],
"memory": utils.ParseUnit(qa_config.get("mem")),
"disks": [utils.ParseUnit(size) for size in qa_config.get("disk")],
}
(job_id, ) = _DoTests([
("/2/instances", _VerifyReturnsJob, "POST", body),
])
_WaitForRapiJob(job_id)
return instance
except:
qa_config.ReleaseInstance(instance)
raise
def TestRapiInstanceRemove(instance):
"""Test removing instance via RAPI"""
(job_id, ) = _DoTests([
("/2/instances/%s" % instance["name"], _VerifyReturnsJob, "DELETE", None),
])
_WaitForRapiJob(job_id)
qa_config.ReleaseInstance(instance)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment