Ejemplo n.º 1
0
    def test_deploy_from_template(self):
        # arrange
        deploy_param = 'deploy_param'
        deploy_data = {'mock': Mock()}
        deploy_result = 'deploy_result'

        self.quali_helpers.get_user_param = Mock(return_value=deploy_param)
        self.serializer.decode = Mock(return_value=deploy_data)
        self.serializer.encode = Mock(return_value=True)
        self.command_wrapper.execute_command_with_connection = Mock(
            return_value=deploy_result)

        deploy_from_template = Mock()
        deploy_from_template.deploy_execute = Mock(return_value=True)

        command_executer_service = CommandExecuterService(
            self.serializer, self.quali_helpers, self.command_wrapper,
            self.connection_retriever, self.vc_center_model, Mock(), Mock(),
            deploy_from_template, Mock(), Mock(), Mock())

        # act
        command_executer_service.deploy_from_template()

        # assert
        self.assertTrue(
            self.quali_helpers.get_user_param.called_with('DEPLOY_DATA'))
        self.assertTrue(self.serializer.decode.called_with(deploy_param))
        self.assertTrue(self.connection_retriever.connection_details.called)
        self.assertTrue(
            self.command_wrapper.execute_command_with_connection.called_with(
                self.connection_details,
                deploy_from_template.execute_deploy_from_template,
                deploy_data))
        self.assertTrue(self.serializer.encode.called_with(deploy_result))
    def test_disconnect_all(self):
        # arrange
        connection_details = Mock()
        virtual_switch_disconnect_command = Mock()
        virtual_switch_disconnect_command.disconnect_all = Mock(return_value=True)
        command_executer_service = CommandExecuterService(Mock(),
                                                          Mock(),
                                                          self.command_wrapper,
                                                          Mock(),
                                                          Mock(),
                                                          Mock(),
                                                          Mock(),
                                                          Mock(),
                                                          virtual_switch_disconnect_command,
                                                          Mock(),
                                                          Mock())

        CommandContextMocker.set_vm_uuid_param(VmContext.VM_UUID)
        CommandContextMocker.set_command_param(VmContext.NETWORK_NAME, VmContext.NETWORK_NAME)

        # act
        command_executer_service.disconnect_all()

        # assert
        self.assertTrue(self.command_wrapper.execute_command_with_connection
                        .called_with(connection_details,
                                     virtual_switch_disconnect_command.disconnect_all,
                                     VmContext.VM_UUID))
Ejemplo n.º 3
0
    def __init__(self):
        py_vmomi_service = pyVmomiService(SmartConnect, Disconnect)
        cloudshell_data_retriever_service = CloudshellDataRetrieverService()
        resource_connection_details_retriever = ResourceConnectionDetailsRetriever(
            helpers, cloudshell_data_retriever_service)
        resource_remover = CloudshellResourceRemover(helpers)
        command_wrapper = CommandWrapper(getLogger, py_vmomi_service)
        template_deployer = VirtualMachineDeployer(py_vmomi_service,
                                                   generate_unique_name)

        deploy_from_template_command = DeployFromTemplateCommand(
            template_deployer)

        resource_model_parser = ResourceModelParser()
        vc_model_retriever = VCenterDataModelRetriever(helpers,
                                                       resource_model_parser)
        vc_data_model = vc_model_retriever.get_vcenter_data_model()

        #vnic_to_network_mapper = VnicToNetworkMapper(name_generator, vc_data_model.default_network)
        port_group_name_generator = DvPortGroupNameGenerator()
        vnic_to_network_mapper = VnicToNetworkMapper(port_group_name_generator)

        # Virtual Switch Connect
        synchronous_task_waiter = SynchronousTaskWaiter()
        dv_port_group_creator = DvPortGroupCreator(py_vmomi_service,
                                                   synchronous_task_waiter)
        virtual_machine_port_group_configurer = VirtualMachinePortGroupConfigurer(
            py_vmomi_service, synchronous_task_waiter, vnic_to_network_mapper,
            VNicService())
        virtual_switch_to_machine_connector = VirtualSwitchToMachineConnector(
            dv_port_group_creator, virtual_machine_port_group_configurer)

        virtual_switch_connect_command = VirtualSwitchConnectCommand(
            py_vmomi_service, virtual_switch_to_machine_connector,
            DvPortGroupNameGenerator(), VlanSpecFactory(), VLanIdRangeParser(),
            getLogger('VirtualSwitchConnectCommand'))

        # Virtual Switch Revoke
        virtual_switch_disconnect_command = \
            VirtualSwitchToMachineDisconnectCommand(py_vmomi_service,
                                                    virtual_machine_port_group_configurer,
                                                    vc_data_model.default_network)

        destroy_virtual_machine_command = DestroyVirtualMachineCommand(
            py_vmomi_service, resource_remover,
            virtual_switch_disconnect_command)
        # Power Command
        vm_power_management_command = VirtualMachinePowerManagementCommand(
            py_vmomi_service, synchronous_task_waiter)
        # Refresh IP command
        refresh_ip_command = RefreshIpCommand(
            py_vmomi_service, cloudshell_data_retriever_service, helpers,
            resource_model_parser)

        self.commandExecuterService = CommandExecuterService(
            jsonpickle, helpers, command_wrapper,
            resource_connection_details_retriever, vc_data_model,
            destroy_virtual_machine_command, deploy_from_template_command,
            virtual_switch_connect_command, virtual_switch_disconnect_command,
            vm_power_management_command, refresh_ip_command)
    def test_destroyVirtualMachineCommand(self):
        # arrange
        vcenter_name = 'name'
        resource_att = Mock()
        Destroyer = Mock()
        connection_retriever = Mock()
        connection_details = Mock()

        resource_att.fullname = 'full_name'
        connection_retriever.getVCenterInventoryPathAttributeData = \
            Mock(return_value={'vCenter_resource_name': vcenter_name})
        connection_retriever.connection_details = Mock(return_value=connection_details)
        self.quali_helpers.get_resource_context_details = Mock(return_value=resource_att)
        Destroyer.power_off = Mock(return_value=True)

        command_executer_service = CommandExecuterService(self.serializer,
                                                          self.quali_helpers,
                                                          self.command_wrapper,
                                                          connection_retriever,
                                                          self.vc_center_model,
                                                          Destroyer,
                                                          Mock(),
                                                          Mock(),
                                                          Mock(),
                                                          Mock(),
                                                          Mock())

        CommandContextMocker.set_vm_uuid_param(VmContext.VM_UUID)

        # act
        command_executer_service.destroy_vm()

        # assert
        self.assertTrue(connection_retriever.getVCenterInventoryPathAttributeData.called_with(resource_att))
        self.assertTrue(self.command_wrapper.execute_command_with_connection.called_with(connection_details,
                                                                                         Destroyer.destroy,
                                                                                         VmContext.VM_UUID,
                                                                                         resource_att.fullname))
        self.assertTrue(connection_retriever.connection_details.called_with(vcenter_name))
