def test_deploy_template(self):
        # arrange

        cred = TestCredentials()
        pv_service = pyVmomiService(SmartConnect, Disconnect)
        si = pv_service.connect(cred.host, cred.username, cred.password)
        deployer = VirtualMachineDeployer(pv_service, generate_unique_name)

        # vm = pv_service.find_vm_by_name(si, 'QualiSB/Raz', '2')

        deploy_params = DeployDataHolder({
            "template_model": {
                "vCenter_resource_name": "QualiSB",
                "vm_folder": "QualiSB/Raz",
                "template_name": "2"
            },
            "vm_cluster_model": {
                "cluster_name": "QualiSB Cluster",
                "resource_pool": "IT"
            },
            "datastore_name": "eric ds cluster",
            "power_on": False
        })

        deploy_command = DeployFromTemplateCommand(deployer)

        # act
        result = deploy_command.execute_deploy_from_template(si, deploy_params)

        # assert
        self.assertIsNotNone(result)
示例#2
0
    def deploy_from_template(self):
        # get command parameters from the environment
        deployment_params = self.qualipy_helpers.get_user_param('DEPLOY_DATA')
        data = self.serializer.decode(deployment_params)
        data_holder = DeployDataHolder(data)

        # prepare for execute command
        connection_details = self.connection_retriever.connection_details()

        # execute command
        result = self.command_wrapper.execute_command_with_connection(
            connection_details,
            self.deployFromTemplateCommand.execute_deploy_from_template,
            data_holder)

        set_command_result(result=result, unpicklable=False)
    def test_vm_deployer(self):
        name = 'name'
        uuid = 'uuid'
        name_gen = Mock(return_value=name)
        pv_service = Mock()
        si = Mock()
        clone_parmas = Mock()
        clone_res = Mock()
        clone_res.error = None
        clone_res.vm = Mock()
        clone_res.vm.summary = Mock()
        clone_res.vm.summary.config = Mock()
        clone_res.vm.summary.config.uuid = uuid

        pv_service.CloneVmParameters = Mock(return_value=clone_parmas)
        pv_service.clone_vm = Mock(return_value=clone_res)
        params = DeployDataHolder({
            "resource_context": None,
            "template_model": {
                "vCenter_resource_name": "vcenter_resource_name",
                "vm_folder": "vfolder_name",
                "template_name": "template_name"
            },
            "vm_cluster_model": {
                "cluster_name": "cluster_name",
                "resource_pool": "resource_pool"
            },
            "datastore_name": "datastore_name",
            "power_on": False
        })

        deployer = VirtualMachineDeployer(pv_service, name_gen)
        res = deployer.deploy_from_template(si, params)

        self.assertEqual(res.vm_name, name)
        self.assertEqual(res.vm_uuid, uuid)
        self.assertEqual(res.cloud_provider_resource_name,
                         params.template_model.vCenter_resource_name)
        self.assertTrue(pv_service.CloneVmParameters.called)