def test_deploy_vm(self): remote_repo = 'default-openvz-repo' template = templates.get_template_list(remote_repo)[0] self._addCleanup(templates.delete_template, self.testsp, 'openvz', template) templates.sync_template(remote_repo, template, self.testsp, silent=True) vmuuid = str(uuid4()) vms = vm.list_vms('openvz:///system') self.assertTrue(vmuuid not in map(lambda v: v['uuid'], vms)) self._addCleanup(vm.undeploy_vm, 'openvz:///system', vmuuid) self.typical_vm_params.update({ 'uuid': vmuuid, 'template_name': template }) vm.deploy_vm('openvz:///system', self.typical_vm_params) vms = vm.list_vms('openvz:///system') expected_path = '/storage/%s/openvz/unpacked/%s.ovf' % (self.testsp, template) self.assertTrue(os.path.exists(expected_path), expected_path) self.assertTrue(vmuuid in map(lambda v: v['uuid'], vms), "%s" % map(lambda v: v['uuid'], vms)) nvm = filter(lambda v: v['uuid'] == vmuuid, vms) self.assertEqual(nvm[0]['vm_type'], 'openvz')
def test_deploy_vm(self): remote_repo = 'default-openvz-repo' template = templates.get_template_list(remote_repo)[0] self._addCleanup(templates.delete_template, self.testsp, 'openvz', template) templates.sync_template(remote_repo, template, self.testsp, silent=True) vmuuid = str(uuid4()) vms = vm.list_vms('openvz:///system') self.assertTrue(vmuuid not in map(lambda v: v['uuid'], vms)) self._addCleanup(vm.undeploy_vm, 'openvz:///system', vmuuid) self.typical_vm_params.update({'uuid': vmuuid, 'template_name': template}) vm.deploy_vm('openvz:///system', self.typical_vm_params) vms = vm.list_vms('openvz:///system') expected_path = '/storage/%s/openvz/unpacked/%s.ovf' % (self.testsp, template) self.assertTrue(os.path.exists(expected_path), expected_path) self.assertTrue(vmuuid in map(lambda v: v['uuid'], vms), "%s" % map(lambda v: v['uuid'], vms)) nvm = filter(lambda v: v['uuid'] == vmuuid, vms) self.assertEqual(nvm[0]['vm_type'], 'openvz')
def test_deploy_vm_while_template_is_downloaded(self): remote_repo = 'default-openvz-repo' template = templates.get_template_list(remote_repo)[0] good_to_go = threading.Event() try: orig_unpack_template = templates.unpack_template templates.unpack_template = signal_when_called(good_to_go)( templates.unpack_template) sync_thread = threading.Thread(name='sync_template_available_test', target=templates.sync_template, args=(remote_repo, template, self.testsp), kwargs={'silent': True}) self._addCleanup(templates.delete_template, self.testsp, 'openvz', template) sync_thread.start() good_to_go.wait(240) self.assertTrue( good_to_go.is_set(), 'Timed out waiting for unpack_template to be invoked') finally: templates.unpack_template = orig_unpack_template try: vmuuid = str(uuid4()) vms = vm.list_vms('openvz:///system') self._addCleanup(vm.undeploy_vm, 'openvz:///system', vmuuid) self.typical_vm_params.update({ 'uuid': vmuuid, 'template_name': template, 'hostname': 'ftdvwtd.openvz' }) vm.deploy_vm('openvz:///system', self.typical_vm_params) vms = vm.list_vms('openvz:///system') self.assertFalse( vmuuid in map(lambda v: v['uuid'], vms), "%s found in %s" % (vmuuid, map(lambda v: v['uuid'], vms))) expected_path = '/storage/%s/openvz/unpacked/%s.ovf' % ( self.testsp, template) self.assertFalse(os.path.exists(expected_path), expected_path) finally: sync_thread.join()
def test_deploy_vm_while_template_is_downloaded(self): remote_repo = 'default-openvz-repo' template = templates.get_template_list(remote_repo)[0] good_to_go = threading.Event() try: orig_unpack_template = templates.unpack_template templates.unpack_template = signal_when_called(good_to_go)(templates.unpack_template) sync_thread = threading.Thread(name='sync_template_available_test', target=templates.sync_template, args=(remote_repo, template, self.testsp), kwargs={'silent': True}) self._addCleanup(templates.delete_template, self.testsp, 'openvz', template) sync_thread.start() good_to_go.wait(240) self.assertTrue(good_to_go.is_set(), 'Timed out waiting for unpack_template to be invoked') finally: templates.unpack_template = orig_unpack_template try: vmuuid = str(uuid4()) vms = vm.list_vms('openvz:///system') self._addCleanup(vm.undeploy_vm, 'openvz:///system', vmuuid) self.typical_vm_params.update({'uuid': vmuuid, 'template_name': template, 'hostname': 'ftdvwtd.openvz'}) vm.deploy_vm('openvz:///system', self.typical_vm_params) vms = vm.list_vms('openvz:///system') self.assertFalse(vmuuid in map(lambda v: v['uuid'], vms), "%s found in %s" % (vmuuid, map(lambda v: v['uuid'], vms))) expected_path = '/storage/%s/openvz/unpacked/%s.ovf' % (self.testsp, template) self.assertFalse(os.path.exists(expected_path), expected_path) finally: sync_thread.join()