// populate the vm attributes for the specified morefs func populateVMAttributes(ctx context.Context, sess *session.Session, refs []types.ManagedObjectReference) ([]mo.VirtualMachine, error) { var vms []mo.VirtualMachine // current attributes we care about attrib := []string{"config", "runtime.powerState", "summary"} // populate the vm properties err := sess.Retrieve(ctx, refs, attrib, &vms) return vms, err }
func (c *Container) Update(ctx context.Context, sess *session.Session) (*executor.ExecutorConfig, error) { defer trace.End(trace.Begin("Container.Update")) c.Lock() defer c.Unlock() if c.vm == nil { return nil, fmt.Errorf("container does not have a vm") } var vm []mo.VirtualMachine if err := sess.Retrieve(ctx, []types.ManagedObjectReference{c.vm.Reference()}, []string{"config"}, &vm); err != nil { return nil, err } extraconfig.Decode(vmomi.OptionValueSource(vm[0].Config.ExtraConfig), c.ExecConfig) return c.ExecConfig, nil }