github.com/vmware/govmomi@v0.51.0/guest/auth_manager.go (about) 1 // © Broadcom. All Rights Reserved. 2 // The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. 3 // SPDX-License-Identifier: Apache-2.0 4 5 package guest 6 7 import ( 8 "context" 9 10 "github.com/vmware/govmomi/vim25" 11 "github.com/vmware/govmomi/vim25/methods" 12 "github.com/vmware/govmomi/vim25/types" 13 ) 14 15 type AuthManager struct { 16 types.ManagedObjectReference 17 18 vm types.ManagedObjectReference 19 20 c *vim25.Client 21 } 22 23 func (m AuthManager) Reference() types.ManagedObjectReference { 24 return m.ManagedObjectReference 25 } 26 27 func (m AuthManager) AcquireCredentials(ctx context.Context, requestedAuth types.BaseGuestAuthentication, sessionID int64) (types.BaseGuestAuthentication, error) { 28 req := types.AcquireCredentialsInGuest{ 29 This: m.Reference(), 30 Vm: m.vm, 31 RequestedAuth: requestedAuth, 32 SessionID: sessionID, 33 } 34 35 res, err := methods.AcquireCredentialsInGuest(ctx, m.c, &req) 36 if err != nil { 37 return nil, err 38 } 39 40 return res.Returnval, nil 41 } 42 43 func (m AuthManager) ReleaseCredentials(ctx context.Context, auth types.BaseGuestAuthentication) error { 44 req := types.ReleaseCredentialsInGuest{ 45 This: m.Reference(), 46 Vm: m.vm, 47 Auth: auth, 48 } 49 50 _, err := methods.ReleaseCredentialsInGuest(ctx, m.c, &req) 51 52 return err 53 } 54 55 func (m AuthManager) ValidateCredentials(ctx context.Context, auth types.BaseGuestAuthentication) error { 56 req := types.ValidateCredentialsInGuest{ 57 This: m.Reference(), 58 Vm: m.vm, 59 Auth: auth, 60 } 61 62 _, err := methods.ValidateCredentialsInGuest(ctx, m.c, &req) 63 if err != nil { 64 return err 65 } 66 67 return nil 68 }