mirror of
https://github.com/edgelesssys/constellation.git
synced 2025-02-04 17:15:26 -05:00
Set defaults to 0
This commit is contained in:
parent
bbfd84729d
commit
4459766b58
@ -31,9 +31,9 @@ func newCreateCmd() *cobra.Command {
|
|||||||
}
|
}
|
||||||
cmd.Flags().String("name", "constell", "create the cluster with the specified name")
|
cmd.Flags().String("name", "constell", "create the cluster with the specified name")
|
||||||
cmd.Flags().BoolP("yes", "y", false, "create the cluster without further confirmation")
|
cmd.Flags().BoolP("yes", "y", false, "create the cluster without further confirmation")
|
||||||
cmd.Flags().IntP("control-plane-nodes", "c", 1, "number of control-plane nodes (required)")
|
cmd.Flags().IntP("control-plane-nodes", "c", 0, "number of control-plane nodes (required)")
|
||||||
must(cobra.MarkFlagRequired(cmd.Flags(), "control-plane-nodes"))
|
must(cobra.MarkFlagRequired(cmd.Flags(), "control-plane-nodes"))
|
||||||
cmd.Flags().IntP("worker-nodes", "w", 1, "number of worker nodes (required)")
|
cmd.Flags().IntP("worker-nodes", "w", 0, "number of worker nodes (required)")
|
||||||
must(cobra.MarkFlagRequired(cmd.Flags(), "worker-nodes"))
|
must(cobra.MarkFlagRequired(cmd.Flags(), "worker-nodes"))
|
||||||
cmd.Flags().StringP("instance-type", "t", "", "instance type of cluster nodes")
|
cmd.Flags().StringP("instance-type", "t", "", "instance type of cluster nodes")
|
||||||
must(cmd.RegisterFlagCompletionFunc("instance-type", instanceTypeCompletion))
|
must(cmd.RegisterFlagCompletionFunc("instance-type", instanceTypeCompletion))
|
||||||
|
@ -3,7 +3,7 @@ package cmd
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"strconv"
|
||||||
"strings"
|
"strings"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
@ -64,37 +64,47 @@ func TestCreate(t *testing.T) {
|
|||||||
wantAbbort bool
|
wantAbbort bool
|
||||||
}{
|
}{
|
||||||
"create": {
|
"create": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
creator: &stubCloudCreator{state: testState},
|
creator: &stubCloudCreator{state: testState},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
yesFlag: true,
|
controllerCountFlag: intPtr(1),
|
||||||
|
workerCountFlag: intPtr(2),
|
||||||
|
yesFlag: true,
|
||||||
},
|
},
|
||||||
"interactive": {
|
"interactive": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
creator: &stubCloudCreator{state: testState},
|
creator: &stubCloudCreator{state: testState},
|
||||||
provider: cloudprovider.Azure,
|
provider: cloudprovider.Azure,
|
||||||
stdin: "yes\n",
|
controllerCountFlag: intPtr(2),
|
||||||
|
workerCountFlag: intPtr(1),
|
||||||
|
stdin: "yes\n",
|
||||||
},
|
},
|
||||||
"interactive abort": {
|
"interactive abort": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
stdin: "no\n",
|
controllerCountFlag: intPtr(1),
|
||||||
wantAbbort: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
stdin: "no\n",
|
||||||
|
wantAbbort: true,
|
||||||
},
|
},
|
||||||
"interactive error": {
|
"interactive error": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
stdin: "foo\nfoo\nfoo\n",
|
controllerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
stdin: "foo\nfoo\nfoo\n",
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"flag name to long": {
|
"flag name to long": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
nameFlag: strings.Repeat("a", constellationNameLength+1),
|
controllerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
nameFlag: strings.Repeat("a", constellationNameLength+1),
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"flag control-plane-count invalid": {
|
"flag control-plane-count invalid": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
@ -109,7 +119,7 @@ func TestCreate(t *testing.T) {
|
|||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
controllerCountFlag: intPtr(3),
|
controllerCountFlag: intPtr(3),
|
||||||
workerCountFlag: intPtr(-1),
|
workerCountFlag: intPtr(0),
|
||||||
wantErr: true,
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"flag control-plane-count missing": {
|
"flag control-plane-count missing": {
|
||||||
@ -127,11 +137,13 @@ func TestCreate(t *testing.T) {
|
|||||||
wantErr: true,
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"flag invalid instance-type": {
|
"flag invalid instance-type": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
insTypeFlag: "invalid",
|
controllerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
insTypeFlag: "invalid",
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"old state in directory": {
|
"old state in directory": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs {
|
setupFs: func(require *require.Assertions) afero.Fs {
|
||||||
@ -140,10 +152,12 @@ func TestCreate(t *testing.T) {
|
|||||||
require.NoError(fileHandler.Write(constants.StateFilename, []byte{1}, file.OptNone))
|
require.NoError(fileHandler.Write(constants.StateFilename, []byte{1}, file.OptNone))
|
||||||
return fs
|
return fs
|
||||||
},
|
},
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
yesFlag: true,
|
controllerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
yesFlag: true,
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"old adminConf in directory": {
|
"old adminConf in directory": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs {
|
setupFs: func(require *require.Assertions) afero.Fs {
|
||||||
@ -152,10 +166,12 @@ func TestCreate(t *testing.T) {
|
|||||||
require.NoError(fileHandler.Write(constants.AdminConfFilename, []byte{1}, file.OptNone))
|
require.NoError(fileHandler.Write(constants.AdminConfFilename, []byte{1}, file.OptNone))
|
||||||
return fs
|
return fs
|
||||||
},
|
},
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
yesFlag: true,
|
controllerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
yesFlag: true,
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"old masterSecret in directory": {
|
"old masterSecret in directory": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs {
|
setupFs: func(require *require.Assertions) afero.Fs {
|
||||||
@ -164,35 +180,43 @@ func TestCreate(t *testing.T) {
|
|||||||
require.NoError(fileHandler.Write(constants.MasterSecretFilename, []byte{1}, file.OptNone))
|
require.NoError(fileHandler.Write(constants.MasterSecretFilename, []byte{1}, file.OptNone))
|
||||||
return fs
|
return fs
|
||||||
},
|
},
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
yesFlag: true,
|
controllerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
yesFlag: true,
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"dev config does not exist": {
|
"dev config does not exist": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
yesFlag: true,
|
controllerCountFlag: intPtr(1),
|
||||||
devConfigFlag: "dev-config.json",
|
workerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
yesFlag: true,
|
||||||
|
devConfigFlag: "dev-config.json",
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"create error": {
|
"create error": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
setupFs: func(require *require.Assertions) afero.Fs { return afero.NewMemMapFs() },
|
||||||
creator: &stubCloudCreator{createErr: someErr},
|
creator: &stubCloudCreator{createErr: someErr},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
yesFlag: true,
|
controllerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
yesFlag: true,
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
"write state error": {
|
"write state error": {
|
||||||
setupFs: func(require *require.Assertions) afero.Fs {
|
setupFs: func(require *require.Assertions) afero.Fs {
|
||||||
fs := afero.NewMemMapFs()
|
fs := afero.NewMemMapFs()
|
||||||
return afero.NewReadOnlyFs(fs)
|
return afero.NewReadOnlyFs(fs)
|
||||||
},
|
},
|
||||||
creator: &stubCloudCreator{},
|
creator: &stubCloudCreator{},
|
||||||
provider: cloudprovider.GCP,
|
provider: cloudprovider.GCP,
|
||||||
yesFlag: true,
|
controllerCountFlag: intPtr(1),
|
||||||
wantErr: true,
|
workerCountFlag: intPtr(1),
|
||||||
|
yesFlag: true,
|
||||||
|
wantErr: true,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,10 +240,10 @@ func TestCreate(t *testing.T) {
|
|||||||
require.NoError(cmd.Flags().Set("dev-config", tc.devConfigFlag))
|
require.NoError(cmd.Flags().Set("dev-config", tc.devConfigFlag))
|
||||||
}
|
}
|
||||||
if tc.controllerCountFlag != nil {
|
if tc.controllerCountFlag != nil {
|
||||||
require.NoError(cmd.Flags().Set("control-plane-nodes", fmt.Sprint(*tc.controllerCountFlag)))
|
require.NoError(cmd.Flags().Set("control-plane-nodes", strconv.Itoa(*tc.controllerCountFlag)))
|
||||||
}
|
}
|
||||||
if tc.workerCountFlag != nil {
|
if tc.workerCountFlag != nil {
|
||||||
require.NoError(cmd.Flags().Set("worker-nodes", fmt.Sprint(*tc.workerCountFlag)))
|
require.NoError(cmd.Flags().Set("worker-nodes", strconv.Itoa(*tc.workerCountFlag)))
|
||||||
}
|
}
|
||||||
if tc.insTypeFlag != "" {
|
if tc.insTypeFlag != "" {
|
||||||
require.NoError(cmd.Flags().Set("instance-type", tc.insTypeFlag))
|
require.NoError(cmd.Flags().Set("instance-type", tc.insTypeFlag))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user