github.com/vmware/govmomi@v0.51.0/cli/kms/rm.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 kms 6 7 import ( 8 "context" 9 "flag" 10 11 "github.com/vmware/govmomi/cli" 12 "github.com/vmware/govmomi/cli/flags" 13 "github.com/vmware/govmomi/crypto" 14 vapicrypto "github.com/vmware/govmomi/vapi/crypto" 15 ) 16 17 type rm struct { 18 *flags.ClientFlag 19 20 server string 21 } 22 23 func init() { 24 cli.Register("kms.rm", &rm{}) 25 } 26 27 func (cmd *rm) Register(ctx context.Context, f *flag.FlagSet) { 28 cmd.ClientFlag, ctx = flags.NewClientFlag(ctx) 29 cmd.ClientFlag.Register(ctx, f) 30 31 f.StringVar(&cmd.server, "s", "", "Server name") 32 } 33 34 func (cmd *rm) Usage() string { 35 return "NAME" 36 } 37 38 func (cmd *rm) Description() string { 39 return `Remove KMS server or cluster. 40 41 Examples: 42 govc kms.rm my-kp 43 govc kms.rm -s my-server my-kp` 44 } 45 46 func (cmd *rm) Run(ctx context.Context, f *flag.FlagSet) error { 47 id := f.Arg(0) 48 if id == "" { 49 return flag.ErrHelp 50 } 51 52 c, err := cmd.Client() 53 if err != nil { 54 return err 55 } 56 57 m, err := crypto.GetManagerKmip(c) 58 if err != nil { 59 return err 60 } 61 62 native, err := m.IsNativeProvider(ctx, id) 63 if err != nil { 64 return err 65 } 66 if native { 67 rc, err := cmd.RestClient() 68 if err != nil { 69 return err 70 } 71 return vapicrypto.NewManager(rc).KmsProviderDelete(ctx, id) 72 } 73 74 if cmd.server != "" { 75 return m.RemoveKmipServer(ctx, id, cmd.server) 76 } 77 78 return m.UnregisterKmsCluster(ctx, id) 79 }