github.com/vmware/govmomi@v0.51.0/find/example_test.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 find_test
     6  
     7  import (
     8  	"context"
     9  	"errors"
    10  	"fmt"
    11  
    12  	"github.com/vmware/govmomi/find"
    13  	"github.com/vmware/govmomi/simulator"
    14  	"github.com/vmware/govmomi/vim25"
    15  )
    16  
    17  func ExampleMultipleFoundError() {
    18  	model := simulator.VPX()
    19  	model.Portgroup = 2
    20  
    21  	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
    22  		finder := find.NewFinder(c)
    23  
    24  		_, err := finder.Network(ctx, "DC0_DVPG*")
    25  		_, ok := err.(*find.MultipleFoundError) // returns DC0_DVPG{0,1}
    26  		if !ok {
    27  			return errors.New("expected error")
    28  		}
    29  
    30  		net0, err := finder.Network(ctx, "DC0_DVPG0")
    31  		if err != nil {
    32  			return err
    33  		}
    34  		fmt.Println(net0.GetInventoryPath())
    35  
    36  		net1, err := finder.Network(ctx, "DC0_DVPG1")
    37  		if err != nil {
    38  			return err
    39  		}
    40  		fmt.Println(net1.GetInventoryPath())
    41  
    42  		return nil
    43  	}, model)
    44  	// Output:
    45  	// /DC0/network/DC0_DVPG0
    46  	// /DC0/network/DC0_DVPG1
    47  }