github.com/hernad/nomad@v1.6.112/command/operator_autopilot_get.go (about)

     1  // Copyright (c) HashiCorp, Inc.
     2  // SPDX-License-Identifier: MPL-2.0
     3  
     4  package command
     5  
     6  import (
     7  	"fmt"
     8  	"strings"
     9  
    10  	"github.com/posener/complete"
    11  )
    12  
    13  type OperatorAutopilotGetCommand struct {
    14  	Meta
    15  }
    16  
    17  func (c *OperatorAutopilotGetCommand) AutocompleteFlags() complete.Flags {
    18  	return mergeAutocompleteFlags(c.Meta.AutocompleteFlags(FlagSetClient))
    19  }
    20  
    21  func (c *OperatorAutopilotGetCommand) AutocompleteArgs() complete.Predictor {
    22  	return complete.PredictNothing
    23  }
    24  
    25  func (c *OperatorAutopilotGetCommand) Name() string { return "operator autopilot get-config" }
    26  func (c *OperatorAutopilotGetCommand) Run(args []string) int {
    27  	flags := c.Meta.FlagSet("autopilot", FlagSetClient)
    28  	flags.Usage = func() { c.Ui.Output(c.Help()) }
    29  
    30  	if err := flags.Parse(args); err != nil {
    31  		c.Ui.Error(fmt.Sprintf("Failed to parse args: %v", err))
    32  		return 1
    33  	}
    34  
    35  	// Set up a client.
    36  	client, err := c.Meta.Client()
    37  	if err != nil {
    38  		c.Ui.Error(fmt.Sprintf("Error initializing client: %s", err))
    39  		return 1
    40  	}
    41  
    42  	// Fetch the current configuration.
    43  	config, _, err := client.Operator().AutopilotGetConfiguration(nil)
    44  	if err != nil {
    45  		c.Ui.Error(fmt.Sprintf("Error querying Autopilot configuration: %s", err))
    46  		return 1
    47  	}
    48  	c.Ui.Output(fmt.Sprintf("CleanupDeadServers = %v", config.CleanupDeadServers))
    49  	c.Ui.Output(fmt.Sprintf("LastContactThreshold = %v", config.LastContactThreshold.String()))
    50  	c.Ui.Output(fmt.Sprintf("MaxTrailingLogs = %v", config.MaxTrailingLogs))
    51  	c.Ui.Output(fmt.Sprintf("MinQuorum = %v", config.MinQuorum))
    52  	c.Ui.Output(fmt.Sprintf("ServerStabilizationTime = %v", config.ServerStabilizationTime.String()))
    53  	c.Ui.Output(fmt.Sprintf("EnableRedundancyZones = %v", config.EnableRedundancyZones))
    54  	c.Ui.Output(fmt.Sprintf("DisableUpgradeMigration = %v", config.DisableUpgradeMigration))
    55  	c.Ui.Output(fmt.Sprintf("EnableCustomUpgrades = %v", config.EnableCustomUpgrades))
    56  
    57  	return 0
    58  }
    59  
    60  func (c *OperatorAutopilotGetCommand) Synopsis() string {
    61  	return "Display the current Autopilot configuration"
    62  }
    63  
    64  func (c *OperatorAutopilotGetCommand) Help() string {
    65  	helpText := `
    66  Usage: nomad operator autopilot get-config [options]
    67  
    68    Displays the current Autopilot configuration.
    69  
    70    If ACLs are enabled, this command requires a token with the 'operator:read'
    71    capability.
    72  
    73  General Options:
    74  
    75    ` + generalOptionsUsage(usageOptsDefault|usageOptsNoNamespace)
    76  
    77  	return strings.TrimSpace(helpText)
    78  }