forked from TrueCloudLab/frostfs-testcases
Update check filters results with 75% node the object appearance
This commit is contained in:
parent
69202cc703
commit
6128468310
1 changed files with 41 additions and 13 deletions
|
@ -852,6 +852,7 @@ class TestPolicy(ClusterTestBase):
|
||||||
This test checks object's copies based on container's placement policy with SELECT and FILTER results with 75% of available nodes.
|
This test checks object's copies based on container's placement policy with SELECT and FILTER results with 75% of available nodes.
|
||||||
"""
|
"""
|
||||||
placement_rule = "REP 2 IN NODES75 SELECT 2 FROM LT65 AS NODES75 FILTER Price LT 65 AS LT65"
|
placement_rule = "REP 2 IN NODES75 SELECT 2 FROM LT65 AS NODES75 FILTER Price LT 65 AS LT65"
|
||||||
|
expected_params = {"price": 65}
|
||||||
file_path = generate_file(simple_object_size.value)
|
file_path = generate_file(simple_object_size.value)
|
||||||
expected_copies = 2
|
expected_copies = 2
|
||||||
endpoint = self.cluster.default_rpc_endpoint
|
endpoint = self.cluster.default_rpc_endpoint
|
||||||
|
@ -874,9 +875,13 @@ class TestPolicy(ClusterTestBase):
|
||||||
), f"Expected {expected_copies} copies, got {len(resulting_copies)}"
|
), f"Expected {expected_copies} copies, got {len(resulting_copies)}"
|
||||||
|
|
||||||
with allure.step(f"Check the object appearance"):
|
with allure.step(f"Check the object appearance"):
|
||||||
nodes_without_object = get_nodes_without_object(
|
netmap = parse_netmap_output(get_netmap_snapshot(node=resulting_copies[0], shell=self.shell))
|
||||||
wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, nodes=self.cluster.storage_nodes
|
netmap = self.get_netmap_param(netmap)
|
||||||
)
|
for node in resulting_copies:
|
||||||
|
node_address = node.get_rpc_endpoint().split(":")[0]
|
||||||
|
assert (
|
||||||
|
int(netmap[node_address]["price"]) < expected_params["price"]
|
||||||
|
), f"The node is selected from the wrong price. Expected {expected_params} and got {netmap[node_address]}"
|
||||||
|
|
||||||
with allure.step(f"Delete the object from the container"):
|
with allure.step(f"Delete the object from the container"):
|
||||||
delete_object(wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, endpoint=endpoint)
|
delete_object(wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, endpoint=endpoint)
|
||||||
|
@ -894,7 +899,9 @@ class TestPolicy(ClusterTestBase):
|
||||||
"""
|
"""
|
||||||
This test checks object's copies based on container's placement policy with SELECT and Complex FILTER results with 75% of available nodes.
|
This test checks object's copies based on container's placement policy with SELECT and Complex FILTER results with 75% of available nodes.
|
||||||
"""
|
"""
|
||||||
placement_rule = "REP 2 IN NODES75 SELECT 2 FROM LT65 AS NODES75 FILTER Price LT 65 AS LT65"
|
placement_rule = "REP 2 IN NODES75 SELECT 2 FROM LT65 AS NODES75 FILTER Continent NE America AS NOAM FILTER @NOAM AND Price LT 65 AS LT65"
|
||||||
|
expected_params = {"price": 65}
|
||||||
|
unexpected_params = {"continent": "America"}
|
||||||
file_path = generate_file(simple_object_size.value)
|
file_path = generate_file(simple_object_size.value)
|
||||||
expected_copies = 3
|
expected_copies = 3
|
||||||
endpoint = self.cluster.default_rpc_endpoint
|
endpoint = self.cluster.default_rpc_endpoint
|
||||||
|
@ -917,9 +924,16 @@ class TestPolicy(ClusterTestBase):
|
||||||
), f"Expected {expected_copies} copies, got {len(resulting_copies)}"
|
), f"Expected {expected_copies} copies, got {len(resulting_copies)}"
|
||||||
|
|
||||||
with allure.step(f"Check the object appearance"):
|
with allure.step(f"Check the object appearance"):
|
||||||
nodes_without_object = get_nodes_without_object(
|
netmap = parse_netmap_output(get_netmap_snapshot(node=resulting_copies[0], shell=self.shell))
|
||||||
wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, nodes=self.cluster.storage_nodes
|
netmap = self.get_netmap_param(netmap)
|
||||||
)
|
for node in resulting_copies:
|
||||||
|
node_address = node.get_rpc_endpoint().split(":")[0]
|
||||||
|
assert (
|
||||||
|
int(netmap[node_address]["price"]) < expected_params["price"]
|
||||||
|
and netmap[node_address]["continent"] == unexpected_params["continent"]
|
||||||
|
) or (
|
||||||
|
netmap[node_address]["continent"] == unexpected_params["continent"]
|
||||||
|
), f"The node is selected from the wrong price or continent. Expected {expected_params} and got {netmap[node_address]}"
|
||||||
|
|
||||||
with allure.step(f"Delete the object from the container"):
|
with allure.step(f"Delete the object from the container"):
|
||||||
delete_object(wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, endpoint=endpoint)
|
delete_object(wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, endpoint=endpoint)
|
||||||
|
@ -938,6 +952,8 @@ class TestPolicy(ClusterTestBase):
|
||||||
This test checks object's copies based on container's placement policy with Multi SELECTs and FILTERs results with 75% of available nodes.
|
This test checks object's copies based on container's placement policy with Multi SELECTs and FILTERs results with 75% of available nodes.
|
||||||
"""
|
"""
|
||||||
placement_rule = "REP 2 IN EXPNSV REP 2 IN CHEAP SELECT 3 FROM GT10 AS EXPNSV SELECT 3 FROM LT65 AS CHEAP FILTER NOT(Continent EQ America) AS NOAM FILTER @NOAM AND Price LT 65 AS LT65 FILTER @NOAM AND Price GT 10 AS GT10"
|
placement_rule = "REP 2 IN EXPNSV REP 2 IN CHEAP SELECT 3 FROM GT10 AS EXPNSV SELECT 3 FROM LT65 AS CHEAP FILTER NOT(Continent EQ America) AS NOAM FILTER @NOAM AND Price LT 65 AS LT65 FILTER @NOAM AND Price GT 10 AS GT10"
|
||||||
|
expected_params = {"price": [65, 10]}
|
||||||
|
unexpected_params = {"continent": "America"}
|
||||||
file_path = generate_file(simple_object_size.value)
|
file_path = generate_file(simple_object_size.value)
|
||||||
expected_copies = 4
|
expected_copies = 4
|
||||||
endpoint = self.cluster.default_rpc_endpoint
|
endpoint = self.cluster.default_rpc_endpoint
|
||||||
|
@ -960,9 +976,21 @@ class TestPolicy(ClusterTestBase):
|
||||||
), f"Expected {expected_copies} copies, got {len(resulting_copies)}"
|
), f"Expected {expected_copies} copies, got {len(resulting_copies)}"
|
||||||
|
|
||||||
with allure.step(f"Check the object appearance"):
|
with allure.step(f"Check the object appearance"):
|
||||||
nodes_without_object = get_nodes_without_object(
|
netmap = parse_netmap_output(get_netmap_snapshot(node=resulting_copies[0], shell=self.shell))
|
||||||
wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, nodes=self.cluster.storage_nodes
|
netmap = self.get_netmap_param(netmap)
|
||||||
|
for node in resulting_copies:
|
||||||
|
node_address = node.get_rpc_endpoint().split(":")[0]
|
||||||
|
assert (
|
||||||
|
(
|
||||||
|
int(netmap[node_address]["price"]) > expected_params["price"][1]
|
||||||
|
and netmap[node_address]["continent"] == unexpected_params["continent"]
|
||||||
)
|
)
|
||||||
|
or (
|
||||||
|
int(netmap[node_address]["price"]) < expected_params["price"][0]
|
||||||
|
and netmap[node_address]["continent"] == unexpected_params["continent"]
|
||||||
|
)
|
||||||
|
or (netmap[node_address]["continent"] == unexpected_params["continent"])
|
||||||
|
), f"The node is selected from the wrong price or continent. Expected {expected_params} and got {netmap[node_address]}"
|
||||||
|
|
||||||
with allure.step(f"Delete the object from the container"):
|
with allure.step(f"Delete the object from the container"):
|
||||||
delete_object(wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, endpoint=endpoint)
|
delete_object(wallet=default_wallet, cid=cid, oid=oid, shell=self.shell, endpoint=endpoint)
|
||||||
|
@ -1055,7 +1083,7 @@ class TestPolicy(ClusterTestBase):
|
||||||
This test checks object's copies based on container's placement policy with SELECT and FILTER results with 100% of available nodes.
|
This test checks object's copies based on container's placement policy with SELECT and FILTER results with 100% of available nodes.
|
||||||
"""
|
"""
|
||||||
placement_rule = "REP 1 IN All SELECT 4 FROM AllNodes AS All FILTER Price GE 0 AS AllNodes"
|
placement_rule = "REP 1 IN All SELECT 4 FROM AllNodes AS All FILTER Price GE 0 AS AllNodes"
|
||||||
expected_params = {"price": "0"}
|
expected_params = {"price": 0}
|
||||||
file_path = generate_file(simple_object_size.value)
|
file_path = generate_file(simple_object_size.value)
|
||||||
expected_copies = 1
|
expected_copies = 1
|
||||||
endpoint = self.cluster.default_rpc_endpoint
|
endpoint = self.cluster.default_rpc_endpoint
|
||||||
|
@ -1082,8 +1110,8 @@ class TestPolicy(ClusterTestBase):
|
||||||
netmap = parse_netmap_output(get_netmap_snapshot(node=resulting_copies[0], shell=self.shell))
|
netmap = parse_netmap_output(get_netmap_snapshot(node=resulting_copies[0], shell=self.shell))
|
||||||
netmap = self.get_netmap_param(netmap)
|
netmap = self.get_netmap_param(netmap)
|
||||||
node_address = resulting_copies[0].get_rpc_endpoint().split(":")[0]
|
node_address = resulting_copies[0].get_rpc_endpoint().split(":")[0]
|
||||||
assert (
|
assert expected_params["price"] >= int(
|
||||||
expected_params["price"] == netmap[node_address]["price"]
|
netmap[node_address]["price"]
|
||||||
), f"The node is selected from the wrong price. Expected {expected_params} and got {netmap[node_address]}"
|
), f"The node is selected from the wrong price. Expected {expected_params} and got {netmap[node_address]}"
|
||||||
|
|
||||||
with allure.step(f"Delete the object from the container"):
|
with allure.step(f"Delete the object from the container"):
|
||||||
|
|
Loading…
Reference in a new issue