From 8a4c84ded3483c5e98e3a64de48b76a5459bc046 Mon Sep 17 00:00:00 2001 From: hc-github-team-secure-boundary <82989682+hc-github-team-secure-boundary@users.noreply.github.com> Date: Wed, 2 Jul 2025 17:27:08 -0400 Subject: [PATCH] backport of commit 87f702e6af55e04f1538c28d6a2440882bfc4ab3 (#5897) Co-authored-by: Ryan Derr --- internal/server/repository_controller.go | 18 ++++++++++----- internal/server/repository_controller_test.go | 22 +++++++++++++++++++ 2 files changed, 34 insertions(+), 6 deletions(-) diff --git a/internal/server/repository_controller.go b/internal/server/repository_controller.go index 9912adf217..8300f3b20c 100644 --- a/internal/server/repository_controller.go +++ b/internal/server/repository_controller.go @@ -95,12 +95,18 @@ func (r *Repository) UpdateControllerStatus(ctx context.Context, controller *Con db.ExpBackoff{}, func(reader db.Reader, w db.Writer) error { var err error - rowsUpdated, err = w.Exec(ctx, updateController, - []any{ - sql.Named("controller_address", controller.Address), - sql.Named("controller_description", controller.Description), - sql.Named("controller_private_id", controller.PrivateId), - }) + params := []any{ + sql.Named("controller_private_id", controller.PrivateId), + sql.Named("controller_address", controller.Address), + } + + if controller.Description != "" { + params = append(params, sql.Named("controller_description", controller.Description)) + } else { + params = append(params, sql.Named("controller_description", nil)) + } + + rowsUpdated, err = w.Exec(ctx, updateController, params) switch { case err != nil: return errors.Wrap(ctx, err, op+":Update") diff --git a/internal/server/repository_controller_test.go b/internal/server/repository_controller_test.go index d239d538b4..238c46f955 100644 --- a/internal/server/repository_controller_test.go +++ b/internal/server/repository_controller_test.go @@ -184,6 +184,28 @@ func TestRepository_UpdateControllerStatus(t *testing.T) { require.Equal(t, 1, c) }, }, + "valid-ipv4-controller-remove-description": { + originalController: NewController("test", WithAddress("127.0.0.1"), WithDescription("short name description")), + updatedController: NewController("test", WithAddress("127.0.0.2")), + wantCount: 1, + cleanUpFunc: func(t *testing.T, rw *db.Db, privateId string) { + t.Helper() + c, err := rw.Exec(ctx, removeControllerSql, []any{privateId}) + require.NoError(t, err) + require.Equal(t, 1, c) + }, + }, + "valid-ipv4-controller-no-description": { + originalController: NewController("test", WithAddress("127.0.0.1")), + updatedController: NewController("test", WithAddress("127.0.0.2")), + wantCount: 1, + cleanUpFunc: func(t *testing.T, rw *db.Db, privateId string) { + t.Helper() + c, err := rw.Exec(ctx, removeControllerSql, []any{privateId}) + require.NoError(t, err) + require.Equal(t, 1, c) + }, + }, } for name, tt := range tests {