示例#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')
示例#2
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')
示例#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()
示例#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()