Ejemplo n.º 5
0
    def test_disconnect(self):
        # arrange
        connection_details = Mock()
        virtual_switch_disconnect_command = Mock()
        virtual_switch_disconnect_command.disconnect = Mock(return_value=True)
        command_executer_service = CommandExecuterService(
            Mock(), Mock(), self.command_wrapper, Mock(), Mock(), Mock(),
            Mock(), Mock(), virtual_switch_disconnect_command, Mock(), Mock())

        CommandContextMocker.set_vm_uuid_param(VmContext.VM_UUID)
        CommandContextMocker.set_command_param(VmContext.NETWORK_NAME,
                                               VmContext.NETWORK_NAME)

        # act
        command_executer_service.disconnect()

        # assert
        self.assertTrue(
            self.command_wrapper.execute_command_with_connection.called_with(
                connection_details,
                virtual_switch_disconnect_command.disconnect,
                VmContext.VM_UUID, VmContext.NETWORK_NAME))
    def test_deploy_from_template(self):
        # arrange
        deploy_param = 'deploy_param'
        deploy_data = {'mock': Mock()}
        deploy_result = 'deploy_result'

        self.quali_helpers.get_user_param = Mock(return_value=deploy_param)
        self.serializer.decode = Mock(return_value=deploy_data)
        self.serializer.encode = Mock(return_value=True)
        self.command_wrapper.execute_command_with_connection = Mock(return_value=deploy_result)

        deploy_from_template = Mock()
        deploy_from_template.deploy_execute = Mock(return_value=True)

        command_executer_service = CommandExecuterService(self.serializer,
                                                          self.quali_helpers,
                                                          self.command_wrapper,
                                                          self.connection_retriever,
                                                          self.vc_center_model,
                                                          Mock(),
                                                          Mock(),
                                                          deploy_from_template,
                                                          Mock(),
                                                          Mock(),
                                                          Mock())

        # act
        command_executer_service.deploy_from_template()

        # assert
        self.assertTrue(self.quali_helpers.get_user_param.called_with('DEPLOY_DATA'))
        self.assertTrue(self.serializer.decode.called_with(deploy_param))
        self.assertTrue(self.connection_retriever.connection_details.called)
        self.assertTrue(self.command_wrapper.execute_command_with_connection.called_with(
                self.connection_details,
                deploy_from_template.execute_deploy_from_template,
                deploy_data))
        self.assertTrue(self.serializer.encode.called_with(deploy_result))
Ejemplo n.º 7
0
    def test_power_off(self):
        # arrange
        vcenter_name = 'name'
        resource_att = Mock()
        power_manager = Mock()
        connection_retriever = Mock()
        connection_details = Mock()
        command_wrapper = Mock()

        connection_retriever.getVCenterInventoryPathAttributeData = \
            Mock(return_value={'vCenter_resource_name': vcenter_name})
        connection_retriever.connection_details = Mock(
            return_value=connection_details)
        self.quali_helpers.get_resource_context_details = Mock(
            return_value=resource_att)
        power_manager.power_off = Mock(return_value=True)

        command_executer_service = CommandExecuterService(
            self.serializer, self.quali_helpers, self.command_wrapper,
            connection_retriever, self.vc_center_model, Mock(), Mock(), Mock(),
            Mock(), Mock(), power_manager)

        CommandContextMocker.set_vm_uuid_param(VmContext.VM_UUID)

        # act
        command_executer_service.power_off()

        # assert
        self.assertTrue(
            connection_retriever.getVCenterInventoryPathAttributeData.
            called_with(resource_att))
        self.assertTrue(
            command_wrapper.execute_command_with_connection.called_with(
                connection_details, power_manager.power_off,
                VmContext.VM_UUID))
        self.assertTrue(
            connection_retriever.connection_details.called_with(vcenter_name))