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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 7 additions & 7 deletions
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

Lines changed: 6 additions & 6 deletions
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

Lines changed: 12 additions & 12 deletions
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

Lines changed: 6 additions & 14 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy