github.com/vmware/govmomi@v0.51.0/cli/kms/setdefault.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 "github.com/vmware/govmomi/vim25/types" 15 ) 16 17 type setdefault struct { 18 *flags.DatacenterFlag 19 20 entity string 21 } 22 23 func init() { 24 cli.Register("kms.default", &setdefault{}) 25 } 26 27 func (cmd *setdefault) Register(ctx context.Context, f *flag.FlagSet) { 28 cmd.DatacenterFlag, ctx = flags.NewDatacenterFlag(ctx) 29 cmd.DatacenterFlag.Register(ctx, f) 30 31 f.StringVar(&cmd.entity, "e", "", "Set entity default KMS cluster (cluster or host folder)") 32 } 33 34 func (cmd *setdefault) Usage() string { 35 return "NAME" 36 } 37 38 func (cmd *setdefault) Description() string { 39 return `Set default KMS cluster. 40 41 Examples: 42 govc kms.default my-kp 43 govc kms.default - # clear default 44 govc kms.default -e /dc/host/cluster my-kp 45 govc kms.default -e /dc/host/cluster my-kp - # clear default` 46 } 47 48 func (cmd *setdefault) Run(ctx context.Context, f *flag.FlagSet) error { 49 id := f.Arg(0) 50 if id == "" { 51 return flag.ErrHelp 52 } 53 54 if id == "-" { 55 id = "" // clear default 56 } 57 58 c, err := cmd.Client() 59 if err != nil { 60 return err 61 } 62 63 m, err := crypto.GetManagerKmip(c) 64 if err != nil { 65 return err 66 } 67 68 var entity *types.ManagedObjectReference 69 70 if cmd.entity != "" { 71 obj, err := cmd.ManagedObject(ctx, cmd.entity) 72 if err != nil { 73 return err 74 } 75 76 entity = types.NewReference(obj.Reference()) 77 } 78 79 return m.SetDefaultKmsClusterId(ctx, id, entity) 80 }