[#979] adm: Fix problems after testing

Use persistent flags on parent command in order to inherit flags in
sub-commands. Turn on notary mode of morph client in `subnet` command of
admin utility for notary environments.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2021-11-30 14:58:15 +03:00 committed by LeL
parent 069a174129
commit 4b8ca75274
2 changed files with 20 additions and 18 deletions

View file

@ -42,7 +42,7 @@ func viperBindFlags(cmd *cobra.Command, flags ...string) {
var cmdSubnet = &cobra.Command{ var cmdSubnet = &cobra.Command{
Use: "subnet", Use: "subnet",
Short: "NeoFS subnet management.", Short: "NeoFS subnet management.",
PreRun: func(cmd *cobra.Command, _ []string) { PersistentPreRun: func(cmd *cobra.Command, _ []string) {
viperBindFlags(cmd, viperBindFlags(cmd,
flagSubnetEndpoint, flagSubnetEndpoint,
flagSubnetKey, flagSubnetKey,
@ -109,10 +109,19 @@ func initSubnetClient(c *morphsubnet.Client, key *keys.PrivateKey) error {
return err return err
} }
nonNotary := viper.GetBool(flagSubnetNonNotary)
if nonNotary {
err = cMorph.EnableNotarySupport()
if err != nil {
return fmt.Errorf("enable notary support: %w", err)
}
}
// calc client mode // calc client mode
cMode := morphsubnet.NotaryNonAlphabet cMode := morphsubnet.NotaryNonAlphabet
if viper.GetBool(flagSubnetNonNotary) { if nonNotary {
cMode = morphsubnet.NonNotary cMode = morphsubnet.NonNotary
} }
@ -173,11 +182,6 @@ var cmdSubnetCreate = &cobra.Command{
// declare creator ID and encode it // declare creator ID and encode it
creator := *owner.NewIDFromNeo3Wallet(n3Wallet) creator := *owner.NewIDFromNeo3Wallet(n3Wallet)
binCreator, err := creator.Marshal()
if err != nil {
return fmt.Errorf("marshal creator ID: %w", err)
}
// fill subnet info and encode it // fill subnet info and encode it
var info subnet.Info var info subnet.Info
@ -201,7 +205,7 @@ var cmdSubnetCreate = &cobra.Command{
var prm morphsubnet.PutPrm var prm morphsubnet.PutPrm
prm.SetID(binID) prm.SetID(binID)
prm.SetOwner(binCreator) prm.SetOwner(key.PublicKey().Bytes())
prm.SetInfo(binInfo) prm.SetInfo(binInfo)
_, err = cSubnet.Put(prm) _, err = cSubnet.Put(prm)
@ -653,7 +657,7 @@ func init() {
_ = cmdSubnetRemove.MarkFlagRequired(flagSubnetRemoveID) _ = cmdSubnetRemove.MarkFlagRequired(flagSubnetRemoveID)
// subnet administer flags // subnet administer flags
adminFlags := cmdSubnetAdmin.Flags() adminFlags := cmdSubnetAdmin.PersistentFlags()
adminFlags.String(flagSubnetAdminSubnet, "", "ID of the subnet to manage administrators") adminFlags.String(flagSubnetAdminSubnet, "", "ID of the subnet to manage administrators")
_ = cmdSubnetAdmin.MarkFlagRequired(flagSubnetAdminSubnet) _ = cmdSubnetAdmin.MarkFlagRequired(flagSubnetAdminSubnet)
adminFlags.String(flagSubnetAdminID, "", "Hex-encoded public key of the admin") adminFlags.String(flagSubnetAdminID, "", "Hex-encoded public key of the admin")
@ -670,7 +674,7 @@ func init() {
cmdSubnetAdminRemoveFlags.Bool(flagSubnetAdminClient, false, "Remove client admin instead of node one") cmdSubnetAdminRemoveFlags.Bool(flagSubnetAdminClient, false, "Remove client admin instead of node one")
// client managements flags // client managements flags
clientFlags := cmdSubnetClient.Flags() clientFlags := cmdSubnetClient.PersistentFlags()
clientFlags.String(flagSubnetClientSubnet, "", "ID of the subnet to be managed") clientFlags.String(flagSubnetClientSubnet, "", "ID of the subnet to be managed")
_ = cmdSubnetClient.MarkFlagRequired(flagSubnetClientSubnet) _ = cmdSubnetClient.MarkFlagRequired(flagSubnetClientSubnet)
clientFlags.String(flagSubnetClientGroup, "", "ID of the client group to work with") clientFlags.String(flagSubnetClientGroup, "", "ID of the client group to work with")
@ -691,7 +695,7 @@ func init() {
) )
// subnet global flags // subnet global flags
cmdSubnetFlags := cmdSubnet.Flags() cmdSubnetFlags := cmdSubnet.PersistentFlags()
cmdSubnetFlags.StringP(flagSubnetEndpoint, "r", "", "N3 RPC node endpoint") cmdSubnetFlags.StringP(flagSubnetEndpoint, "r", "", "N3 RPC node endpoint")
_ = cmdSubnet.MarkFlagRequired(flagSubnetEndpoint) _ = cmdSubnet.MarkFlagRequired(flagSubnetEndpoint)
cmdSubnetFlags.StringP(flagSubnetKey, "k", "", "Path to file with private key") cmdSubnetFlags.StringP(flagSubnetKey, "k", "", "Path to file with private key")

View file

@ -2,15 +2,12 @@ package morphsubnet
import ( import (
"errors" "errors"
"fmt"
"github.com/nspcc-dev/neofs-node/pkg/morph/client" "github.com/nspcc-dev/neofs-node/pkg/morph/client"
) )
// GetPrm groups parameters of Get method of Subnet contract. // GetPrm groups parameters of Get method of Subnet contract.
type GetPrm struct { type GetPrm struct {
cliPrm client.TestInvokePrm
args [1]interface{} args [1]interface{}
} }
@ -33,12 +30,13 @@ var errEmptyResponse = errors.New("empty response")
// Get reads the subnet through the call of the corresponding method of the Subnet contract. // Get reads the subnet through the call of the corresponding method of the Subnet contract.
func (x *Client) Get(prm GetPrm) (*GetRes, error) { func (x *Client) Get(prm GetPrm) (*GetRes, error) {
prm.cliPrm.SetMethod("get") var prmGet client.TestInvokePrm
prm.cliPrm.SetArgs(prm.args[:]...)
res, err := x.client.TestInvoke(prm.cliPrm) prmGet.SetMethod("get")
prmGet.SetArgs(prm.args[:]...)
res, err := x.client.TestInvoke(prmGet)
if err != nil { if err != nil {
fmt.Println()
return nil, err return nil, err
} }