github.com/vmware/govmomi@v0.51.0/eam/object/agency.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 Agency struct {
    17  	EamObject
    18  }
    19  
    20  // NewAgency returns a wrapper for an Agency managed object.
    21  func NewAgency(c *eam.Client, ref vim.ManagedObjectReference) Agency {
    22  	return Agency{
    23  		EamObject: EamObject{
    24  			c: c,
    25  			r: ref,
    26  		},
    27  	}
    28  }
    29  
    30  func (m Agency) Agents(ctx context.Context) ([]Agent, error) {
    31  	resp, err := methods.QueryAgent(ctx, m.c, &types.QueryAgent{
    32  		This: m.r,
    33  	})
    34  	if err != nil {
    35  		return nil, err
    36  	}
    37  	objs := make([]Agent, len(resp.Returnval))
    38  	for i := range resp.Returnval {
    39  		objs[i].c = m.c
    40  		objs[i].r = resp.Returnval[i]
    41  	}
    42  	return objs, nil
    43  }
    44  
    45  func (m Agency) Config(ctx context.Context) (types.BaseAgencyConfigInfo, error) {
    46  	resp, err := methods.QueryConfig(ctx, m.c, &types.QueryConfig{
    47  		This: m.r,
    48  	})
    49  	if err != nil {
    50  		return nil, err
    51  	}
    52  	return resp.Returnval, nil
    53  }
    54  
    55  func (m Agency) Runtime(ctx context.Context) (*types.EamObjectRuntimeInfo, error) {
    56  	resp, err := methods.AgencyQueryRuntime(ctx, m.c, &types.AgencyQueryRuntime{
    57  		This: m.r,
    58  	})
    59  	if err != nil {
    60  		return nil, err
    61  	}
    62  	return resp.Returnval.GetEamObjectRuntimeInfo(), nil
    63  }
    64  
    65  func (m Agency) SolutionId(ctx context.Context) (string, error) {
    66  	resp, err := methods.QuerySolutionId(ctx, m.c, &types.QuerySolutionId{
    67  		This: m.r,
    68  	})
    69  	if err != nil {
    70  		return "", err
    71  	}
    72  	return resp.Returnval, nil
    73  }
    74  
    75  func (m Agency) Destroy(ctx context.Context) error {
    76  	_, err := methods.DestroyAgency(ctx, m.c, &types.DestroyAgency{
    77  		This: m.r,
    78  	})
    79  	if err != nil {
    80  		return err
    81  	}
    82  	return nil
    83  }
    84  
    85  func (m Agency) Disable(ctx context.Context) error {
    86  	_, err := methods.Agency_Disable(ctx, m.c, &types.Agency_Disable{
    87  		This: m.r,
    88  	})
    89  	if err != nil {
    90  		return err
    91  	}
    92  	return nil
    93  }
    94  
    95  func (m Agency) Enable(ctx context.Context) error {
    96  	_, err := methods.Agency_Enable(ctx, m.c, &types.Agency_Enable{
    97  		This: m.r,
    98  	})
    99  	if err != nil {
   100  		return err
   101  	}
   102  	return nil
   103  }
   104  
   105  func (m Agency) RegisterAgentVm(
   106  	ctx context.Context,
   107  	agentVmMoRef vim.ManagedObjectReference) (*Agent, error) {
   108  
   109  	resp, err := methods.RegisterAgentVm(ctx, m.c, &types.RegisterAgentVm{
   110  		This:    m.r,
   111  		AgentVm: agentVmMoRef,
   112  	})
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	return NewAgent(m.c, resp.Returnval), nil
   117  }
   118  
   119  func (m Agency) Uninstall(ctx context.Context) error {
   120  	_, err := methods.Uninstall(ctx, m.c, &types.Uninstall{
   121  		This: m.r,
   122  	})
   123  	if err != nil {
   124  		return err
   125  	}
   126  	return nil
   127  }
   128  
   129  func (m Agency) UnregisterAgentVm(
   130  	ctx context.Context,
   131  	agentVmMoRef vim.ManagedObjectReference) error {
   132  
   133  	_, err := methods.UnregisterAgentVm(ctx, m.c, &types.UnregisterAgentVm{
   134  		This:    m.r,
   135  		AgentVm: agentVmMoRef,
   136  	})
   137  	if err != nil {
   138  		return err
   139  	}
   140  	return nil
   141  }
   142  
   143  func (m Agency) Update(
   144  	ctx context.Context,
   145  	config types.BaseAgencyConfigInfo) error {
   146  
   147  	_, err := methods.Update(ctx, m.c, &types.Update{
   148  		This:   m.r,
   149  		Config: config,
   150  	})
   151  	if err != nil {
   152  		return err
   153  	}
   154  	return nil
   155  }