def _GetGenericAddParameters():
- return ['--os-size=%s' % qa_config.get('os-size'),
- '--swap-size=%s' % qa_config.get('swap-size'),
- '--memory=%s' % qa_config.get('mem')]
+ params = ['-B', '%s=%s' % (constants.BE_MEMORY, qa_config.get('mem'))]
+ for idx, size in enumerate(qa_config.get('disk')):
+ params.extend(["--disk", "%s:size=%s" % (idx, size)])
+ return params
def _DiskTest(node, disk_template):
raise
-@qa_utils.DefineHook('instance-add-plain-disk')
def TestInstanceAddWithPlainDisk(node):
"""gnt-instance add -t plain"""
return _DiskTest(node['primary'], 'plain')
-@qa_utils.DefineHook('instance-add-drbd-disk')
def TestInstanceAddWithDrbdDisk(node, node2):
"""gnt-instance add -t drbd"""
return _DiskTest("%s:%s" % (node['primary'], node2['primary']),
'drbd')
-@qa_utils.DefineHook('instance-remove')
def TestInstanceRemove(instance):
"""gnt-instance remove"""
master = qa_config.GetMasterNode()
qa_config.ReleaseInstance(instance)
-@qa_utils.DefineHook('instance-startup')
def TestInstanceStartup(instance):
"""gnt-instance startup"""
master = qa_config.GetMasterNode()
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('instance-shutdown')
def TestInstanceShutdown(instance):
"""gnt-instance shutdown"""
master = qa_config.GetMasterNode()
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('instance-reinstall')
+def TestInstanceReboot(instance):
+ """gnt-instance reboot"""
+ master = qa_config.GetMasterNode()
+
+ options = qa_config.get('options', {})
+ reboot_types = options.get("reboot-types", constants.REBOOT_TYPES)
+
+ for rtype in reboot_types:
+ cmd = ['gnt-instance', 'reboot', '--type=%s' % rtype, instance['name']]
+ AssertEqual(StartSSH(master['primary'],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+
def TestInstanceReinstall(instance):
"""gnt-instance reinstall"""
master = qa_config.GetMasterNode()
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('instance-failover')
+def TestInstanceRename(instance, rename_target):
+ """gnt-instance rename"""
+ master = qa_config.GetMasterNode()
+
+ rename_source = instance['name']
+
+ for name1, name2 in [(rename_source, rename_target),
+ (rename_target, rename_source)]:
+ cmd = ['gnt-instance', 'rename', name1, name2]
+ AssertEqual(StartSSH(master['primary'],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+
def TestInstanceFailover(instance):
"""gnt-instance failover"""
master = qa_config.GetMasterNode()
AssertEqual(StartSSH(master['primary'],
utils.ShellQuoteArgs(cmd)).wait(), 0)
+ # ... and back
+ cmd = ['gnt-instance', 'failover', '--force', instance['name']]
+ AssertEqual(StartSSH(master['primary'],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+
+def TestInstanceMigrate(instance):
+ """gnt-instance migrate"""
+ master = qa_config.GetMasterNode()
+
+ cmd = ["gnt-instance", "migrate", "--force", instance["name"]]
+ AssertEqual(StartSSH(master["primary"],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+ # ... and back
+ cmd = ["gnt-instance", "migrate", "--force", instance["name"]]
+ AssertEqual(StartSSH(master["primary"],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+
-@qa_utils.DefineHook('instance-info')
def TestInstanceInfo(instance):
"""gnt-instance info"""
master = qa_config.GetMasterNode()
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('instance-modify')
def TestInstanceModify(instance):
"""gnt-instance modify"""
master = qa_config.GetMasterNode()
+ # Assume /sbin/init exists on all systems
+ test_kernel = "/sbin/init"
+ test_initrd = test_kernel
+
orig_memory = qa_config.get('mem')
orig_bridge = qa_config.get('bridge', 'xen-br0')
args = [
- ["--memory", "128"],
- ["--memory", str(orig_memory)],
- ["--cpu", "2"],
- ["--cpu", "1"],
- ["--bridge", "xen-br1"],
- ["--bridge", orig_bridge],
- ["--kernel", "/dev/null"],
- ["--kernel", "default"],
- ["--initrd", "/dev/null"],
- ["--initrd", "none"],
- ["--initrd", "default"],
- ["--hvm-boot-order", "acn"],
- ["--hvm-boot-order", "default"],
+ ["-B", "%s=128" % constants.BE_MEMORY],
+ ["-B", "%s=%s" % (constants.BE_MEMORY, orig_memory)],
+ ["-B", "%s=2" % constants.BE_VCPUS],
+ ["-B", "%s=1" % constants.BE_VCPUS],
+ ["-B", "%s=%s" % (constants.BE_VCPUS, constants.VALUE_DEFAULT)],
+
+ ["-H", "%s=%s" % (constants.HV_KERNEL_PATH, test_kernel)],
+ ["-H", "%s=%s" % (constants.HV_KERNEL_PATH, constants.VALUE_DEFAULT)],
+ ["-H", "%s=%s" % (constants.HV_INITRD_PATH, test_initrd)],
+ ["-H", "no_%s" % (constants.HV_INITRD_PATH, )],
+ ["-H", "%s=%s" % (constants.HV_INITRD_PATH, constants.VALUE_DEFAULT)],
+
+ # TODO: bridge tests
+ #["--bridge", "xen-br1"],
+ #["--bridge", orig_bridge],
+
+ # TODO: Do these tests only with xen-hvm
+ #["-H", "%s=acn" % constants.HV_BOOT_ORDER],
+ #["-H", "%s=%s" % (constants.HV_BOOT_ORDER, constants.VALUE_DEFAULT)],
]
for alist in args:
cmd = ['gnt-instance', 'modify'] + alist + [instance['name']]
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('instance-list')
+def TestInstanceConvertDisk(instance, snode):
+ """gnt-instance modify -t"""
+ master = qa_config.GetMasterNode()
+ cmd = ['gnt-instance', 'modify', '-t', 'plain', instance['name']]
+ AssertEqual(StartSSH(master['primary'],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+ cmd = ['gnt-instance', 'modify', '-t', 'drbd', '-n', snode['primary'],
+ instance['name']]
+ AssertEqual(StartSSH(master['primary'],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+
def TestInstanceList():
"""gnt-instance list"""
master = qa_config.GetMasterNode()
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('instance-console')
def TestInstanceConsole(instance):
"""gnt-instance console"""
master = qa_config.GetMasterNode()
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('instance-replace-disks')
def TestReplaceDisks(instance, pnode, snode, othernode):
"""gnt-instance replace-disks"""
master = qa_config.GetMasterNode()
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('backup-export')
def TestInstanceExport(instance, node):
- """gnt-backup export"""
+ """gnt-backup export -n ..."""
master = qa_config.GetMasterNode()
cmd = ['gnt-backup', 'export', '-n', node['primary'], instance['name']]
return qa_utils.ResolveInstanceName(instance)
-@qa_utils.DefineHook('backup-import')
+def TestInstanceExportWithRemove(instance, node):
+ """gnt-backup export --remove-instance"""
+ master = qa_config.GetMasterNode()
+
+ cmd = ['gnt-backup', 'export', '-n', node['primary'], "--remove-instance",
+ instance['name']]
+ AssertEqual(StartSSH(master['primary'],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+
+def TestInstanceExportNoTarget(instance):
+ """gnt-backup export (without target node, should fail)"""
+ master = qa_config.GetMasterNode()
+
+ cmd = ["gnt-backup", "export", instance["name"]]
+ AssertNotEqual(StartSSH(master['primary'],
+ utils.ShellQuoteArgs(cmd)).wait(), 0)
+
+
def TestInstanceImport(node, newinst, expnode, name):
"""gnt-backup import"""
master = qa_config.GetMasterNode()
cmd = (['gnt-backup', 'import',
'--disk-template=plain',
'--no-ip-check',
+ '--net', '0:mac=generate',
'--src-node=%s' % expnode['primary'],
'--src-dir=%s/%s' % (constants.EXPORT_DIR, name),
'--node=%s' % node['primary']] +
utils.ShellQuoteArgs(cmd)).wait(), 0)
-@qa_utils.DefineHook('backup-list')
def TestBackupList(expnode):
"""gnt-backup list"""
master = qa_config.GetMasterNode()