Skip to content

Commit ff27885

Browse files
authored
chore(controlplane): remove deprecated OCI code (#47)
Signed-off-by: Miguel Martinez Trivino <miguel@chainloop.dev>
1 parent d512363 commit ff27885

File tree

3 files changed

+11
-100
lines changed

3 files changed

+11
-100
lines changed

app/controlplane/cmd/wire_gen.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

app/controlplane/internal/biz/attestation.go

Lines changed: 7 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,6 @@ import (
2323
"fmt"
2424
"io"
2525

26-
casAPI "github.com/chainloop-dev/chainloop/app/artifact-cas/api/cas/v1"
27-
28-
backend "github.com/chainloop-dev/chainloop/internal/blobmanager"
2926
"github.com/chainloop-dev/chainloop/internal/servicelogger"
3027
"github.com/go-kratos/kratos/v2/log"
3128
"github.com/secure-systems-lab/go-securesystemslib/dsse"
@@ -38,10 +35,6 @@ type Attestation struct {
3835
type AttestationUseCase struct {
3936
logger *log.Helper
4037
CASClient
41-
42-
// DEPRECATED
43-
// We will remove it once we force all the clients to use the CAS instead
44-
backendProvider backend.Provider
4538
}
4639

4740
type AttestationRef struct {
@@ -51,39 +44,23 @@ type AttestationRef struct {
5144
SecretRef string
5245
}
5346

54-
func NewAttestationUseCase(client CASClient, p backend.Provider, logger log.Logger) *AttestationUseCase {
47+
func NewAttestationUseCase(client CASClient, logger log.Logger) *AttestationUseCase {
5548
if logger == nil {
5649
logger = log.NewStdLogger(io.Discard)
5750
}
5851

5952
return &AttestationUseCase{
60-
logger: servicelogger.ScopedHelper(logger, "biz/attestation"),
61-
CASClient: client,
62-
backendProvider: p,
53+
logger: servicelogger.ScopedHelper(logger, "biz/attestation"),
54+
CASClient: client,
6355
}
6456
}
6557

6658
func (uc *AttestationUseCase) FetchFromStore(ctx context.Context, secretID, digest string) (*Attestation, error) {
6759
uc.logger.Infow("msg", "downloading attestation", "digest", digest)
6860
buf := bytes.NewBuffer(nil)
6961

70-
if uc.CASClient.Configured() {
71-
if err := uc.CASClient.Download(ctx, secretID, buf, digest); err != nil {
72-
return nil, fmt.Errorf("downloading from CAS: %w", err)
73-
}
74-
} else {
75-
uc.logger.Warnw("msg", "no CAS configured, falling back to old mechanism")
76-
77-
// DEPRECATED
78-
// TODO: remove
79-
downloader, err := uc.backendProvider.FromCredentials(ctx, secretID)
80-
if err != nil {
81-
return nil, err
82-
}
83-
84-
if err := downloader.Download(ctx, buf, digest); err != nil {
85-
return nil, err
86-
}
62+
if err := uc.CASClient.Download(ctx, secretID, buf, digest); err != nil {
63+
return nil, fmt.Errorf("downloading from CAS: %w", err)
8764
}
8865

8966
var envelope dsse.Envelope
@@ -105,27 +82,8 @@ func (uc *AttestationUseCase) UploadToCAS(ctx context.Context, envelope *dsse.En
10582
hash.Write(jsonContent)
10683
digest := fmt.Sprintf("%x", hash.Sum(nil))
10784

108-
if uc.CASClient.Configured() {
109-
if err := uc.CASClient.Upload(ctx, secretID, bytes.NewBuffer(jsonContent), filename, digest); err != nil {
110-
return "", fmt.Errorf("uploading to CAS: %w", err)
111-
}
112-
113-
return digest, nil
114-
}
115-
116-
uc.logger.Warnw("msg", "no CAS configured, falling back to old mechanism")
117-
118-
// fallback to old mechanism, this will be removed once we force all the clients to use the CAS
119-
// TODO: remove
120-
uploader, err := uc.backendProvider.FromCredentials(ctx, secretID)
121-
if err != nil {
122-
return "", err
123-
}
124-
125-
if err := uploader.Upload(ctx, bytes.NewBuffer(jsonContent), &casAPI.CASResource{
126-
FileName: filename, Digest: digest,
127-
}); err != nil {
128-
return "", fmt.Errorf("uploading to OCI: %w", err)
85+
if err := uc.CASClient.Upload(ctx, secretID, bytes.NewBuffer(jsonContent), filename, digest); err != nil {
86+
return "", fmt.Errorf("uploading to CAS: %w", err)
12987
}
13088

13189
return digest, nil

app/controlplane/internal/biz/attestation_test.go

Lines changed: 3 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,8 @@ import (
2222
"io"
2323
"testing"
2424

25-
casAPI "github.com/chainloop-dev/chainloop/app/artifact-cas/api/cas/v1"
2625
"github.com/chainloop-dev/chainloop/app/controlplane/internal/biz"
2726
"github.com/chainloop-dev/chainloop/app/controlplane/internal/biz/mocks"
28-
blobmock "github.com/chainloop-dev/chainloop/internal/blobmanager/mocks"
2927
"github.com/google/uuid"
3028
"github.com/secure-systems-lab/go-securesystemslib/dsse"
3129
"github.com/stretchr/testify/assert"
@@ -39,52 +37,18 @@ var envelope = &dsse.Envelope{}
3937

4038
const expectedDigest = "f845058d865c3d4d491c9019f6afe9c543ad2cd11b31620cc512e341fb03d3d8"
4139

42-
// Deprecated method
43-
func (s *attestationTestSuite) TestUploadToCASFallbackOCI() {
44-
ctx := context.Background()
45-
s.uploader.On("Upload", ctx, mock.Anything, &casAPI.CASResource{
46-
FileName: fmt.Sprintf("attestation-%s.json", runID), Digest: expectedDigest,
47-
}).Return(nil)
48-
49-
s.casClient.On("Configured").Return(false)
50-
51-
gotDigest, err := s.uc.UploadToCAS(ctx, envelope, "my-secret", runID)
52-
assert.NoError(s.T(), err)
53-
assert.Equal(s.T(), expectedDigest, gotDigest)
54-
}
55-
5640
func (s *attestationTestSuite) TestUploadToCAS() {
5741
ctx := context.Background()
5842
s.casClient.On(
5943
"Upload", ctx, "my-secret", mock.Anything,
6044
fmt.Sprintf("attestation-%s.json", runID), expectedDigest,
6145
).Return(nil)
6246

63-
s.casClient.On("Configured").Return(true)
64-
6547
gotDigest, err := s.uc.UploadToCAS(ctx, envelope, "my-secret", runID)
6648
assert.NoError(s.T(), err)
6749
assert.Equal(s.T(), expectedDigest, gotDigest)
6850
}
6951

70-
func (s *attestationTestSuite) TestFetchFromStoreFallbackOCI() {
71-
want := &biz.Attestation{Envelope: &dsse.Envelope{}}
72-
73-
ctx := context.Background()
74-
s.downloader.On("Download", ctx, mock.Anything, expectedDigest).Return(nil).Run(
75-
func(args mock.Arguments) {
76-
buf := args.Get(1).(io.Writer)
77-
err := json.NewEncoder(buf).Encode(want)
78-
require.NoError(s.T(), err)
79-
})
80-
81-
s.casClient.On("Configured").Return(false)
82-
83-
got, err := s.uc.FetchFromStore(ctx, "my-secret", expectedDigest)
84-
assert.NoError(s.T(), err)
85-
assert.Equal(s.T(), want, got)
86-
}
87-
8852
func (s *attestationTestSuite) TestFetchFromStore() {
8953
want := &biz.Attestation{Envelope: &dsse.Envelope{}}
9054

@@ -96,8 +60,6 @@ func (s *attestationTestSuite) TestFetchFromStore() {
9660
require.NoError(s.T(), err)
9761
})
9862

99-
s.casClient.On("Configured").Return(true)
100-
10163
got, err := s.uc.FetchFromStore(ctx, "my-secret", expectedDigest)
10264
assert.NoError(s.T(), err)
10365
assert.Equal(s.T(), want, got)
@@ -108,22 +70,13 @@ func TestAttestation(t *testing.T) {
10870
}
10971

11072
func (s *attestationTestSuite) SetupTest() {
111-
backendProvider := blobmock.NewProvider(s.T())
112-
ociBackend := blobmock.NewUploaderDownloader(s.T())
113-
backendProvider.On("FromCredentials", mock.Anything, "my-secret").Maybe().Return(ociBackend, nil)
114-
11573
s.casClient = mocks.NewCASClient(s.T())
116-
s.uc = biz.NewAttestationUseCase(s.casClient, backendProvider, nil)
117-
s.uploader = (*blobmock.Uploader)(ociBackend)
118-
s.downloader = (*blobmock.Downloader)(ociBackend)
74+
s.uc = biz.NewAttestationUseCase(s.casClient, nil)
11975
}
12076

12177
// Utility struct to hold the test suite
12278
type attestationTestSuite struct {
12379
suite.Suite
124-
uc *biz.AttestationUseCase
125-
// Deprecated: attestation should use the casclient instead of the blobmanager
126-
uploader *blobmock.Uploader
127-
downloader *blobmock.Downloader
128-
casClient *mocks.CASClient
80+
uc *biz.AttestationUseCase
81+
casClient *mocks.CASClient
12982
}

0 commit comments

Comments
 (0)