package apemanager import ( internalclient "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-cli/internal/client" "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-cli/internal/commonflags" "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/frostfs-cli/internal/key" commonCmd "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/internal/common" apeCmd "git.frostfs.info/TrueCloudLab/frostfs-node/cmd/internal/common/ape" client_sdk "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/client" apechain "git.frostfs.info/TrueCloudLab/policy-engine/pkg/chain" "github.com/spf13/cobra" ) var listCmd = &cobra.Command{ Use: "list", Short: "List rule chains defined on target", Run: list, PersistentPreRun: func(cmd *cobra.Command, _ []string) { commonflags.Bind(cmd) }, } func list(cmd *cobra.Command, _ []string) { target := parseTarget(cmd) key := key.Get(cmd) cli := internalclient.GetSDKClientByFlag(cmd, key, commonflags.RPC) resp, err := cli.APEManagerListChains(cmd.Context(), client_sdk.PrmAPEManagerListChains{ ChainTarget: target, }) commonCmd.ExitOnErr(cmd, "list chains call error: %w", err) for _, respChain := range resp.Chains { var chain apechain.Chain commonCmd.ExitOnErr(cmd, "decode error: %w", chain.DecodeBytes(respChain.Raw)) apeCmd.PrintHumanReadableAPEChain(cmd, &chain) } } func initListCmd() { commonflags.Init(listCmd) ff := listCmd.Flags() ff.String(targetNameFlag, "", targetNameDesc) ff.String(targetTypeFlag, "", targetTypeDesc) _ = listCmd.MarkFlagRequired(targetTypeFlag) }