forked from TrueCloudLab/frostfs-node
Add Inner Ring code
This commit is contained in:
parent
dadfd90dcd
commit
b7b5079934
400 changed files with 11420 additions and 8690 deletions
|
@ -1,122 +0,0 @@
|
|||
package morph
|
||||
|
||||
import (
|
||||
"github.com/nspcc-dev/neofs-node/lib/acl"
|
||||
"github.com/nspcc-dev/neofs-node/lib/container"
|
||||
"github.com/nspcc-dev/neofs-node/lib/implementations"
|
||||
"github.com/pkg/errors"
|
||||
"go.uber.org/dig"
|
||||
)
|
||||
|
||||
type containerContractResult struct {
|
||||
dig.Out
|
||||
|
||||
ContainerContract *implementations.MorphContainerContract
|
||||
|
||||
BinaryExtendedACLStore acl.BinaryExtendedACLStore
|
||||
|
||||
ExtendedACLSource acl.ExtendedACLSource
|
||||
|
||||
ContainerStorage container.Storage
|
||||
}
|
||||
|
||||
const (
|
||||
containerContractName = "container"
|
||||
|
||||
containerContractSetEACLOpt = "set_eacl_method"
|
||||
|
||||
containerContractEACLOpt = "get_eacl_method"
|
||||
|
||||
containerContractPutOpt = "put_method"
|
||||
|
||||
containerContractGetOpt = "get_method"
|
||||
|
||||
containerContractDelOpt = "delete_method"
|
||||
|
||||
containerContractListOpt = "list_method"
|
||||
)
|
||||
|
||||
// ContainerContractSetEACLOptPath returns the config path to set eACL method name of Container contract.
|
||||
func ContainerContractSetEACLOptPath() string {
|
||||
return optPath(prefix, containerContractName, containerContractSetEACLOpt)
|
||||
}
|
||||
|
||||
// ContainerContractEACLOptPath returns the config path to get eACL method name of Container contract.
|
||||
func ContainerContractEACLOptPath() string {
|
||||
return optPath(prefix, containerContractName, containerContractEACLOpt)
|
||||
}
|
||||
|
||||
// ContainerContractPutOptPath returns the config path to put container method name of Container contract.
|
||||
func ContainerContractPutOptPath() string {
|
||||
return optPath(prefix, containerContractName, containerContractPutOpt)
|
||||
}
|
||||
|
||||
// ContainerContractGetOptPath returns the config path to get container method name of Container contract.
|
||||
func ContainerContractGetOptPath() string {
|
||||
return optPath(prefix, containerContractName, containerContractGetOpt)
|
||||
}
|
||||
|
||||
// ContainerContractDelOptPath returns the config path to delete container method name of Container contract.
|
||||
func ContainerContractDelOptPath() string {
|
||||
return optPath(prefix, containerContractName, containerContractDelOpt)
|
||||
}
|
||||
|
||||
// ContainerContractListOptPath returns the config path to list containers method name of Container contract.
|
||||
func ContainerContractListOptPath() string {
|
||||
return optPath(prefix, containerContractName, containerContractListOpt)
|
||||
}
|
||||
|
||||
func newContainerContract(p contractParams) (res containerContractResult, err error) {
|
||||
client, ok := p.MorphContracts[containerContractName]
|
||||
if !ok {
|
||||
err = errors.Errorf("missing %s contract client", containerContractName)
|
||||
return
|
||||
}
|
||||
|
||||
morphClient := new(implementations.MorphContainerContract)
|
||||
morphClient.SetContainerContractClient(client)
|
||||
|
||||
morphClient.SetEACLSetMethodName(
|
||||
p.Viper.GetString(
|
||||
ContainerContractSetEACLOptPath(),
|
||||
),
|
||||
)
|
||||
morphClient.SetEACLGetMethodName(
|
||||
p.Viper.GetString(
|
||||
ContainerContractEACLOptPath(),
|
||||
),
|
||||
)
|
||||
morphClient.SetContainerGetMethodName(
|
||||
p.Viper.GetString(
|
||||
ContainerContractGetOptPath(),
|
||||
),
|
||||
)
|
||||
morphClient.SetContainerPutMethodName(
|
||||
p.Viper.GetString(
|
||||
ContainerContractPutOptPath(),
|
||||
),
|
||||
)
|
||||
morphClient.SetContainerDeleteMethodName(
|
||||
p.Viper.GetString(
|
||||
ContainerContractDelOptPath(),
|
||||
),
|
||||
)
|
||||
morphClient.SetContainerListMethodName(
|
||||
p.Viper.GetString(
|
||||
ContainerContractListOptPath(),
|
||||
),
|
||||
)
|
||||
|
||||
res.ContainerContract = morphClient
|
||||
|
||||
res.BinaryExtendedACLStore = morphClient
|
||||
|
||||
res.ExtendedACLSource, err = implementations.ExtendedACLSourceFromBinary(res.BinaryExtendedACLStore)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
res.ContainerStorage = morphClient
|
||||
|
||||
return res, nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue