当前位置: 首页>>代码示例>>Golang>>正文


Golang Datastore.Reference方法代码示例

如果您正苦于以下问题:Golang Datastore.Reference方法的具体用法?Golang Datastore.Reference怎么用?Golang Datastore.Reference使用的例子?那么, 这里精选的代码示例或许可以为您提供帮助。也可以进一步了解该方法所在github.com/vmware/govmomi/object.Datastore的示例。

以下是Datastore.Reference方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为感觉有用的代码点赞,您的评价将有助于系统推荐出更好的Golang代码示例。


示例1: buildVMRelocateSpec

// buildVMRelocateSpec builds VirtualMachineRelocateSpec to set a place for a new VirtualMachine.
func buildVMRelocateSpec(rp *object.ResourcePool, ds *object.Datastore, vm *object.VirtualMachine) (types.VirtualMachineRelocateSpec, error) {
    var key int

    devices, err := vm.Device(context.TODO())
    if err != nil {
        return types.VirtualMachineRelocateSpec{}, err
    }
    for _, d := range devices {
        if devices.Type(d) == "disk" {
            key = d.GetVirtualDevice().Key
        }
    }

    rpr := rp.Reference()
    dsr := ds.Reference()
    return types.VirtualMachineRelocateSpec{
        Datastore: &dsr,
        Pool:      &rpr,
        Disk: []types.VirtualMachineRelocateSpecDiskLocator{
            types.VirtualMachineRelocateSpecDiskLocator{
                Datastore: dsr,
                DiskBackingInfo: &types.VirtualDiskFlatVer2BackingInfo{
                    DiskMode:        "persistent",
                    ThinProvisioned: types.NewBool(false),
                    EagerlyScrub:    types.NewBool(true),
                },
                DiskId: key,
            },
        },
    }, nil
}
开发者ID:AssertSelenium,项目名称:terraform,代码行数:32,代码来源:resource_vsphere_virtual_machine.go

示例2: buildVMRelocateSpec

// buildVMRelocateSpec builds VirtualMachineRelocateSpec to set a place for a new VirtualMachine.
func buildVMRelocateSpec(finder *find.Finder, rp *object.ResourcePool, ds *object.Datastore, vm *object.VirtualMachine, linked bool) (types.VirtualMachineRelocateSpec, error) {
    var key int
    var parent *types.VirtualDiskFlatVer2BackingInfo

    devices, err := vm.Device(context.TODO())
    if err != nil {
        return types.VirtualMachineRelocateSpec{}, err
    }

    for _, d := range devices {
        if devices.Type(d) == "disk" {
            vd := d.GetVirtualDevice()
            parent = vd.Backing.(*types.VirtualDiskFlatVer2BackingInfo)
            key = vd.Key
        }
    }

    rpr := rp.Reference()
    relocateSpec := types.VirtualMachineRelocateSpec{}
    // Treat linked clones a bit differently.
    if linked {
        parentDs := strings.SplitN(parent.FileName[1:], "]", 2)
        parentDsObj, err := finder.Datastore(context.TODO(), parentDs[0])
        if err != nil {
            return types.VirtualMachineRelocateSpec{}, err
        }

        parentDbObjRef := parentDsObj.Reference()
        relocateSpec = types.VirtualMachineRelocateSpec{
            Datastore:    &parentDbObjRef,
            Pool:         &rpr,
            DiskMoveType: "createNewChildDiskBacking",
        }
    } else {
        dsr := ds.Reference()

        relocateSpec = types.VirtualMachineRelocateSpec{
            Datastore: &dsr,
            Pool:      &rpr,
            Disk: []types.VirtualMachineRelocateSpecDiskLocator{
                types.VirtualMachineRelocateSpecDiskLocator{
                    Datastore: dsr,
                    DiskId:    key,
                    DiskBackingInfo: &types.VirtualDiskFlatVer2BackingInfo{
                        DiskMode:        "persistent",
                        ThinProvisioned: types.NewBool(false),
                        EagerlyScrub:    types.NewBool(true),
                    },
                },
            },
        }
    }

    return relocateSpec, nil
}
开发者ID:NetworkBytes,项目名称:terraform,代码行数:56,代码来源:resource_vsphere_virtual_machine.go

示例3: addHardDisk

