forked from TrueCloudLab/frostfs-node
[#876] adm: Add morph ape get/set-admin
commands
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
This commit is contained in:
parent
eab981bf1a
commit
5b672fb392
4 changed files with 65 additions and 3 deletions
|
@ -7,6 +7,7 @@ import (
|
||||||
parseutil "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-cli/modules/util"
|
parseutil "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-cli/modules/util"
|
||||||
commonCmd "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/internal/common"
|
commonCmd "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/internal/common"
|
||||||
apechain "git.frostfs.info/TrueCloudLab/policy-engine/pkg/chain"
|
apechain "git.frostfs.info/TrueCloudLab/policy-engine/pkg/chain"
|
||||||
|
"github.com/nspcc-dev/neo-go/pkg/util"
|
||||||
"github.com/spf13/cobra"
|
"github.com/spf13/cobra"
|
||||||
"github.com/spf13/viper"
|
"github.com/spf13/viper"
|
||||||
)
|
)
|
||||||
|
@ -26,6 +27,8 @@ const (
|
||||||
targetNameDesc = "Resource name in APE resource name format"
|
targetNameDesc = "Resource name in APE resource name format"
|
||||||
targetTypeFlag = "target-type"
|
targetTypeFlag = "target-type"
|
||||||
targetTypeDesc = "Resource type(container/namespace)"
|
targetTypeDesc = "Resource type(container/namespace)"
|
||||||
|
addrAdminFlag = "addr"
|
||||||
|
addrAdminDesc = "The address of the admins wallet"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -63,6 +66,26 @@ var (
|
||||||
},
|
},
|
||||||
Run: listRuleChains,
|
Run: listRuleChains,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setAdminCmd = &cobra.Command{
|
||||||
|
Use: "set-admin",
|
||||||
|
Short: "Set admin",
|
||||||
|
PreRun: func(cmd *cobra.Command, _ []string) {
|
||||||
|
_ = viper.BindPFlag(endpointFlag, cmd.Flags().Lookup(endpointFlag))
|
||||||
|
_ = viper.BindPFlag(alphabetWalletsFlag, cmd.Flags().Lookup(alphabetWalletsFlag))
|
||||||
|
},
|
||||||
|
Run: setAdmin,
|
||||||
|
}
|
||||||
|
|
||||||
|
getAdminCmd = &cobra.Command{
|
||||||
|
Use: "get-admin",
|
||||||
|
Short: "Get admin",
|
||||||
|
PreRun: func(cmd *cobra.Command, _ []string) {
|
||||||
|
_ = viper.BindPFlag(endpointFlag, cmd.Flags().Lookup(endpointFlag))
|
||||||
|
_ = viper.BindPFlag(alphabetWalletsFlag, cmd.Flags().Lookup(alphabetWalletsFlag))
|
||||||
|
},
|
||||||
|
Run: getAdmin,
|
||||||
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
func initAddRuleChainCmd() {
|
func initAddRuleChainCmd() {
|
||||||
|
@ -110,6 +133,22 @@ func initListRuleChainsCmd() {
|
||||||
listRuleChainsCmd.Flags().Bool(jsonFlag, false, jsonFlagDesc)
|
listRuleChainsCmd.Flags().Bool(jsonFlag, false, jsonFlagDesc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func initSetAdminCmd() {
|
||||||
|
apeCmd.AddCommand(setAdminCmd)
|
||||||
|
|
||||||
|
setAdminCmd.Flags().StringP(endpointFlag, endpointFlagShort, "", endpointFlagDesc)
|
||||||
|
setAdminCmd.Flags().String(alphabetWalletsFlag, "", alphabetWalletsFlagDesc)
|
||||||
|
setAdminCmd.Flags().String(addrAdminFlag, "", addrAdminDesc)
|
||||||
|
_ = setAdminCmd.MarkFlagRequired(addrAdminFlag)
|
||||||
|
}
|
||||||
|
|
||||||
|
func initGetAdminCmd() {
|
||||||
|
apeCmd.AddCommand(getAdminCmd)
|
||||||
|
|
||||||
|
getAdminCmd.Flags().StringP(endpointFlag, endpointFlagShort, "", endpointFlagDesc)
|
||||||
|
getAdminCmd.Flags().String(alphabetWalletsFlag, "", alphabetWalletsFlagDesc)
|
||||||
|
}
|
||||||
|
|
||||||
func addRuleChain(cmd *cobra.Command, _ []string) {
|
func addRuleChain(cmd *cobra.Command, _ []string) {
|
||||||
chain := parseChain(cmd)
|
chain := parseChain(cmd)
|
||||||
target := parseTarget(cmd)
|
target := parseTarget(cmd)
|
||||||
|
@ -151,6 +190,25 @@ func listRuleChains(cmd *cobra.Command, _ []string) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setAdmin(cmd *cobra.Command, _ []string) {
|
||||||
|
s, _ := cmd.Flags().GetString(addrAdminFlag)
|
||||||
|
addr, err := util.Uint160DecodeStringLE(s)
|
||||||
|
commonCmd.ExitOnErr(cmd, "can't decode admin addr: %w", err)
|
||||||
|
pci, ac := newPolicyContractInterface(cmd)
|
||||||
|
h, vub, err := pci.SetAdmin(addr)
|
||||||
|
cmd.Println("Waiting for transaction to persist...")
|
||||||
|
_, err = ac.Wait(h, vub, err)
|
||||||
|
commonCmd.ExitOnErr(cmd, "can't set admin: %w", err)
|
||||||
|
cmd.Println("Admin set successfully")
|
||||||
|
}
|
||||||
|
|
||||||
|
func getAdmin(cmd *cobra.Command, _ []string) {
|
||||||
|
pci, _ := newPolicyContractInterface(cmd)
|
||||||
|
addr, err := pci.GetAdmin()
|
||||||
|
commonCmd.ExitOnErr(cmd, "unable to get admin: %w", err)
|
||||||
|
cmd.Println(addr.StringLE())
|
||||||
|
}
|
||||||
|
|
||||||
func prettyJSONFormat(cmd *cobra.Command, chains []*apechain.Chain) {
|
func prettyJSONFormat(cmd *cobra.Command, chains []*apechain.Chain) {
|
||||||
wr := bytes.NewBufferString("")
|
wr := bytes.NewBufferString("")
|
||||||
data, err := json.Marshal(chains)
|
data, err := json.Marshal(chains)
|
||||||
|
|
|
@ -283,10 +283,14 @@ func init() {
|
||||||
initRefillGasCmd()
|
initRefillGasCmd()
|
||||||
initDepositoryNotaryCmd()
|
initDepositoryNotaryCmd()
|
||||||
initNetmapCandidatesCmd()
|
initNetmapCandidatesCmd()
|
||||||
|
|
||||||
RootCmd.AddCommand(apeCmd)
|
RootCmd.AddCommand(apeCmd)
|
||||||
initAddRuleChainCmd()
|
initAddRuleChainCmd()
|
||||||
initRemoveRuleChainCmd()
|
initRemoveRuleChainCmd()
|
||||||
initListRuleChainsCmd()
|
initListRuleChainsCmd()
|
||||||
|
initSetAdminCmd()
|
||||||
|
initGetAdminCmd()
|
||||||
|
|
||||||
initProxyAddAccount()
|
initProxyAddAccount()
|
||||||
initProxyRemoveAccount()
|
initProxyRemoveAccount()
|
||||||
}
|
}
|
||||||
|
|
2
go.mod
2
go.mod
|
@ -8,7 +8,7 @@ require (
|
||||||
git.frostfs.info/TrueCloudLab/frostfs-observability v0.0.0-20231101111734-b3ad3335ff65
|
git.frostfs.info/TrueCloudLab/frostfs-observability v0.0.0-20231101111734-b3ad3335ff65
|
||||||
git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20231122162120-56debcfa569e
|
git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20231122162120-56debcfa569e
|
||||||
git.frostfs.info/TrueCloudLab/hrw v1.2.1
|
git.frostfs.info/TrueCloudLab/hrw v1.2.1
|
||||||
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231214122253-62ea96b82ce3
|
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231221121354-ed93bb5cc574
|
||||||
git.frostfs.info/TrueCloudLab/tzhash v1.8.0
|
git.frostfs.info/TrueCloudLab/tzhash v1.8.0
|
||||||
github.com/cheggaaa/pb v1.0.29
|
github.com/cheggaaa/pb v1.0.29
|
||||||
github.com/chzyer/readline v1.5.1
|
github.com/chzyer/readline v1.5.1
|
||||||
|
|
4
go.sum
4
go.sum
|
@ -11,8 +11,8 @@ git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20231122162120-56debcfa569e
|
||||||
git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20231122162120-56debcfa569e/go.mod h1:t1akKcUH7iBrFHX8rSXScYMP17k2kYQXMbZooiL5Juw=
|
git.frostfs.info/TrueCloudLab/frostfs-sdk-go v0.0.0-20231122162120-56debcfa569e/go.mod h1:t1akKcUH7iBrFHX8rSXScYMP17k2kYQXMbZooiL5Juw=
|
||||||
git.frostfs.info/TrueCloudLab/hrw v1.2.1 h1:ccBRK21rFvY5R1WotI6LNoPlizk7qSvdfD8lNIRudVc=
|
git.frostfs.info/TrueCloudLab/hrw v1.2.1 h1:ccBRK21rFvY5R1WotI6LNoPlizk7qSvdfD8lNIRudVc=
|
||||||
git.frostfs.info/TrueCloudLab/hrw v1.2.1/go.mod h1:C1Ygde2n843yTZEQ0FP69jYiuaYV0kriLvP4zm8JuvM=
|
git.frostfs.info/TrueCloudLab/hrw v1.2.1/go.mod h1:C1Ygde2n843yTZEQ0FP69jYiuaYV0kriLvP4zm8JuvM=
|
||||||
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231214122253-62ea96b82ce3 h1:xnS/YalLqCRplvpF3E9/PRGevj4cDe7qFNZT0mkjZcs=
|
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231221121354-ed93bb5cc574 h1:PmPaHc4P/Rjn1WQcDF5gcwILzWjkMOuRHLqzm9OZCdA=
|
||||||
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231214122253-62ea96b82ce3/go.mod h1:v43imcuSmDwSNrePe4UTQh8jaE8FmsiKN3FcaEzmRzc=
|
git.frostfs.info/TrueCloudLab/policy-engine v0.0.0-20231221121354-ed93bb5cc574/go.mod h1:ps6oKO0mxaPJzK3admTB3iwoBXKkHnS73n4PCrqpHBg=
|
||||||
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0 h1:M2KR3iBj7WpY3hP10IevfIB9MURr4O9mwVfJ+SjT3HA=
|
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0 h1:M2KR3iBj7WpY3hP10IevfIB9MURr4O9mwVfJ+SjT3HA=
|
||||||
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0/go.mod h1:okpbKfVYf/BpejtfFTfhZqFP+sZ8rsHrP8Rr/jYPNRc=
|
git.frostfs.info/TrueCloudLab/rfc6979 v0.4.0/go.mod h1:okpbKfVYf/BpejtfFTfhZqFP+sZ8rsHrP8Rr/jYPNRc=
|
||||||
git.frostfs.info/TrueCloudLab/tzhash v1.8.0 h1:UFMnUIk0Zh17m8rjGHJMqku2hCgaXDqjqZzS4gsb4UA=
|
git.frostfs.info/TrueCloudLab/tzhash v1.8.0 h1:UFMnUIk0Zh17m8rjGHJMqku2hCgaXDqjqZzS4gsb4UA=
|
||||||
|
|
Loading…
Reference in a new issue