Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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()