Add test case for loss of one node
This commit is contained in:
parent
a0587438c4
commit
c071f54b56
1 changed files with 27 additions and 5 deletions
|
@ -84,11 +84,6 @@ def return_stopped_hosts(shell: Shell, cluster: Cluster) -> None:
|
||||||
|
|
||||||
@pytest.mark.failover
|
@pytest.mark.failover
|
||||||
class TestFailoverStorage(ClusterTestBase):
|
class TestFailoverStorage(ClusterTestBase):
|
||||||
@pytest.fixture(scope="function", autouse=True)
|
|
||||||
def start_stopped_services(self, cluster_state_controller: ClusterStateController):
|
|
||||||
yield
|
|
||||||
cluster_state_controller.start_stopped_storage_services()
|
|
||||||
|
|
||||||
@allure.title("Lose and return storage node's host")
|
@allure.title("Lose and return storage node's host")
|
||||||
@pytest.mark.parametrize("hard_reboot", [True, False])
|
@pytest.mark.parametrize("hard_reboot", [True, False])
|
||||||
@pytest.mark.failover_reboot
|
@pytest.mark.failover_reboot
|
||||||
|
@ -674,3 +669,30 @@ class TestStorageDataLoss(ClusterTestBase):
|
||||||
|
|
||||||
with allure.step("Pass test if no errors found"):
|
with allure.step("Pass test if no errors found"):
|
||||||
assert not exception_messages, "\n".join(exception_messages)
|
assert not exception_messages, "\n".join(exception_messages)
|
||||||
|
|
||||||
|
@allure.title(
|
||||||
|
"Test S3 Loss of one node should trigger use of tree and storage service in another node"
|
||||||
|
)
|
||||||
|
def test_s3_one_endpoint_loss(
|
||||||
|
self,
|
||||||
|
bucket,
|
||||||
|
s3_client: S3ClientWrapper,
|
||||||
|
simple_object_size: int,
|
||||||
|
after_run_return_all_stopped_services,
|
||||||
|
cluster_state_controller: ClusterStateController,
|
||||||
|
):
|
||||||
|
# TODO: need to check that s3 gate is connected to localhost (such metric will be supported in 1.3)
|
||||||
|
|
||||||
|
with allure.step(
|
||||||
|
"Stop one node and wait for rebalance connection of s3 gate to storage service"
|
||||||
|
):
|
||||||
|
current_node = self.cluster.cluster_nodes[0]
|
||||||
|
cluster_state_controller.stop_storage_service(current_node)
|
||||||
|
# waiting for rebalance connection of s3 gate to storage service
|
||||||
|
sleep(60)
|
||||||
|
|
||||||
|
file_path = generate_file(simple_object_size)
|
||||||
|
file_name = s3_helper.object_key_from_file_path(file_path)
|
||||||
|
with allure.step("Put object into one bucket"):
|
||||||
|
put_object = s3_client.put_object(bucket, file_path)
|
||||||
|
s3_helper.check_objects_in_bucket(s3_client, bucket, expected_objects=[file_name])
|
Loading…
Reference in a new issue