github.com/vmware/govmomi@v0.51.0/cli/datacenter/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 datacenter
     6  
     7  import (
     8  	"context"
     9  	"flag"
    10  
    11  	"github.com/vmware/govmomi/cli"
    12  	"github.com/vmware/govmomi/cli/flags"
    13  )
    14  
    15  type create struct {
    16  	*flags.FolderFlag
    17  }
    18  
    19  func init() {
    20  	cli.Register("datacenter.create", &create{})
    21  }
    22  
    23  func (cmd *create) Register(ctx context.Context, f *flag.FlagSet) {
    24  	cmd.FolderFlag, ctx = flags.NewFolderFlag(ctx)
    25  	cmd.FolderFlag.Register(ctx, f)
    26  }
    27  
    28  func (cmd *create) Usage() string {
    29  	return "NAME..."
    30  }
    31  
    32  func (cmd *create) Description() string {
    33  	return `Create datacenter NAME.
    34  
    35  Examples:
    36    govc datacenter.create MyDC # create
    37    govc object.destroy /MyDC   # delete`
    38  }
    39  
    40  func (cmd *create) Process(ctx context.Context) error {
    41  	if err := cmd.FolderFlag.Process(ctx); err != nil {
    42  		return err
    43  	}
    44  	return nil
    45  }
    46  
    47  func (cmd *create) Run(ctx context.Context, f *flag.FlagSet) error {
    48  	folder, err := cmd.FolderOrDefault("/")
    49  	if err != nil {
    50  		return err
    51  	}
    52  
    53  	if f.NArg() == 0 {
    54  		return flag.ErrHelp
    55  	}
    56  
    57  	for _, name := range f.Args() {
    58  		_, err := folder.CreateDatacenter(ctx, name)
    59  		if err != nil {
    60  			return err
    61  		}
    62  	}
    63  
    64  	return nil
    65  }