github.com/vmware/govmomi@v0.51.0/cli/namespace/cluster/disable.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 "fmt" 11 12 "github.com/vmware/govmomi/cli" 13 "github.com/vmware/govmomi/cli/flags" 14 "github.com/vmware/govmomi/vapi/namespace" 15 ) 16 17 type disableCluster struct { 18 *flags.ClusterFlag 19 } 20 21 func init() { 22 cli.Register("namespace.cluster.disable", &disableCluster{}) 23 } 24 25 func (cmd *disableCluster) Register(ctx context.Context, f *flag.FlagSet) { 26 cmd.ClusterFlag, ctx = flags.NewClusterFlag(ctx) 27 cmd.ClusterFlag.Register(ctx, f) 28 } 29 30 func (cmd *disableCluster) Description() string { 31 return `Disables vSphere Namespaces on the specified cluster. 32 33 Examples: 34 govc namespace.cluster.disable -cluster "Workload-Cluster"` 35 } 36 37 func (cmd *disableCluster) Run(ctx context.Context, f *flag.FlagSet) error { 38 c, err := cmd.RestClient() 39 if err != nil { 40 return err 41 } 42 43 // Cluster object reference lookup 44 cluster, err := cmd.Cluster() 45 if err != nil { 46 return err 47 } 48 49 m := namespace.NewManager(c) 50 clusterId := cluster.Reference().Value 51 52 err = m.DisableCluster(ctx, clusterId) 53 if err != nil { 54 return fmt.Errorf("error disabling cluster: %s", err) 55 } 56 57 return nil 58 }