def run(): global vm vm = get_vm(client, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Cpu Sample".format(vm_name, vm)) print('\n# Example: Get current Cpu configuration') cpu_info = client.vcenter.vm.hardware.Cpu.get(vm) print('vm.hardware.Cpu.get({}) -> {}'.format(vm, pp(cpu_info))) # Save current Cpu info to verify that we have cleaned up properly global orig_cpu_info orig_cpu_info = cpu_info print('\n# Example: Update cpu field of Cpu configuration') update_spec = Cpu.UpdateSpec(count=2) print('vm.hardware.Cpu.update({}, {})'.format(vm, update_spec)) client.vcenter.vm.hardware.Cpu.update(vm, update_spec) # Get new Cpu configuration cpu_info = client.vcenter.vm.hardware.Cpu.get(vm) print('vm.hardware.Cpu.get({}) -> {}'.format(vm, pp(cpu_info))) print( '\n# Example: Update other less likely used fields of Cpu configuration' ) update_spec = Cpu.UpdateSpec(cores_per_socket=2, hot_add_enabled=True) print('vm.hardware.Cpu.update({}, {})'.format(vm, update_spec)) client.vcenter.vm.hardware.Cpu.update(vm, update_spec) # Get new Cpu configuration cpu_info = client.vcenter.vm.hardware.Cpu.get(vm) print('vm.hardware.Cpu.get({}) -> {}'.format(vm, pp(cpu_info)))
def _execute(self): # Get the identifiers vm_id = get_vm(self.vsphere_client, self.vm_name) assert vm_id resource_pool_id = get_resource_pool(self.vsphere_client, self.datacenter_name, self.resource_pool_name) assert resource_pool_id # Create a library storage_backings = self.helper.create_storage_backings( self.servicemanager, self.datastore_name) self.library_id = self.helper.create_local_library( storage_backings, self.library_name) # Build the create specification create_spec = VmtxLibraryItem.CreateSpec() create_spec.source_vm = vm_id create_spec.library = self.library_id create_spec.name = self.item_name create_spec.placement = VmtxLibraryItem.CreatePlacementSpec( resource_pool=resource_pool_id) # Create a new library item from the source VM self.item_id = self.client.vmtx_service.create(create_spec) print("Created VM template item '{0}' with ID: {1}".format( self.item_name, self.item_id)) # Retrieve the library item info info = self.client.vmtx_service.get(self.item_id) print('VM template guest OS: {0}'.format(info.guest_os))
def run(self): # find the given VM self.vm = get_vm(self.vsphere_client, self.vm_name) if not self.vm: raise Exception('Sample requires an existing vm with name ({}).' 'Please create the vm first.'.format(self.vm_name)) print("Using VM '{}' ({}) for Guest Info Sample".format( self.vm_name, self.vm)) # power on the VM if necessary status = self.vsphere_client.vcenter.vm.Power.get(self.vm) if status != HardPower.Info(state=HardPower.State.POWERED_ON): print('Powering on VM.') self.vsphere_client.vcenter.vm.Power.start(self.vm) # wait for guest info to be ready wait_for_guest_info_ready(self.vsphere_client, self.vm, 600) # get the Identity identity = self.vsphere_client.vcenter.vm.guest.Identity.get(self.vm) print('vm.guest.Identity.get({})'.format(self.vm)) print('Identity: {}'.format(pp(identity))) # get the local filesystem info local_filesysteem = \ self.vsphere_client.vcenter.vm.guest.LocalFilesystem.get(self.vm) print('vm.guest.LocalFilesystem.get({})'.format(self.vm)) print('LocalFilesystem: {}'.format(pp(local_filesysteem)))
def run(): global vm vm = get_vm(client, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for SCSI Sample".format(vm_name, vm)) print('\n# Example: List all SCSI adapters for a VM') scsi_summaries = client.vcenter.vm.hardware.adapter.Scsi.list(vm=vm) print('vm.hardware.adapter.Scsi.list({}) -> {}'.format(vm, scsi_summaries)) # Save current list of SCSI adapters to verify that we have cleaned up # properly global orig_scsi_summaries orig_scsi_summaries = scsi_summaries # Get information for each SCSI adapter on the VM for scsi_summary in scsi_summaries: scsi = scsi_summary.adapter scsi_info = client.vcenter.vm.hardware.adapter.Scsi.get(vm=vm, adapter=scsi) print('vm.hardware.adapter.Scsi.get({}, {}) -> {}'.format( vm, scsi, pp(scsi_info))) global scsis_to_delete print('\n# Example: Create SCSI adapter with defaults') scsi_create_spec = Scsi.CreateSpec() scsi = client.vcenter.vm.hardware.adapter.Scsi.create(vm, scsi_create_spec) print('vm.hardware.adapter.Scsi.create({}, {}) -> {}'.format( vm, scsi_create_spec, scsi)) scsis_to_delete.append(scsi) scsi_info = client.vcenter.vm.hardware.adapter.Scsi.get(vm, scsi) print('vm.hardware.adapter.Scsi.get({}, {}) -> {}'.format( vm, scsi, pp(scsi_info))) print('\n# Example: Create SCSI adapter with a specific bus ' 'and sharing=True') scsi_create_spec = Scsi.CreateSpec(bus=2, sharing=Scsi.Sharing.VIRTUAL) scsi = client.vcenter.vm.hardware.adapter.Scsi.create(vm, scsi_create_spec) print('vm.hardware.adapter.Scsi.create({}, {}) -> {}'.format( vm, scsi_create_spec, scsi)) scsis_to_delete.append(scsi) scsi_info = client.vcenter.vm.hardware.adapter.Scsi.get(vm, scsi) print('vm.hardware.adapter.Scsi.get({}, {}) -> {}'.format( vm, scsi, pp(scsi_info))) print('\n# Example: Update SCSI adapter by setting sharing=False') scsi_update_spec = Scsi.UpdateSpec(sharing=Scsi.Sharing.NONE) client.vcenter.vm.hardware.adapter.Scsi.update(vm, scsi, scsi_update_spec) print('vm.hardware.adapter.Scsi.update({}, {}, {})'.format( vm, scsi, scsi_create_spec)) scsi_info = client.vcenter.vm.hardware.adapter.Scsi.get(vm, scsi) print('vm.hardware.adapter.Scsi.get({}, {}) -> {}'.format( vm, scsi, pp(scsi_info))) # List all SCSI adapters for a VM scsi_summaries = client.vcenter.vm.hardware.adapter.Scsi.list(vm=vm) print('vm.hardware.adapter.Scsi.list({}) -> {}'.format(vm, scsi_summaries))
def run(): global vm vm = get_vm(client, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Memory Sample".format(vm_name, vm)) print('\n# Example: Get current Memory configuration') memory_info = client.vcenter.vm.hardware.Memory.get(vm) print('vm.hardware.Memory.get({}) -> {}'.format(vm, pp(memory_info))) # Save current Memory info to verify that we have cleaned up properly global orig_memory_info orig_memory_info = memory_info print('\n# Example: Update memory size_mib field of Memory configuration') update_spec = Memory.UpdateSpec(size_mib=8 * 1024) print('vm.hardware.Memory.update({}, {})'.format(vm, update_spec)) client.vcenter.vm.hardware.Memory.update(vm, update_spec) # Get new Memory configuration memory_info = client.vcenter.vm.hardware.Memory.get(vm) print('vm.hardware.Memory.get({}) -> {}'.format(vm, pp(memory_info))) print('\n# Example: Update hot_add_enabled field of Memory configuration') update_spec = Memory.UpdateSpec(hot_add_enabled=True) print('vm.hardware.Memory.update({}, {})'.format(vm, update_spec)) client.vcenter.vm.hardware.Memory.update(vm, update_spec) # Get new Memory configuration memory_info = client.vcenter.vm.hardware.Memory.get(vm) print('vm.hardware.Memory.get({}) -> {}'.format(vm, pp(memory_info)))
def cleanup(self): vm = get_vm(self.client, self.vm_name) if vm: state = self.client.vcenter.vm.Power.get(vm) if state == Power.Info(state=Power.State.POWERED_ON): self.client.vcenter.vm.Power.stop(vm) elif state == Power.Info(state=Power.State.SUSPENDED): self.client.vcenter.vm.Power.start(vm) self.client.vcenter.vm.Power.stop(vm) print("Deleting VM '{}' ({})".format(self.vm_name, vm)) self.client.vcenter.VM.delete(vm)
def run(): global vm vm = get_vm(stub_config, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for SATA Sample".format(vm_name, vm)) # Create SATA adapter stub used for making requests global sata_svc sata_svc = Sata(stub_config) print('\n# Example: List all SATA adapters for a VM') sata_summaries = sata_svc.list(vm=vm) print('vm.hardware.adapter.Sata.list({}) -> {}'.format(vm, sata_summaries)) # Save current list of SATA adapters to verify that we have cleaned up # properly global orig_sata_summaries orig_sata_summaries = sata_summaries # Get information for each SATA adapter on the VM for sata_summary in sata_summaries: sata = sata_summary.adapter sata_info = sata_svc.get(vm=vm, adapter=sata) print('vm.hardware.adapter.Sata.get({}, {}) -> {}'.format( vm, sata, pp(sata_info))) global satas_to_delete print('\n# Example: Create SATA adapter with defaults') sata_create_spec = Sata.CreateSpec() sata = sata_svc.create(vm, sata_create_spec) print('vm.hardware.adapter.Sata.create({}, {}) -> {}'.format( vm, sata_create_spec, sata)) satas_to_delete.append(sata) sata_info = sata_svc.get(vm, sata) print('vm.hardware.adapter.Sata.get({}, {}) -> {}'.format( vm, sata, pp(sata_info))) print('\n# Example: Create SATA adapter with a specific bus') sata_create_spec = Sata.CreateSpec(bus=2) sata = sata_svc.create(vm, sata_create_spec) print('vm.hardware.adapter.Sata.create({}, {}) -> {}'.format( vm, sata_create_spec, sata)) satas_to_delete.append(sata) sata_info = sata_svc.get(vm, sata) print('vm.hardware.adapter.Sata.get({}, {}) -> {}'.format( vm, sata, pp(sata_info))) # List all SATA adapters for a VM sata_summaries = sata_svc.list(vm=vm) print('vm.hardware.adapter.Sata.list({}) -> {}'.format(vm, sata_summaries))
def cleanup(): vm = get_vm(stub_config, vm_name) if vm: power_svc = Power(stub_config) vm_svc = VM(stub_config) state = power_svc.get(vm) if state == Power.Info(state=Power.State.POWERED_ON): power_svc.stop(vm) elif state == Power.Info(state=Power.State.SUSPENDED): power_svc.start(vm) power_svc.stop(vm) print("Deleting VM '{}' ({})".format(vm_name, vm)) vm_svc.delete(vm)
def setup(context=None): global client, service_instance, cleardata if context: # Run sample suite via setup script vm_name = testbed.config['VM_NAME_DEFAULT'] client = context.client service_instance = context.service_instance else: # Run sample in standalone mode server, username, password, cleardata, skip_verification, vm_name = \ parse_cli_args_vm(testbed.config['VM_NAME_DEFAULT']) session = get_unverified_session() if skip_verification else None # Connect to vSphere client client = create_vsphere_client(server=server, username=username, password=password, session=session) # Connect to VIM API Endpoint on vCenter system context = None if skip_verification: context = get_unverified_context() service_instance = SmartConnect(host=server, user=username, pwd=password, sslContext=context) atexit.register(Disconnect, service_instance) global vm, datacenter_name, datastore_name global datastore_mo, datacenter_mo, datastore_root_path vm = get_vm(client, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Disk Sample".format(vm_name, vm)) # Get the datacenter and datastore managed objects to be able to create and # delete VMDKs, which are backings for a VM Disk. datacenter_name = testbed.config['VM_DATACENTER_NAME'] datastore_name = testbed.config['VM_DATASTORE_NAME'] datastore_mo = get_datastore_mo(client, service_instance._stub, datacenter_name, datastore_name) datacenter_mo = get_datacenter_for_datastore(datastore_mo) # The datastore_root_path is path in the datastore where the additional # VMDK files will be created for this sample. datastore_root_path = testbed.config['DISK_DATASTORE_ROOT_PATH']
def validate(context): print('Validating and Detecting Resources in vcenter.vm.hardware Samples') names = set([ testbed.config['VM_NAME_DEFAULT'], testbed.config['VM_NAME_BASIC'], testbed.config['VM_NAME_EXHAUSTIVE'] ]) valid = True for name in names: if not get_vm(context.stub_config, name): valid = False if not valid: raise Exception('==> Samples Setup validation failed: ' 'Missing VMs required to run hardware samples') print('==> Samples Setup validated')
def run(): global vm vm = get_vm(stub_config, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for BootDevice Sample".format(vm_name, vm)) # Create BootDevice stub used for making requests global boot_device_svc boot_device_svc = BootDevice(stub_config) print('\n# Example: Get current BootDevice configuration') boot_device_entries = boot_device_svc.get(vm) print('vm.hardware.boot.Device.get({}) -> {}'.format( vm, pp(boot_device_entries))) # Save current BootDevice info to verify that we have cleaned up properly global orig_boot_device_entries orig_boot_device_entries = boot_device_entries # Get device identifiers for Disks disk_svc = Disk(stub_config) disk_summaries = disk_svc.list(vm) print('vm.hardware.Disk.list({}) -> {}'.format(vm, pp(disk_summaries))) disks = [disk_summary.disk for disk_summary in disk_summaries] # Get device identifiers for Ethernet nics ethernet_svc = Ethernet(stub_config) nic_summaries = ethernet_svc.list(vm) print('vm.hardware.Ethernet.list({}) -> {}'.format(vm, pp(nic_summaries))) nics = [nic_summary.nic for nic_summary in nic_summaries] print('\n# Example: Set Boot Order to be Floppy, ' 'Disk1, Disk2, Disk3, Cdrom,') print('# Network (nic0), Network (nic1).') boot_device_entries = [ BootDevice.Entry(BootDevice.Type.FLOPPY), BootDevice.Entry(BootDevice.Type.DISK, disks=disks), BootDevice.Entry(BootDevice.Type.CDROM) ] for nic in nics: boot_device_entries.append( BootDevice.Entry(BootDevice.Type.ETHERNET, nic=nic)) print('vm.hardware.boot.Device.set({}, {})'.format(vm, boot_device_entries)) boot_device_svc.set(vm, boot_device_entries) boot_device_entries = boot_device_svc.get(vm) print('vm.hardware.boot.Device.get({}) -> {}'.format( vm, pp(boot_device_entries)))
def run(): global vm vm = get_vm(stub_config, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Boot Sample".format(vm_name, vm)) # Create Boot stub used for making requests global boot_svc boot_svc = Boot(stub_config) print('\n# Example: Get current Boot configuration') boot_info = boot_svc.get(vm) print('vm.hardware.Boot.get({}) -> {}'.format(vm, pp(boot_info))) # Save current Boot info to verify that we have cleaned up properly global orig_boot_info orig_boot_info = boot_info print('\n# Example: Update firmware to EFI for Boot configuration') update_spec = Boot.UpdateSpec(type=Boot.Type.EFI) print('vm.hardware.Boot.update({}, {})'.format(vm, update_spec)) boot_svc.update(vm, update_spec) boot_info = boot_svc.get(vm) print('vm.hardware.Boot.get({}) -> {}'.format(vm, pp(boot_info))) print('\n# Example: Update boot firmware to tell it to enter setup mode on ' 'next boot') update_spec = Boot.UpdateSpec(enter_setup_mode=True) print('vm.hardware.Boot.update({}, {})'.format(vm, update_spec)) boot_svc.update(vm, update_spec) boot_info = boot_svc.get(vm) print('vm.hardware.Boot.get({}) -> {}'.format(vm, pp(boot_info))) print('\n# Example: Update boot firmware to introduce a delay in boot' ' process and to reboot') print('# automatically after a failure to boot. ' '(delay=10000 ms, retry=True,') print('# retry_delay=30000 ms') update_spec = Boot.UpdateSpec(delay=10000, retry=True, retry_delay=30000) print('vm.hardware.Boot.update({}, {})'.format(vm, update_spec)) boot_svc.update(vm, update_spec) boot_info = boot_svc.get(vm) print('vm.hardware.Boot.get({}) -> {}'.format(vm, pp(boot_info)))
def run(self): """ Delete User specified VM from Server """ vm = get_vm(self.client, self.vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}).' 'Please create the vm first.'.format(self.vm_name)) print("Deleting VM -- '{}-({})')".format(self.vm_name, vm)) state = self.client.vcenter.vm.Power.get(vm) if state == Power.Info(state=Power.State.POWERED_ON): self.client.vcenter.vm.Power.stop(vm) elif state == Power.Info(state=Power.State.SUSPENDED): self.client.vcenter.vm.Power.start(vm) self.client.vcenter.vm.Power.stop(vm) self.client.vcenter.VM.delete(vm) print("Deleted VM -- '{}-({})".format(self.vm_name, vm))
def run(self): self.vm = get_vm(self.vsphere_client, self.vm_name) if not self.vm: raise Exception('Sample requires an existing vm with name ({}).' 'Please create the vm first.'.format(self.vm_name)) print("Using VM '{}' ({}) for Guest Power Sample".format( self.vm_name, self.vm)) # power on the VM if necessary status = self.vsphere_client.vcenter.vm.Power.get(self.vm) if status != HardPower.Info(state=HardPower.State.POWERED_ON): print("Powering on VM {}.".format(self.vm_name)) self.vsphere_client.vcenter.vm.Power.start(self.vm) print('vm.Power.start({})'.format(self.vm)) # reboot the guest wait_for_power_operations_state(self.vsphere_client, self.vm, True, STATE_TIMEOUT) print('\n# Example: Reboot the vm') identity = self.vsphere_client.vcenter.vm.guest.Power.reboot(self.vm) wait_for_power_operations_state(self.vsphere_client, self.vm, False, STATE_TIMEOUT) print('Tools have stopped.') wait_for_guest_power_state(self.vsphere_client, self.vm, Power.State.RUNNING, STATE_TIMEOUT) wait_for_power_operations_state(self.vsphere_client, self.vm, True, STATE_TIMEOUT) print('vm.guest.Power.reboot({})'.format(self.vm)) # Standby the guest -- already running from previous step print('\n# Example: Standby the vm') self.vsphere_client.vcenter.vm.guest.Power.standby(self.vm) wait_for_guest_power_state(self.vsphere_client, self.vm, Power.State.NOT_RUNNING, STATE_TIMEOUT) print('vm.guest.Power.standby({})'.format(self.vm)) # shutdown the guest # power back on from previous standby self.vsphere_client.vcenter.vm.Power.start(self.vm) wait_for_power_operations_state(self.vsphere_client, self.vm, True, STATE_TIMEOUT) print("Shutting down VM {}.".format(self.vm_name)) self.vsphere_client.vcenter.vm.guest.Power.shutdown(self.vm) wait_for_guest_power_state(self.vsphere_client, self.vm, Power.State.NOT_RUNNING, STATE_TIMEOUT) print('vm.guest.Power.shutdown({})'.format(self.vm))
def run(self): """ Delete User specified VM from Server """ vm_svc = VM(self.service_manager.stub_config) power_svc = Power(self.service_manager.stub_config) vm = get_vm(self.service_manager.stub_config, self.vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}).' 'Please create the vm first.'.format(vm_name)) print("Deleting VM -- '{}-({})')".format(self.vm_name, vm)) state = power_svc.get(vm) if state == Power.Info(state=Power.State.POWERED_ON): power_svc.stop(vm) elif state == Power.Info(state=Power.State.SUSPENDED): power_svc.start(vm) power_svc.stop(vm) vm_svc.delete(vm) print("Deleted VM -- '{}-({})".format(self.vm_name, vm))
def run(): global vm vm = get_vm(stub_config, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}).' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Power Sample".format(vm_name, vm)) # Create Power stub used for making requests global vm_power_svc vm_power_svc = Power(stub_config) # Get the vm power state print('\n# Example: Get current vm power state') status = vm_power_svc.get(vm) print('vm.Power.get({}) -> {}'.format(vm, pp(status))) # Power off the vm if it is on if status == Power.Info(state=Power.State.POWERED_ON): print('\n# Example: VM is powered on, power it off') vm_power_svc.stop(vm) print('vm.Power.stop({})'.format(vm)) # Power on the vm print('# Example: Power on the vm') vm_power_svc.start(vm) print('vm.Power.start({})'.format(vm)) # Suspend the vm print('\n# Example: Suspend the vm') vm_power_svc.suspend(vm) print('vm.Power.suspend({})'.format(vm)) # Resume the vm print('\n# Example: Resume the vm') vm_power_svc.start(vm) print('vm.Power.start({})'.format(vm)) # Reset the vm print('\n# Example: Reset the vm') vm_power_svc.reset(vm) print('vm.Power.reset({})'.format(vm))
def update_network(self): nic = '4000' vm = get_vm(self.client, vm_name=self.vm_name) network_info = self.client.vcenter.vm.hardware.Ethernet.get(vm=vm, nic=nic) dv_portgroup_name = self.network distributed_network = network_helper.get_network_backing( self.client, dv_portgroup_name, self.datacenter_name, Network.Type.DISTRIBUTED_PORTGROUP) print(distributed_network) nics = Ethernet.UpdateSpec( start_connected=True, mac_type='MANUAL', mac_address=network_info.mac_address, backing=Ethernet.BackingSpec( type=Ethernet.BackingType.DISTRIBUTED_PORTGROUP, network=distributed_network)) self.client.vcenter.vm.hardware.Ethernet.update(vm=vm, nic=nic, spec=nics)
def _execute(self): storage_backings = self.helper.create_storage_backings( self.servicemanager, self.datastore_name) library_id = self.helper.create_local_library(storage_backings, self.lib_name) self.local_library = self.client.local_library_service.get(library_id) library_item_id = self.helper.create_iso_library_item( library_id, self.iso_item_name, self.ISO_FILENAME) vm_id = get_vm(self.vsphere_client, self.vm_name) assert vm_id is not None # Mount the iso item as a CDROM device device_id = self.client.iso_service.mount(library_item_id, vm_id) assert device_id is not None print('Mounted library item {0} on vm {1} at device {2}'.format( self.iso_item_name, self.vm_name, device_id)) # Unmount the CDROM self.client.iso_service.unmount(vm_id, device_id) print('Unmounted library item {0} from vm {1} mounted at device {2}'. format(self.iso_item_name, self.vm_name, device_id))
def _execute(self): storage_backings = self.helper.create_storage_backings( self.servicemanager, self.datastore_name) print('Creating Content Library') # Create a content library library_id = self.helper.create_local_library(storage_backings, self.cl_name) self.content_library = self.client.local_library_service.get( library_id) vm_id = get_vm(self.vsphere_client, self.vm_name) assert vm_id is not None param = self.create_capture_param(self.content_library, self.vm_template_name, self.vm_template_description) self.library_item_id = self.capture_source_vm(vm_id, param) assert self.library_item_id is not None assert self.client.library_item_service.get( self.library_item_id) is not None print( 'The VM id : {0} is captured as vm template library item id : {1}'. format(vm_id, self.library_item_id))
def run(): global vm, client vm = get_vm(client, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Parallel Sample".format(vm_name, vm)) print('\n# Example: List all Parallel ports for a VM') parallel_summaries = client.vcenter.vm.hardware.Parallel.list(vm=vm) print('vm.hardware.Parallel.list({}) -> {}'.format(vm, parallel_summaries)) # Save current list of Parallel ports to verify that we have cleaned up # properly global orig_parallel_summaries orig_parallel_summaries = parallel_summaries # Get information for each Parallel port on the VM for parallel_summary in parallel_summaries: parallel = parallel_summary.port parallel_info = client.vcenter.vm.hardware.Parallel.get(vm=vm, port=parallel) print('vm.hardware.Parallel.get({}, {}) -> {}'.format( vm, parallel, pp(parallel_info))) # Make sure output file doesn't exist already cleanup_backends() print('\n# Example: Create Parallel port with defaults') parallel_create_spec = Parallel.CreateSpec() parallel = client.vcenter.vm.hardware.Parallel.create( vm, parallel_create_spec) print('vm.hardware.Parallel.create({}, {}) -> {}'.format( vm, parallel_create_spec, parallel)) global parallels_to_delete parallels_to_delete.append(parallel) parallel_info = client.vcenter.vm.hardware.Parallel.get(vm, parallel) print('vm.hardware.Parallel.get({}, {}) -> {}'.format( vm, parallel, pp(parallel_info))) print('\n# Example: Create Parallel port with FILE backing') parallel_port_datastore_path = testbed.config[ 'PARALLEL_PORT_DATASTORE_PATH'] parallel_create_spec = Parallel.CreateSpec( start_connected=True, allow_guest_control=True, backing=Parallel.BackingSpec(type=Parallel.BackingType.FILE, file=parallel_port_datastore_path)) parallel = client.vcenter.vm.hardware.Parallel.create( vm, parallel_create_spec) print('vm.hardware.Parallel.create({}, {}) -> {}'.format( vm, parallel_create_spec, parallel)) parallels_to_delete.append(parallel) parallel_info = client.vcenter.vm.hardware.Parallel.get(vm, parallel) print('vm.hardware.Parallel.get({}, {}) -> {}'.format( vm, parallel, pp(parallel_info))) print('\n# Example: Update Parallel port with same file but ' 'start_connected=False') print('# and allow_guest_control=False') parallel_port_datastore_path = testbed.config[ 'PARALLEL_PORT_DATASTORE_PATH'] parallel_update_spec = Parallel.UpdateSpec( start_connected=False, allow_guest_control=False, backing=Parallel.BackingSpec(type=Parallel.BackingType.FILE, file=parallel_port_datastore_path)) client.vcenter.vm.hardware.Parallel.update(vm, parallel, parallel_update_spec) print('vm.hardware.Parallel.update({}, {}) -> {}'.format( vm, parallel_update_spec, parallel)) parallel_info = client.vcenter.vm.hardware.Parallel.get(vm, parallel) print('vm.hardware.Parallel.get({}, {}) -> {}'.format( vm, parallel, pp(parallel_info))) print('\n# Starting VM to run connect/disconnect sample') print('vm.Power.start({})'.format(vm)) client.vcenter.vm.Power.start(vm) parallel_info = client.vcenter.vm.hardware.Parallel.get(vm, parallel) print('vm.hardware.Parallel.get({}, {}) -> {}'.format( vm, parallel, pp(parallel_info))) print('\n# Example: Connect Parallel port after powering on VM') client.vcenter.vm.hardware.Parallel.connect(vm, parallel) print('vm.hardware.Parallel.connect({}, {})'.format(vm, parallel)) parallel_info = client.vcenter.vm.hardware.Parallel.get(vm, parallel) print('vm.hardware.Parallel.get({}, {}) -> {}'.format( vm, parallel, pp(parallel_info))) print('\n# Example: Disconnect Parallel port while VM is powered on') client.vcenter.vm.hardware.Parallel.disconnect(vm, parallel) print('vm.hardware.Parallel.disconnect({}, {})'.format(vm, parallel)) parallel_info = client.vcenter.vm.hardware.Parallel.get(vm, parallel) print('vm.hardware.Parallel.get({}, {}) -> {}'.format( vm, parallel, pp(parallel_info))) print('\n# Stopping VM after connect/disconnect sample') print('vm.Power.start({})'.format(vm)) client.vcenter.vm.Power.stop(vm) parallel_info = client.vcenter.vm.hardware.Parallel.get(vm, parallel) print('vm.hardware.Parallel.get({}, {}) -> {}'.format( vm, parallel, pp(parallel_info))) # List all Parallel ports for a VM parallel_summaries = client.vcenter.vm.hardware.Parallel.list(vm=vm) print('vm.hardware.Parallel.list({}) -> {}'.format(vm, parallel_summaries)) # Always cleanup output file so the VM can be powered on next time cleanup_backends()
def run(): global vm vm = get_vm(client, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for CD-ROM Sample".format(vm_name, vm)) iso_datastore_path = testbed.config['ISO_DATASTORE_PATH'] # Create SATA controller print('\n# Setup: Create a SATA controller') sata_create_spec = Sata.CreateSpec() print('# Adding SATA controller for SATA Disk samples') global sata sata = client.vcenter.vm.hardware.adapter.Sata.create(vm, sata_create_spec) print('vm.hardware.adapter.Sata.create({}, {}) -> {}'.format( vm, sata_create_spec, sata)) print('\n# Example: List all Cdroms for a VM') cdrom_summaries = client.vcenter.vm.hardware.Cdrom.list(vm=vm) print('vm.hardware.Cdrom.list({}) -> {}'.format(vm, cdrom_summaries)) # Save current list of Cdroms to verify that we have cleaned up properly global orig_cdrom_summaries orig_cdrom_summaries = cdrom_summaries # Get information for each CD-ROM on the VM for cdrom_summary in cdrom_summaries: cdrom = cdrom_summary.cdrom cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm=vm, cdrom=cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format( vm, cdrom, pp(cdrom_info))) global cdroms_to_delete print('\n# Example: Create CD-ROM with ISO_FILE backing') cdrom_create_spec = Cdrom.CreateSpec(start_connected=True, backing=Cdrom.BackingSpec( type=Cdrom.BackingType.ISO_FILE, iso_file=iso_datastore_path)) cdrom = client.vcenter.vm.hardware.Cdrom.create(vm, cdrom_create_spec) cdroms_to_delete.append(cdrom) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Create CD-ROM with CLIENT_DEVICE backing') cdrom_create_spec = Cdrom.CreateSpec(backing=Cdrom.BackingSpec( type=Cdrom.BackingType.CLIENT_DEVICE)) cdrom = client.vcenter.vm.hardware.Cdrom.create(vm, cdrom_create_spec) print('vm.hardware.Cdrom.create({}, {}) -> {}'.format( vm, cdrom_create_spec, cdrom)) cdroms_to_delete.append(cdrom) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Create CD-ROM using auto-detect HOST_DEVICE backing') cdrom_create_spec = Cdrom.CreateSpec(backing=Cdrom.BackingSpec( type=Cdrom.BackingType.HOST_DEVICE)) cdrom = client.vcenter.vm.hardware.Cdrom.create(vm, cdrom_create_spec) print('vm.hardware.Cdrom.create({}, {}) -> {}'.format( vm, cdrom_create_spec, cdrom)) cdroms_to_delete.append(cdrom) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Create SATA CD-ROM using CLIENT_DEVICE backing') cdrom_create_spec = Cdrom.CreateSpec( type=Cdrom.HostBusAdapterType.SATA, backing=Cdrom.BackingSpec(type=Cdrom.BackingType.CLIENT_DEVICE)) cdrom = client.vcenter.vm.hardware.Cdrom.create(vm, cdrom_create_spec) print('vm.hardware.Cdrom.create({}, {}) -> {}'.format( vm, cdrom_create_spec, cdrom)) cdroms_to_delete.append(cdrom) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Create SATA CD-ROM on specific bus using ' 'CLIENT_DEVICE backing') cdrom_create_spec = Cdrom.CreateSpec( type=Cdrom.HostBusAdapterType.SATA, sata=SataAddressSpec(bus=0), backing=Cdrom.BackingSpec(type=Cdrom.BackingType.CLIENT_DEVICE)) cdrom = client.vcenter.vm.hardware.Cdrom.create(vm, cdrom_create_spec) print('vm.hardware.Cdrom.create({}, {}) -> {}'.format( vm, cdrom_create_spec, cdrom)) cdroms_to_delete.append(cdrom) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Create SATA CD-ROM on specific bus and unit using ' 'CLIENT_DEVICE backing') cdrom_create_spec = Cdrom.CreateSpec( type=Cdrom.HostBusAdapterType.SATA, sata=SataAddressSpec(bus=0, unit=10), backing=Cdrom.BackingSpec(type=Cdrom.BackingType.CLIENT_DEVICE)) cdrom = client.vcenter.vm.hardware.Cdrom.create(vm, cdrom_create_spec) print('vm.hardware.Cdrom.create({}, {}) -> {}'.format( vm, cdrom_create_spec, cdrom)) cdroms_to_delete.append(cdrom) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Create IDE CD-ROM using CLIENT_DEVICE backing') cdrom_create_spec = Cdrom.CreateSpec( type=Cdrom.HostBusAdapterType.IDE, backing=Cdrom.BackingSpec(type=Cdrom.BackingType.CLIENT_DEVICE)) cdrom = client.vcenter.vm.hardware.Cdrom.create(vm, cdrom_create_spec) print('vm.hardware.Cdrom.create({}, {}) -> {}'.format( vm, cdrom_create_spec, cdrom)) cdroms_to_delete.append(cdrom) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Create IDE CD-ROM on specific bus and unit using ' 'CLIENT_DEVICE backing') cdrom_create_spec = Cdrom.CreateSpec( type=Cdrom.HostBusAdapterType.IDE, ide=IdeAddressSpec(False, True), backing=Cdrom.BackingSpec(type=Cdrom.BackingType.CLIENT_DEVICE)) cdrom = client.vcenter.vm.hardware.Cdrom.create(vm, cdrom_create_spec) print('vm.hardware.Cdrom.create({}, {}) -> {}'.format( vm, cdrom_create_spec, cdrom)) cdroms_to_delete.append(cdrom) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) # Change the last cdrom that was created print('\n# Example: Update backing from CLIENT_DEVICE to ISO_FILE') cdrom_update_spec = Cdrom.UpdateSpec(backing=Cdrom.BackingSpec( type=Cdrom.BackingType.ISO_FILE, iso_file=iso_datastore_path)) print('vm.hardware.Cdrom.update({}, {}, {})'.format( vm, cdrom, cdrom_update_spec)) client.vcenter.vm.hardware.Cdrom.update(vm, cdrom, cdrom_update_spec) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Update start_connected=False, ' 'allow_guest_control=False') cdrom_update_spec = Cdrom.UpdateSpec(start_connected=False, allow_guest_control=False) print('vm.hardware.Cdrom.update({}, {}, {})'.format( vm, cdrom, cdrom_update_spec)) client.vcenter.vm.hardware.Cdrom.update(vm, cdrom, cdrom_update_spec) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Starting VM to run connect/disconnect sample') print('vm.Power.start({})'.format(vm)) client.vcenter.vm.Power.start(vm) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Connect CD-ROM after powering on VM') client.vcenter.vm.hardware.Cdrom.connect(vm, cdrom) print('vm.hardware.Cdrom.connect({}, {})'.format(vm, cdrom)) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Example: Disconnect CD-ROM while VM is powered on') client.vcenter.vm.hardware.Cdrom.disconnect(vm, cdrom) print('vm.hardware.Cdrom.disconnect({}, {})'.format(vm, cdrom)) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) print('\n# Stopping VM after connect/disconnect sample') print('vm.Power.start({})'.format(vm)) client.vcenter.vm.Power.stop(vm) cdrom_info = client.vcenter.vm.hardware.Cdrom.get(vm, cdrom) print('vm.hardware.Cdrom.get({}, {}) -> {}'.format(vm, cdrom, pp(cdrom_info))) # List all Cdroms for a VM cdrom_summaries = client.vcenter.vm.hardware.Cdrom.list(vm=vm) print('vm.hardware.Cdrom.list({}) -> {}'.format(vm, cdrom_summaries))
def poweroff_default_vm(self): vm = get_vm(self.vsphere_client, self.d_vm_name_default) self.vsphere_client.vcenter.vm.Power.stop(vm)
def suspend_default_vm(self): vm = get_vm(self.vsphere_client, self.d_vm_name_default) self.vsphere_client.vcenter.vm.Power.suspend(vm)
def run(): # * Floppy images must be pre-existing. This API does not expose # a way to create new floppy images. global vm vm = get_vm(client, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Floppy Sample".format(vm_name, vm)) img_datastore_path = testbed.config['FLOPPY_DATASTORE_PATH'] print('\n# Example: List all Floppys for a VM') floppy_summaries = client.vcenter.vm.hardware.Floppy.list(vm=vm) print('vm.hardware.Floppy.list({}) -> {}'.format(vm, floppy_summaries)) # Save current list of Floppys to verify that we have cleaned up properly global orig_floppy_summaries orig_floppy_summaries = floppy_summaries # Get information for each Floppy on the VM global floppy for floppy_summary in floppy_summaries: floppy = floppy_summary.floppy floppy_info = client.vcenter.vm.hardware.Floppy.get(vm=vm, floppy=floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) # Maximum 2 Floppy devices allowed so delete them as they are created except # for the last one which will be deleted at the end print('\n# Example: Create Floppy port with defaults') floppy_create_spec = Floppy.CreateSpec() floppy = client.vcenter.vm.hardware.Floppy.create(vm, floppy_create_spec) print('vm.hardware.Floppy.create({}, {}) -> {}'. format(vm, floppy_create_spec, floppy)) floppy_info = client.vcenter.vm.hardware.Floppy.get(vm, floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) client.vcenter.vm.hardware.Floppy.delete(vm, floppy) print('vm.hardware.Floppy.delete({}, {})'.format(vm, floppy)) print('\n# Example: Create Floppy with CLIENT_DEVICE backing') floppy_create_spec = Floppy.CreateSpec( backing=Floppy.BackingSpec(type=Floppy.BackingType.CLIENT_DEVICE)) floppy = client.vcenter.vm.hardware.Floppy.create(vm, floppy_create_spec) print('vm.hardware.Floppy.create({}, {}) -> {}'. format(vm, floppy_create_spec, floppy)) floppy_info = client.vcenter.vm.hardware.Floppy.get(vm, floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) client.vcenter.vm.hardware.Floppy.delete(vm, floppy) print('vm.hardware.Floppy.delete({}, {})'.format(vm, floppy)) print('\n# Example: Create Floppy with IMAGE_FILE backing, ' 'start_connected=True,') print(' allow_guest_control=True') floppy_create_spec = Floppy.CreateSpec( allow_guest_control=True, start_connected=True, backing=Floppy.BackingSpec(type=Floppy.BackingType.IMAGE_FILE, image_file=img_datastore_path)) floppy = client.vcenter.vm.hardware.Floppy.create(vm, floppy_create_spec) floppy_info = client.vcenter.vm.hardware.Floppy.get(vm, floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) print('\n# Example: Update start_connected=False, ' 'allow_guest_control=False') floppy_update_spec = Floppy.UpdateSpec( start_connected=False, allow_guest_control=False) print('vm.hardware.Floppy.update({}, {}, {})'. format(vm, floppy, floppy_update_spec)) client.vcenter.vm.hardware.Floppy.update(vm, floppy, floppy_update_spec) floppy_info = client.vcenter.vm.hardware.Floppy.get(vm, floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) print('\n# Starting VM to run connect/disconnect sample') print('vm.Power.start({})'.format(vm)) client.vcenter.vm.Power.start(vm) floppy_info = client.vcenter.vm.hardware.Floppy.get(vm, floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) print('\n# Example: Connect Floppy after powering on VM') client.vcenter.vm.hardware.Floppy.connect(vm, floppy) print('vm.hardware.Floppy.connect({}, {})'.format(vm, floppy)) floppy_info = client.vcenter.vm.hardware.Floppy.get(vm, floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) print('\n# Example: Disconnect Floppy while VM is powered on') client.vcenter.vm.hardware.Floppy.disconnect(vm, floppy) print('vm.hardware.Floppy.disconnect({}, {})'.format(vm, floppy)) floppy_info = client.vcenter.vm.hardware.Floppy.get(vm, floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) print('\n# Stopping VM after connect/disconnect sample') print('vm.Power.start({})'.format(vm)) client.vcenter.vm.Power.stop(vm) floppy_info = client.vcenter.vm.hardware.Floppy.get(vm, floppy) print('vm.hardware.Floppy.get({}, {}) -> {}'. format(vm, floppy, pp(floppy_info))) # List all Floppys for a VM floppy_summaries = client.vcenter.vm.hardware.Floppy.list(vm=vm) print('vm.hardware.Floppy.list({}) -> {}'.format(vm, floppy_summaries))
def run(): # * Backings types are FILE, HOST_DEVICE, PIPE_SERVER, PIPE_CLIENT, # NETWORK_SERVER, NETWORK_CLIENT # * NetworkLocation: See # https://kb.vmware.com/selfservice/microsites/search.do?language=en_US # &cmd=displayKC&externalId=2004954 # * Proxy: https://www.vmware.com/support/developer/vc-sdk/visdk41pubs # /vsp41_usingproxy_virtual_serial_ports.pdf global vm, serial_svc vm = get_vm(stub_config, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Serial Sample".format(vm_name, vm)) # Create Serial port stub used for making requests serial_svc = Serial(stub_config) vm_power_svc = Power(stub_config) print('\n# Example: List all Serial ports for a VM') serial_summaries = serial_svc.list(vm=vm) print('vm.hardware.Serial.list({}) -> {}'.format(vm, serial_summaries)) # Save current list of Serial ports to verify that we have cleaned up # properly global orig_serial_summaries orig_serial_summaries = serial_summaries # Get information for each Serial port on the VM for serial_summary in serial_summaries: serial = serial_summary.port serial_info = serial_svc.get(vm=vm, port=serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) global serials_to_delete print('\n# Example: Create Serial port with defaults') serial_create_spec = Serial.CreateSpec() serial = serial_svc.create(vm, serial_create_spec) print('vm.hardware.Serial.create({}, {}) -> {}'.format( vm, serial_create_spec, serial)) serials_to_delete.append(serial) serial_info = serial_svc.get(vm, serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) # Make sure output file doesn't exist already cleanup_backends() print('\n# Example: Create Serial port with FILE backing') serial_port_datastore_path = testbed.config['SERIAL_PORT_DATASTORE_PATH'] serial_create_spec = Serial.CreateSpec( start_connected=True, allow_guest_control=True, backing=Serial.BackingSpec(type=Serial.BackingType.FILE, file=serial_port_datastore_path)) serial = serial_svc.create(vm, serial_create_spec) print('vm.hardware.Serial.create({}, {}) -> {}'.format( vm, serial_create_spec, serial)) serials_to_delete.append(serial) serial_info = serial_svc.get(vm, serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) print('\n# Example: Create Serial port to use NETWORK_SERVER') serial_port_network_server_location = \ testbed.config['SERIAL_PORT_NETWORK_SERVER_LOCATION'] serial_create_spec = Serial.CreateSpec( start_connected=True, allow_guest_control=True, backing=Serial.BackingSpec( type=Serial.BackingType.NETWORK_SERVER, network_location=serial_port_network_server_location)) serial = serial_svc.create(vm, serial_create_spec) print('vm.hardware.Serial.create({}, {}) -> {}'.format( vm, serial_create_spec, serial)) serials_to_delete.append(serial) serial_info = serial_svc.get(vm, serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) print('\n# Example: Update Serial port to use NETWORK_CLIENT') serial_port_network_client_location = \ testbed.config['SERIAL_PORT_NETWORK_CLIENT_LOCATION'] serial_port_network_proxy = testbed.config['SERIAL_PORT_NETWORK_PROXY'] serial_update_spec = Serial.UpdateSpec( start_connected=False, allow_guest_control=False, backing=Serial.BackingSpec( type=Serial.BackingType.NETWORK_CLIENT, network_location=serial_port_network_client_location, proxy=serial_port_network_proxy)) serial_svc.update(vm, serial, serial_update_spec) print('vm.hardware.Serial.update({}, {}) -> {}'.format( vm, serial_update_spec, serial)) serial_info = serial_svc.get(vm, serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) print('\n# Starting VM to run connect/disconnect sample') print('vm.Power.start({})'.format(vm)) vm_power_svc.start(vm) serial_info = serial_svc.get(vm, serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) print('\n# Example: Connect Serial port after powering on VM') serial_svc.connect(vm, serial) print('vm.hardware.Serial.connect({}, {})'.format(vm, serial)) serial_info = serial_svc.get(vm, serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) print('\n# Example: Disconnect Serial port while VM is powered on') serial_svc.disconnect(vm, serial) print('vm.hardware.Serial.disconnect({}, {})'.format(vm, serial)) serial_info = serial_svc.get(vm, serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) print('\n# Stopping VM after connect/disconnect sample') print('vm.Power.start({})'.format(vm)) vm_power_svc.stop(vm) serial_info = serial_svc.get(vm, serial) print('vm.hardware.Serial.get({}, {}) -> {}'.format( vm, serial, pp(serial_info))) # List all Serial ports for a VM serial_summaries = serial_svc.list(vm=vm) print('vm.hardware.Serial.list({}) -> {}'.format(vm, serial_summaries)) # Always cleanup output file so the VM can be powered on next time cleanup_backends()
def reset_default_vm(self): vm = get_vm(self.vsphere_client, self.d_vm_name_default) self.vsphere_client.vcenter.vm.Power.reset(vm)
def run(self): # Get the virtual machine and power it off. self.vm_id = get_vm(self.client, self.vm_name) self.vm_info = self.client.vcenter.VM.get(self.vm_id) if not self.vm_info: raise ValueError("Virtual machine {} not found".format( self.vm_name)) else: if self.vm_info.power_state == Power.State.POWERED_ON: self.client.vcenter.vm.Power.stop(self.vm_id) elif self.vm_info.power_state == Power.State.SUSPENDED: self.client.vcenter.vm.Power.start(self.vm_id) self.client.vcenter.vm.Power.stop(self.vm_id) # Get the tags. tags = self.client.tagging.Tag.list() for tag in tags: info = self.client.tagging.Tag.get(tag) if info.name == self.vm_tag_name: vm_tag = info if info.name == self.host_tag_name: host_tag = info if not vm_tag or not host_tag: raise ValueError("Provided tag(s) not found") # Tag the virtual machine and the host. attach_tag(self.client, self.vm_id, "VirtualMachine", vm_tag) filter_spec = Host.FilterSpec(names=set([self.host_name])) all_hosts = self.client.vcenter.Host.list(filter_spec) if not len(all_hosts) > 0: raise ValueError("Provided host not found") host_id = all_hosts[0].host attach_tag(self.client, host_id, "HostSystem", host_tag) # Create a vm-host affinity policy. create_spec = CreateSpec(vm_tag=vm_tag.id, host_tag=host_tag.id, name=self.policy_name, description=self.policy_desc) print("Creating a VM-Host affinity policy") try: self.policy_id = self.client.vcenter.compute.\ Policies.create(create_spec) except Exception as e: print("Policy creation failed") raise e print("Policy created with id: {}".format(self.policy_id)) # Power-on the virtual machine. print("Powering on {}".format(self.vm_name)) self.client.vcenter.vm.Power.start(self.vm_id) self.vm_info = self.client.vcenter.VM.get(self.vm_id) assert self.vm_info.power_state == Power.State.POWERED_ON # Check the compliance status of the policy on this virtual machine. status = self.client.vcenter.vm.compute.Policies.get( self.vm_id, self.policy_id) print("The compliance status of policy {} for virtual machine " "{} is {}".format(self.policy_id, self.vm_id, status.status))
def run(): global vm vm = get_vm(client, vm_name) if not vm: raise Exception('Sample requires an existing vm with name ({}). ' 'Please create the vm first.'.format(vm_name)) print("Using VM '{}' ({}) for Disk Sample".format(vm_name, vm)) # Get standard portgroup to use as backing for sample standard_network = network_helper.get_network_backing( client, testbed.config['STDPORTGROUP_NAME'], testbed.config['VM_DATACENTER_NAME'], Network.Type.STANDARD_PORTGROUP) # Get distributed portgroup to use as backing for sample distributed_network = network_helper.get_network_backing( client, testbed.config['VDPORTGROUP1_NAME'], testbed.config['VM_DATACENTER_NAME'], Network.Type.DISTRIBUTED_PORTGROUP) # Get opaque portgroup to use as backing for sample opaque_network = None if testbed.config['OPAQUEPORTGROUP1_NAME']: opaque_network = network_helper.get_network_backing( client, testbed.config['OPAQUEPORTGROUP1_NAME'], testbed.config['VM_DATACENTER_NAME'], Network.Type.OPAQUE_NETWORK) print('\n# Example: List all Ethernet adapters for a VM') nic_summaries = client.vcenter.vm.hardware.Ethernet.list(vm=vm) print('vm.hardware.Ethernet.list({}) -> {}'.format(vm, nic_summaries)) # Save current list of Ethernet adapters to verify that we have cleaned # up properly global orig_nic_summaries orig_nic_summaries = nic_summaries # Get information for each Ethernet on the VM for nic_summary in nic_summaries: nic = nic_summary.nic nic_info = client.vcenter.vm.hardware.Ethernet.get(vm=vm, nic=nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, nic_info)) global nics_to_delete print('\n# Example: Create Ethernet Nic using STANDARD_PORTGROUP with ' 'default settings') nic_create_spec = Ethernet.CreateSpec(backing=Ethernet.BackingSpec( type=Ethernet.BackingType.STANDARD_PORTGROUP, network=standard_network)) nic = client.vcenter.vm.hardware.Ethernet.create(vm, nic_create_spec) print('vm.hardware.Ethernet.create({}, {}) -> {}'.format( vm, nic_create_spec, nic)) nics_to_delete.append(nic) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) print('\n# Example: Create Ethernet Nic using DISTRIBUTED_PORTGROUP ' 'with defaults') nic_create_spec = Ethernet.CreateSpec(backing=Ethernet.BackingSpec( type=Ethernet.BackingType.DISTRIBUTED_PORTGROUP, network=distributed_network)) nic = client.vcenter.vm.hardware.Ethernet.create(vm, nic_create_spec) print('vm.hardware.Ethernet.create({}, {}) -> {}'.format( vm, nic_create_spec, nic)) nics_to_delete.append(nic) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) print('\n# Example: Create Ethernet Nic using STANDARD_' 'PORTGROUP specifying') print('# start_connected=True, allow_guest_control=True,') print('# mac_type, mac_Address, wake_on_lan_enabled') nic_create_spec = Ethernet.CreateSpec( start_connected=True, allow_guest_control=True, mac_type=Ethernet.MacAddressType.MANUAL, mac_address='01:23:45:67:89:10', wake_on_lan_enabled=True, backing=Ethernet.BackingSpec( type=Ethernet.BackingType.STANDARD_PORTGROUP, network=standard_network)) nic = client.vcenter.vm.hardware.Ethernet.create(vm, nic_create_spec) print('vm.hardware.Ethernet.create({}, {}) -> {}'.format( vm, nic_create_spec, nic)) nics_to_delete.append(nic) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) print('\n# Example: Create Ethernet Nic using DISTRIBUTED_PORTGROUP ' 'specifying') print('# start_connected=True, allow_guest_control=True,') print('# mac_type, mac_Address, wake_on_lan_enabled') nic_create_spec = Ethernet.CreateSpec( start_connected=True, allow_guest_control=True, mac_type=Ethernet.MacAddressType.MANUAL, mac_address='24:68:10:12:14:16', wake_on_lan_enabled=True, backing=Ethernet.BackingSpec( type=Ethernet.BackingType.DISTRIBUTED_PORTGROUP, network=distributed_network)) nic = client.vcenter.vm.hardware.Ethernet.create(vm, nic_create_spec) print('vm.hardware.Ethernet.create({}, {}) -> {}'.format( vm, nic_create_spec, nic)) nics_to_delete.append(nic) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) if opaque_network: print('\n# Example: Create Ethernet Nic using OPAQUE PORTGROUP with ' 'default settings') nic_create_spec = Ethernet.CreateSpec(backing=Ethernet.BackingSpec( type=Ethernet.BackingType.OPAQUE_NETWORK, network=opaque_network)) nic = client.vcenter.vm.hardware.Ethernet.create(vm, nic_create_spec) print('vm.hardware.Ethernet.create({}, {}) -> {}'.format( vm, nic_create_spec, nic)) nics_to_delete.append(nic) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) # Change the last nic that was created print('\n# Example: Update Ethernet Nic with different backing') nic_update_spec = Ethernet.UpdateSpec(backing=Ethernet.BackingSpec( type=Ethernet.BackingType.STANDARD_PORTGROUP, network=standard_network)) print('vm.hardware.Ethernet.update({}, {}, {})'.format( vm, nic, nic_update_spec)) client.vcenter.vm.hardware.Ethernet.update(vm, nic, nic_update_spec) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) print('\n# Example: Update Ethernet Nic wake_on_lan_enabled=False') print('# mac_type=GENERATED,') print('# start_connected=False,') print('# allow_guest_control=False') nic_update_spec = Ethernet.UpdateSpec( wake_on_lan_enabled=False, mac_type=Ethernet.MacAddressType.GENERATED, start_connected=False, allow_guest_control=False) print('vm.hardware.Ethernet.update({}, {}, {})'.format( vm, nic, nic_update_spec)) client.vcenter.vm.hardware.Ethernet.update(vm, nic, nic_update_spec) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) print('\n# Starting VM to run connect/disconnect sample') print('vm.Power.start({})'.format(vm)) client.vcenter.vm.Power.start(vm) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) print('\n# Example: Connect Ethernet Nic after powering on VM') client.vcenter.vm.hardware.Ethernet.connect(vm, nic) print('vm.hardware.Ethernet.connect({}, {})'.format(vm, nic)) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) print('\n# Example: Disconnect Ethernet Nic while VM is powered on') client.vcenter.vm.hardware.Ethernet.disconnect(vm, nic) print('vm.hardware.Ethernet.disconnect({}, {})'.format(vm, nic)) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) print('\n# Stopping VM after connect/disconnect sample') print('vm.Power.start({})'.format(vm)) client.vcenter.vm.Power.stop(vm) nic_info = client.vcenter.vm.hardware.Ethernet.get(vm, nic) print('vm.hardware.Ethernet.get({}, {}) -> {}'.format( vm, nic, pp(nic_info))) # List all Nics for a VM nic_summaries = client.vcenter.vm.hardware.Ethernet.list(vm=vm) print('vm.hardware.Ethernet.list({}) -> {}'.format(vm, nic_summaries))