github.com/vmware/govmomi@v0.51.0/eam/simulator/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 simulator
     6  
     7  import (
     8  	"github.com/vmware/govmomi/eam/internal"
     9  	"github.com/vmware/govmomi/eam/methods"
    10  	"github.com/vmware/govmomi/eam/types"
    11  	"github.com/vmware/govmomi/simulator"
    12  	"github.com/vmware/govmomi/vim25/soap"
    13  	vim "github.com/vmware/govmomi/vim25/types"
    14  )
    15  
    16  // EsxAgentManager is the main entry point for a solution to create
    17  // agencies in the vSphere ESX Agent Manager server.
    18  type EsxAgentManager struct {
    19  	EamObject
    20  }
    21  
    22  func (m *EsxAgentManager) CreateAgency(
    23  	ctx *simulator.Context,
    24  	req *types.CreateAgency) soap.HasFault {
    25  
    26  	var res methods.CreateAgencyBody
    27  
    28  	if agency, err := NewAgency(
    29  		ctx,
    30  		req.AgencyConfigInfo,
    31  		req.InitialGoalState); err != nil {
    32  
    33  		res.Fault_ = simulator.Fault("", err)
    34  
    35  	} else {
    36  		res.Res = &types.CreateAgencyResponse{
    37  			Returnval: agency.Self,
    38  		}
    39  	}
    40  
    41  	return &res
    42  }
    43  
    44  func (m *EsxAgentManager) QueryAgency(
    45  	ctx *simulator.Context,
    46  	req *types.QueryAgency) soap.HasFault {
    47  
    48  	objs := ctx.Map.AllReference(internal.Agency)
    49  	moRefs := make([]vim.ManagedObjectReference, len(objs))
    50  	i := 0
    51  	for _, ref := range objs {
    52  		moRefs[i] = ref.Reference()
    53  		i++
    54  	}
    55  	return &methods.QueryAgencyBody{
    56  		Res: &types.QueryAgencyResponse{
    57  			Returnval: moRefs,
    58  		},
    59  	}
    60  }
    61  
    62  func (m *EsxAgentManager) ScanForUnknownAgentVm(
    63  	ctx *simulator.Context,
    64  	req *types.ScanForUnknownAgentVm) soap.HasFault {
    65  
    66  	return &methods.ScanForUnknownAgentVmBody{
    67  		Res: &types.ScanForUnknownAgentVmResponse{},
    68  	}
    69  }