diff --git a/cmd/frostfs-cli/modules/object/nodes.go b/cmd/frostfs-cli/modules/object/nodes.go index 358a9d618..d2d20dc08 100644 --- a/cmd/frostfs-cli/modules/object/nodes.go +++ b/cmd/frostfs-cli/modules/object/nodes.go @@ -3,6 +3,7 @@ package object import ( "context" "crypto/ecdsa" + "encoding/hex" "errors" "fmt" "strconv" @@ -223,14 +224,12 @@ func getActualPlacement(cmd *cobra.Command, netmap *netmapSDK.NetMap, requiredPl } } - var err error eg, egCtx := errgroup.WithContext(cmd.Context()) for _, cand := range candidates { cand := cand eg.Go(func() error { - var cli *client.Client - cli, err = createClient(egCtx, cmd, cand, pk) + cli, err := createClient(egCtx, cmd, cand, pk) if err != nil { resultMtx.Lock() defer resultMtx.Unlock() @@ -268,13 +267,7 @@ func getActualPlacement(cmd *cobra.Command, netmap *netmapSDK.NetMap, requiredPl }) } - egErr := eg.Wait() - if err != nil || egErr != nil { - if err == nil { - err = egErr - } - commonCmd.ExitOnErr(cmd, "failed to get actual placement: %w", err) - } + commonCmd.ExitOnErr(cmd, "failed to get actual placement: %w", eg.Wait()) return result } @@ -285,6 +278,7 @@ func createClient(ctx context.Context, cmd *cobra.Command, candidate netmapSDK.N addresses = append(addresses, s) return false }) + addresses = append(addresses, candidate.ExternalAddresses()...) var lastErr error for _, address := range addresses { var networkAddr network.Address @@ -336,13 +330,9 @@ func printPlacement(cmd *cobra.Command, netmap *netmapSDK.NetMap, requiredPlacem defer func() { commonCmd.ExitOnErr(cmd, "failed to print placement info: %w", w.Flush()) }() - fmt.Fprintln(w, "Netmap node\tShould contain object\tActually contains object\t") + fmt.Fprintln(w, "Node ID\tShould contain object\tActually contains object\t") for _, n := range netmap.Nodes() { - var address string - n.IterateNetworkEndpoints(func(s string) bool { - address = s - return s != "" - }) + nodeID := hex.EncodeToString(n.PublicKey()) _, required := requiredPlacement[n.Hash()] actual, actualExists := actualPlacement[n.Hash()] actualStr := "" @@ -353,6 +343,6 @@ func printPlacement(cmd *cobra.Command, netmap *netmapSDK.NetMap, requiredPlacem actualStr = strconv.FormatBool(actual.value) } } - fmt.Fprintf(w, "%s\t%s\t%s\t\n", address, strconv.FormatBool(required), actualStr) + fmt.Fprintf(w, "%s\t%s\t%s\t\n", nodeID, strconv.FormatBool(required), actualStr) } }