Skip to content

Commit a125c16

Browse files
committed
refactor(core): move single-service core packages under the service that uses them
1 parent cd28809 commit a125c16

63 files changed

Lines changed: 141 additions & 88 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎service/submitqueue/gateway/server/BUILD.bazel‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,11 @@ go_library(
2525
"//platform/extension/messagequeue/mysql:go_default_library",
2626
"//service/messagequeue:go_default_library",
2727
"//service/submitqueue/gateway/server/mapper:go_default_library",
28-
"//submitqueue/core/request:go_default_library",
2928
"//submitqueue/core/topickey:go_default_library",
3029
"//submitqueue/extension/queueconfig/yaml:go_default_library",
3130
"//submitqueue/gateway/controller:go_default_library",
3231
"//submitqueue/gateway/controller/log:go_default_library",
32+
"//submitqueue/gateway/core/request:go_default_library",
3333
"//submitqueue/gateway/extension/storage:go_default_library",
3434
"//submitqueue/gateway/extension/storage/mysql:go_default_library",
3535
"@com_github_go_sql_driver_mysql//:go_default_library",

‎service/submitqueue/gateway/server/main.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,11 @@ import (
4242
queueMySQL "github.com/uber/submitqueue/platform/extension/messagequeue/mysql"
4343
servicemq "github.com/uber/submitqueue/service/messagequeue"
4444
"github.com/uber/submitqueue/service/submitqueue/gateway/server/mapper"
45-
requestcore "github.com/uber/submitqueue/submitqueue/core/request"
4645
"github.com/uber/submitqueue/submitqueue/core/topickey"
4746
yamlqueueconfig "github.com/uber/submitqueue/submitqueue/extension/queueconfig/yaml"
4847
"github.com/uber/submitqueue/submitqueue/gateway/controller"
4948
logctrl "github.com/uber/submitqueue/submitqueue/gateway/controller/log"
49+
requestcore "github.com/uber/submitqueue/submitqueue/gateway/core/request"
5050
storage "github.com/uber/submitqueue/submitqueue/gateway/extension/storage"
5151
mysqlstorage "github.com/uber/submitqueue/submitqueue/gateway/extension/storage/mysql"
5252
"go.uber.org/zap"

‎service/submitqueue/orchestrator/server/main.go‎

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,9 @@ func run() error {
197197
subscriberName = fmt.Sprintf("orchestrator-%d", time.Now().Unix())
198198
}
199199

200-
profiles, err := newProfiles(ctx, logger, scope, changeset.New(storageFty), storageFty, profilesCfg)
200+
profiles, err := newProfiles(ctx, logger, scope, changeset.New(func(queue string) (changeset.Stores, error) {
201+
return storageFty.For(orchstorage.Config{QueueName: queue})
202+
}), storageFty, profilesCfg)
201203
if err != nil {
202204
return fmt.Errorf("failed to build profiles: %w", err)
203205
}

‎submitqueue/core/changeset/BUILD.bazel‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ go_library(
1111
deps = [
1212
"//platform/base/change:go_default_library",
1313
"//submitqueue/entity:go_default_library",
14-
"//submitqueue/orchestrator/extension/storage:go_default_library",
14+
"//submitqueue/extension/storage:go_default_library",
1515
],
1616
)
1717

@@ -24,7 +24,6 @@ go_test(
2424
"//submitqueue/entity:go_default_library",
2525
"//submitqueue/extension/storage:go_default_library",
2626
"//submitqueue/extension/storage/mock:go_default_library",
27-
"//submitqueue/orchestrator/extension/storage/mock:go_default_library",
2827
"@com_github_stretchr_testify//assert:go_default_library",
2928
"@com_github_stretchr_testify//require:go_default_library",
3029
"@org_uber_go_mock//gomock:go_default_library",

‎submitqueue/core/changeset/resolver.go‎

Lines changed: 26 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,41 @@ import (
2020

2121
"github.com/uber/submitqueue/platform/base/change"
2222
"github.com/uber/submitqueue/submitqueue/entity"
23-
orchstorage "github.com/uber/submitqueue/submitqueue/orchestrator/extension/storage"
23+
storage "github.com/uber/submitqueue/submitqueue/extension/storage"
2424
)
2525

26-
// resolver is the store-backed Resolver. It holds the storage factory and
27-
// resolves the batch's queue-scoped request and change stores per call, since
28-
// every resolution is for exactly one batch and the batch names its queue.
26+
// Stores is the slice of a queue-scoped storage aggregate this package needs.
27+
// Declaring it here rather than naming a service's aggregate keeps `core/`
28+
// free of any dependency on a service package; every aggregate that exposes
29+
// these two accessors satisfies it.
30+
type Stores interface {
31+
// GetRequestStore returns the queue's RequestStore.
32+
GetRequestStore() storage.RequestStore
33+
34+
// GetChangeStore returns the queue's ChangeStore.
35+
GetChangeStore() storage.ChangeStore
36+
}
37+
38+
// Resolve binds Stores to one queue. The wiring layer supplies it, because
39+
// that is the layer that knows which service's aggregate serves a queue.
40+
type Resolve func(queue string) (Stores, error)
41+
42+
// resolver is the store-backed Resolver. It resolves the batch's queue-scoped
43+
// request and change stores per call, since every resolution is for exactly
44+
// one batch and the batch names its queue.
2945
type resolver struct {
30-
stores orchstorage.Factory
46+
resolve Resolve
3147
}
3248

33-
// New returns a Resolver backed by the given storage factory.
34-
func New(stores orchstorage.Factory) Resolver {
35-
return resolver{stores: stores}
49+
// New returns a Resolver that reads through the given per-queue binding.
50+
func New(resolve Resolve) Resolver {
51+
return resolver{resolve: resolve}
3652
}
3753

3854
// ChangesForBatch resolves a batch's requests to their raw changes, in
3955
// batch.Contains order.
4056
func (r resolver) ChangesForBatch(ctx context.Context, batch entity.Batch) ([]change.Change, error) {
41-
store, err := r.stores.For(orchstorage.Config{QueueName: batch.Queue})
57+
store, err := r.resolve(batch.Queue)
4258
if err != nil {
4359
return nil, fmt.Errorf("failed to resolve storage for queue %q: %w", batch.Queue, err)
4460
}
@@ -57,7 +73,7 @@ func (r resolver) ChangesForBatch(ctx context.Context, batch entity.Batch) ([]ch
5773
// ChangeInfo per claimed URI, owned by the requesting request, aggregated across
5874
// the whole batch.
5975
func (r resolver) DetailedForBatch(ctx context.Context, batch entity.Batch) (entity.BatchChanges, error) {
60-
store, err := r.stores.For(orchstorage.Config{QueueName: batch.Queue})
76+
store, err := r.resolve(batch.Queue)
6177
if err != nil {
6278
return entity.BatchChanges{}, fmt.Errorf("failed to resolve storage for queue %q: %w", batch.Queue, err)
6379
}

‎submitqueue/core/changeset/resolver_test.go‎

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,24 @@ import (
2727
"github.com/uber/submitqueue/submitqueue/entity"
2828
"github.com/uber/submitqueue/submitqueue/extension/storage"
2929
storagemock "github.com/uber/submitqueue/submitqueue/extension/storage/mock"
30-
orchstoragemock "github.com/uber/submitqueue/submitqueue/orchestrator/extension/storage/mock"
3130
)
3231

33-
// newTestResolver builds a Resolver over mock stores exposed through a mock
34-
// storage factory that resolves every queue to the same aggregate.
35-
func newTestResolver(ctrl *gomock.Controller, reqs storage.RequestStore, changes storage.ChangeStore) Resolver {
36-
store := orchstoragemock.NewMockStorage(ctrl)
37-
store.EXPECT().GetRequestStore().Return(reqs).AnyTimes()
38-
store.EXPECT().GetChangeStore().Return(changes).AnyTimes()
39-
f := orchstoragemock.NewMockFactory(ctrl)
40-
f.EXPECT().For(gomock.Any()).Return(store, nil).AnyTimes()
41-
return New(f)
32+
// stubStores is the two-accessor slice of an aggregate this package needs,
33+
// which is all Stores asks for — no service aggregate is involved.
34+
type stubStores struct {
35+
reqs storage.RequestStore
36+
changes storage.ChangeStore
37+
}
38+
39+
func (s stubStores) GetRequestStore() storage.RequestStore { return s.reqs }
40+
41+
func (s stubStores) GetChangeStore() storage.ChangeStore { return s.changes }
42+
43+
// newTestResolver builds a Resolver that binds every queue to the same stores.
44+
func newTestResolver(_ *gomock.Controller, reqs storage.RequestStore, changes storage.ChangeStore) Resolver {
45+
return New(func(string) (Stores, error) {
46+
return stubStores{reqs: reqs, changes: changes}, nil
47+
})
4248
}
4349

4450
func req(id string, uris ...string) entity.Request {

‎submitqueue/gateway/controller/BUILD.bazel‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,11 @@ go_library(
2121
"//platform/metrics:go_default_library",
2222
"//platform/publish:go_default_library",
2323
"//submitqueue/core/messagequeue:go_default_library",
24-
"//submitqueue/core/request:go_default_library",
2524
"//submitqueue/core/topickey:go_default_library",
2625
"//submitqueue/entity:go_default_library",
2726
"//submitqueue/extension/queueconfig:go_default_library",
2827
"//submitqueue/extension/storage:go_default_library",
28+
"//submitqueue/gateway/core/request:go_default_library",
2929
"//submitqueue/gateway/extension/storage:go_default_library",
3030
"@com_github_uber_go_tally//:go_default_library",
3131
"@org_uber_go_zap//:go_default_library",
@@ -55,13 +55,13 @@ go_test(
5555
"//platform/extension/counter/mock:go_default_library",
5656
"//platform/extension/messagequeue/mock:go_default_library",
5757
"//submitqueue/core/messagequeue:go_default_library",
58-
"//submitqueue/core/request:go_default_library",
5958
"//submitqueue/core/topickey:go_default_library",
6059
"//submitqueue/entity:go_default_library",
6160
"//submitqueue/extension/queueconfig:go_default_library",
6261
"//submitqueue/extension/queueconfig/mock:go_default_library",
6362
"//submitqueue/extension/storage:go_default_library",
6463
"//submitqueue/extension/storage/mock:go_default_library",
64+
"//submitqueue/gateway/core/request:go_default_library",
6565
"//submitqueue/gateway/extension/storage:go_default_library",
6666
"//submitqueue/gateway/extension/storage/mock:go_default_library",
6767
"@com_github_stretchr_testify//assert:go_default_library",

‎submitqueue/gateway/controller/cancel.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ import (
2424
"github.com/uber/submitqueue/platform/metrics"
2525
"github.com/uber/submitqueue/platform/publish"
2626
sqmq "github.com/uber/submitqueue/submitqueue/core/messagequeue"
27-
requestcore "github.com/uber/submitqueue/submitqueue/core/request"
2827
"github.com/uber/submitqueue/submitqueue/core/topickey"
2928
"github.com/uber/submitqueue/submitqueue/entity"
3029
basestorage "github.com/uber/submitqueue/submitqueue/extension/storage"
30+
requestcore "github.com/uber/submitqueue/submitqueue/gateway/core/request"
3131
storage "github.com/uber/submitqueue/submitqueue/gateway/extension/storage"
3232
"go.uber.org/zap"
3333
)

‎submitqueue/gateway/controller/land.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ import (
2727
"github.com/uber/submitqueue/platform/metrics"
2828
"github.com/uber/submitqueue/platform/publish"
2929
sqmq "github.com/uber/submitqueue/submitqueue/core/messagequeue"
30-
requestcore "github.com/uber/submitqueue/submitqueue/core/request"
3130
"github.com/uber/submitqueue/submitqueue/core/topickey"
3231
"github.com/uber/submitqueue/submitqueue/entity"
3332
"github.com/uber/submitqueue/submitqueue/extension/queueconfig"
33+
requestcore "github.com/uber/submitqueue/submitqueue/gateway/core/request"
3434
storage "github.com/uber/submitqueue/submitqueue/gateway/extension/storage"
3535
"go.uber.org/zap"
3636
)

‎submitqueue/gateway/controller/land_test.go‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,13 +32,13 @@ import (
3232
countermock "github.com/uber/submitqueue/platform/extension/counter/mock"
3333
queuemock "github.com/uber/submitqueue/platform/extension/messagequeue/mock"
3434
sqmq "github.com/uber/submitqueue/submitqueue/core/messagequeue"
35-
requestcore "github.com/uber/submitqueue/submitqueue/core/request"
3635
"github.com/uber/submitqueue/submitqueue/core/topickey"
3736
"github.com/uber/submitqueue/submitqueue/entity"
3837
"github.com/uber/submitqueue/submitqueue/extension/queueconfig"
3938
qcmock "github.com/uber/submitqueue/submitqueue/extension/queueconfig/mock"
4039
basestorage "github.com/uber/submitqueue/submitqueue/extension/storage"
4140
storagemock "github.com/uber/submitqueue/submitqueue/extension/storage/mock"
41+
requestcore "github.com/uber/submitqueue/submitqueue/gateway/core/request"
4242
gwstoragemock "github.com/uber/submitqueue/submitqueue/gateway/extension/storage/mock"
4343
"go.uber.org/mock/gomock"
4444
"go.uber.org/zap"

0 commit comments

Comments
 (0)