Fix policy for replication test #111
1 changed files with 15 additions and 8 deletions
|
@ -11,6 +11,7 @@ from frostfs_testlib.storage.cluster import Cluster
|
||||||
from frostfs_testlib.storage.controllers.cluster_state_controller import ClusterStateController
|
from frostfs_testlib.storage.controllers.cluster_state_controller import ClusterStateController
|
||||||
from frostfs_testlib.storage.dataclasses.object_size import ObjectSize
|
from frostfs_testlib.storage.dataclasses.object_size import ObjectSize
|
||||||
from frostfs_testlib.testing.cluster_test_base import ClusterTestBase
|
from frostfs_testlib.testing.cluster_test_base import ClusterTestBase
|
||||||
|
from frostfs_testlib.utils.failover_utils import wait_object_replication
|
||||||
from frostfs_testlib.utils.file_utils import generate_file
|
from frostfs_testlib.utils.file_utils import generate_file
|
||||||
|
|
||||||
logger = logging.getLogger("NeoLogger")
|
logger = logging.getLogger("NeoLogger")
|
||||||
|
@ -63,32 +64,38 @@ class TestReplication(ClusterTestBase):
|
||||||
attributes=OBJECT_ATTRIBUTES,
|
attributes=OBJECT_ATTRIBUTES,
|
||||||
copies_number=3,
|
copies_number=3,
|
||||||
endpoint=random.choice(alive_nodes).storage_node.get_rpc_endpoint(),
|
endpoint=random.choice(alive_nodes).storage_node.get_rpc_endpoint(),
|
||||||
|
timeout="45s",
|
||||||
)
|
)
|
||||||
|
|
||||||
cluster_state_controller.start_node_host(node_for_rep)
|
cluster_state_controller.start_node_host(node_for_rep)
|
||||||
with allure.step(f"Wait for replication. Sleep {WAIT_FOR_REPLICATION}s"):
|
with allure.step(f"Wait for replication."):
|
||||||
sleep(WAIT_FOR_REPLICATION)
|
object_nodes = wait_object_replication(
|
||||||
|
cid=cid,
|
||||||
|
oid=oid,
|
||||||
|
expected_copies=len(self.cluster.cluster_nodes),
|
||||||
|
shell=client_shell,
|
||||||
|
nodes=self.cluster.storage_nodes,
|
||||||
|
)
|
||||||
|
|
||||||
for node in cluster.cluster_nodes:
|
with allure.step("Check attributes"):
|
||||||
with allure.step(f"Check object on node {node}"):
|
for node in object_nodes:
|
||||||
header_info = head_object(
|
header_info = head_object(
|
||||||
wallet=default_wallet,
|
wallet=default_wallet,
|
||||||
oid=oid,
|
oid=oid,
|
||||||
cid=cid,
|
cid=cid,
|
||||||
shell=self.shell,
|
shell=self.shell,
|
||||||
endpoint=node.storage_node.get_rpc_endpoint(),
|
endpoint=node.get_rpc_endpoint(),
|
||||||
is_direct=True,
|
is_direct=True,
|
||||||
)["header"]
|
)["header"]
|
||||||
attributes = header_info["attributes"]
|
attributes = header_info["attributes"]
|
||||||
for attribute_key, attribute_value in OBJECT_ATTRIBUTES.items():
|
for attribute_key, attribute_value in OBJECT_ATTRIBUTES.items():
|
||||||
assert (
|
assert attribute_key in attributes, f"{attribute_key} not found in {header_info}"
|
||||||
attribute_key in attributes
|
|
||||||
), f"{attribute_key} not found in {header_info}"
|
|
||||||
assert header_info["attributes"].get(attribute_key) == str(attribute_value), (
|
assert header_info["attributes"].get(attribute_key) == str(attribute_value), (
|
||||||
f"{attribute_key} value not equal: "
|
f"{attribute_key} value not equal: "
|
||||||
f"got attribute value: {attributes.get(attribute_key)}"
|
f"got attribute value: {attributes.get(attribute_key)}"
|
||||||
f"expected attribute value: {attribute_value}"
|
f"expected attribute value: {attribute_value}"
|
||||||
)
|
)
|
||||||
|
|
||||||
with allure.step("Cleanup"):
|
with allure.step("Cleanup"):
|
||||||
delete_object(
|
delete_object(
|
||||||
wallet=default_wallet,
|
wallet=default_wallet,
|
||||||
|
|
Loading…
Reference in a new issue