"--disk-template=%s" % disk_template,
"--node=%s" % node] +
_GetGenericAddParameters(instance))
- cmd.append(instance["name"])
+ cmd.append(instance.name)
AssertCommand(cmd)
- _CheckSsconfInstanceList(instance["name"])
+ _CheckSsconfInstanceList(instance.name)
qa_config.SetInstanceTemplate(instance, disk_template)
return instance
@param instance: the instance
"""
- info = _GetInstanceInfo(instance["name"])
+ info = _GetInstanceInfo(instance.name)
vols = info["volumes"]
for node in info["nodes"]:
AssertCommand(["lvremove", "-f"] + vols, node=node)
@InstanceCheck(None, INST_DOWN, FIRST_ARG)
def TestInstanceRemove(instance):
"""gnt-instance remove"""
- AssertCommand(["gnt-instance", "remove", "-f", instance["name"]])
+ AssertCommand(["gnt-instance", "remove", "-f", instance.name])
@InstanceCheck(INST_DOWN, INST_UP, FIRST_ARG)
def TestInstanceStartup(instance):
"""gnt-instance startup"""
- AssertCommand(["gnt-instance", "startup", instance["name"]])
+ AssertCommand(["gnt-instance", "startup", instance.name])
@InstanceCheck(INST_UP, INST_DOWN, FIRST_ARG)
def TestInstanceShutdown(instance):
"""gnt-instance shutdown"""
- AssertCommand(["gnt-instance", "shutdown", instance["name"]])
+ AssertCommand(["gnt-instance", "shutdown", instance.name])
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
"""gnt-instance reboot"""
options = qa_config.get("options", {})
reboot_types = options.get("reboot-types", constants.REBOOT_TYPES)
- name = instance["name"]
+ name = instance.name
for rtype in reboot_types:
AssertCommand(["gnt-instance", "reboot", "--type=%s" % rtype, name])
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
def TestInstanceReinstall(instance):
"""gnt-instance reinstall"""
- AssertCommand(["gnt-instance", "reinstall", "-f", instance["name"]])
+ AssertCommand(["gnt-instance", "reinstall", "-f", instance.name])
# Test with non-existant OS definition
AssertCommand(["gnt-instance", "reinstall", "-f",
"--os-type=NonExistantOsForQa",
- instance["name"]],
+ instance.name],
fail=True)
" test")
return
- cmd = ["gnt-instance", "failover", "--force", instance["name"]]
+ cmd = ["gnt-instance", "failover", "--force", instance.name]
# failover ...
AssertCommand(cmd)
" test")
return
- cmd = ["gnt-instance", "migrate", "--force", instance["name"]]
+ cmd = ["gnt-instance", "migrate", "--force", instance.name]
af_par = constants.BE_ALWAYS_FAILOVER
af_field = "be/" + constants.BE_ALWAYS_FAILOVER
- af_init_val = _GetBoolInstanceField(instance["name"], af_field)
+ af_init_val = _GetBoolInstanceField(instance.name, af_field)
# migrate ...
AssertCommand(cmd)
if toggle_always_failover:
AssertCommand(["gnt-instance", "modify", "-B",
("%s=%s" % (af_par, not af_init_val)),
- instance["name"]])
+ instance.name])
AssertCommand(cmd)
# TODO: Verify the choice between failover and migration
qa_utils.RunInstanceCheck(instance, True)
if toggle_always_failover:
AssertCommand(["gnt-instance", "modify", "-B",
- ("%s=%s" % (af_par, af_init_val)), instance["name"]])
+ ("%s=%s" % (af_par, af_init_val)), instance.name])
# TODO: Split into multiple tests
- AssertCommand(["gnt-instance", "shutdown", instance["name"]])
+ AssertCommand(["gnt-instance", "shutdown", instance.name])
qa_utils.RunInstanceCheck(instance, False)
AssertCommand(cmd, fail=True)
AssertCommand(["gnt-instance", "migrate", "--force", "--allow-failover",
- instance["name"]])
- AssertCommand(["gnt-instance", "start", instance["name"]])
+ instance.name])
+ AssertCommand(["gnt-instance", "start", instance.name])
AssertCommand(cmd)
# @InstanceCheck enforces the check that the instance is running
qa_utils.RunInstanceCheck(instance, True)
AssertCommand(["gnt-instance", "modify", "-B",
("%s=%s" %
(constants.BE_ALWAYS_FAILOVER, constants.VALUE_TRUE)),
- instance["name"]])
+ instance.name])
AssertCommand(cmd)
qa_utils.RunInstanceCheck(instance, True)
AssertCommand(["gnt-instance", "modify", "-B",
("%s=%s" %
(constants.BE_ALWAYS_FAILOVER, constants.VALUE_FALSE)),
- instance["name"]])
+ instance.name])
AssertCommand(cmd)
qa_utils.RunInstanceCheck(instance, True)
def TestInstanceInfo(instance):
"""gnt-instance info"""
- AssertCommand(["gnt-instance", "info", instance["name"]])
+ AssertCommand(["gnt-instance", "info", instance.name])
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
])
for alist in args:
- AssertCommand(["gnt-instance", "modify"] + alist + [instance["name"]])
+ AssertCommand(["gnt-instance", "modify"] + alist + [instance.name])
# check no-modify
- AssertCommand(["gnt-instance", "modify", instance["name"]], fail=True)
+ AssertCommand(["gnt-instance", "modify", instance.name], fail=True)
# Marking offline while instance is running must fail...
- AssertCommand(["gnt-instance", "modify", "--offline", instance["name"]],
+ AssertCommand(["gnt-instance", "modify", "--offline", instance.name],
fail=True)
# ...while making it online is ok, and should work
- AssertCommand(["gnt-instance", "modify", "--online", instance["name"]])
+ AssertCommand(["gnt-instance", "modify", "--online", instance.name])
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
def TestInstanceStoppedModify(instance):
"""gnt-instance modify (stopped instance)"""
- name = instance["name"]
+ name = instance.name
# Instance was not marked offline; try marking it online once more
AssertCommand(["gnt-instance", "modify", "--online", name])
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
def TestInstanceConvertDiskToPlain(instance, inodes):
"""gnt-instance modify -t"""
- name = instance["name"]
+ name = instance.name
template = qa_config.GetInstanceTemplate(instance)
if template != "drbd":
print qa_utils.FormatInfo("Unsupported template %s, skipping conversion"
if qa_config.GetExclusiveStorage():
print qa_utils.FormatInfo("Test not supported with exclusive_storage")
return
- name = instance["name"]
+ name = instance.name
all_size = qa_config.get("disk")
all_grow = qa_config.get("disk-growth")
if not all_grow:
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
def TestInstanceConsole(instance):
"""gnt-instance console"""
- AssertCommand(["gnt-instance", "console", "--show-cmd", instance["name"]])
+ AssertCommand(["gnt-instance", "console", "--show-cmd", instance.name])
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
def buildcmd(args):
cmd = ["gnt-instance", "replace-disks"]
cmd.extend(args)
- cmd.append(instance["name"])
+ cmd.append(instance.name)
return cmd
if not IsDiskReplacingSupported(instance):
AssertCommand(buildcmd(data))
AssertCommand(buildcmd(["-a"]))
- AssertCommand(["gnt-instance", "stop", instance["name"]])
+ AssertCommand(["gnt-instance", "stop", instance.name])
AssertCommand(buildcmd(["-a"]), fail=True)
- AssertCommand(["gnt-instance", "activate-disks", instance["name"]])
+ AssertCommand(["gnt-instance", "activate-disks", instance.name])
AssertCommand(["gnt-instance", "activate-disks", "--wait-for-sync",
- instance["name"]])
+ instance.name])
AssertCommand(buildcmd(["-a"]))
- AssertCommand(["gnt-instance", "start", instance["name"]])
+ AssertCommand(["gnt-instance", "start", instance.name])
def _AssertRecreateDisks(cmdargs, instance, fail=False, check=True,
if destroy:
_DestroyInstanceVolumes(instance)
AssertCommand((["gnt-instance", "recreate-disks"] + cmdargs +
- [instance["name"]]), fail)
+ [instance.name]), fail)
if not fail and check:
# Quick check that the disks are there
- AssertCommand(["gnt-instance", "activate-disks", instance["name"]])
+ AssertCommand(["gnt-instance", "activate-disks", instance.name])
AssertCommand(["gnt-instance", "activate-disks", "--wait-for-sync",
- instance["name"]])
- AssertCommand(["gnt-instance", "deactivate-disks", instance["name"]])
+ instance.name])
+ AssertCommand(["gnt-instance", "deactivate-disks", instance.name])
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
_AssertRecreateDisks(["-I", "hail"], instance, fail=True, destroy=False)
else:
_AssertRecreateDisks(["-n", other_seq], instance, fail=True, destroy=False)
- AssertCommand(["gnt-instance", "stop", instance["name"]])
+ AssertCommand(["gnt-instance", "stop", instance.name])
# Disks exist: this should fail
_AssertRecreateDisks([], instance, fail=True, destroy=False)
# Recreate disks in place
# Move disks back
_AssertRecreateDisks(["-n", orig_seq], instance, check=False)
# This and InstanceCheck decoration check that the disks are working
- AssertCommand(["gnt-instance", "reinstall", "-f", instance["name"]])
- AssertCommand(["gnt-instance", "start", instance["name"]])
+ AssertCommand(["gnt-instance", "reinstall", "-f", instance.name])
+ AssertCommand(["gnt-instance", "start", instance.name])
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
def TestInstanceExport(instance, node):
"""gnt-backup export -n ..."""
- name = instance["name"]
+ name = instance.name
AssertCommand(["gnt-backup", "export", "-n", node.primary, name])
return qa_utils.ResolveInstanceName(name)
def TestInstanceExportWithRemove(instance, node):
"""gnt-backup export --remove-instance"""
AssertCommand(["gnt-backup", "export", "-n", node.primary,
- "--remove-instance", instance["name"]])
+ "--remove-instance", instance.name])
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
def TestInstanceExportNoTarget(instance):
"""gnt-backup export (without target node, should fail)"""
- AssertCommand(["gnt-backup", "export", instance["name"]], fail=True)
+ AssertCommand(["gnt-backup", "export", instance.name], fail=True)
@InstanceCheck(None, INST_DOWN, FIRST_ARG)
"--src-dir=%s/%s" % (pathutils.EXPORT_DIR, name),
"--node=%s" % node.primary] +
_GetGenericAddParameters(newinst, force_mac=constants.VALUE_GENERATE))
- cmd.append(newinst["name"])
+ cmd.append(newinst.name)
AssertCommand(cmd)
qa_config.SetInstanceTemplate(newinst, templ)
@param set_online: function to call to set the node on-line
"""
- info = _GetInstanceInfo(instance["name"])
+ info = _GetInstanceInfo(instance.name)
set_offline(snode)
try:
TestInstanceRemove(instance)
_VerifyInstance(instance_data)
_DoTests([
- ("/2/instances/%s" % instance["name"], _VerifyInstance, "GET", None),
+ ("/2/instances/%s" % instance.name, _VerifyInstance, "GET", None),
("/2/instances", _VerifyInstancesList, "GET", None),
("/2/instances?bulk=1", _VerifyInstancesBulk, "GET", None),
- ("/2/instances/%s/activate-disks" % instance["name"],
+ ("/2/instances/%s/activate-disks" % instance.name,
_VerifyReturnsJob, "PUT", None),
- ("/2/instances/%s/deactivate-disks" % instance["name"],
+ ("/2/instances/%s/deactivate-disks" % instance.name,
_VerifyReturnsJob, "PUT", None),
])
# Test OpBackupPrepare
(job_id, ) = _DoTests([
("/2/instances/%s/prepare-export?mode=%s" %
- (instance["name"], constants.EXPORT_MODE_REMOTE),
+ (instance.name, constants.EXPORT_MODE_REMOTE),
_VerifyReturnsJob, "PUT", None),
])
if use_client:
job_id = _rapi_client.CreateInstance(constants.INSTANCE_CREATE,
- instance["name"],
+ instance.name,
constants.DT_PLAIN,
disks, nics,
os=qa_config.get("os"),
body = {
"__version__": 1,
"mode": constants.INSTANCE_CREATE,
- "name": instance["name"],
+ "name": instance.name,
"os_type": qa_config.get("os"),
"disk_template": constants.DT_PLAIN,
"pnode": node.primary,
def TestRapiInstanceRemove(instance, use_client):
"""Test removing instance via RAPI"""
if use_client:
- job_id = _rapi_client.DeleteInstance(instance["name"])
+ job_id = _rapi_client.DeleteInstance(instance.name)
else:
(job_id, ) = _DoTests([
- ("/2/instances/%s" % instance["name"], _VerifyReturnsJob, "DELETE", None),
+ ("/2/instances/%s" % instance.name, _VerifyReturnsJob, "DELETE", None),
])
_WaitForRapiJob(job_id)
" test")
return
# Move to secondary node
- _WaitForRapiJob(_rapi_client.MigrateInstance(instance["name"]))
+ _WaitForRapiJob(_rapi_client.MigrateInstance(instance.name))
qa_utils.RunInstanceCheck(instance, True)
# And back to previous primary
- _WaitForRapiJob(_rapi_client.MigrateInstance(instance["name"]))
+ _WaitForRapiJob(_rapi_client.MigrateInstance(instance.name))
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
" test")
return
# Move to secondary node
- _WaitForRapiJob(_rapi_client.FailoverInstance(instance["name"]))
+ _WaitForRapiJob(_rapi_client.FailoverInstance(instance.name))
qa_utils.RunInstanceCheck(instance, True)
# And back to previous primary
- _WaitForRapiJob(_rapi_client.FailoverInstance(instance["name"]))
+ _WaitForRapiJob(_rapi_client.FailoverInstance(instance.name))
@InstanceCheck(INST_UP, INST_DOWN, FIRST_ARG)
def TestRapiInstanceShutdown(instance):
"""Test stopping an instance via RAPI"""
- _WaitForRapiJob(_rapi_client.ShutdownInstance(instance["name"]))
+ _WaitForRapiJob(_rapi_client.ShutdownInstance(instance.name))
@InstanceCheck(INST_DOWN, INST_UP, FIRST_ARG)
def TestRapiInstanceStartup(instance):
"""Test starting an instance via RAPI"""
- _WaitForRapiJob(_rapi_client.StartupInstance(instance["name"]))
+ _WaitForRapiJob(_rapi_client.StartupInstance(instance.name))
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
def TestRapiInstanceReinstall(instance):
"""Test reinstalling an instance via RAPI"""
- _WaitForRapiJob(_rapi_client.ReinstallInstance(instance["name"]))
+ _WaitForRapiJob(_rapi_client.ReinstallInstance(instance.name))
# By default, the instance is started again
qa_utils.RunInstanceCheck(instance, True)
# Reinstall again without starting
- _WaitForRapiJob(_rapi_client.ReinstallInstance(instance["name"],
+ _WaitForRapiJob(_rapi_client.ReinstallInstance(instance.name,
no_startup=True))
" skipping test")
return
fn = _rapi_client.ReplaceInstanceDisks
- _WaitForRapiJob(fn(instance["name"],
+ _WaitForRapiJob(fn(instance.name,
mode=constants.REPLACE_DISK_AUTO, disks=[]))
- _WaitForRapiJob(fn(instance["name"],
+ _WaitForRapiJob(fn(instance.name,
mode=constants.REPLACE_DISK_SEC, disks="0"))
default_hv = qa_config.GetDefaultHypervisor()
def _ModifyInstance(**kwargs):
- _WaitForRapiJob(_rapi_client.ModifyInstance(instance["name"], **kwargs))
+ _WaitForRapiJob(_rapi_client.ModifyInstance(instance.name, **kwargs))
_ModifyInstance(beparams={
constants.BE_VCPUS: 3,
@InstanceCheck(INST_UP, INST_UP, FIRST_ARG)
def TestRapiInstanceConsole(instance):
"""Test getting instance console information via RAPI"""
- result = _rapi_client.GetInstanceConsole(instance["name"])
+ result = _rapi_client.GetInstanceConsole(instance.name)
console = objects.InstanceConsole.FromDict(result)
AssertEqual(console.Validate(), True)
- AssertEqual(console.instance, qa_utils.ResolveInstanceName(instance["name"]))
+ AssertEqual(console.instance, qa_utils.ResolveInstanceName(instance.name))
@InstanceCheck(INST_DOWN, INST_DOWN, FIRST_ARG)
def TestRapiStoppedInstanceConsole(instance):
"""Test getting stopped instance's console information via RAPI"""
try:
- _rapi_client.GetInstanceConsole(instance["name"])
+ _rapi_client.GetInstanceConsole(instance.name)
except rapi.client.GanetiApiError, err:
AssertEqual(err.code, 503)
else:
pnode = inodes[0]
# note: pnode:snode are the *current* nodes, so we move it first to
# tnode:pnode, then back to pnode:snode
- for si, di, pn, sn in [(src_instance["name"], dest_instance["name"],
+ for si, di, pn, sn in [(src_instance.name, dest_instance.name,
tnode.primary, pnode.primary),
- (dest_instance["name"], src_instance["name"],
+ (dest_instance.name, src_instance.name,
pnode.primary, snode.primary)]:
cmd = [
"../tools/move-instance",