/
config_storage_classes_processor_factory.go
43 lines (33 loc) · 1.36 KB
/
config_storage_classes_processor_factory.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
package processor
import (
"context"
"github.com/ottogroup/penelope/pkg/requestobjects"
"go.opencensus.io/trace"
)
type ConfigStorageClassesProcessorFactory interface {
CreateProcessor(ctxIn context.Context) (Operation[requestobjects.EmptyRequest, requestobjects.StorageClassListResponse], error)
}
// configStorageClassesProcessorFactory create Process for list storage classes
type configStorageClassesProcessorFactory struct {
}
func NewConfigStorageClassesProcessorFactory() ConfigStorageClassesProcessorFactory {
return &configStorageClassesProcessorFactory{}
}
// CreateProcessor return instance of Operations for list storage classes
func (c *configStorageClassesProcessorFactory) CreateProcessor(ctxIn context.Context) (Operation[requestobjects.EmptyRequest, requestobjects.StorageClassListResponse], error) {
return &configStorageClassesProcessor{}, nil
}
type configStorageClassesProcessor struct {
}
// Process request
func (l configStorageClassesProcessor) Process(ctxIn context.Context, args *Argument[requestobjects.EmptyRequest]) (requestobjects.StorageClassListResponse, error) {
_, span := trace.StartSpan(ctxIn, "(bucketListingProcessor).Process")
defer span.End()
var classes []string
for _, class := range StorageClasses {
classes = append(classes, class.String())
}
return requestobjects.StorageClassListResponse{
StorageClasses: classes,
}, nil
}