github.com/vmware/govmomi@v0.51.0/examples/networks/main.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 main
     6  
     7  import (
     8  	"context"
     9  	"fmt"
    10  
    11  	"github.com/vmware/govmomi/examples"
    12  	"github.com/vmware/govmomi/view"
    13  	"github.com/vmware/govmomi/vim25"
    14  	"github.com/vmware/govmomi/vim25/mo"
    15  )
    16  
    17  func main() {
    18  	examples.Run(func(ctx context.Context, c *vim25.Client) error {
    19  		// Create a view of Network types
    20  		m := view.NewManager(c)
    21  
    22  		v, err := m.CreateContainerView(ctx, c.ServiceContent.RootFolder, []string{"Network"}, true)
    23  		if err != nil {
    24  			return err
    25  		}
    26  
    27  		defer v.Destroy(ctx)
    28  
    29  		// Reference: https://developer.broadcom.com/xapis/vsphere-web-services-api/latest/vim.Network.html
    30  		var networks []mo.Network
    31  		err = v.Retrieve(ctx, []string{"Network"}, nil, &networks)
    32  		if err != nil {
    33  			return err
    34  		}
    35  
    36  		for _, net := range networks {
    37  			fmt.Printf("%s: %s\n", net.Name, net.Reference())
    38  		}
    39  
    40  		return nil
    41  	})
    42  }