github.com/vmware/govmomi@v0.51.0/cli/cluster/create.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 cluster 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/vim25/types" 14 ) 15 16 type create struct { 17 *flags.FolderFlag 18 19 types.ClusterConfigSpecEx 20 } 21 22 func init() { 23 cli.Register("cluster.create", &create{}) 24 } 25 26 func (cmd *create) Register(ctx context.Context, f *flag.FlagSet) { 27 cmd.FolderFlag, ctx = flags.NewFolderFlag(ctx) 28 cmd.FolderFlag.Register(ctx, f) 29 } 30 31 func (cmd *create) Usage() string { 32 return "CLUSTER" 33 } 34 35 func (cmd *create) Description() string { 36 return `Create CLUSTER in datacenter. 37 38 The cluster is added to the folder specified by the 'folder' flag. If not given, 39 this defaults to the host folder in the specified or default datacenter. 40 41 Examples: 42 govc cluster.create ClusterA 43 govc cluster.create -folder /dc2/test-folder ClusterB` 44 } 45 46 func (cmd *create) Process(ctx context.Context) error { 47 if err := cmd.FolderFlag.Process(ctx); err != nil { 48 return err 49 } 50 return nil 51 } 52 53 func (cmd *create) Run(ctx context.Context, f *flag.FlagSet) error { 54 if f.NArg() != 1 { 55 return flag.ErrHelp 56 } 57 58 folder, err := cmd.FolderOrDefault("host") 59 if err != nil { 60 return err 61 } 62 63 _, err = folder.CreateCluster(ctx, f.Arg(0), cmd.ClusterConfigSpecEx) 64 65 return err 66 }