Example #1
0
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)))
Example #2
0
    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))
Example #3
0
    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)))
Example #4
0
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)
Example #9
0
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)))
Example #13
0
 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))
Example #14
0
    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))
Example #15
0
 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)
Example #18
0
    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))
Example #19
0
    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))
Example #20
0
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()
Example #21
0
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))
Example #22
0
 def poweroff_default_vm(self):
     vm = get_vm(self.vsphere_client, self.d_vm_name_default)
     self.vsphere_client.vcenter.vm.Power.stop(vm)
Example #23
0
 def suspend_default_vm(self):
     vm = get_vm(self.vsphere_client, self.d_vm_name_default)
     self.vsphere_client.vcenter.vm.Power.suspend(vm)
Example #24
0
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()
Example #26
0
 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))
Example #28
0
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))