forked from TrueCloudLab/frostfs-s3-gw
[#218] handler,s3-gw: Make policy configurable
Now default policy of placing containers can be set via config/env variable. Signed-off-by: Angira Kekteeva <kira@nspcc.ru>
This commit is contained in:
parent
6d4fe34f3d
commit
2299db4e81
4 changed files with 39 additions and 9 deletions
|
@ -3,6 +3,7 @@ package handler
|
|||
import (
|
||||
"errors"
|
||||
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg/netmap"
|
||||
"github.com/nspcc-dev/neofs-s3-gw/api"
|
||||
"github.com/nspcc-dev/neofs-s3-gw/api/layer"
|
||||
"go.uber.org/zap"
|
||||
|
@ -12,13 +13,22 @@ type (
|
|||
handler struct {
|
||||
log *zap.Logger
|
||||
obj layer.Client
|
||||
cfg *Config
|
||||
}
|
||||
|
||||
// Config contains data which handler need to keep.
|
||||
Config struct {
|
||||
DefaultPolicy *netmap.PlacementPolicy
|
||||
}
|
||||
)
|
||||
|
||||
// DefaultPolicy is a default policy of placing container in NeoFS if it's not set at the request.
|
||||
const DefaultPolicy = "REP 3"
|
||||
|
||||
var _ api.Handler = (*handler)(nil)
|
||||
|
||||
// New creates new api.Handler using given logger and client.
|
||||
func New(log *zap.Logger, obj layer.Client) (api.Handler, error) {
|
||||
func New(log *zap.Logger, obj layer.Client, cfg *Config) (api.Handler, error) {
|
||||
switch {
|
||||
case obj == nil:
|
||||
return nil, errors.New("empty NeoFS Object Layer")
|
||||
|
@ -29,5 +39,6 @@ func New(log *zap.Logger, obj layer.Client) (api.Handler, error) {
|
|||
return &handler{
|
||||
log: log,
|
||||
obj: obj,
|
||||
cfg: cfg,
|
||||
}, nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue