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 }