github.com/hernad/nomad@v1.6.112/command/operator_autopilot_set_test.go (about) 1 // Copyright (c) HashiCorp, Inc. 2 // SPDX-License-Identifier: MPL-2.0 3 4 package command 5 6 import ( 7 "strings" 8 "testing" 9 "time" 10 11 "github.com/hernad/nomad/ci" 12 "github.com/mitchellh/cli" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestOperator_Autopilot_SetConfig_Implements(t *testing.T) { 17 ci.Parallel(t) 18 var _ cli.Command = &OperatorRaftListCommand{} 19 } 20 21 func TestOperatorAutopilotSetConfigCommand(t *testing.T) { 22 ci.Parallel(t) 23 require := require.New(t) 24 s, _, addr := testServer(t, false, nil) 25 defer s.Shutdown() 26 27 ui := cli.NewMockUi() 28 c := &OperatorAutopilotSetCommand{Meta: Meta{Ui: ui}} 29 args := []string{ 30 "-address=" + addr, 31 "-cleanup-dead-servers=false", 32 "-max-trailing-logs=99", 33 "-min-quorum=3", 34 "-last-contact-threshold=123ms", 35 "-server-stabilization-time=123ms", 36 "-enable-redundancy-zones=true", 37 "-disable-upgrade-migration=true", 38 "-enable-custom-upgrades=true", 39 } 40 41 code := c.Run(args) 42 require.EqualValues(0, code) 43 output := strings.TrimSpace(ui.OutputWriter.String()) 44 require.Contains(output, "Configuration updated") 45 46 client, err := c.Client() 47 require.NoError(err) 48 49 conf, _, err := client.Operator().AutopilotGetConfiguration(nil) 50 require.NoError(err) 51 52 require.False(conf.CleanupDeadServers) 53 require.EqualValues(99, conf.MaxTrailingLogs) 54 require.EqualValues(3, conf.MinQuorum) 55 require.EqualValues(123*time.Millisecond, conf.LastContactThreshold) 56 require.EqualValues(123*time.Millisecond, conf.ServerStabilizationTime) 57 require.True(conf.EnableRedundancyZones) 58 require.True(conf.DisableUpgradeMigration) 59 require.True(conf.EnableCustomUpgrades) 60 }