forked from TrueCloudLab/frostfs-testcases
Update pilorama loss and shards test cases
This commit is contained in:
parent
d327e8149b
commit
9e89dba03d
2 changed files with 21 additions and 120 deletions
|
@ -425,7 +425,8 @@ class TestEmptyMap(ClusterTestBase):
|
|||
|
||||
with reporter.step("Delete pilorama.db from all nodes"):
|
||||
for node in self.cluster.storage_nodes:
|
||||
node.delete_pilorama()
|
||||
for shard in node.get_shards():
|
||||
node.delete_file(shard.pilorama)
|
||||
|
||||
with reporter.step("Start all storage nodes"):
|
||||
cluster_state_controller.start_all_stopped_services()
|
||||
|
@ -445,17 +446,6 @@ class TestEmptyMap(ClusterTestBase):
|
|||
@pytest.mark.failover
|
||||
@pytest.mark.failover_data_loss
|
||||
class TestStorageDataLoss(ClusterTestBase):
|
||||
@reporter.step("Get list of all piloramas on node")
|
||||
def get_piloramas_list(self, node: StorageNode) -> list:
|
||||
data_directory_path = node.get_data_directory()
|
||||
|
||||
cmd = f"sudo ls -1 {data_directory_path}/meta*/pilorama*"
|
||||
shell = node.host.get_shell()
|
||||
stdout = shell.exec(cmd).stdout
|
||||
|
||||
piloramas = stdout.split("\n")
|
||||
return piloramas
|
||||
|
||||
@allure.title(
|
||||
"After metabase loss on all nodes operations on objects and buckets should be still available via S3 (s3_client={s3_client})"
|
||||
)
|
||||
|
@ -663,15 +653,22 @@ class TestStorageDataLoss(ClusterTestBase):
|
|||
object_versions.append(put_object)
|
||||
|
||||
node_to_check = self.cluster.storage_nodes[0]
|
||||
piloramas_list_before_removing = {}
|
||||
with reporter.step("Get list of all pilorama.db"):
|
||||
piloramas_list_before_removing = self.get_piloramas_list(node_to_check)
|
||||
|
||||
piloramas_list_before_removing = []
|
||||
with reporter.step("Get list of all pilorama.db on shards"):
|
||||
for shard in node_to_check.get_shards():
|
||||
piloramas_list_before_removing.append(shard.pilorama)
|
||||
|
||||
with reporter.step("Check that all pilorama.db files exist on node"):
|
||||
for pilorama in piloramas_list_before_removing:
|
||||
assert node_to_check.is_file_exist(pilorama), f"File {pilorama} does not exist"
|
||||
|
||||
with reporter.step("Stop all storage nodes"):
|
||||
cluster_state_controller.stop_services_of_type(StorageNode)
|
||||
|
||||
with reporter.step("Delete pilorama.db from one node"):
|
||||
node_to_check.delete_pilorama()
|
||||
for pilorama in piloramas_list_before_removing:
|
||||
node_to_check.delete_file(pilorama)
|
||||
|
||||
with reporter.step("Start all storage nodes"):
|
||||
cluster_state_controller.start_all_stopped_services()
|
||||
|
@ -680,10 +677,9 @@ class TestStorageDataLoss(ClusterTestBase):
|
|||
self.tick_epochs(1)
|
||||
sleep(120)
|
||||
|
||||
piloramas_list_afrer_removing = {}
|
||||
with reporter.step("Get list of all pilorama.db after sync"):
|
||||
piloramas_list_afrer_removing = self.get_piloramas_list(node_to_check)
|
||||
assert piloramas_list_afrer_removing == piloramas_list_before_removing, "List of pilorama.db is different"
|
||||
for pilorama in piloramas_list_before_removing:
|
||||
assert node_to_check.is_file_exist(pilorama), f"File {pilorama} does not exist"
|
||||
|
||||
with reporter.step("Check bucket versioning"):
|
||||
bucket_versioning = s3_client.get_bucket_versioning_status(bucket)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue