github.com/vmware/govmomi@v0.51.0/cli/host/cert/csr.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 cert 6 7 import ( 8 "context" 9 "flag" 10 "fmt" 11 12 "github.com/vmware/govmomi/cli" 13 "github.com/vmware/govmomi/cli/flags" 14 ) 15 16 type csr struct { 17 *flags.HostSystemFlag 18 19 ip bool 20 } 21 22 func init() { 23 cli.Register("host.cert.csr", &csr{}) 24 } 25 26 func (cmd *csr) Register(ctx context.Context, f *flag.FlagSet) { 27 cmd.HostSystemFlag, ctx = flags.NewHostSystemFlag(ctx) 28 cmd.HostSystemFlag.Register(ctx, f) 29 30 f.BoolVar(&cmd.ip, "ip", false, "Use IP address as CN") 31 } 32 33 func (cmd *csr) Description() string { 34 return `Generate a certificate-signing request (CSR) for HOST.` 35 } 36 37 func (cmd *csr) Process(ctx context.Context) error { 38 if err := cmd.HostSystemFlag.Process(ctx); err != nil { 39 return err 40 } 41 return nil 42 } 43 44 func (cmd *csr) Run(ctx context.Context, f *flag.FlagSet) error { 45 host, err := cmd.HostSystem() 46 if err != nil { 47 return err 48 } 49 50 m, err := host.ConfigManager().CertificateManager(ctx) 51 if err != nil { 52 return err 53 } 54 55 output, err := m.GenerateCertificateSigningRequest(ctx, cmd.ip) 56 if err != nil { 57 return err 58 } 59 60 _, err = fmt.Println(output) 61 return err 62 }