Bump dependencies for build tag fixes
bump github.com/vmware/govmomi/vim25 to HEAD bump bitbucket.org/bertimus9/systemstat to HEAD
This commit is contained in:
64
vendor/github.com/vmware/govmomi/simulator/datacenter.go
generated
vendored
64
vendor/github.com/vmware/govmomi/simulator/datacenter.go
generated
vendored
@@ -20,15 +20,40 @@ import (
|
||||
"strings"
|
||||
|
||||
"github.com/vmware/govmomi/simulator/esx"
|
||||
"github.com/vmware/govmomi/vim25/methods"
|
||||
"github.com/vmware/govmomi/vim25/mo"
|
||||
"github.com/vmware/govmomi/vim25/soap"
|
||||
"github.com/vmware/govmomi/vim25/types"
|
||||
)
|
||||
|
||||
type Datacenter struct {
|
||||
mo.Datacenter
|
||||
|
||||
isESX bool
|
||||
}
|
||||
|
||||
// NewDatacenter creates a Datacenter and its child folders.
|
||||
func NewDatacenter(f *Folder) *Datacenter {
|
||||
dc := &Datacenter{
|
||||
isESX: f.Self == esx.RootFolder.Self,
|
||||
}
|
||||
|
||||
if dc.isESX {
|
||||
dc.Datacenter = esx.Datacenter
|
||||
}
|
||||
|
||||
f.putChild(dc)
|
||||
|
||||
dc.createFolders()
|
||||
|
||||
return dc
|
||||
}
|
||||
|
||||
// Create Datacenter Folders.
|
||||
// Every Datacenter has 4 inventory Folders: Vm, Host, Datastore and Network.
|
||||
// The ESX folder child types are limited to 1 type.
|
||||
// The VC folders have additional child types, including nested folders.
|
||||
func createDatacenterFolders(dc *mo.Datacenter, isVC bool) {
|
||||
func (dc *Datacenter) createFolders() {
|
||||
folders := []struct {
|
||||
ref *types.ManagedObjectReference
|
||||
name string
|
||||
@@ -44,7 +69,11 @@ func createDatacenterFolders(dc *mo.Datacenter, isVC bool) {
|
||||
folder := &Folder{}
|
||||
folder.Name = f.name
|
||||
|
||||
if isVC {
|
||||
if dc.isESX {
|
||||
folder.ChildType = f.types[:1]
|
||||
folder.Self = *f.ref
|
||||
Map.PutEntity(dc, folder)
|
||||
} else {
|
||||
folder.ChildType = f.types
|
||||
e := Map.PutEntity(dc, folder)
|
||||
|
||||
@@ -52,10 +81,6 @@ func createDatacenterFolders(dc *mo.Datacenter, isVC bool) {
|
||||
ref := e.Reference()
|
||||
f.ref.Type = ref.Type
|
||||
f.ref.Value = ref.Value
|
||||
} else {
|
||||
folder.ChildType = f.types[:1]
|
||||
folder.Self = *f.ref
|
||||
Map.PutEntity(dc, folder)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -67,7 +92,7 @@ func createDatacenterFolders(dc *mo.Datacenter, isVC bool) {
|
||||
network.Self = ref
|
||||
network.Name = strings.Split(ref.Value, "-")[1]
|
||||
network.Entity().Name = network.Name
|
||||
if isVC {
|
||||
if !dc.isESX {
|
||||
network.Self.Value = "" // we want a different moid per-DC
|
||||
}
|
||||
|
||||
@@ -76,7 +101,7 @@ func createDatacenterFolders(dc *mo.Datacenter, isVC bool) {
|
||||
}
|
||||
|
||||
func datacenterEventArgument(obj mo.Entity) *types.DatacenterEventArgument {
|
||||
dc, ok := obj.(*mo.Datacenter)
|
||||
dc, ok := obj.(*Datacenter)
|
||||
if !ok {
|
||||
dc = Map.getEntityDatacenter(obj)
|
||||
}
|
||||
@@ -85,3 +110,26 @@ func datacenterEventArgument(obj mo.Entity) *types.DatacenterEventArgument {
|
||||
EntityEventArgument: types.EntityEventArgument{Name: dc.Name},
|
||||
}
|
||||
}
|
||||
|
||||
func (dc *Datacenter) PowerOnMultiVMTask(ctx *Context, req *types.PowerOnMultiVM_Task) soap.HasFault {
|
||||
task := CreateTask(dc, "powerOnMultiVM", func(_ *Task) (types.AnyType, types.BaseMethodFault) {
|
||||
if dc.isESX {
|
||||
return nil, new(types.NotImplemented)
|
||||
}
|
||||
|
||||
for _, ref := range req.Vm {
|
||||
vm := Map.Get(ref).(*VirtualMachine)
|
||||
Map.WithLock(vm, func() {
|
||||
vm.PowerOnVMTask(ctx, &types.PowerOnVM_Task{})
|
||||
})
|
||||
}
|
||||
|
||||
return nil, nil
|
||||
})
|
||||
|
||||
return &methods.PowerOnMultiVM_TaskBody{
|
||||
Res: &types.PowerOnMultiVM_TaskResponse{
|
||||
Returnval: task.Run(),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user