Exemplo n.º 1
0
    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')
Exemplo n.º 2
0
    def test_template_download(self):
        repos = templates.get_template_repos()
        repo_ids = map(lambda r: r[1], repos)
        remote_repo = 'default-openvz-repo'
        self.assertTrue(remote_repo in repo_ids)

        template_list = templates.get_template_list(remote_repo)
        template = template_list[0]

        local_templates = templates.get_local_templates('openvz', self.testsp)

        self.assertEqual(0, len(local_templates))

        self._addCleanup(templates.delete_template, self.testsp, 'openvz',
                         template)

        templates.sync_template(remote_repo,
                                template,
                                self.testsp,
                                silent=True)

        local_templates = templates.get_local_templates('openvz', self.testsp)
        self.assertTrue(len(local_templates) > 0)
        self.assertTrue(template in local_templates)

        expected_path = '/storage/%s/openvz/unpacked/%s.ovf' % (self.testsp,
                                                                template)
        self.assertTrue(os.path.exists(expected_path), expected_path)
Exemplo n.º 3
0
    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')
Exemplo n.º 4
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()
Exemplo n.º 5
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()
Exemplo n.º 6
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()
Exemplo n.º 7
0
    def test_template_download(self):
        repos = templates.get_template_repos()
        repo_ids = map(lambda r: r[1], repos)
        remote_repo = 'default-openvz-repo'
        self.assertTrue(remote_repo in repo_ids)

        template_list = templates.get_template_list(remote_repo)
        template = template_list[0]

        local_templates = templates.get_local_templates('openvz', self.testsp)

        self.assertEqual(0, len(local_templates))

        self._addCleanup(templates.delete_template, self.testsp, 'openvz', template)

        templates.sync_template(remote_repo, template, self.testsp, silent=True)

        local_templates = templates.get_local_templates('openvz', self.testsp)
        self.assertTrue(len(local_templates) > 0)
        self.assertTrue(template in local_templates)

        expected_path = '/storage/%s/openvz/unpacked/%s.ovf' % (self.testsp, template)
        self.assertTrue(os.path.exists(expected_path), expected_path)
Exemplo n.º 8
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()