// addHardDisk adds a new Hard Disk to the VirtualMachine.
func addHardDisk(vm *object.VirtualMachine, size, iops int64, diskType string, datastore *object.Datastore, diskPath string, controller_type string) error {
    devices, err := vm.Device(context.TODO())
    if err != nil {
        return err
    }
    log.Printf("[DEBUG] vm devices: %#v\n", devices)

    controller, err := devices.FindDiskController(controller_type)
    if err != nil {
        return err
    }
    log.Printf("[DEBUG] disk controller: %#v\n", controller)

    // TODO Check if diskPath & datastore exist
    // If diskPath is not specified, pass empty string to CreateDisk()
    if diskPath == "" {
        return fmt.Errorf("[ERROR] addHardDisk - No path proided")
    } else {
        // TODO Check if diskPath & datastore exist
        diskPath = fmt.Sprintf("[%v] %v", datastore.Name(), diskPath)
    }
    log.Printf("[DEBUG] addHardDisk - diskPath: %v", diskPath)
    disk := devices.CreateDisk(controller, datastore.Reference(), diskPath)

    existing := devices.SelectByBackingInfo(disk.Backing)
    log.Printf("[DEBUG] disk: %#v\n", disk)

    if len(existing) == 0 {
        disk.CapacityInKB = int64(size * 1024 * 1024)
        if iops != 0 {
            disk.StorageIOAllocation = &types.StorageIOAllocationInfo{
                Limit: iops,
            }
        }
        backing := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo)

        if diskType == "eager_zeroed" {
            // eager zeroed thick virtual disk
            backing.ThinProvisioned = types.NewBool(false)
            backing.EagerlyScrub = types.NewBool(true)
        } else if diskType == "thin" {
            // thin provisioned virtual disk
            backing.ThinProvisioned = types.NewBool(true)
        }

        log.Printf("[DEBUG] addHardDisk: %#v\n", disk)
        log.Printf("[DEBUG] addHardDisk capacity: %#v\n", disk.CapacityInKB)

        return vm.AddDevice(context.TODO(), disk)
    } else {
        log.Printf("[DEBUG] addHardDisk: Disk already present.\n")

        return nil
    }
}
开发者ID:srikalyan,项目名称:terraform,代码行数:56,代码来源:resource_vsphere_virtual_machine.go

示例4: addHardDisk

// addHardDisk adds a new Hard Disk to the VirtualMachine.
func addHardDisk(vm *object.VirtualMachine, size, iops int64, diskType string, datastore *object.Datastore, diskPath string) error {
    devices, err := vm.Device(context.TODO())
    if err != nil {
        return err
    }
    log.Printf("[DEBUG] vm devices: %#v\n", devices)

    controller, err := devices.FindDiskController("scsi")
    if err != nil {
        return err
    }
    log.Printf("[DEBUG] disk controller: %#v\n", controller)

    disk := devices.CreateDisk(controller, datastore.Reference(), diskPath)
    existing := devices.SelectByBackingInfo(disk.Backing)
    log.Printf("[DEBUG] disk: %#v\n", disk)

    if len(existing) == 0 {
        disk.CapacityInKB = int64(size * 1024 * 1024)
        if iops != 0 {
            disk.StorageIOAllocation = &types.StorageIOAllocationInfo{
                Limit: iops,
            }
        }
        backing := disk.Backing.(*types.VirtualDiskFlatVer2BackingInfo)

        if diskType == "eager_zeroed" {
            // eager zeroed thick virtual disk
            backing.ThinProvisioned = types.NewBool(false)
            backing.EagerlyScrub = types.NewBool(true)
        } else if diskType == "thin" {
            // thin provisioned virtual disk
            backing.ThinProvisioned = types.NewBool(true)
        }

        log.Printf("[DEBUG] addHardDisk: %#v\n", disk)
        log.Printf("[DEBUG] addHardDisk: %#v\n", disk.CapacityInKB)

        return vm.AddDevice(context.TODO(), disk)
    } else {
        log.Printf("[DEBUG] addHardDisk: Disk already present.\n")

        return nil
    }
}
开发者ID:ack,项目名称:terraform,代码行数:46,代码来源:resource_vsphere_virtual_machine.go

示例5: AddDisk

