Skip to content

Commit 0f7deba

Browse files
committed
drop manager interface, wrap errors
1 parent e461d27 commit 0f7deba

File tree

5 files changed

+32
-40
lines changed

5 files changed

+32
-40
lines changed

coderd/coderd.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ type Options struct {
136136
Logger slog.Logger
137137
Database database.Store
138138
Pubsub pubsub.Pubsub
139-
RuntimeConfig runtimeconfig.Manager
139+
RuntimeConfig *runtimeconfig.Manager
140140

141141
// CacheDir is used for caching files served by the API.
142142
CacheDir string

coderd/runtimeconfig/entry.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -48,20 +48,20 @@ func MustNew[T EntryValue](name string) RuntimeEntry[T] {
4848
func (e *RuntimeEntry[T]) SetRuntimeValue(ctx context.Context, m Resolver, val T) error {
4949
name, err := e.name()
5050
if err != nil {
51-
return err
51+
return xerrors.Errorf("set runtime: %w", err)
5252
}
5353

54-
return m.UpsertRuntimeSetting(ctx, name, val.String())
54+
return m.UpsertRuntimeConfig(ctx, name, val.String())
5555
}
5656

5757
// UnsetRuntimeValue removes the runtime value from the store.
5858
func (e *RuntimeEntry[T]) UnsetRuntimeValue(ctx context.Context, m Resolver) error {
5959
name, err := e.name()
6060
if err != nil {
61-
return err
61+
return xerrors.Errorf("unset runtime: %w", err)
6262
}
6363

64-
return m.DeleteRuntimeSetting(ctx, name)
64+
return m.DeleteRuntimeConfig(ctx, name)
6565
}
6666

6767
// Resolve attempts to resolve the runtime value of this field from the store via the given Resolver.
@@ -70,12 +70,12 @@ func (e *RuntimeEntry[T]) Resolve(ctx context.Context, r Resolver) (T, error) {
7070

7171
name, err := e.name()
7272
if err != nil {
73-
return zero, err
73+
return zero, xerrors.Errorf("resolve, name issue: %w", err)
7474
}
7575

76-
val, err := r.GetRuntimeSetting(ctx, name)
76+
val, err := r.GetRuntimeConfig(ctx, name)
7777
if err != nil {
78-
return zero, err
78+
return zero, xerrors.Errorf("resolve runtime: %w", err)
7979
}
8080

8181
inst := create[T]()

coderd/runtimeconfig/manager.go

+6-6
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,25 @@ import (
44
"github.com/google/uuid"
55
)
66

7-
// StoreManager is the singleton that produces resolvers for runtime configuration.
7+
// Manager is the singleton that produces resolvers for runtime configuration.
88
// TODO: Implement caching layer.
9-
type StoreManager struct{}
9+
type Manager struct{}
1010

11-
func NewStoreManager() Manager {
12-
return &StoreManager{}
11+
func NewStoreManager() *Manager {
12+
return &Manager{}
1313
}
1414

1515
// Resolver is the deployment wide namespace for runtime configuration.
1616
// If you are trying to namespace a configuration, orgs for example, use
1717
// OrganizationResolver.
18-
func (*StoreManager) Resolver(db Store) Resolver {
18+
func (*Manager) Resolver(db Store) Resolver {
1919
return NewStoreResolver(db)
2020
}
2121

2222
// OrganizationResolver will namespace all runtime configuration to the provided
2323
// organization ID. Configuration values stored with a given organization ID require
2424
// that the organization ID be provided to retrieve the value.
2525
// No values set here will ever be returned by the call to 'Resolver()'.
26-
func (*StoreManager) OrganizationResolver(db Store, orgID uuid.UUID) Resolver {
26+
func (*Manager) OrganizationResolver(db Store, orgID uuid.UUID) Resolver {
2727
return OrganizationResolver(orgID, NewStoreResolver(db))
2828
}

coderd/runtimeconfig/resolver.go

+12-12
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,15 @@ func NewNoopResolver() *NoopResolver {
1919
return &NoopResolver{}
2020
}
2121

22-
func (NoopResolver) GetRuntimeSetting(context.Context, string) (string, error) {
22+
func (NoopResolver) GetRuntimeConfig(context.Context, string) (string, error) {
2323
return "", ErrEntryNotFound
2424
}
2525

26-
func (NoopResolver) UpsertRuntimeSetting(context.Context, string, string) error {
26+
func (NoopResolver) UpsertRuntimeConfig(context.Context, string, string) error {
2727
return ErrEntryNotFound
2828
}
2929

30-
func (NoopResolver) DeleteRuntimeSetting(context.Context, string) error {
30+
func (NoopResolver) DeleteRuntimeConfig(context.Context, string) error {
3131
return ErrEntryNotFound
3232
}
3333

@@ -40,7 +40,7 @@ func NewStoreResolver(db Store) *StoreResolver {
4040
return &StoreResolver{db: db}
4141
}
4242

43-
func (m StoreResolver) GetRuntimeSetting(ctx context.Context, key string) (string, error) {
43+
func (m StoreResolver) GetRuntimeConfig(ctx context.Context, key string) (string, error) {
4444
val, err := m.db.GetRuntimeConfig(ctx, key)
4545
if err != nil {
4646
if errors.Is(err, sql.ErrNoRows) {
@@ -52,15 +52,15 @@ func (m StoreResolver) GetRuntimeSetting(ctx context.Context, key string) (strin
5252
return val, nil
5353
}
5454

55-
func (m StoreResolver) UpsertRuntimeSetting(ctx context.Context, key, val string) error {
55+
func (m StoreResolver) UpsertRuntimeConfig(ctx context.Context, key, val string) error {
5656
err := m.db.UpsertRuntimeConfig(ctx, database.UpsertRuntimeConfigParams{Key: key, Value: val})
5757
if err != nil {
5858
return xerrors.Errorf("update %q: %w", key, err)
5959
}
6060
return nil
6161
}
6262

63-
func (m StoreResolver) DeleteRuntimeSetting(ctx context.Context, key string) error {
63+
func (m StoreResolver) DeleteRuntimeConfig(ctx context.Context, key string) error {
6464
return m.db.DeleteRuntimeConfig(ctx, key)
6565
}
6666

@@ -75,16 +75,16 @@ func OrganizationResolver(orgID uuid.UUID, wrapped Resolver) NamespacedResolver
7575
return NamespacedResolver{ns: orgID.String(), wrapped: wrapped}
7676
}
7777

78-
func (m NamespacedResolver) GetRuntimeSetting(ctx context.Context, key string) (string, error) {
79-
return m.wrapped.GetRuntimeSetting(ctx, m.namespacedKey(key))
78+
func (m NamespacedResolver) GetRuntimeConfig(ctx context.Context, key string) (string, error) {
79+
return m.wrapped.GetRuntimeConfig(ctx, m.namespacedKey(key))
8080
}
8181

82-
func (m NamespacedResolver) UpsertRuntimeSetting(ctx context.Context, key, val string) error {
83-
return m.wrapped.UpsertRuntimeSetting(ctx, m.namespacedKey(key), val)
82+
func (m NamespacedResolver) UpsertRuntimeConfig(ctx context.Context, key, val string) error {
83+
return m.wrapped.UpsertRuntimeConfig(ctx, m.namespacedKey(key), val)
8484
}
8585

86-
func (m NamespacedResolver) DeleteRuntimeSetting(ctx context.Context, key string) error {
87-
return m.wrapped.DeleteRuntimeSetting(ctx, m.namespacedKey(key))
86+
func (m NamespacedResolver) DeleteRuntimeConfig(ctx context.Context, key string) error {
87+
return m.wrapped.DeleteRuntimeConfig(ctx, m.namespacedKey(key))
8888
}
8989

9090
func (m NamespacedResolver) namespacedKey(k string) string {

coderd/runtimeconfig/spec.go

+6-14
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package runtimeconfig
33
import (
44
"context"
55

6-
"github.com/google/uuid"
76
"golang.org/x/xerrors"
87

98
"github.com/coder/coder/v2/coderd/database"
@@ -23,20 +22,13 @@ type Initializer interface {
2322
Initialize(name string)
2423
}
2524

26-
// TODO: We should probably remove the manager interface and only support
27-
// 1 implementation.
28-
type Manager interface {
29-
Resolver(db Store) Resolver
30-
OrganizationResolver(db Store, orgID uuid.UUID) Resolver
31-
}
32-
3325
type Resolver interface {
34-
// GetRuntimeSetting gets a runtime setting by name.
35-
GetRuntimeSetting(ctx context.Context, name string) (string, error)
36-
// UpsertRuntimeSetting upserts a runtime setting by name.
37-
UpsertRuntimeSetting(ctx context.Context, name, val string) error
38-
// DeleteRuntimeSetting deletes a runtime setting by name.
39-
DeleteRuntimeSetting(ctx context.Context, name string) error
26+
// GetRuntimeConfig gets a runtime setting by name.
27+
GetRuntimeConfig(ctx context.Context, name string) (string, error)
28+
// UpsertRuntimeConfig upserts a runtime setting by name.
29+
UpsertRuntimeConfig(ctx context.Context, name, val string) error
30+
// DeleteRuntimeConfig deletes a runtime setting by name.
31+
DeleteRuntimeConfig(ctx context.Context, name string) error
4032
}
4133

4234
// Store is a subset of database.Store

0 commit comments

Comments
 (0)