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  }