func (c *configSpec) AddDisk(ds *object.Datastore, path string) {
    var devices object.VirtualDeviceList

    controller, err := devices.CreateSCSIController("")
    if err != nil {
        panic(err)
    }
    devices = append(devices, controller)

    disk := devices.CreateDisk(controller.(types.BaseVirtualController), ds.Reference(), ds.Path(path))
    devices = append(devices, disk)

    spec, err := devices.ConfigSpec(types.VirtualDeviceConfigSpecOperationAdd)
    if err != nil {
        panic(err)
    }

    c.DeviceChange = append(c.DeviceChange, spec...)
}
开发者ID:vmware,项目名称:vic,代码行数:19,代码来源:vmdk.go

示例6: buildVMRelocateSpec

// buildVMRelocateSpec builds VirtualMachineRelocateSpec to set a place for a new VirtualMachine.
func buildVMRelocateSpec(rp *object.ResourcePool, ds *object.Datastore, vm *object.VirtualMachine, linkedClone bool, initType string) (types.VirtualMachineRelocateSpec, error) {
    var key int
    var moveType string
    if linkedClone {
        moveType = "createNewChildDiskBacking"
    } else {
        moveType = "moveAllDiskBackingsAndDisallowSharing"
    }
    log.Printf("[DEBUG] relocate type: [%s]", moveType)

    devices, err := vm.Device(context.TODO())
    if err != nil {
        return types.VirtualMachineRelocateSpec{}, err
    }
    for _, d := range devices {
        if devices.Type(d) == "disk" {
            key = d.GetVirtualDevice().Key
        }
    }

    isThin := initType == "thin"
    rpr := rp.Reference()
    dsr := ds.Reference()
    return types.VirtualMachineRelocateSpec{
        Datastore:    &dsr,
        Pool:         &rpr,
        DiskMoveType: moveType,
        Disk: []types.VirtualMachineRelocateSpecDiskLocator{
            types.VirtualMachineRelocateSpecDiskLocator{
                Datastore: dsr,
                DiskBackingInfo: &types.VirtualDiskFlatVer2BackingInfo{
                    DiskMode:        "persistent",
                    ThinProvisioned: types.NewBool(isThin),
                    EagerlyScrub:    types.NewBool(!isThin),
                },
                DiskId: key,
            },
        },
    }, nil
}
开发者ID:mafrosis,项目名称:terraform,代码行数:41,代码来源:resource_vsphere_virtual_machine.go

示例7: cloneVm

// cloneVm creates the virtual machine using a template.
func (vm *VirtualMachine) cloneVm(f *object.Folder, p *object.ResourcePool, ds *object.Datastore, h *object.HostSystem) error {
    Logf("%s cloning virtual machine from %s\n", vm.ID(), vm.TemplateConfig.Use)

    obj, err := vm.finder.VirtualMachine(vm.ctx, vm.TemplateConfig.Use)
    if err != nil {
        return err
    }

    folderRef := f.Reference()
    datastoreRef := ds.Reference()
    poolRef := p.Reference()

    var hostRef *types.ManagedObjectReference
    if h != nil {
        ref := h.Reference()
        hostRef = &ref
    }

    spec := types.VirtualMachineCloneSpec{
        Location: types.VirtualMachineRelocateSpec{
            Folder:    &folderRef,
            Datastore: &datastoreRef,
            Pool:      &poolRef,
            Host:      hostRef,
        },
        Template: vm.TemplateConfig.MarkAsTemplate,
        PowerOn:  vm.TemplateConfig.PowerOn,
    }

    task, err := obj.Clone(vm.ctx, f, vm.Name, spec)
    if err != nil {
        return err
    }

    return task.Wait(vm.ctx)
}
开发者ID:dnaeon,项目名称:gru,代码行数:37,代码来源:vsphere_vm.go

示例8: createVirtualMachine


