github.com/vmware/govmomi@v0.51.0/cli/library/trust/info.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 trust 6 7 import ( 8 "context" 9 "flag" 10 "io" 11 12 "github.com/vmware/govmomi/cli" 13 "github.com/vmware/govmomi/cli/flags" 14 "github.com/vmware/govmomi/object" 15 "github.com/vmware/govmomi/vapi/library" 16 ) 17 18 type info struct { 19 *flags.ClientFlag 20 *flags.OutputFlag 21 } 22 23 func init() { 24 cli.Register("library.trust.info", &info{}) 25 } 26 27 func (cmd *info) Register(ctx context.Context, f *flag.FlagSet) { 28 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 29 cmd.OutputFlag, ctx = flags.NewOutputFlag(ctx) 30 cmd.ClientFlag.Register(ctx, f) 31 cmd.OutputFlag.Register(ctx, f) 32 } 33 34 func (cmd *info) Process(ctx context.Context) error { 35 if err := cmd.ClientFlag.Process(ctx); err != nil { 36 return err 37 } 38 return nil 39 } 40 41 func (cmd *info) Usage() string { 42 return "ID" 43 } 44 45 func (cmd *info) Description() string { 46 return `Display trusted certificate info. 47 48 Examples: 49 govc library.trust.info vmware_signed` 50 } 51 52 type infoResultsWriter struct { 53 TrustedCertificateInfo *library.TrustedCertificate `json:"info,omitempty"` 54 } 55 56 func (r infoResultsWriter) Write(w io.Writer) error { 57 var info object.HostCertificateInfo 58 _, err := info.FromPEM([]byte(r.TrustedCertificateInfo.Text)) 59 if err != nil { 60 return err 61 } 62 return info.Write(w) 63 } 64 65 func (r infoResultsWriter) Dump() any { 66 return r.TrustedCertificateInfo 67 } 68 69 func (cmd *info) Run(ctx context.Context, f *flag.FlagSet) error { 70 if f.NArg() != 1 { 71 return flag.ErrHelp 72 } 73 74 c, err := cmd.RestClient() 75 if err != nil { 76 return err 77 } 78 79 cert, err := library.NewManager(c).GetTrustedCertificate(ctx, f.Arg(0)) 80 if err != nil { 81 return err 82 } 83 return cmd.WriteResult(&infoResultsWriter{cert}) 84 }