From 30370c9cb143daa0f966803b7be990d6516905c5 Mon Sep 17 00:00:00 2001 From: Justin Sherrill Date: Wed, 9 Oct 2024 13:28:30 -0400 Subject: [PATCH] Fixes 4821: expose URL on snapshot/for_date (#842) --- pkg/dao/snapshots.go | 10 +++++++--- pkg/dao/snapshots_test.go | 17 +++++++++++------ 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/pkg/dao/snapshots.go b/pkg/dao/snapshots.go index 32fa5fe8b..a214dd1ed 100644 --- a/pkg/dao/snapshots.go +++ b/pkg/dao/snapshots.go @@ -388,6 +388,11 @@ func (sDao *snapshotDaoImpl) FetchSnapshotsByDateAndRepository(ctx context.Conte return api.ListSnapshotByDateResponse{}, err } + pulpContentPath, err := sDao.pulpClient.GetContentPath(ctx) + if err != nil { + return api.ListSnapshotByDateResponse{}, err + } + repoUUIDCount := len(request.RepositoryUUIDS) listResponse := make([]api.SnapshotForDate, repoUUIDCount) @@ -400,9 +405,8 @@ func (sDao *snapshotDaoImpl) FetchSnapshotsByDateAndRepository(ctx context.Conte }) if indx != -1 { - apiResponse := api.SnapshotResponse{} - snapshotModelToApi(snaps[indx], &apiResponse) - listResponse[i].Match = &apiResponse + apiResponse := snapshotConvertToResponses([]models.Snapshot{snaps[indx]}, pulpContentPath) + listResponse[i].Match = &apiResponse[0] } listResponse[i].IsAfter = indx != -1 && snaps[indx].Base.CreatedAt.After(date) diff --git a/pkg/dao/snapshots_test.go b/pkg/dao/snapshots_test.go index da9ff27ee..2097b2b9f 100644 --- a/pkg/dao/snapshots_test.go +++ b/pkg/dao/snapshots_test.go @@ -470,14 +470,16 @@ func (s *SnapshotsSuite) TestFetchSnapshotsByDateAndRepository() { t := s.T() tx := s.tx + mockPulpClient := pulp_client.NewMockPulpClient(t) + sDao := snapshotDaoImpl{db: tx, pulpClient: mockPulpClient} + mockPulpClient.On("GetContentPath", context.Background()).Return(testContentPath, nil) + repoConfig := s.createRepository() baseTime := time.Now() s.createSnapshotAtSpecifiedTime(repoConfig, baseTime.Add(-time.Hour*30)) // Before Date second := s.createSnapshotAtSpecifiedTime(repoConfig, baseTime) // Target Date s.createSnapshotAtSpecifiedTime(repoConfig, baseTime.Add(time.Hour*30)) // After Date - sDao := GetSnapshotDao(tx) - request := api.ListSnapshotByDateRequest{} request.Date = api.Date(second.Base.CreatedAt) @@ -491,12 +493,17 @@ func (s *SnapshotsSuite) TestFetchSnapshotsByDateAndRepository() { assert.Equal(t, false, response.Data[0].IsAfter) assert.Equal(t, second.Base.UUID, response.Data[0].Match.UUID) assert.Equal(t, second.Base.CreatedAt.Day(), response.Data[0].Match.CreatedAt.Day()) + assert.NotEmpty(t, response.Data[0].Match.URL) } func (s *SnapshotsSuite) TestFetchSnapshotsByDateAndRepositoryMulti() { t := s.T() tx := s.tx + mockPulpClient := pulp_client.NewMockPulpClient(t) + sDao := snapshotDaoImpl{db: tx, pulpClient: mockPulpClient} + mockPulpClient.On("GetContentPath", context.Background()).Return(testContentPath, nil) + repoConfig := s.createRepository() repoConfig2 := s.createRepository() redhatRepo := s.createRedhatRepository() @@ -527,8 +534,6 @@ func (s *SnapshotsSuite) TestFetchSnapshotsByDateAndRepositoryMulti() { randomUUID.String(), } - sDao := GetSnapshotDao(tx) - fullRepsonse, err := sDao.FetchSnapshotsByDateAndRepository(context.Background(), repoConfig.OrgID, request) response := fullRepsonse.Data assert.NoError(t, err) @@ -595,14 +600,14 @@ func (s *SnapshotsSuite) TestListByTemplate() { assert.Equal(t, 2, len(snapshots.Data)) assert.Equal(t, int64(2), totalSnapshots) - //// target 1 + // target 1 assert.True(t, snapshots.Data[0].CreatedAt.After(t1b.CreatedAt)) assert.True(t, snapshots.Data[0].CreatedAt.Before(t1a.CreatedAt)) assert.True(t, bytes.Contains([]byte(snapshots.Data[0].RepositoryName), []byte("Last"))) assert.Equal(t, t1.Base.CreatedAt.Day(), snapshots.Data[0].CreatedAt.Day()) assert.Equal(t, repoConfig.UUID, snapshots.Data[0].RepositoryUUID) - //// target 2 + // target 2 assert.True(t, snapshots.Data[1].CreatedAt.Before(t2a.CreatedAt)) assert.True(t, snapshots.Data[1].CreatedAt.Before(t2aa.CreatedAt)) assert.True(t, bytes.Contains([]byte(snapshots.Data[1].RepositoryName), []byte("First")))