tests: add qvm-clone test (#1032 case)
This commit is contained in:
parent
6c167911f1
commit
a7e08e4584
@ -33,6 +33,8 @@ from qubes.qubes import QubesVmCollection, QubesException, system_path
|
||||
|
||||
import qubes.qubes
|
||||
import qubes.tests
|
||||
from qubes.qubes import QubesVmLabels
|
||||
|
||||
|
||||
class TC_00_Basic(qubes.tests.SystemTestsMixin, qubes.tests.QubesTestCase):
|
||||
def test_000_create(self):
|
||||
@ -153,6 +155,90 @@ class TC_01_Properties(qubes.tests.SystemTestsMixin, qubes.tests.QubesTestCase):
|
||||
with self.assertRaises(ValueError):
|
||||
self.vm.dispvm_netvm = self.vm
|
||||
|
||||
def test_030_clone(self):
|
||||
testvm1 = self.qc.add_new_vm(
|
||||
"QubesAppVm",
|
||||
name=self.make_vm_name("vm"),
|
||||
template=self.qc.get_default_template())
|
||||
testvm1.create_on_disk(verbose=False)
|
||||
testvm2 = self.qc.add_new_vm(testvm1.__class__.__name__,
|
||||
name=self.make_vm_name("clone"),
|
||||
template=testvm1.template,
|
||||
)
|
||||
testvm2.clone_attrs(src_vm=testvm1)
|
||||
testvm2.clone_disk_files(src_vm=testvm1, verbose=False)
|
||||
|
||||
# qubes.xml reload
|
||||
self.save_and_reload_db()
|
||||
testvm1 = self.qc[testvm1.qid]
|
||||
testvm2 = self.qc[testvm2.qid]
|
||||
|
||||
self.assertEquals(testvm1.label, testvm2.label)
|
||||
self.assertEquals(testvm1.netvm, testvm2.netvm)
|
||||
self.assertEquals(testvm1.uses_default_netvm,
|
||||
testvm2.uses_default_netvm)
|
||||
self.assertEquals(testvm1.kernel, testvm2.kernel)
|
||||
self.assertEquals(testvm1.kernelopts, testvm2.kernelopts)
|
||||
self.assertEquals(testvm1.uses_default_kernel,
|
||||
testvm2.uses_default_kernel)
|
||||
self.assertEquals(testvm1.uses_default_kernelopts,
|
||||
testvm2.uses_default_kernelopts)
|
||||
self.assertEquals(testvm1.memory, testvm2.memory)
|
||||
self.assertEquals(testvm1.maxmem, testvm2.maxmem)
|
||||
self.assertEquals(testvm1.pcidevs, testvm2.pcidevs)
|
||||
self.assertEquals(testvm1.include_in_backups,
|
||||
testvm2.include_in_backups)
|
||||
self.assertEquals(testvm1.default_user, testvm2.default_user)
|
||||
self.assertEquals(testvm1.services, testvm2.services)
|
||||
self.assertEquals(testvm1.get_firewall_conf(),
|
||||
testvm2.get_firewall_conf())
|
||||
|
||||
# now some non-default values
|
||||
testvm1.netvm = None
|
||||
testvm1.uses_default_netvm = False
|
||||
testvm1.label = QubesVmLabels['orange']
|
||||
testvm1.memory = 512
|
||||
firewall = testvm1.get_firewall_conf()
|
||||
firewall['allowDns'] = False
|
||||
firewall['allowYumProxy'] = False
|
||||
firewall['rules'] = [{'address': '1.2.3.4',
|
||||
'netmask': 24,
|
||||
'proto': 'tcp',
|
||||
'portBegin': 22,
|
||||
'portEnd': 22,
|
||||
}]
|
||||
testvm1.write_firewall_conf(firewall)
|
||||
|
||||
testvm3 = self.qc.add_new_vm(testvm1.__class__.__name__,
|
||||
name=self.make_vm_name("clone2"),
|
||||
template=testvm1.template,
|
||||
)
|
||||
testvm3.clone_attrs(src_vm=testvm1)
|
||||
testvm3.clone_disk_files(src_vm=testvm1, verbose=False)
|
||||
|
||||
# qubes.xml reload
|
||||
self.save_and_reload_db()
|
||||
testvm1 = self.qc[testvm1.qid]
|
||||
testvm3 = self.qc[testvm3.qid]
|
||||
|
||||
self.assertEquals(testvm1.label, testvm3.label)
|
||||
self.assertEquals(testvm1.netvm, testvm3.netvm)
|
||||
self.assertEquals(testvm1.uses_default_netvm,
|
||||
testvm3.uses_default_netvm)
|
||||
self.assertEquals(testvm1.kernel, testvm3.kernel)
|
||||
self.assertEquals(testvm1.kernelopts, testvm3.kernelopts)
|
||||
self.assertEquals(testvm1.uses_default_kernel,
|
||||
testvm3.uses_default_kernel)
|
||||
self.assertEquals(testvm1.uses_default_kernelopts,
|
||||
testvm3.uses_default_kernelopts)
|
||||
self.assertEquals(testvm1.memory, testvm3.memory)
|
||||
self.assertEquals(testvm1.maxmem, testvm3.maxmem)
|
||||
self.assertEquals(testvm1.pcidevs, testvm3.pcidevs)
|
||||
self.assertEquals(testvm1.include_in_backups,
|
||||
testvm3.include_in_backups)
|
||||
self.assertEquals(testvm1.default_user, testvm3.default_user)
|
||||
self.assertEquals(testvm1.services, testvm3.services)
|
||||
self.assertEquals(testvm1.get_firewall_conf(),
|
||||
testvm3.get_firewall_conf())
|
||||
|
||||
# vim: ts=4 sw=4 et
|
||||
|
Loading…
Reference in New Issue
Block a user