github.com/vmware/govmomi@v0.51.0/eam/object/esx_agent_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 object
     6  
     7  import (
     8  	"context"
     9  
    10  	"github.com/vmware/govmomi/eam"
    11  	"github.com/vmware/govmomi/eam/methods"
    12  	"github.com/vmware/govmomi/eam/types"
    13  	vim "github.com/vmware/govmomi/vim25/types"
    14  )
    15  
    16  type EsxAgentManager struct {
    17  	EamObject
    18  }
    19  
    20  // NewEsxAgentManager returns a wrapper for an EsxAgentManager managed object.
    21  func NewEsxAgentManager(c *eam.Client, ref vim.ManagedObjectReference) EsxAgentManager {
    22  	return EsxAgentManager{
    23  		EamObject: EamObject{
    24  			c: c,
    25  			r: ref,
    26  		},
    27  	}
    28  }
    29  
    30  func (m EsxAgentManager) CreateAgency(
    31  	ctx context.Context,
    32  	config types.BaseAgencyConfigInfo,
    33  	initialGoalState string) (Agency, error) {
    34  
    35  	var agency Agency
    36  	resp, err := methods.CreateAgency(ctx, m.c, &types.CreateAgency{
    37  		This:             m.r,
    38  		AgencyConfigInfo: config,
    39  		InitialGoalState: initialGoalState,
    40  	})
    41  	if err != nil {
    42  		return agency, err
    43  	}
    44  	agency.c = m.c
    45  	agency.r = resp.Returnval
    46  	return agency, nil
    47  }
    48  
    49  func (m EsxAgentManager) Agencies(ctx context.Context) ([]Agency, error) {
    50  	resp, err := methods.QueryAgency(ctx, m.c, &types.QueryAgency{
    51  		This: m.r,
    52  	})
    53  	if err != nil {
    54  		return nil, err
    55  	}
    56  	objs := make([]Agency, len(resp.Returnval))
    57  	for i := range resp.Returnval {
    58  		objs[i].c = m.c
    59  		objs[i].r = resp.Returnval[i]
    60  	}
    61  	return objs, nil
    62  }
    63  
    64  func (m EsxAgentManager) ScanForUnknownAgentVm(ctx context.Context) error {
    65  	_, err := methods.ScanForUnknownAgentVm(ctx, m.c, &types.ScanForUnknownAgentVm{
    66  		This: m.r,
    67  	})
    68  	if err != nil {
    69  		return err
    70  	}
    71  	return nil
    72  }