From f9f7ee2cc42aaa4bad008f111dd434cf0b7c1ae0 Mon Sep 17 00:00:00 2001 From: Jeff Mitchell Date: Fri, 5 May 2023 11:52:41 -0400 Subject: [PATCH] Fix build --- .../controller/handlers/targets/target_service.go | 15 ++++++++------- .../handlers/targets/target_service_test.go | 2 +- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/internal/daemon/controller/handlers/targets/target_service.go b/internal/daemon/controller/handlers/targets/target_service.go index 4b5d986a0e..fd3418e2fe 100644 --- a/internal/daemon/controller/handlers/targets/target_service.go +++ b/internal/daemon/controller/handlers/targets/target_service.go @@ -648,7 +648,7 @@ func (s Service) RemoveTargetCredentialSources(ctx context.Context, req *pbs.Rem // If set, use the worker_filter or egress_worker_filter to filter the selected workers // and ensure we have workers available to service this request. -func AuthorizeSessionWithWorkerFilter(_ context.Context, t target.Target, selectedWorkers wl.WorkerList, _ string, _ common.Downstreamers) (wl.WorkerList, error) { +func AuthorizeSessionWithWorkerFilter(_ context.Context, t target.Target, selectedWorkers wl.WorkerList, _ string, _ common.Downstreamers) (wl.WorkerList, *server.Worker, error) { if len(selectedWorkers) > 0 { var eval *bexpr.Evaluator var err error @@ -658,25 +658,25 @@ func AuthorizeSessionWithWorkerFilter(_ context.Context, t target.Target, select case len(t.GetWorkerFilter()) > 0: eval, err = bexpr.CreateEvaluator(t.GetWorkerFilter()) default: // No filter - return selectedWorkers, nil + return selectedWorkers, nil, nil } if err != nil { - return nil, err + return nil, nil, err } selectedWorkers, err = selectedWorkers.Filtered(eval) if err != nil { - return nil, err + return nil, nil, err } } if len(selectedWorkers) == 0 { - return nil, handlers.ApiErrorWithCodeAndMessage( + return nil, nil, handlers.ApiErrorWithCodeAndMessage( codes.FailedPrecondition, "No workers are available to handle this session, or all have been filtered.") } - return selectedWorkers, nil + return selectedWorkers, nil, nil } func (s Service) AuthorizeSession(ctx context.Context, req *pbs.AuthorizeSessionRequest) (*pbs.AuthorizeSessionResponse, error) { @@ -876,7 +876,8 @@ func (s Service) AuthorizeSession(ctx context.Context, req *pbs.AuthorizeSession "No workers are available to handle this session.") } - selectedWorkers, err = AuthorizeSessionWorkerFilterFn(ctx, t, selectedWorkers, h, s.downstreams) + var protoWorker *server.Worker + selectedWorkers, protoWorker, err = AuthorizeSessionWorkerFilterFn(ctx, t, selectedWorkers, h, s.downstreams) if err != nil { return nil, err } diff --git a/internal/daemon/controller/handlers/targets/target_service_test.go b/internal/daemon/controller/handlers/targets/target_service_test.go index 33c908bafd..85105727d6 100644 --- a/internal/daemon/controller/handlers/targets/target_service_test.go +++ b/internal/daemon/controller/handlers/targets/target_service_test.go @@ -117,7 +117,7 @@ func TestWorkerList_EgressFilter(t *testing.T) { if len(tc.filter) > 0 { target.EgressWorkerFilter = tc.filter } - out, err := AuthorizeSessionWithWorkerFilter(ctx, target, tc.in, "", nil) + out, _, err := AuthorizeSessionWithWorkerFilter(ctx, target, tc.in, "", nil) if tc.errContains != "" { assert.Contains(err.Error(), tc.errContains) assert.Nil(out)