/
factories.go
57 lines (48 loc) · 2.32 KB
/
factories.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
package devstack
import (
"context"
"github.com/bacalhau-project/bacalhau/pkg/executor"
noop_executor "github.com/bacalhau-project/bacalhau/pkg/executor/noop"
executor_util "github.com/bacalhau-project/bacalhau/pkg/executor/util"
"github.com/bacalhau-project/bacalhau/pkg/node"
"github.com/bacalhau-project/bacalhau/pkg/publisher"
noop_publisher "github.com/bacalhau-project/bacalhau/pkg/publisher/noop"
publisher_util "github.com/bacalhau-project/bacalhau/pkg/publisher/util"
"github.com/bacalhau-project/bacalhau/pkg/storage"
noop_storage "github.com/bacalhau-project/bacalhau/pkg/storage/noop"
)
// Noop implementations of node factories used to mock certain components, which is useful for testing.
func NewNoopNodeDependencyInjector() node.NodeDependencyInjector {
return node.NodeDependencyInjector{
StorageProvidersFactory: NewNoopStorageProvidersFactory(),
ExecutorsFactory: NewNoopExecutorsFactory(),
PublishersFactory: NewNoopPublishersFactory(),
}
}
func NewNoopStorageProvidersFactory() node.StorageProvidersFactory {
return NewNoopStorageProvidersFactoryWithConfig(noop_storage.StorageConfig{})
}
func NewNoopStorageProvidersFactoryWithConfig(config noop_storage.StorageConfig) node.StorageProvidersFactory {
return node.StorageProvidersFactoryFunc(
func(ctx context.Context, nodeConfig node.NodeConfig) (storage.StorageProvider, error) {
return executor_util.NewNoopStorageProvider(ctx, nodeConfig.CleanupManager, config)
})
}
func NewNoopExecutorsFactory() node.ExecutorsFactory {
return NewNoopExecutorsFactoryWithConfig(noop_executor.ExecutorConfig{})
}
func NewNoopExecutorsFactoryWithConfig(config noop_executor.ExecutorConfig) node.ExecutorsFactory {
return node.ExecutorsFactoryFunc(
func(ctx context.Context, nodeConfig node.NodeConfig) (executor.ExecutorProvider, error) {
return executor_util.NewNoopExecutors(config), nil
})
}
func NewNoopPublishersFactory() node.PublishersFactory {
return NewNoopPublishersFactoryWithConfig(noop_publisher.PublisherConfig{})
}
func NewNoopPublishersFactoryWithConfig(config noop_publisher.PublisherConfig) node.PublishersFactory {
return node.PublishersFactoryFunc(
func(ctx context.Context, nodeConfig node.NodeConfig) (publisher.PublisherProvider, error) {
return publisher_util.NewNoopPublishers(ctx, nodeConfig.CleanupManager, config)
})
}