Skip to content

Commit c36f98f

Browse files
authored
chore(conf): Refactor configuration of use case (#1676)
Signed-off-by: Javier Rodriguez <[email protected]>
1 parent ce478cf commit c36f98f

File tree

7 files changed

+44
-13
lines changed

7 files changed

+44
-13
lines changed

app/controlplane/cmd/wire.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ func wireApp(*conf.Bootstrap, credentials.ReaderWriter, log.Logger, sdk.Availabl
6161
newPolicyProviderConfig,
6262
newNatsConnection,
6363
auditor.NewAuditLogPublisher,
64+
newCASServerOptions,
6465
),
6566
)
6667
}
@@ -86,3 +87,12 @@ func serviceOpts(l log.Logger) []service.NewOpt {
8687
service.WithLogger(l),
8788
}
8889
}
90+
91+
func newCASServerOptions(in *conf.Bootstrap_CASServer) *biz.CASServerDefaultOpts {
92+
if in == nil {
93+
return &biz.CASServerDefaultOpts{}
94+
}
95+
return &biz.CASServerDefaultOpts{
96+
DefaultEntryMaxSize: in.GetDefaultEntryMaxSize(),
97+
}
98+
}

app/controlplane/cmd/wire_gen.go

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

app/controlplane/pkg/biz/casbackend.go

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import (
2424
"time"
2525

2626
"code.cloudfoundry.org/bytefmt"
27-
conf "github.com/chainloop-dev/chainloop/app/controlplane/internal/conf/controlplane/config/v1"
2827
backend "github.com/chainloop-dev/chainloop/pkg/blobmanager"
2928
"github.com/chainloop-dev/chainloop/pkg/blobmanager/azureblob"
3029
"github.com/chainloop-dev/chainloop/pkg/blobmanager/oci"
@@ -119,13 +118,18 @@ type CASBackendUseCase struct {
119118
MaxBytesDefault int64
120119
}
121120

122-
func NewCASBackendUseCase(repo CASBackendRepo, credsRW credentials.ReaderWriter, providers backend.Providers, c *conf.Bootstrap_CASServer, l log.Logger) (*CASBackendUseCase, error) {
121+
// CASServerDefaultOpts holds the default options for the CAS server
122+
type CASServerDefaultOpts struct {
123+
DefaultEntryMaxSize string
124+
}
125+
126+
func NewCASBackendUseCase(repo CASBackendRepo, credsRW credentials.ReaderWriter, providers backend.Providers, c *CASServerDefaultOpts, l log.Logger) (*CASBackendUseCase, error) {
123127
if l == nil {
124128
l = log.NewStdLogger(io.Discard)
125129
}
126130

127131
var maxBytesDefault uint64 = 100 * 1024 * 1024 // 100MB
128-
if c.GetDefaultEntryMaxSize() != "" {
132+
if c != nil && c.DefaultEntryMaxSize != "" {
129133
var err error
130134
maxBytesDefault, err = bytefmt.ToBytes(c.DefaultEntryMaxSize)
131135
if err != nil {

app/controlplane/pkg/biz/casbackend_test.go

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"errors"
2121
"testing"
2222

23-
conf "github.com/chainloop-dev/chainloop/app/controlplane/internal/conf/controlplane/config/v1"
2423
"github.com/chainloop-dev/chainloop/app/controlplane/pkg/biz"
2524
bizMocks "github.com/chainloop-dev/chainloop/app/controlplane/pkg/biz/mocks"
2625
backends "github.com/chainloop-dev/chainloop/pkg/blobmanager"
@@ -178,7 +177,7 @@ func (s *casBackendTestSuite) TestNewCASBackendUseCase() {
178177

179178
tests := []struct {
180179
name string
181-
config *conf.Bootstrap_CASServer
180+
config *biz.CASServerDefaultOpts
182181
expectError bool
183182
errorMsg string
184183
wantSize int64 // Expected size in bytes after parsing
@@ -191,23 +190,23 @@ func (s *casBackendTestSuite) TestNewCASBackendUseCase() {
191190
},
192191
{
193192
name: "valid size - megabytes",
194-
config: &conf.Bootstrap_CASServer{
193+
config: &biz.CASServerDefaultOpts{
195194
DefaultEntryMaxSize: "100MB",
196195
},
197196
expectError: false,
198197
wantSize: 100 * 1024 * 1024,
199198
},
200199
{
201200
name: "valid size - gigabytes",
202-
config: &conf.Bootstrap_CASServer{
201+
config: &biz.CASServerDefaultOpts{
203202
DefaultEntryMaxSize: "2GB",
204203
},
205204
expectError: false,
206205
wantSize: 2 * 1024 * 1024 * 1024,
207206
},
208207
{
209208
name: "invalid size format",
210-
config: &conf.Bootstrap_CASServer{
209+
config: &biz.CASServerDefaultOpts{
211210
DefaultEntryMaxSize: "invalid",
212211
},
213212
expectError: true,
@@ -216,7 +215,7 @@ func (s *casBackendTestSuite) TestNewCASBackendUseCase() {
216215
},
217216
{
218217
name: "negative size",
219-
config: &conf.Bootstrap_CASServer{
218+
config: &biz.CASServerDefaultOpts{
220219
DefaultEntryMaxSize: "-100MB",
221220
},
222221
expectError: true,
@@ -225,7 +224,7 @@ func (s *casBackendTestSuite) TestNewCASBackendUseCase() {
225224
},
226225
{
227226
name: "zero size",
228-
config: &conf.Bootstrap_CASServer{
227+
config: &biz.CASServerDefaultOpts{
229228
DefaultEntryMaxSize: "0",
230229
},
231230
expectError: true,
@@ -234,7 +233,7 @@ func (s *casBackendTestSuite) TestNewCASBackendUseCase() {
234233
},
235234
{
236235
name: "missing unit",
237-
config: &conf.Bootstrap_CASServer{
236+
config: &biz.CASServerDefaultOpts{
238237
DefaultEntryMaxSize: "100",
239238
},
240239
expectError: true,

app/controlplane/pkg/biz/testhelpers/database.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,12 @@ func NewCASBackendConfig() *conf.Bootstrap_CASServer {
207207
}
208208
}
209209

210+
func NewCASServerOptions(in *conf.Bootstrap_CASServer) *biz.CASServerDefaultOpts {
211+
return &biz.CASServerDefaultOpts{
212+
DefaultEntryMaxSize: in.GetDefaultEntryMaxSize(),
213+
}
214+
}
215+
210216
func NewPromSpec() []*conf.PrometheusIntegrationSpec {
211217
return []*conf.PrometheusIntegrationSpec{}
212218
}

app/controlplane/pkg/biz/testhelpers/wire.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ func WireTestData(*TestDatabase, *testing.T, log.Logger, credentials.ReaderWrite
5858
newNatsConnection,
5959
auditor.NewAuditLogPublisher,
6060
NewCASBackendConfig,
61+
NewCASServerOptions,
6162
),
6263
)
6364
}

app/controlplane/pkg/biz/testhelpers/wire_gen.go

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

0 commit comments

Comments
 (0)