forked from TrueCloudLab/frostfs-testlib
parent
0a3de927a2
commit
6fe7fef44b
5 changed files with 17 additions and 10 deletions
|
@ -1,7 +1,7 @@
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from frostfs_testlib.storage.cluster import ClusterNode
|
from frostfs_testlib.storage.cluster import ClusterNode
|
||||||
from frostfs_testlib.storage.dataclasses.storage_object_info import NodeNetInfo, NodeNetmapInfo, NodeStatus
|
from frostfs_testlib.storage.dataclasses.storage_object_info import Interfaces, NodeNetInfo, NodeNetmapInfo, NodeStatus
|
||||||
|
|
||||||
|
|
||||||
class NetmapParser:
|
class NetmapParser:
|
||||||
|
@ -85,7 +85,7 @@ class NetmapParser:
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def snapshot_one_node(output: str, cluster_node: ClusterNode) -> NodeNetmapInfo | None:
|
def snapshot_one_node(output: str, cluster_node: ClusterNode) -> NodeNetmapInfo | None:
|
||||||
snapshot_nodes = NetmapParser.snapshot_all_nodes(output=output)
|
snapshot_nodes = NetmapParser.snapshot_all_nodes(output=output)
|
||||||
snapshot_node = [node for node in snapshot_nodes if node.node == cluster_node.host_ip]
|
snapshot_node = [node for node in snapshot_nodes if node.node == cluster_node.get_interface(Interfaces.MGMT)]
|
||||||
if not snapshot_node:
|
if not snapshot_node:
|
||||||
return None
|
return None
|
||||||
return snapshot_node[0]
|
return snapshot_node[0]
|
||||||
|
|
|
@ -12,6 +12,7 @@ from frostfs_testlib.resources.cli import CLI_DEFAULT_TIMEOUT, FROSTFS_CLI_EXEC,
|
||||||
from frostfs_testlib.resources.common import ASSETS_DIR
|
from frostfs_testlib.resources.common import ASSETS_DIR
|
||||||
from frostfs_testlib.shell import Shell
|
from frostfs_testlib.shell import Shell
|
||||||
from frostfs_testlib.storage.cluster import Cluster, ClusterNode
|
from frostfs_testlib.storage.cluster import Cluster, ClusterNode
|
||||||
|
from frostfs_testlib.storage.dataclasses.storage_object_info import Interfaces
|
||||||
from frostfs_testlib.storage.dataclasses.wallet import WalletInfo
|
from frostfs_testlib.storage.dataclasses.wallet import WalletInfo
|
||||||
from frostfs_testlib.testing import wait_for_success
|
from frostfs_testlib.testing import wait_for_success
|
||||||
from frostfs_testlib.utils import json_utils
|
from frostfs_testlib.utils import json_utils
|
||||||
|
@ -752,7 +753,10 @@ def get_object_nodes(
|
||||||
]
|
]
|
||||||
|
|
||||||
object_nodes = [
|
object_nodes = [
|
||||||
cluster_node for netmap_node in netmap_nodes for cluster_node in cluster.cluster_nodes if netmap_node.node == cluster_node.host_ip
|
cluster_node
|
||||||
|
for netmap_node in netmap_nodes
|
||||||
|
for cluster_node in cluster.cluster_nodes
|
||||||
|
if netmap_node.node == cluster_node.get_interface(Interfaces.MGMT)
|
||||||
]
|
]
|
||||||
|
|
||||||
return object_nodes
|
return object_nodes
|
||||||
|
|
|
@ -19,7 +19,7 @@ from frostfs_testlib.steps.node_management import include_node_to_network_map, r
|
||||||
from frostfs_testlib.storage.cluster import Cluster, ClusterNode, S3Gate, StorageNode
|
from frostfs_testlib.storage.cluster import Cluster, ClusterNode, S3Gate, StorageNode
|
||||||
from frostfs_testlib.storage.controllers.disk_controller import DiskController
|
from frostfs_testlib.storage.controllers.disk_controller import DiskController
|
||||||
from frostfs_testlib.storage.dataclasses.node_base import NodeBase, ServiceClass
|
from frostfs_testlib.storage.dataclasses.node_base import NodeBase, ServiceClass
|
||||||
from frostfs_testlib.storage.dataclasses.storage_object_info import NodeStatus
|
from frostfs_testlib.storage.dataclasses.storage_object_info import Interfaces, NodeStatus
|
||||||
from frostfs_testlib.storage.dataclasses.wallet import WalletInfo
|
from frostfs_testlib.storage.dataclasses.wallet import WalletInfo
|
||||||
from frostfs_testlib.testing import parallel
|
from frostfs_testlib.testing import parallel
|
||||||
from frostfs_testlib.testing.test_control import retry, run_optionally, wait_for_success
|
from frostfs_testlib.testing.test_control import retry, run_optionally, wait_for_success
|
||||||
|
@ -454,9 +454,11 @@ class ClusterStateController:
|
||||||
if not checker_node:
|
if not checker_node:
|
||||||
checker_node = cluster_node
|
checker_node = cluster_node
|
||||||
netmap = NetmapParser.snapshot_all_nodes(frostfs_cli.netmap.snapshot(checker_node.storage_node.get_rpc_endpoint()).stdout)
|
netmap = NetmapParser.snapshot_all_nodes(frostfs_cli.netmap.snapshot(checker_node.storage_node.get_rpc_endpoint()).stdout)
|
||||||
netmap = [node for node in netmap if cluster_node.host_ip == node.node]
|
netmap = [node for node in netmap if cluster_node.get_interface(Interfaces.MGMT) == node.node]
|
||||||
if status == NodeStatus.OFFLINE:
|
if status == NodeStatus.OFFLINE:
|
||||||
assert cluster_node.host_ip not in netmap, f"{cluster_node.host_ip} not in Offline"
|
assert (
|
||||||
|
cluster_node.get_interface(Interfaces.MGMT) not in netmap
|
||||||
|
), f"{cluster_node.get_interface(Interfaces.MGMT)} not in Offline"
|
||||||
else:
|
else:
|
||||||
assert netmap[0].node_status == status, f"Node status should be '{status}', but was '{netmap[0].node_status}'"
|
assert netmap[0].node_status == status, f"Node status should be '{status}', but was '{netmap[0].node_status}'"
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ from frostfs_testlib.cli.frostfs_cli.cli import FrostfsCli
|
||||||
from frostfs_testlib.resources.cli import CLI_DEFAULT_TIMEOUT
|
from frostfs_testlib.resources.cli import CLI_DEFAULT_TIMEOUT
|
||||||
from frostfs_testlib.storage.cluster import Cluster, ClusterNode
|
from frostfs_testlib.storage.cluster import Cluster, ClusterNode
|
||||||
from frostfs_testlib.storage.controllers.shards_watcher import ShardsWatcher
|
from frostfs_testlib.storage.controllers.shards_watcher import ShardsWatcher
|
||||||
from frostfs_testlib.storage.dataclasses.storage_object_info import Chunk, NodeNetmapInfo
|
from frostfs_testlib.storage.dataclasses.storage_object_info import Chunk, Interfaces, NodeNetmapInfo
|
||||||
from frostfs_testlib.storage.grpc_operations import interfaces
|
from frostfs_testlib.storage.grpc_operations import interfaces
|
||||||
from frostfs_testlib.testing.test_control import wait_for_success
|
from frostfs_testlib.testing.test_control import wait_for_success
|
||||||
from frostfs_testlib.utils.cli_utils import parse_netmap_output
|
from frostfs_testlib.utils.cli_utils import parse_netmap_output
|
||||||
|
@ -30,7 +30,7 @@ class ChunksOperations(interfaces.ChunksInterface):
|
||||||
result = []
|
result = []
|
||||||
for node_info in netmap:
|
for node_info in netmap:
|
||||||
for cluster_node in cluster.cluster_nodes:
|
for cluster_node in cluster.cluster_nodes:
|
||||||
if node_info.node == cluster_node.host_ip:
|
if node_info.node == cluster_node.get_interface(Interfaces.MGMT):
|
||||||
result.append(cluster_node)
|
result.append(cluster_node)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
@ -40,7 +40,7 @@ class ChunksOperations(interfaces.ChunksInterface):
|
||||||
for node_info in netmap:
|
for node_info in netmap:
|
||||||
if node_info.node_id in chunk.confirmed_nodes:
|
if node_info.node_id in chunk.confirmed_nodes:
|
||||||
for cluster_node in cluster.cluster_nodes:
|
for cluster_node in cluster.cluster_nodes:
|
||||||
if cluster_node.host_ip == node_info.node:
|
if cluster_node.get_interface(Interfaces.MGMT) == node_info.node:
|
||||||
return (cluster_node, node_info)
|
return (cluster_node, node_info)
|
||||||
|
|
||||||
@wait_for_success(300, 5, fail_testcase=None)
|
@wait_for_success(300, 5, fail_testcase=None)
|
||||||
|
|
|
@ -11,6 +11,7 @@ from frostfs_testlib.resources.cli import CLI_DEFAULT_TIMEOUT
|
||||||
from frostfs_testlib.resources.common import ASSETS_DIR
|
from frostfs_testlib.resources.common import ASSETS_DIR
|
||||||
from frostfs_testlib.shell.interfaces import CommandResult
|
from frostfs_testlib.shell.interfaces import CommandResult
|
||||||
from frostfs_testlib.storage.cluster import Cluster, ClusterNode
|
from frostfs_testlib.storage.cluster import Cluster, ClusterNode
|
||||||
|
from frostfs_testlib.storage.dataclasses.storage_object_info import Interfaces
|
||||||
from frostfs_testlib.storage.grpc_operations import interfaces
|
from frostfs_testlib.storage.grpc_operations import interfaces
|
||||||
from frostfs_testlib.storage.grpc_operations.implementations.chunks import ChunksOperations
|
from frostfs_testlib.storage.grpc_operations.implementations.chunks import ChunksOperations
|
||||||
from frostfs_testlib.testing.test_control import wait_for_success
|
from frostfs_testlib.testing.test_control import wait_for_success
|
||||||
|
@ -674,7 +675,7 @@ class ObjectOperations(interfaces.ObjectInterface):
|
||||||
cluster_node
|
cluster_node
|
||||||
for netmap_node in netmap_nodes
|
for netmap_node in netmap_nodes
|
||||||
for cluster_node in cluster.cluster_nodes
|
for cluster_node in cluster.cluster_nodes
|
||||||
if netmap_node.node == cluster_node.host_ip
|
if netmap_node.node == cluster_node.get_interface(Interfaces.MGMT)
|
||||||
]
|
]
|
||||||
|
|
||||||
return object_nodes
|
return object_nodes
|
||||||
|
|
Loading…
Reference in a new issue