github.com/vmware/govmomi@v0.51.0/view/list_view.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 view
     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 ListView struct {
    16  	ManagedObjectView
    17  }
    18  
    19  func NewListView(c *vim25.Client, ref types.ManagedObjectReference) *ListView {
    20  	return &ListView{
    21  		ManagedObjectView: *NewManagedObjectView(c, ref),
    22  	}
    23  }
    24  
    25  func (v ListView) Add(ctx context.Context, refs []types.ManagedObjectReference) ([]types.ManagedObjectReference, error) {
    26  	req := types.ModifyListView{
    27  		This: v.Reference(),
    28  		Add:  refs,
    29  	}
    30  	res, err := methods.ModifyListView(ctx, v.Client(), &req)
    31  	if err != nil {
    32  		return nil, err
    33  	}
    34  
    35  	return res.Returnval, nil
    36  }
    37  
    38  func (v ListView) Remove(ctx context.Context, refs []types.ManagedObjectReference) ([]types.ManagedObjectReference, error) {
    39  	req := types.ModifyListView{
    40  		This:   v.Reference(),
    41  		Remove: refs,
    42  	}
    43  	res, err := methods.ModifyListView(ctx, v.Client(), &req)
    44  	if err != nil {
    45  		return nil, err
    46  	}
    47  
    48  	return res.Returnval, nil
    49  }
    50  
    51  func (v ListView) Reset(ctx context.Context, refs []types.ManagedObjectReference) ([]types.ManagedObjectReference, error) {
    52  	req := types.ResetListView{
    53  		This: v.Reference(),
    54  		Obj:  refs,
    55  	}
    56  	res, err := methods.ResetListView(ctx, v.Client(), &req)
    57  	if err != nil {
    58  		return nil, err
    59  	}
    60  
    61  	return res.Returnval, nil
    62  }