github.com/vmware/govmomi@v0.51.0/eam/object/eam_object.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  	"fmt"
    10  
    11  	"github.com/vmware/govmomi/eam"
    12  	"github.com/vmware/govmomi/eam/methods"
    13  	"github.com/vmware/govmomi/eam/types"
    14  	vim "github.com/vmware/govmomi/vim25/types"
    15  )
    16  
    17  // EamObject contains the fields and functions common to all objects.
    18  type EamObject struct {
    19  	c *eam.Client
    20  	r vim.ManagedObjectReference
    21  }
    22  
    23  func (m EamObject) String() string {
    24  	return fmt.Sprintf("%v", m.Reference())
    25  }
    26  
    27  func (m EamObject) Reference() vim.ManagedObjectReference {
    28  	return m.r
    29  }
    30  
    31  func (m EamObject) Client() *eam.Client {
    32  	return m.c
    33  }
    34  
    35  func (m EamObject) AddIssue(
    36  	ctx context.Context,
    37  	issue types.BaseIssue) (types.BaseIssue, error) {
    38  
    39  	resp, err := methods.AddIssue(ctx, m.c, &types.AddIssue{
    40  		This:  m.r,
    41  		Issue: issue,
    42  	})
    43  	if err != nil {
    44  		return nil, err
    45  	}
    46  	return resp.Returnval, nil
    47  }
    48  
    49  func (m EamObject) Issues(
    50  	ctx context.Context,
    51  	issueKeys ...int32) ([]types.BaseIssue, error) {
    52  
    53  	resp, err := methods.QueryIssue(ctx, m.c, &types.QueryIssue{
    54  		This:     m.r,
    55  		IssueKey: issueKeys,
    56  	})
    57  	if err != nil {
    58  		return nil, err
    59  	}
    60  	return resp.Returnval, nil
    61  }
    62  
    63  func (m EamObject) Resolve(
    64  	ctx context.Context,
    65  	issueKeys []int32) ([]int32, error) {
    66  
    67  	resp, err := methods.Resolve(ctx, m.c, &types.Resolve{
    68  		This:     m.r,
    69  		IssueKey: issueKeys,
    70  	})
    71  	if err != nil {
    72  		return nil, err
    73  	}
    74  	return resp.Returnval, nil
    75  }
    76  
    77  func (m EamObject) ResolveAll(ctx context.Context) error {
    78  
    79  	_, err := methods.ResolveAll(ctx, m.c, &types.ResolveAll{
    80  		This: m.r,
    81  	})
    82  	if err != nil {
    83  		return err
    84  	}
    85  	return nil
    86  }