From 87c3d0fb6a30508da198228101f45c2dcac30642 Mon Sep 17 00:00:00 2001 From: Stephanie Hingtgen Date: Fri, 9 Feb 2024 13:51:00 -0600 Subject: [PATCH] K8s: Update stack id validation (#82275) --- .../apiserver/endpoints/request/namespace.go | 6 +++-- .../endpoints/request/namespace_test.go | 23 ++++++++++++------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/pkg/services/apiserver/endpoints/request/namespace.go b/pkg/services/apiserver/endpoints/request/namespace.go index 34f8a00bceb..899e342dc9f 100644 --- a/pkg/services/apiserver/endpoints/request/namespace.go +++ b/pkg/services/apiserver/endpoints/request/namespace.go @@ -67,10 +67,12 @@ func ParseNamespace(ns string) (NamespaceInfo, error) { } if strings.HasPrefix(ns, "stack-") { - info.StackID = ns[6:] - if len(info.StackID) < 1 { + stackIDStr := ns[6:] + stackID, err := strconv.Atoi(stackIDStr) + if err != nil || stackID < 1 { return info, fmt.Errorf("invalid stack id") } + info.StackID = stackIDStr info.OrgID = 1 return info, nil } diff --git a/pkg/services/apiserver/endpoints/request/namespace_test.go b/pkg/services/apiserver/endpoints/request/namespace_test.go index 86c863e3ef6..f5665ff2f5b 100644 --- a/pkg/services/apiserver/endpoints/request/namespace_test.go +++ b/pkg/services/apiserver/endpoints/request/namespace_test.go @@ -77,15 +77,15 @@ func TestParseNamespace(t *testing.T) { }, }, { - name: "valid stack", + name: "invalid stack id (must be an int)", + expectErr: true, namespace: "stack-abcdef", expected: request.NamespaceInfo{ - OrgID: 1, - StackID: "abcdef", + OrgID: -1, }, }, { - name: "invalid stack id", + name: "invalid stack id (must be provided)", namespace: "stack-", expectErr: true, expected: request.NamespaceInfo{ @@ -93,12 +93,19 @@ func TestParseNamespace(t *testing.T) { }, }, { - name: "invalid stack id (too short)", - namespace: "stack-", + name: "invalid stack id (cannot be 0)", + namespace: "stack-0", expectErr: true, expected: request.NamespaceInfo{ - OrgID: -1, - StackID: "", + OrgID: -1, + }, + }, + { + name: "valid stack", + namespace: "stack-1", + expected: request.NamespaceInfo{ + OrgID: 1, + StackID: "1", }, }, {