//.........这里部分代码省略.........
                Value: &value,
            }
            log.Printf("[DEBUG] virtual machine Extra Config spec: %s,%s", k, v)
            ov = append(ov, &o)
        }
        configSpec.ExtraConfig = ov
        log.Printf("[DEBUG] virtual machine Extra Config spec: %v", configSpec.ExtraConfig)
    }

    var datastore *object.Datastore
    if vm.datastore == "" {
        datastore, err = finder.DefaultDatastore(context.TODO())
        if err != nil {
            return err
        }
    } else {
        datastore, err = finder.Datastore(context.TODO(), vm.datastore)
        if err != nil {
            // TODO: datastore cluster support in govmomi finder function
            d, err := getDatastoreObject(c, dcFolders, vm.datastore)
            if err != nil {
                return err
            }

            if d.Type == "StoragePod" {
                sp := object.StoragePod{
                    Folder: object.NewFolder(c.Client, d),
                }
                sps := buildStoragePlacementSpecCreate(dcFolders, resourcePool, sp, configSpec)
                datastore, err = findDatastore(c, sps)
                if err != nil {
                    return err
                }
            } else {
                datastore = object.NewDatastore(c.Client, d)
            }
        }
    }

    log.Printf("[DEBUG] datastore: %#v", datastore)

    var mds mo.Datastore
    if err = datastore.Properties(context.TODO(), datastore.Reference(), []string{"name"}, &mds); err != nil {
        return err
    }
    log.Printf("[DEBUG] datastore: %#v", mds.Name)
    scsi, err := object.SCSIControllerTypes().CreateSCSIController("scsi")
    if err != nil {
        log.Printf("[ERROR] %s", err)
    }

    configSpec.DeviceChange = append(configSpec.DeviceChange, &types.VirtualDeviceConfigSpec{
        Operation: types.VirtualDeviceConfigSpecOperationAdd,
        Device:    scsi,
    })

    configSpec.Files = &types.VirtualMachineFileInfo{VmPathName: fmt.Sprintf("[%s]", mds.Name)}

    task, err := folder.CreateVM(context.TODO(), configSpec, resourcePool, nil)
    if err != nil {
        log.Printf("[ERROR] %s", err)
    }

    err = task.Wait(context.TODO())
    if err != nil {
        log.Printf("[ERROR] %s", err)
    }

    newVM, err := finder.VirtualMachine(context.TODO(), vm.Path())
    if err != nil {
        return err
    }
    log.Printf("[DEBUG] new vm: %v", newVM)

    log.Printf("[DEBUG] add hard disk: %v", vm.hardDisks)
    for _, hd := range vm.hardDisks {
        log.Printf("[DEBUG] add hard disk: %v", hd.size)
        log.Printf("[DEBUG] add hard disk: %v", hd.iops)
        err = addHardDisk(newVM, hd.size, hd.iops, "thin", datastore, hd.vmdkPath)
        if err != nil {
            return err
        }
    }

    // Create the cdroms if needed.
    if err := createCdroms(newVM, vm.cdroms); err != nil {
        return err
    }

    if vm.bootableVmdk {
        newVM.PowerOn(context.TODO())
        ip, err := newVM.WaitForIP(context.TODO())
        if err != nil {
            return err
        }
        log.Printf("[DEBUG] ip address: %v", ip)
    }

    return nil
}
开发者ID:mafrosis,项目名称:terraform,代码行数:101,代码来源:resource_vsphere_virtual_machine.go

示例9: createVirtualMachine

