def setUp(self): self.name = 'name' self.uuid = 'uuid' self.name_gen = Mock(return_value=self.name) self.pv_service = Mock() self.si = Mock() self.clone_parmas = Mock() self.clone_res = Mock() self.clone_res.error = None self.clone_res.vm = Mock() self.clone_res.vm.summary = Mock() self.clone_res.vm.summary.config = Mock() self.clone_res.vm.summary.config.uuid = self.uuid self.pv_service.CloneVmParameters = Mock( return_value=self.clone_parmas) self.pv_service.clone_vm = Mock(return_value=self.clone_res) self.image_deployer = Mock() self.image_deployer.deploy_image = Mock(return_value=True) self.vm = Mock() self.vm.config = Mock() self.vm.config.uuid = self.uuid self.pv_service.find_vm_by_name = Mock(return_value=self.vm) self.cs_helper = Mock() self.model_parser = ResourceModelParser() self.deployer = VirtualMachineDeployer(self.pv_service, self.name_gen, self.image_deployer, self.cs_helper, self.model_parser)
def setUp(self): self.name = 'name' self.uuid = 'uuid' self.name_gen = Mock(return_value=self.name) self.pv_service = Mock() self.si = Mock() self.clone_parmas = Mock() self.clone_res = Mock() self.clone_res.error = None self.clone_res.vm = Mock() self.clone_res.vm.summary = Mock() self.clone_res.vm.summary.config = Mock() self.clone_res.vm.summary.config.uuid = self.uuid self.pv_service.CloneVmParameters = Mock(return_value=self.clone_parmas) self.pv_service.clone_vm = Mock(return_value=self.clone_res) self.image_deployer = Mock() self.image_deployer.deploy_image = Mock(return_value=True) self.vm = Mock() self.vm.config = Mock() self.vm.config.uuid = self.uuid self.pv_service.find_vm_by_name = Mock(return_value=self.vm) self.cs_helper = Mock() self.model_parser = ResourceModelParser() self.deployer = VirtualMachineDeployer(self.pv_service, self.name_gen, self.image_deployer, self.cs_helper, self.model_parser)
def test_deploy_image(self): # arrange cred = TestCredentials() pv_service = pyVmomiService(SmartConnect, Disconnect) si = pv_service.connect(cred.host, cred.username, cred.password) service = OvfImageDeployerService( 'C:\\Program Files\\VMware\\VMware OVF Tool\\ovftool.exe', Mock()) deployer = VirtualMachineDeployer(pv_service, generate_unique_name, service) # vm = pv_service.find_vm_by_name(si, 'QualiSB/Raz', '2') params = DeployDataHolder({ "image_url": "http://192.168.65.88/ovf/Debian%2064%20-%20Yoav.ovf", "cluster_name": "QualiSB Cluster", "resource_pool": "LiverPool", "datastore_name": "datastore1", "datacenter_name": "QualiSB", "power_on": True, "app_name": "appName 1", "vm_folder": "Raz 2" }) deploy_command = DeployCommand(deployer) # act result = deploy_command.execute_deploy_from_image(si, params, cred) # assert self.assertIsNotNone(result)
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 = DeployCommand(deployer) # act result = deploy_command.execute_deploy_from_template(si, deploy_params) # assert self.assertIsNotNone(result)
def __init__(self): """ Initialize the driver session, this function is called everytime a new instance of the driver is created in here the driver is going to be bootstrapped :param context: models.QualiDriverModels.InitCommandContext """ self.cs_helper = CloudshellDriverHelper() synchronous_task_waiter = SynchronousTaskWaiter() pv_service = pyVmomiService(connect=SmartConnect, disconnect=Disconnect, task_waiter=synchronous_task_waiter) self.resource_model_parser = ResourceModelParser() port_group_name_generator = DvPortGroupNameGenerator() vnic_to_network_mapper = VnicToNetworkMapper( quali_name_generator=port_group_name_generator) resource_remover = CloudshellResourceRemover() ovf_service = OvfImageDeployerService(self.resource_model_parser) self.vm_loader = VMLoader(pv_service) vm_deployer = VirtualMachineDeployer( pv_service=pv_service, name_generator=generate_unique_name, ovf_service=ovf_service, cs_helper=self.cs_helper, resource_model_parser=ResourceModelParser()) dv_port_group_creator = DvPortGroupCreator( pyvmomi_service=pv_service, synchronous_task_waiter=synchronous_task_waiter) virtual_machine_port_group_configurer = \ VirtualMachinePortGroupConfigurer(pyvmomi_service=pv_service, synchronous_task_waiter=synchronous_task_waiter, vnic_to_network_mapper=vnic_to_network_mapper, vnic_service=VNicService(), name_gen=port_group_name_generator) virtual_switch_to_machine_connector = VirtualSwitchToMachineConnector( dv_port_group_creator, virtual_machine_port_group_configurer) # Command Wrapper self.command_wrapper = CommandWrapper( pv_service=pv_service, cloud_shell_helper=self.cs_helper, resource_model_parser=self.resource_model_parser, context_based_logger_factory=ContextBasedLoggerFactory()) # Deploy Command self.deploy_command = DeployCommand(deployer=vm_deployer) # Virtual Switch Revoke self.virtual_switch_disconnect_command = \ VirtualSwitchToMachineDisconnectCommand( pyvmomi_service=pv_service, port_group_configurer=virtual_machine_port_group_configurer, resource_model_parser=self.resource_model_parser) # Virtual Switch Connect virtual_switch_connect_command = \ VirtualSwitchConnectCommand( pv_service=pv_service, virtual_switch_to_machine_connector=virtual_switch_to_machine_connector, dv_port_group_name_generator=DvPortGroupNameGenerator(), vlan_spec_factory=VlanSpecFactory(), vlan_id_range_parser=VLanIdRangeParser()) self.connection_orchestrator = ConnectionCommandOrchestrator( connector=virtual_switch_connect_command, disconnector=self.virtual_switch_disconnect_command, resource_model_parser=self.resource_model_parser) # Destroy VM Command self.destroy_virtual_machine_command = \ DestroyVirtualMachineCommand(pv_service=pv_service, resource_remover=resource_remover, disconnector=self.virtual_switch_disconnect_command) # Power Command self.vm_power_management_command = \ VirtualMachinePowerManagementCommand(pyvmomi_service=pv_service, synchronous_task_waiter=synchronous_task_waiter) ip_manager = VMIPManager() # Refresh IP command self.refresh_ip_command = RefreshIpCommand( pyvmomi_service=pv_service, resource_model_parser=ResourceModelParser(), ip_manager=ip_manager) # Save Snapshot self.snapshot_saver = SaveSnapshotCommand( pyvmomi_service=pv_service, task_waiter=synchronous_task_waiter) # Snapshot Restorer self.snapshot_restorer = SnapshotRestoreCommand( pyvmomi_service=pv_service, task_waiter=synchronous_task_waiter) self.snapshots_retriever = RetrieveSnapshotsCommand( pyvmomi_service=pv_service)
class TestVirtualMachineDeployer(TestCase): def setUp(self): self.name = 'name' self.uuid = 'uuid' self.name_gen = Mock(return_value=self.name) self.pv_service = Mock() self.si = Mock() self.clone_parmas = Mock() self.clone_res = Mock() self.clone_res.error = None self.clone_res.vm = Mock() self.clone_res.vm.summary = Mock() self.clone_res.vm.summary.config = Mock() self.clone_res.vm.summary.config.uuid = self.uuid self.pv_service.CloneVmParameters = Mock(return_value=self.clone_parmas) self.pv_service.clone_vm = Mock(return_value=self.clone_res) self.image_deployer = Mock() self.image_deployer.deploy_image = Mock(return_value=True) self.vm = Mock() self.vm.config = Mock() self.vm.config.uuid = self.uuid self.pv_service.find_vm_by_name = Mock(return_value=self.vm) self.cs_helper = Mock() self.model_parser = ResourceModelParser() self.deployer = VirtualMachineDeployer(self.pv_service, self.name_gen, self.image_deployer, self.cs_helper, self.model_parser) def test_vm_deployer(self): deploy_from_template_details = DeployFromTemplateDetails(vCenterVMFromTemplateResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' resource_context = self._create_vcenter_resource_context() res = self.deployer.deploy_from_template( si=self.si, data_holder=deploy_from_template_details, vcenter_data_model=resource_context, logger=Mock()) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, 'vcenter_resource_name') self.assertTrue(self.pv_service.CloneVmParameters.called) def test_clone_deployer(self): deploy_from_template_details = DeployFromTemplateDetails(vCenterCloneVMFromVMResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' deploy_from_template_details.vcenter_vm = 'name' resource_context = self._create_vcenter_resource_context() res = self.deployer.deploy_clone_from_vm( si=self.si, data_holder=deploy_from_template_details, vcenter_data_model=resource_context, logger=Mock()) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, 'vcenter_resource_name') self.assertTrue(self.pv_service.CloneVmParameters.called) def test_snapshot_deployer(self): deploy_from_template_details = DeployFromTemplateDetails(VCenterDeployVMFromLinkedCloneResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' deploy_from_template_details.vcenter_vm_snapshot = 'name/shanpshot' resource_context = self._create_vcenter_resource_context() res = self.deployer.deploy_from_linked_clone( si=self.si, data_holder=deploy_from_template_details, vcenter_data_model=resource_context, logger=Mock()) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, 'vcenter_resource_name') self.assertTrue(self.pv_service.CloneVmParameters.called) def _create_vcenter_resource_context(self): vc = VMwarevCenterResourceModel() vc.user = '******' vc.password = '******' vc.default_dvswitch = 'switch1' vc.holding_network = 'anetwork' vc.vm_cluster = 'Quali' vc.vm_location = 'Quali' vc.vm_resource_pool = 'Quali' vc.vm_storage = 'Quali' vc.shutdown_method = 'hard' vc.ovf_tool_path = 'C\\program files\ovf' vc.execution_server_selector = '' vc.reserved_networks = 'vlan65' vc.default_datacenter = 'QualiSB' return vc def test_vm_deployer_error(self): self.clone_res.error = Mock() self.pv_service.CloneVmParameters = Mock(return_value=self.clone_parmas) self.pv_service.clone_vm = Mock(return_value=self.clone_res) deploy_from_template_details = DeployFromTemplateDetails(vCenterVMFromTemplateResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' vcenter_data_model = self._create_vcenter_resource_context() self.assertRaises(Exception, self.deployer.deploy_from_template, self.si, Mock(), deploy_from_template_details, vcenter_data_model) self.assertTrue(self.pv_service.CloneVmParameters.called) def test_vm_deployer_image(self): params = DeployDataHolder({ 'app_name': 'appName', 'vcenter_name': 'vCenter', 'image_params': { "vcenter_image": "c:\image.ovf", "vm_cluster": "QualiSB Cluster", "vm_resource_pool": "LiverPool", "vm_storage": "eric ds cluster", "default_datacenter": "QualiSB", "vm_location": "vm_location", "auto_power_on": 'False', "vcenter_name": 'vCenter', "vcenter_image_arguments": "--compress=9,--schemaValidate,--etc", 'ip_regex': '', 'refresh_ip_timeout': '10', 'auto_power_on': 'True', 'auto_power_off': 'True', 'wait_for_ip': 'True', 'auto_delete': 'True', 'autoload': 'True' } }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.cs_helper.get_connection_details = Mock(return_value=connectivity) session = Mock() vcenter_data_model = Mock() vcenter_data_model.default_datacenter = 'qualisb' resource_context = Mock() res = self.deployer.deploy_from_image(si=self.si, logger=Mock(), session=session, vcenter_data_model=vcenter_data_model, data_holder=params, resource_context=resource_context) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, params.vcenter_name) def test_vm_deployer_image_no_res(self): self.image_deployer.deploy_image = Mock(return_value=None) params = DeployDataHolder( { "image_url": "c:\image.ovf", "cluster_name": "QualiSB Cluster", "resource_pool": "LiverPool", "datastore_name": "eric ds cluster", "datacenter_name": "QualiSB", "power_on": False, "app_name": "appName", "user_arguments": ["--compress=9", "--schemaValidate", "--etc" ] }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.assertRaises(Exception, self.deployer.deploy_from_image, self.si, params, connectivity) def test_vm_deployer_image_no_vm(self): self.pv_service.find_vm_by_name = Mock(return_value=None) params = DeployDataHolder( { "image_url": "c:\image.ovf", "cluster_name": "QualiSB Cluster", "resource_pool": "LiverPool", "datastore_name": "eric ds cluster", "datacenter_name": "QualiSB", "power_on": False, "app_name": "appName", "user_arguments": ["--compress=9", "--schemaValidate", "--etc" ] }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.assertRaises(Exception, self.deployer.deploy_from_image, self.si, params, connectivity)
class TestVirtualMachineDeployer(TestCase): def setUp(self): self.name = 'name' self.uuid = 'uuid' self.name_gen = Mock(return_value=self.name) self.pv_service = Mock() self.si = Mock() self.clone_parmas = Mock() self.clone_res = Mock() self.clone_res.error = None self.clone_res.vm = Mock() self.clone_res.vm.summary = Mock() self.clone_res.vm.summary.config = Mock() self.clone_res.vm.summary.config.uuid = self.uuid self.pv_service.CloneVmParameters = Mock( return_value=self.clone_parmas) self.pv_service.clone_vm = Mock(return_value=self.clone_res) self.image_deployer = Mock() self.image_deployer.deploy_image = Mock(return_value=True) self.vm = Mock() self.vm.config = Mock() self.vm.config.uuid = self.uuid self.pv_service.find_vm_by_name = Mock(return_value=self.vm) self.cs_helper = Mock() self.model_parser = ResourceModelParser() self.deployer = VirtualMachineDeployer(self.pv_service, self.name_gen, self.image_deployer, self.cs_helper, self.model_parser) def test_vm_deployer(self): deploy_from_template_details = DeployFromTemplateDetails( vCenterVMFromTemplateResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' resource_context = self._create_vcenter_resource_context() res = self.deployer.deploy_from_template( si=self.si, data_holder=deploy_from_template_details, vcenter_data_model=resource_context, logger=Mock()) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, 'vcenter_resource_name') self.assertTrue(self.pv_service.CloneVmParameters.called) def test_clone_deployer(self): deploy_from_template_details = DeployFromTemplateDetails( vCenterCloneVMFromVMResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' deploy_from_template_details.vcenter_vm = 'name' resource_context = self._create_vcenter_resource_context() res = self.deployer.deploy_clone_from_vm( si=self.si, data_holder=deploy_from_template_details, vcenter_data_model=resource_context, logger=Mock()) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, 'vcenter_resource_name') self.assertTrue(self.pv_service.CloneVmParameters.called) def test_snapshot_deployer(self): deploy_from_template_details = DeployFromTemplateDetails( VCenterDeployVMFromLinkedCloneResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' deploy_from_template_details.vcenter_vm_snapshot = 'name/shanpshot' resource_context = self._create_vcenter_resource_context() res = self.deployer.deploy_from_linked_clone( si=self.si, data_holder=deploy_from_template_details, vcenter_data_model=resource_context, logger=Mock()) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, 'vcenter_resource_name') self.assertTrue(self.pv_service.CloneVmParameters.called) def _create_vcenter_resource_context(self): vc = VMwarevCenterResourceModel() vc.user = '******' vc.password = '******' vc.default_dvswitch = 'switch1' vc.holding_network = 'anetwork' vc.vm_cluster = 'Quali' vc.vm_location = 'Quali' vc.vm_resource_pool = 'Quali' vc.vm_storage = 'Quali' vc.shutdown_method = 'hard' vc.ovf_tool_path = 'C\\program files\ovf' vc.execution_server_selector = '' vc.reserved_networks = 'vlan65' vc.default_datacenter = 'QualiSB' return vc def test_vm_deployer_error(self): self.clone_res.error = Mock() self.pv_service.CloneVmParameters = Mock( return_value=self.clone_parmas) self.pv_service.clone_vm = Mock(return_value=self.clone_res) deploy_from_template_details = DeployFromTemplateDetails( vCenterVMFromTemplateResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' vcenter_data_model = self._create_vcenter_resource_context() self.assertRaises(Exception, self.deployer.deploy_from_template, self.si, Mock(), deploy_from_template_details, vcenter_data_model) self.assertTrue(self.pv_service.CloneVmParameters.called) def test_vm_deployer_image(self): params = DeployDataHolder({ 'app_name': 'appName', 'vcenter_name': 'vCenter', 'image_params': { "vcenter_image": "c:\image.ovf", "vm_cluster": "QualiSB Cluster", "vm_resource_pool": "LiverPool", "vm_storage": "eric ds cluster", "default_datacenter": "QualiSB", "vm_location": "vm_location", "auto_power_on": 'False', "vcenter_name": 'vCenter', "vcenter_image_arguments": "--compress=9,--schemaValidate,--etc", 'ip_regex': '', 'refresh_ip_timeout': '10', 'auto_power_on': 'True', 'auto_power_off': 'True', 'wait_for_ip': 'True', 'auto_delete': 'True', 'autoload': 'True' } }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.cs_helper.get_connection_details = Mock(return_value=connectivity) session = Mock() vcenter_data_model = Mock() vcenter_data_model.default_datacenter = 'qualisb' resource_context = Mock() res = self.deployer.deploy_from_image( si=self.si, logger=Mock(), session=session, vcenter_data_model=vcenter_data_model, data_holder=params, resource_context=resource_context) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, params.vcenter_name) def test_vm_deployer_image_no_res(self): self.image_deployer.deploy_image = Mock(return_value=None) params = DeployDataHolder({ "image_url": "c:\image.ovf", "cluster_name": "QualiSB Cluster", "resource_pool": "LiverPool", "datastore_name": "eric ds cluster", "datacenter_name": "QualiSB", "power_on": False, "app_name": "appName", "user_arguments": ["--compress=9", "--schemaValidate", "--etc"] }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.assertRaises(Exception, self.deployer.deploy_from_image, self.si, params, connectivity) def test_vm_deployer_image_no_vm(self): self.pv_service.find_vm_by_name = Mock(return_value=None) params = DeployDataHolder({ "image_url": "c:\image.ovf", "cluster_name": "QualiSB Cluster", "resource_pool": "LiverPool", "datastore_name": "eric ds cluster", "datacenter_name": "QualiSB", "power_on": False, "app_name": "appName", "user_arguments": ["--compress=9", "--schemaValidate", "--etc"] }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.assertRaises(Exception, self.deployer.deploy_from_image, self.si, params, connectivity)
class TestVirtualMachineDeployer(TestCase): def setUp(self): self.name = 'name' self.uuid = 'uuid' self.name_gen = Mock(return_value=self.name) self.pv_service = Mock() self.si = Mock() self.clone_parmas = Mock() self.clone_res = Mock() self.clone_res.error = None self.clone_res.vm = Mock() self.clone_res.vm.summary = Mock() self.clone_res.vm.summary.config = Mock() self.clone_res.vm.summary.config.uuid = self.uuid self.pv_service.CloneVmParameters = Mock(return_value=self.clone_parmas) self.pv_service.clone_vm = Mock(return_value=self.clone_res) self.image_deployer = Mock() self.image_deployer.deploy_image = Mock(return_value=True) self.vm = Mock() self.vm.config = Mock() self.vm.config.uuid = self.uuid self.pv_service.find_vm_by_name = Mock(return_value=self.vm) self.cs_helper = Mock() self.deployer = VirtualMachineDeployer(self.pv_service, self.name_gen, self.image_deployer, self.cs_helper, ResourceModelParser()) def test_vm_deployer(self): deploy_from_template_details = DeployFromTemplateDetails(vCenterVMFromTemplateResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' resource_context = self._create_vcenter_resource_context() res = self.deployer.deploy_from_template( si=self.si, data_holder=deploy_from_template_details, resource_context=resource_context, logger=Mock()) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, 'vcenter_resource_name') self.assertTrue(self.pv_service.CloneVmParameters.called) def _create_vcenter_resource_context(self): resource_context = create_autospec(ResourceInfo) resource_context.ResourceModelName = 'VMwarev Center' resource_context.ResourceAttributes = {'User': '******', 'Password': '******', 'Default dvSwitch': 'switch1', 'Holding Network': 'anetwork', 'Default Port Group Location': 'Quali', 'VM Cluster': 'Quali', 'VM Location': 'Quali', 'VM Resource Pool': 'Quali', 'VM Storage': 'Quali', 'Shutdown Method': 'hard', 'OVF Tool Path': 'C\\program files\ovf', 'Execution Server Selector': '', 'Reserved Networks': 'vlan65', 'Default Datacenter': 'QualiSB' } return resource_context def test_vm_deployer_error(self): self.clone_res.error = Mock() self.pv_service.CloneVmParameters = Mock(return_value=self.clone_parmas) self.pv_service.clone_vm = Mock(return_value=self.clone_res) deploy_from_template_details = DeployFromTemplateDetails(vCenterVMFromTemplateResourceModel(), 'VM Deployment') deploy_from_template_details.template_resource_model.vcenter_name = 'vcenter_resource_name' resource_context = self._create_vcenter_resource_context() self.assertRaises(Exception, self.deployer.deploy_from_template, self.si, Mock(), deploy_from_template_details, resource_context) self.assertTrue(self.pv_service.CloneVmParameters.called) def test_vm_deployer_image(self): params = DeployDataHolder({ 'app_name': 'appName', 'vcenter_name': 'vCenter', 'image_params': { "vcenter_image": "c:\image.ovf", "vm_cluster": "QualiSB Cluster", "vm_resource_pool": "LiverPool", "vm_storage": "eric ds cluster", "default_datacenter": "QualiSB", "vm_location": "vm_location", "auto_power_on": 'False', "vcenter_name": 'vCenter', "vcenter_image_arguments": "--compress=9,--schemaValidate,--etc", 'ip_regex': '', 'refresh_ip_timeout': '10', 'auto_power_on': 'True', 'auto_power_off': 'True', 'wait_for_ip': 'True', 'auto_delete': 'True', 'autoload': 'True' } }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.cs_helper.get_connection_details = Mock(return_value=connectivity) session = Mock() vcenter_data_model = Mock() vcenter_data_model.default_datacenter = 'qualisb' resource_context = Mock() res = self.deployer.deploy_from_image(si=self.si, logger=Mock(), session=session, vcenter_data_model=vcenter_data_model, data_holder=params, resource_context=resource_context) self.assertEqual(res.vm_name, self.name) self.assertEqual(res.vm_uuid, self.uuid) self.assertEqual(res.cloud_provider_resource_name, params.vcenter_name) def test_vm_deployer_image_no_res(self): self.image_deployer.deploy_image = Mock(return_value=None) params = DeployDataHolder( { "image_url": "c:\image.ovf", "cluster_name": "QualiSB Cluster", "resource_pool": "LiverPool", "datastore_name": "eric ds cluster", "datacenter_name": "QualiSB", "power_on": False, "app_name": "appName", "user_arguments": ["--compress=9", "--schemaValidate", "--etc" ] }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.assertRaises(Exception, self.deployer.deploy_from_image, self.si, params, connectivity) def test_vm_deployer_image_no_vm(self): self.pv_service.find_vm_by_name = Mock(return_value=None) params = DeployDataHolder( { "image_url": "c:\image.ovf", "cluster_name": "QualiSB Cluster", "resource_pool": "LiverPool", "datastore_name": "eric ds cluster", "datacenter_name": "QualiSB", "power_on": False, "app_name": "appName", "user_arguments": ["--compress=9", "--schemaValidate", "--etc" ] }) connectivity = Mock() connectivity.address = 'vcenter ip or name' connectivity.user = '******' connectivity.password = '******' self.assertRaises(Exception, self.deployer.deploy_from_image, self.si, params, connectivity)