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_template_unavailable_while_downloaded(self): remote_repo = 'default-openvz-repo' template_list = templates.get_template_list(remote_repo) template = template_list[0] good_to_go = threading.Event() def signalling_unpack_template(*args, **kwargs): good_to_go.set() 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: local_templates = templates.get_local_templates( 'openvz', self.testsp) self.assertFalse(template in local_templates, '%s found in %s' % (template, local_templates)) 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()
def test_template_unavailable_while_downloaded(self): remote_repo = 'default-openvz-repo' template_list = templates.get_template_list(remote_repo) template = template_list[0] good_to_go = threading.Event() def signalling_unpack_template(*args, **kwargs): good_to_go.set() 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: local_templates = templates.get_local_templates('openvz', self.testsp) self.assertFalse(template in local_templates, '%s found in %s' % (template, local_templates)) expected_path = '/storage/%s/openvz/unpacked/%s.ovf' % (self.testsp, template) self.assertFalse(os.path.exists(expected_path), expected_path) finally: sync_thread.join()