github.com/vmware/govmomi@v0.51.0/session/cache/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 cache_test
     6  
     7  import (
     8  	"context"
     9  	"fmt"
    10  	"net/url"
    11  
    12  	"github.com/vmware/govmomi/session/cache"
    13  	"github.com/vmware/govmomi/simulator"
    14  	"github.com/vmware/govmomi/vim25"
    15  
    16  	"github.com/vmware/govmomi/vapi/rest"
    17  	_ "github.com/vmware/govmomi/vapi/simulator"
    18  )
    19  
    20  func ExampleSession_Login() {
    21  	simulator.Run(func(ctx context.Context, sim *vim25.Client) error {
    22  		u := sim.URL()
    23  		u.User = simulator.DefaultLogin
    24  
    25  		// Login() each client twice
    26  		// 1) creates a new authenticated session
    27  		// 2) uses a cached session (proved by removing the password)
    28  		for i := 0; i < 2; i++ {
    29  			s := &cache.Session{
    30  				URL:      u,
    31  				Insecure: true,
    32  			}
    33  
    34  			vc := new(vim25.Client)
    35  			err := s.Login(ctx, vc, nil)
    36  			if err != nil {
    37  				return err
    38  			}
    39  
    40  			rc := new(rest.Client)
    41  			err = s.Login(ctx, rc, nil)
    42  			if err != nil {
    43  				return err
    44  			}
    45  
    46  			fmt.Printf("%s authenticated\n", u.User)
    47  			u.User = url.User(u.User.Username()) // Remove password
    48  		}
    49  		return nil
    50  	})
    51  	// Output:
    52  	// user:pass authenticated
    53  	// user authenticated
    54  }