From ac3543bdfb081ed4d3282e8da954f90a6518749f Mon Sep 17 00:00:00 2001 From: Johan Brandhorst-Satzkorn Date: Thu, 16 Feb 2023 11:36:23 -0800 Subject: [PATCH] fix(targets): Use correct field name in deprecation warning (#2978) --- .../handlers/targets/target_service.go | 7 +++---- .../handlers/targets/tcp/target_service_test.go | 17 +++++++++++------ 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/internal/daemon/controller/handlers/targets/target_service.go b/internal/daemon/controller/handlers/targets/target_service.go index 7e6bb67d5..677cca840 100644 --- a/internal/daemon/controller/handlers/targets/target_service.go +++ b/internal/daemon/controller/handlers/targets/target_service.go @@ -97,7 +97,6 @@ var ( ValidateIngressWorkerFilterFn = IngressWorkerFilterUnsupported AuthorizeSessionWorkerFilterFn = AuthorizeSessionWithWorkerFilter - WorkerFilterDeprecationMessage = "This field is deprecated. Use egress_filter instead." ) func IngressWorkerFilterUnsupported(string) error { @@ -1557,7 +1556,7 @@ func validateCreateRequest(req *pbs.CreateTargetRequest) error { badFields[globals.TypeField] = "Unknown type provided." } if workerFilter := req.GetItem().GetWorkerFilter(); workerFilter != nil { - badFields[globals.WorkerFilterField] = WorkerFilterDeprecationMessage + badFields[globals.WorkerFilterField] = fmt.Sprintf("This field is deprecated. Use %s instead.", globals.EgressWorkerFilterField) } if egressFilter := req.GetItem().GetEgressWorkerFilter(); egressFilter != nil { if _, err := bexpr.CreateEvaluator(egressFilter.GetValue()); err != nil { @@ -1631,7 +1630,7 @@ func validateUpdateRequest(req *pbs.UpdateTargetRequest) error { } if egressFilter := req.GetItem().GetEgressWorkerFilter(); egressFilter != nil { if workerFilterFound { - badFields[globals.EgressWorkerFilterField] = "Cannot set worker_filter and egress_filter; they are mutually exclusive fields." + badFields[globals.EgressWorkerFilterField] = fmt.Sprintf("Cannot set %s and %s; they are mutually exclusive fields.", globals.WorkerFilterField, globals.EgressWorkerFilterField) } if _, err := bexpr.CreateEvaluator(egressFilter.GetValue()); err != nil { badFields[globals.EgressWorkerFilterField] = "Unable to successfully parse egress filter expression." @@ -1639,7 +1638,7 @@ func validateUpdateRequest(req *pbs.UpdateTargetRequest) error { } if ingressFilter := req.GetItem().GetIngressWorkerFilter(); ingressFilter != nil { if workerFilterFound { - badFields[globals.IngressWorkerFilterField] = "Cannot set worker_filter and ingress_filter; they are mutually exclusive fields." + badFields[globals.IngressWorkerFilterField] = fmt.Sprintf("Cannot set %s and %s; they are mutually exclusive fields.", globals.WorkerFilterField, globals.IngressWorkerFilterField) } err := ValidateIngressWorkerFilterFn(ingressFilter.GetValue()) if err != nil { diff --git a/internal/daemon/controller/handlers/targets/tcp/target_service_test.go b/internal/daemon/controller/handlers/targets/tcp/target_service_test.go index 913d48ef1..7ce5c89d2 100644 --- a/internal/daemon/controller/handlers/targets/tcp/target_service_test.go +++ b/internal/daemon/controller/handlers/targets/tcp/target_service_test.go @@ -567,10 +567,11 @@ func TestCreate(t *testing.T) { targets.AuthorizeSessionWorkerFilterFn = targets.AuthorizeSessionWithWorkerFilter cases := []struct { - name string - req *pbs.CreateTargetRequest - res *pbs.CreateTargetResponse - err error + name string + req *pbs.CreateTargetRequest + res *pbs.CreateTargetResponse + err error + errStr string }{ { name: "Create a valid target", @@ -686,8 +687,9 @@ func TestCreate(t *testing.T) { req: &pbs.CreateTargetRequest{Item: &pb.Target{ WorkerFilter: wrapperspb.String(`"/name" matches "test-worker"`), }}, - res: nil, - err: handlers.ApiErrorWithCode(codes.InvalidArgument), + res: nil, + err: handlers.ApiErrorWithCode(codes.InvalidArgument), + errStr: "Use egress_worker_filter instead", }, { name: "Ingress filter unsupported on OSS", @@ -741,6 +743,9 @@ func TestCreate(t *testing.T) { if tc.err != nil { require.Error(gErr) assert.True(errors.Is(gErr, tc.err), "CreateTarget(%+v) got error %v, wanted %v", tc.req, gErr, tc.err) + if tc.errStr != "" { + require.ErrorContains(gErr, tc.errStr) + } } else { assert.Nil(gErr, "Unexpected err: %v", gErr) }