forked from TrueCloudLab/frostfs-node
[#851] ape: Initialize and use policy contract interface
* Replace inmemory policy contract mock by initialized policy contract interface. Signed-off-by: Airat Arifullin <a.arifullin@yadro.com>
This commit is contained in:
parent
da9c75f9aa
commit
9646d77ae1
7 changed files with 18 additions and 4 deletions
|
@ -69,7 +69,7 @@ import (
|
|||
objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user"
|
||||
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/version"
|
||||
"git.frostfs.info/TrueCloudLab/policy-engine/pkg/engine/inmemory"
|
||||
policy_client "git.frostfs.info/TrueCloudLab/policy-engine/pkg/morph/policy"
|
||||
"github.com/nspcc-dev/neo-go/pkg/crypto/keys"
|
||||
neogoutil "github.com/nspcc-dev/neo-go/pkg/util"
|
||||
"github.com/panjf2000/ants/v2"
|
||||
|
@ -542,6 +542,8 @@ type cfgLocalStorage struct {
|
|||
}
|
||||
|
||||
type cfgAccessPolicyEngine struct {
|
||||
policyContractHash neogoutil.Uint160
|
||||
|
||||
accessPolicyEngine *accessPolicyEngine
|
||||
}
|
||||
|
||||
|
@ -987,7 +989,9 @@ func initAccessPolicyEngine(_ context.Context, c *cfg) {
|
|||
)
|
||||
}
|
||||
|
||||
morphRuleStorage := inmemory.NewInmemoryMorphRuleChainStorage()
|
||||
morphRuleStorage := policy_client.NewContractStorage(
|
||||
c.cfgMorph.client.GetActor(),
|
||||
c.cfgObject.cfgAccessPolicyEngine.policyContractHash)
|
||||
|
||||
ape := newAccessPolicyEngine(morphRuleStorage, localOverrideDB)
|
||||
c.cfgObject.cfgAccessPolicyEngine.accessPolicyEngine = ape
|
||||
|
|
|
@ -98,14 +98,15 @@ func initApp(ctx context.Context, c *cfg) {
|
|||
fatalOnErr(c.cfgObject.cfgLocalStorage.localStorage.Init(ctx))
|
||||
})
|
||||
|
||||
initAndLog(c, "gRPC", initGRPC)
|
||||
initAndLog(c, "netmap", func(c *cfg) { initNetmapService(ctx, c) })
|
||||
|
||||
initAccessPolicyEngine(ctx, c)
|
||||
initAndLog(c, "access policy engine", func(c *cfg) {
|
||||
fatalOnErr(c.cfgObject.cfgAccessPolicyEngine.accessPolicyEngine.LocalOverrideDatabaseCore().Open(ctx))
|
||||
fatalOnErr(c.cfgObject.cfgAccessPolicyEngine.accessPolicyEngine.LocalOverrideDatabaseCore().Init())
|
||||
})
|
||||
|
||||
initAndLog(c, "gRPC", initGRPC)
|
||||
initAndLog(c, "netmap", func(c *cfg) { initNetmapService(ctx, c) })
|
||||
initAndLog(c, "accounting", func(c *cfg) { initAccountingService(ctx, c) })
|
||||
initAndLog(c, "container", func(c *cfg) { initContainerService(ctx, c) })
|
||||
initAndLog(c, "session", initSessionService)
|
||||
|
|
|
@ -289,6 +289,7 @@ func lookupScriptHashesInNNS(c *cfg) {
|
|||
{&c.cfgAccounting.scriptHash, client.NNSBalanceContractName},
|
||||
{&c.cfgContainer.scriptHash, client.NNSContainerContractName},
|
||||
{&c.cfgMorph.proxyScriptHash, client.NNSProxyContractName},
|
||||
{&c.cfgObject.cfgAccessPolicyEngine.policyContractHash, client.NNSPolicyContractName},
|
||||
}
|
||||
)
|
||||
|
||||
|
|
2
go.mod
2
go.mod
|
@ -2,6 +2,8 @@ module git.frostfs.info/TrueCloudLab/frostfs-node
|
|||
|
||||
go 1.20
|
||||
|
||||
replace git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231211080303-8c673ee4f4af => git.frostfs.info/aarifullin/policy-engine v0.0.0-20231212185618-def903261503
|
||||
|
||||
require (
|
||||
git.frostfs.info/TrueCloudLab/frostfs-api-go/v2 v2.16.1-0.20231031104748-498877e378fd
|
||||
git.frostfs.info/TrueCloudLab/frostfs-contract v0.18.1-0.20231129062201-a1b61d394958
|
||||
|
|
BIN
go.sum
BIN
go.sum
Binary file not shown.
|
@ -539,3 +539,7 @@ func (c *Client) setActor(act *actor.Actor) {
|
|||
c.gasToken = nep17.New(act, gas.Hash)
|
||||
c.rolemgmt = rolemgmt.New(act)
|
||||
}
|
||||
|
||||
func (c *Client) GetActor() *actor.Actor {
|
||||
return c.rpcActor
|
||||
}
|
||||
|
|
|
@ -33,6 +33,8 @@ const (
|
|||
NNSProxyContractName = "proxy.frostfs"
|
||||
// NNSGroupKeyName is a name for the FrostFS group key record in NNS.
|
||||
NNSGroupKeyName = "group.frostfs"
|
||||
// NNSPolicyContractName is a name of the policy contract in NNS.
|
||||
NNSPolicyContractName = "policy.frostfs"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
Loading…
Reference in a new issue