本文整理汇总了Golang中github.com/vmware/govmomi/object.ComputeResource类的典型用法代码示例。如果您正苦于以下问题:Golang ComputeResource类的具体用法?Golang ComputeResource怎么用?Golang ComputeResource使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了ComputeResource类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: ComputeResourceList
func (f *Finder) ComputeResourceList(ctx context.Context, path string) ([]*object.ComputeResource, error) {
es, err := f.find(ctx, f.hostFolder, false, path)
if err != nil {
return nil, err
}
var crs []*object.ComputeResource
for _, e := range es {
var cr *object.ComputeResource
switch o := e.Object.(type) {
case mo.ComputeResource, mo.ClusterComputeResource:
cr = object.NewComputeResource(f.client, o.Reference())
default:
continue
}
cr.InventoryPath = e.Path
crs = append(crs, cr)
}
if len(crs) == 0 {
return nil, &NotFoundError{"compute resource", path}
}
return crs, nil
}
示例2: LocalDatastores
func (h *Helper) LocalDatastores(ctx context.Context, cr *object.ComputeResource) ([]*object.Datastore, error) {
// List datastores for compute resource
dss, err := cr.Datastores(ctx)
if err != nil {
return nil, err
}
// Filter local datastores
var ldss []*object.Datastore
for _, ds := range dss {
var mds mo.Datastore
err = property.DefaultCollector(h.c).RetrieveOne(ctx, ds.Reference(), nil, &mds)
if err != nil {
return nil, err
}
switch i := mds.Info.(type) {
case *types.VmfsDatastoreInfo:
if i.Vmfs.Local != nil && *i.Vmfs.Local == true {
break
}
default:
continue
}
ds.InventoryPath = mds.Name
ldss = append(ldss, ds)
}
return ldss, nil
}