Skip to content

Commit 053c574

Browse files
committed
feat: store and expose validation status
Signed-off-by: Miguel Martinez <miguel@chainloop.dev>
1 parent 9d4bf2e commit 053c574

4 files changed

Lines changed: 11 additions & 8 deletions

File tree

app/controlplane/pkg/biz/casbackend.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -499,16 +499,12 @@ func (uc *CASBackendUseCase) PerformValidation(ctx context.Context, id string) (
499499
// 1 - Retrieve the credentials from the external secrets manager
500500
var creds any
501501
if err := uc.credsRW.ReadCredentials(ctx, backend.SecretName, &creds); err != nil {
502-
errMsg := fmt.Sprintf("credentials not found or invalid: %v", err)
503-
validationError = &errMsg
504502
uc.logger.Infow("msg", "credentials not found or invalid", "ID", id, "error", err)
505503
return nil
506504
}
507505

508506
credsJSON, err := json.Marshal(creds)
509507
if err != nil {
510-
errMsg := fmt.Sprintf("credentials invalid: %v", err)
511-
validationError = &errMsg
512508
uc.logger.Infow("msg", "credentials invalid", "ID", id, "error", err)
513509
return nil
514510
}

app/controlplane/pkg/biz/casbackend_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ func (s *casBackendTestSuite) TestPerformValidation() {
140140

141141
t.Run("proper provider credentials missing, set validation status => invalid", func(_ *testing.T) {
142142
s.repo.On("FindByID", mock.Anything, s.validUUID).Return(validRepo, nil)
143-
s.repo.On("UpdateValidationStatus", mock.Anything, s.validUUID, biz.CASBackendValidationFailed).Return(nil)
143+
s.repo.On("UpdateValidationStatus", mock.Anything, s.validUUID, biz.CASBackendValidationFailed, mock.Anything).Return(nil)
144144

145145
s.credsRW.On("ReadCredentials", mock.Anything, mock.Anything, mock.Anything).Return(credentials.ErrNotFound)
146146
err := s.useCase.PerformValidation(context.Background(), s.validUUID.String())
@@ -150,7 +150,7 @@ func (s *casBackendTestSuite) TestPerformValidation() {
150150

151151
t.Run("invalid credentials, set validation status => invalid", func(_ *testing.T) {
152152
s.repo.On("FindByID", mock.Anything, s.validUUID).Return(validRepo, nil)
153-
s.repo.On("UpdateValidationStatus", mock.Anything, s.validUUID, biz.CASBackendValidationFailed).Return(nil)
153+
s.repo.On("UpdateValidationStatus", mock.Anything, s.validUUID, biz.CASBackendValidationFailed, mock.Anything).Return(nil)
154154
s.credsRW.On("ReadCredentials", mock.Anything, mock.Anything, mock.Anything).Return(nil)
155155
s.backendProvider.On("ValidateAndExtractCredentials", validRepo.Location, mock.Anything).Return(nil, errors.New("invalid credentials"))
156156

@@ -161,7 +161,7 @@ func (s *casBackendTestSuite) TestPerformValidation() {
161161

162162
t.Run("valid credentials, set validation status => ok", func(_ *testing.T) {
163163
s.repo.On("FindByID", mock.Anything, s.validUUID).Return(validRepo, nil)
164-
s.repo.On("UpdateValidationStatus", mock.Anything, s.validUUID, biz.CASBackendValidationOK).Return(nil)
164+
s.repo.On("UpdateValidationStatus", mock.Anything, s.validUUID, biz.CASBackendValidationOK, mock.Anything).Return(nil)
165165
s.credsRW.On("ReadCredentials", mock.Anything, mock.Anything, mock.Anything).Return(nil)
166166
s.backendProvider.On("ValidateAndExtractCredentials", validRepo.Location, mock.Anything).Return(nil, nil)
167167

app/controlplane/pkg/data/casbackend.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ func entCASBackendToBiz(backend *ent.CASBackend) *biz.CASBackend {
257257
CreatedAt: toTimePtr(backend.CreatedAt),
258258
ValidatedAt: toTimePtr(backend.ValidatedAt),
259259
ValidationStatus: backend.ValidationStatus,
260-
ValidationError: biz.ToPtr(backend.ValidationError),
260+
ValidationError: toStringPtr(backend.ValidationError),
261261
Provider: backend.Provider,
262262
Default: backend.Default,
263263
Inline: backend.Provider == biz.CASBackendInline,

app/controlplane/pkg/data/data.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,13 @@ func toTimePtr(t time.Time) *time.Time {
143143
return &t
144144
}
145145

146+
func toStringPtr(s string) *string {
147+
if s == "" {
148+
return nil
149+
}
150+
return &s
151+
}
152+
146153
func orgScopedQuery(client *ent.Client, orgID uuid.UUID) *ent.OrganizationQuery {
147154
return client.Organization.Query().Where(organization.ID(orgID), organization.DeletedAtIsNil())
148155
}

0 commit comments

Comments
 (0)