// createVirtualMchine creates a new VirtualMachine.
func (vm *virtualMachine) createVirtualMachine(c *govmomi.Client) error {
    dc, err := getDatacenter(c, vm.datacenter)
    if err != nil {
        return err
    }
    finder := find.NewFinder(c.Client, true)
    finder = finder.SetDatacenter(dc)

    var resourcePool *object.ResourcePool
    if vm.resourcePool == "" {
        if vm.cluster == "" {
            resourcePool, err = finder.DefaultResourcePool(context.TODO())
            if err != nil {
                return err
            }
        } else {
            resourcePool, err = finder.ResourcePool(context.TODO(), "*"+vm.cluster+"/Resources")
            if err != nil {
                return err
            }
        }
    } else {
        resourcePool, err = finder.ResourcePool(context.TODO(), vm.resourcePool)
        if err != nil {
            return err
        }
    }
    log.Printf("[DEBUG] resource pool: %#v", resourcePool)

    dcFolders, err := dc.Folders(context.TODO())
    if err != nil {
        return err
    }

    // network
    networkDevices := []types.BaseVirtualDeviceConfigSpec{}
    for _, network := range vm.networkInterfaces {
        // network device
        nd, err := createNetworkDevice(finder, network.label, "e1000")
        if err != nil {
            return err
        }
        networkDevices = append(networkDevices, nd)
    }

    // make config spec
    configSpec := types.VirtualMachineConfigSpec{
        GuestId:           "otherLinux64Guest",
        Name:              vm.name,
        NumCPUs:           vm.vcpu,
        NumCoresPerSocket: 1,
        MemoryMB:          vm.memoryMb,
        DeviceChange:      networkDevices,
    }
    log.Printf("[DEBUG] virtual machine config spec: %v", configSpec)

    var datastore *object.Datastore
    if vm.datastore == "" {
        datastore, err = finder.DefaultDatastore(context.TODO())
        if err != nil {
            return err
        }
    } else {
        datastore, err = finder.Datastore(context.TODO(), vm.datastore)
        if err != nil {
            // TODO: datastore cluster support in govmomi finder function
            d, err := getDatastoreObject(c, dcFolders, vm.datastore)
            if err != nil {
                return err
            }

            if d.Type == "StoragePod" {
                sp := object.StoragePod{
                    object.NewFolder(c.Client, d),
                }
                sps := createStoragePlacementSpecCreate(dcFolders, resourcePool, sp, configSpec)
                datastore, err = findDatastore(c, sps)
                if err != nil {
                    return err
                }
            } else {
                datastore = object.NewDatastore(c.Client, d)
            }
        }
    }

    log.Printf("[DEBUG] datastore: %#v", datastore)

    var mds mo.Datastore
    if err = datastore.Properties(context.TODO(), datastore.Reference(), []string{"name"}, &mds); err != nil {
        return err
    }
    log.Printf("[DEBUG] datastore: %#v", mds.Name)
    scsi, err := object.SCSIControllerTypes().CreateSCSIController("scsi")
    if err != nil {
        log.Printf("[ERROR] %s", err)
    }

    configSpec.DeviceChange = append(configSpec.DeviceChange, &types.VirtualDeviceConfigSpec{
//.........这里部分代码省略.........
开发者ID:krishnagade18,项目名称:terraform,代码行数:101,代码来源:resource_vsphere_virtual_machine.go

示例10: setupVirtualMachine

func (vm *virtualMachine) setupVirtualMachine(c *govmomi.Client) error {
    dc, err := getDatacenter(c, vm.datacenter)

    if err != nil {
        return err
    }
    finder := find.NewFinder(c.Client, true)
    finder = finder.SetDatacenter(dc)

    var template *object.VirtualMachine
    var template_mo mo.VirtualMachine
    if vm.template != "" {
        template, err = finder.VirtualMachine(context.TODO(), vm.template)
        if err != nil {
            return err
        }
        log.Printf("[DEBUG] template: %#v", template)

        err = template.Properties(context.TODO(), template.Reference(), []string{"parent", "config.template", "config.guestId", "resourcePool", "snapshot", "guest.toolsVersionStatus2", "config.guestFullName"}, &template_mo)
        if err != nil {
            return err
        }
    }

    var resourcePool *object.ResourcePool
    if vm.resourcePool == "" {
        if vm.cluster == "" {
            resourcePool, err = finder.DefaultResourcePool(context.TODO())
            if err != nil {
                return err
            }
        } else {
            resourcePool, err = finder.ResourcePool(context.TODO(), "*"+vm.cluster+"/Resources")
            if err != nil {
                return err
            }
        }
    } else {
        resourcePool, err = finder.ResourcePool(context.TODO(), vm.resourcePool)
        if err != nil {
            return err
        }
    }
    log.Printf("[DEBUG] resource pool: %#v", resourcePool)

    dcFolders, err := dc.Folders(context.TODO())
    if err != nil {
        return err
    }
    log.Printf("[DEBUG] folder: %#v", vm.folder)

    folder := dcFolders.VmFolder
    if len(vm.folder) > 0 {
        si := object.NewSearchIndex(c.Client)
        folderRef, err := si.FindByInventoryPath(
            context.TODO(), fmt.Sprintf("%v/vm/%v", vm.datacenter, vm.folder))
        if err != nil {
            return fmt.Errorf("Error reading folder %s: %s", vm.folder, err)
        } else if folderRef == nil {
            return fmt.Errorf("Cannot find folder %s", vm.folder)
        } else {
            folder = folderRef.(*object.Folder)
        }
    }

    // make config spec
    configSpec := types.VirtualMachineConfigSpec{
        Name:              vm.name,
        NumCPUs:           vm.vcpu,
        NumCoresPerSocket: 1,
        MemoryMB:          vm.memoryMb,
        MemoryAllocation: &types.ResourceAllocationInfo{
            Reservation: vm.memoryAllocation.reservation,
        },
    }
    if vm.template == "" {
        configSpec.GuestId = "otherLinux64Guest"
    }
    log.Printf("[DEBUG] virtual machine config spec: %v", configSpec)

    // make ExtraConfig
    log.Printf("[DEBUG] virtual machine Extra Config spec start")
    if len(vm.customConfigurations) > 0 {
        var ov []types.BaseOptionValue
        for k, v := range vm.customConfigurations {
            key := k
            value := v
            o := types.OptionValue{
                Key:   key,
                Value: &value,
            }
            log.Printf("[DEBUG] virtual machine Extra Config spec: %s,%s", k, v)
            ov = append(ov, &o)
        }
        configSpec.ExtraConfig = ov
        log.Printf("[DEBUG] virtual machine Extra Config spec: %v", configSpec.ExtraConfig)
    }

    var datastore *object.Datastore
    if vm.datastore == "" {
//.........这里部分代码省略.........
开发者ID:ack,项目名称:terraform,代码行数:101,代码来源:resource_vsphere_virtual_machine.go

示例11: createVirtualMachine

// createVirtualMchine creates a new VirtualMachine.
func (vm *virtualMachine) createVirtualMachine(c *govmomi.Client) error {
    var dc *object.Datacenter
    var err error

    finder := find.NewFinder(c.Client, true)

    if vm.datacenter != "" {
        dc, err = finder.Datacenter(context.TODO(), vm.datacenter)
        if err != nil {
            return err
        }
    } else {
        dc, err = finder.DefaultDatacenter(context.TODO())
        if err != nil {
            return err
        }
    }
    finder = finder.SetDatacenter(dc)

    var resourcePool *object.ResourcePool
    if vm.resourcePool == "" {
        if vm.cluster == "" {
            resourcePool, err = finder.DefaultResourcePool(context.TODO())
            if err != nil {
                return err
            }
        } else {
            resourcePool, err = finder.ResourcePool(context.TODO(), "*"+vm.cluster+"/Resources")
            if err != nil {
                return err
            }
        }
    } else {
        resourcePool, err = finder.ResourcePool(context.TODO(), vm.resourcePool)
        if err != nil {
            return err
        }
    }
    log.Printf("[DEBUG] resource pool: %#v", resourcePool)

    dcFolders, err := dc.Folders(context.TODO())
    if err != nil {
        return err
    }

    // network
    networkDevices := []types.BaseVirtualDeviceConfigSpec{}
    for _, network := range vm.networkInterfaces {
        // network device
        nd, err := createNetworkDevice(finder, network.label, "e1000")
        if err != nil {
            return err
        }
        networkDevices = append(networkDevices, nd)
    }

    // make config spec
    configSpec := types.VirtualMachineConfigSpec{
        GuestId:           "otherLinux64Guest",
        Name:              vm.name,
        NumCPUs:           vm.vcpu,
        NumCoresPerSocket: 1,
        MemoryMB:          vm.memoryMb,
        DeviceChange:      networkDevices,
    }
    log.Printf("[DEBUG] virtual machine config spec: %v", configSpec)

    var datastore *object.Datastore
    if vm.datastore == "" {
        datastore, err = finder.DefaultDatastore(context.TODO())
        if err != nil {
            return err
        }
    } else {
        s := object.NewSearchIndex(c.Client)
        ref, err := s.FindChild(context.TODO(), dcFolders.DatastoreFolder, vm.datastore)
        if err != nil {
            return err
        }
        log.Printf("[DEBUG] findDatastore: reference: %#v", ref)

        mor := ref.Reference()
        if mor.Type == "StoragePod" {
            storagePod := object.NewFolder(c.Client, mor)

            vmfr := dcFolders.VmFolder.Reference()
            rpr := resourcePool.Reference()
            spr := storagePod.Reference()

            sps := types.StoragePlacementSpec{
                Type:       "create",
                ConfigSpec: &configSpec,
                PodSelectionSpec: types.StorageDrsPodSelectionSpec{
                    StoragePod: &spr,
                },
                Folder:       &vmfr,
                ResourcePool: &rpr,
            }
            log.Printf("[DEBUG] findDatastore: StoragePlacementSpec: %#v\n", sps)
//.........这里部分代码省略.........
开发者ID:panther-it,项目名称:terraform-provider-vsphere,代码行数:101,代码来源:virtual_machine.go


注:本文中的github.com/vmware/govmomi/object.Datastore.Reference方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。