github.com/vmware/govmomi@v0.51.0/cli/vcsa/access/dcui/get.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 dcui
     6  
     7  import (
     8  	"context"
     9  	"flag"
    10  	"fmt"
    11  	"io"
    12  	"text/tabwriter"
    13  
    14  	"github.com/vmware/govmomi/cli"
    15  	"github.com/vmware/govmomi/cli/flags"
    16  	"github.com/vmware/govmomi/vapi/appliance/access/dcui"
    17  )
    18  
    19  type get struct {
    20  	*flags.ClientFlag
    21  	*flags.OutputFlag
    22  }
    23  
    24  func init() {
    25  	cli.Register("vcsa.access.dcui.get", &get{})
    26  }
    27  
    28  func (cmd *get) Register(ctx context.Context, f *flag.FlagSet) {
    29  	cmd.ClientFlag, ctx = flags.NewClientFlag(ctx)
    30  	cmd.ClientFlag.Register(ctx, f)
    31  
    32  	cmd.OutputFlag, ctx = flags.NewOutputFlag(ctx)
    33  	cmd.OutputFlag.Register(ctx, f)
    34  }
    35  
    36  func (cmd *get) Process(ctx context.Context) error {
    37  	if err := cmd.ClientFlag.Process(ctx); err != nil {
    38  		return err
    39  	}
    40  	if err := cmd.OutputFlag.Process(ctx); err != nil {
    41  		return err
    42  	}
    43  	return nil
    44  }
    45  
    46  func (cmd *get) Description() string {
    47  	return `Get enabled state of Direct Console User Interface (DCUI TTY2).
    48  
    49  Note: This command requires vCenter 7.0.2 or higher.
    50  
    51  Examples:
    52  govc vcsa.access.dcui.get`
    53  }
    54  
    55  type access struct {
    56  	Enabled bool `json:"enabled"`
    57  }
    58  
    59  func (cmd *get) Run(ctx context.Context, f *flag.FlagSet) error {
    60  	c, err := cmd.RestClient()
    61  	if err != nil {
    62  		return err
    63  	}
    64  
    65  	m := dcui.NewManager(c)
    66  
    67  	status, err := m.Get(ctx)
    68  	if err != nil {
    69  		return err
    70  	}
    71  
    72  	return cmd.WriteResult(access{Enabled: status})
    73  }
    74  
    75  func (res access) Write(w io.Writer) error {
    76  	tw := tabwriter.NewWriter(w, 10, 4, 0, ' ', 0)
    77  
    78  	fmt.Fprintf(tw, "%t\n", res.Enabled)
    79  
    80  	return tw.Flush()
    81  }