github.com/vmware/govmomi@v0.51.0/cli/sso/idp/default.ls.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 idp 6 7 import ( 8 "context" 9 "flag" 10 "fmt" 11 "io" 12 "strings" 13 14 "github.com/vmware/govmomi/cli" 15 "github.com/vmware/govmomi/cli/flags" 16 "github.com/vmware/govmomi/cli/sso" 17 "github.com/vmware/govmomi/ssoadmin" 18 ) 19 20 type didp struct { 21 *flags.ClientFlag 22 *flags.OutputFlag 23 } 24 25 func init() { 26 cli.Register("sso.idp.default.ls", &didp{}) 27 } 28 29 func (cmd *didp) Register(ctx context.Context, f *flag.FlagSet) { 30 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 31 cmd.ClientFlag.Register(ctx, f) 32 33 cmd.OutputFlag, ctx = flags.NewOutputFlag(ctx) 34 cmd.OutputFlag.Register(ctx, f) 35 } 36 37 func (cmd *didp) Description() string { 38 return `List SSO default identity provider sources. 39 40 Examples: 41 govc sso.idp.default.ls 42 govc sso.idp.default.ls -json` 43 } 44 45 func (cmd *didp) Process(ctx context.Context) error { 46 if err := cmd.ClientFlag.Process(ctx); err != nil { 47 return err 48 } 49 return cmd.OutputFlag.Process(ctx) 50 } 51 52 type didpInfo struct { 53 DefaultIdentitySource []string 54 } 55 56 func (r *didpInfo) Write(w io.Writer) error { 57 fmt.Fprintf(w, "Default identity provider source(s): %s\n", strings.Join(r.DefaultIdentitySource, ",")) 58 return nil 59 } 60 61 func (cmd *didp) Run(ctx context.Context, f *flag.FlagSet) error { 62 return sso.WithClient(ctx, cmd.ClientFlag, func(c *ssoadmin.Client) error { 63 var errids error 64 var defaultids didpInfo 65 66 defaultids.DefaultIdentitySource, errids = c.GetDefaultDomains(ctx) 67 if errids != nil { 68 return errids 69 } 70 return cmd.WriteResult(&defaultids) 71 }) 72 }