Skip to content

Commit 94b535c

Browse files
committed
validating the instance types
1 parent e1a90f5 commit 94b535c

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

pkg/cmd/start/start.go

+19
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ var (
2929
brev start <git url>
3030
brev start <git url> --org myFancyOrg
3131
`
32+
instanceTypes = []string{"p4d.24xlarge", "p3.2xlarge", "p3.8xlarge", "p3.16xlarge", "p3dn.24xlarge", "p2.xlarge", "p2.8xlarge", "p2.16xlarge", "g5.xlarge", "g5.2xlarge", "g5.4xlarge", "g5.8xlarge", "g5.16xlarge", "g5.12xlarge", "g5.24xlarge", "g5.48xlarge", "g5g.xlarge", "g5g.2xlarge", "g5g.4xlarge", "g5g.8xlarge", "g5g.16xlarge", "g5g.metal", "g4dn.xlarge", "g4dn.2xlarge", "g4dn.4xlarge", "g4dn.8xlarge", "g4dn.16xlarge", "g4dn.12xlarge", "g4dn.metal", "g4ad.xlarge", "g4ad.2xlarge", "g4ad.4xlarge", "g4ad.8xlarge", "g4ad.16xlarge", "g3s.xlarge", "g3.4xlarge", "g3.8xlarge", "g3.16xlarge"}
3233
)
3334

3435
type StartStore interface {
@@ -44,6 +45,15 @@ type StartStore interface {
4445
GetFileAsString(path string) (string, error)
4546
}
4647

48+
func validateInstanceType(instanceType string) bool {
49+
for _, v := range instanceTypes {
50+
if instanceType == v {
51+
return true
52+
}
53+
}
54+
return false
55+
}
56+
4757
func NewCmdStart(t *terminal.Terminal, startStore StartStore, noLoginStartStore StartStore) *cobra.Command {
4858
var org string
4959
var name string
@@ -69,6 +79,15 @@ func NewCmdStart(t *terminal.Terminal, startStore StartStore, noLoginStartStore
6979
if len(args) > 0 {
7080
repoOrPathOrNameOrID = args[0]
7181
}
82+
83+
if instanceType != "" {
84+
isValid := validateInstanceType(instanceType)
85+
if !isValid {
86+
err := fmt.Errorf("invalid instance type: %s", instanceType)
87+
return breverrors.WrapAndTrace(err)
88+
}
89+
}
90+
7291
err := runStartWorkspace(t, StartOptions{
7392
RepoOrPathOrNameOrID: repoOrPathOrNameOrID,
7493
Name: name,

0 commit comments

Comments
 (0)