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))
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))
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))
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))