frostfs-cli: Allow to use external addresses first for object nodes
#1282
1 changed files with 17 additions and 6 deletions
|
@ -31,6 +31,7 @@ import (
|
||||||
|
|
||||||
const (
|
const (
|
||||||
verifyPresenceAllFlag = "verify-presence-all"
|
verifyPresenceAllFlag = "verify-presence-all"
|
||||||
|
preferInternalAddressesFlag = "prefer-internal-addresses"
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
@ -97,6 +98,7 @@ func initObjectNodesCmd() {
|
||||||
|
|
||||||
flags.Bool(verifyPresenceAllFlag, false, "Verify the actual presence of the object on all netmap nodes.")
|
flags.Bool(verifyPresenceAllFlag, false, "Verify the actual presence of the object on all netmap nodes.")
|
||||||
flags.Bool(commonflags.JSON, false, "Print information about the object placement as json.")
|
flags.Bool(commonflags.JSON, false, "Print information about the object placement as json.")
|
||||||
|
flags.Bool(preferInternalAddressesFlag, false, "Use internal addresses first to get object info.")
|
||||||
}
|
}
|
||||||
|
|
||||||
func objectNodes(cmd *cobra.Command, _ []string) {
|
func objectNodes(cmd *cobra.Command, _ []string) {
|
||||||
|
@ -449,11 +451,20 @@ func getNodesToCheckObjectExistance(cmd *cobra.Command, netmap *netmapSDK.NetMap
|
||||||
func createClient(ctx context.Context, cmd *cobra.Command, candidate netmapSDK.NodeInfo, pk *ecdsa.PrivateKey) (*client.Client, error) {
|
func createClient(ctx context.Context, cmd *cobra.Command, candidate netmapSDK.NodeInfo, pk *ecdsa.PrivateKey) (*client.Client, error) {
|
||||||
var cli *client.Client
|
var cli *client.Client
|
||||||
var addresses []string
|
var addresses []string
|
||||||
|
if preferInternal, _ := cmd.Flags().GetBool(preferInternalAddressesFlag); preferInternal {
|
||||||
candidate.IterateNetworkEndpoints(func(s string) bool {
|
candidate.IterateNetworkEndpoints(func(s string) bool {
|
||||||
addresses = append(addresses, s)
|
addresses = append(addresses, s)
|
||||||
return false
|
return false
|
||||||
})
|
})
|
||||||
addresses = append(addresses, candidate.ExternalAddresses()...)
|
addresses = append(addresses, candidate.ExternalAddresses()...)
|
||||||
|
} else {
|
||||||
|
addresses = append(addresses, candidate.ExternalAddresses()...)
|
||||||
|
candidate.IterateNetworkEndpoints(func(s string) bool {
|
||||||
|
addresses = append(addresses, s)
|
||||||
|
return false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
var lastErr error
|
var lastErr error
|
||||||
for _, address := range addresses {
|
for _, address := range addresses {
|
||||||
var networkAddr network.Address
|
var networkAddr network.Address
|
||||||
|
|
Loading…
Reference in a new issue