#!/usr/bin/env python3 from test_framework.test_framework import TestFramework from utility.utils import wait_until class AutoSyncHistoricalTest(TestFramework): def setup_params(self): self.num_nodes = 4 # Enable auto sync for i in range(self.num_nodes): self.zgs_node_configs[i] = {"sync": {"auto_sync_enabled": True}} def run_test(self): # Stop the last node to verify historical file sync self.stop_storage_node(self.num_nodes - 1) # Submit and upload files on node 0 data_root_1 = self.__upload_file__(0, 256 * 1024) data_root_2 = self.__upload_file__(0, 256 * 1024) # Files should be available on other nodes via auto sync for i in range(1, self.num_nodes - 1): wait_until(lambda: self.nodes[i].zgs_get_file_info(data_root_1) is not None) wait_until( lambda: self.nodes[i].zgs_get_file_info(data_root_1)["finalized"] ) wait_until(lambda: self.nodes[i].zgs_get_file_info(data_root_2) is not None) wait_until( lambda: self.nodes[i].zgs_get_file_info(data_root_2)["finalized"] ) # Start the last node to verify historical file sync self.start_storage_node(self.num_nodes - 1) self.nodes[self.num_nodes - 1].wait_for_rpc_connection() wait_until( lambda: self.nodes[self.num_nodes - 1].zgs_get_file_info(data_root_1) is not None ) wait_until( lambda: self.nodes[self.num_nodes - 1].zgs_get_file_info(data_root_1)[ "finalized" ] ) wait_until( lambda: self.nodes[self.num_nodes - 1].zgs_get_file_info(data_root_2) is not None ) wait_until( lambda: self.nodes[self.num_nodes - 1].zgs_get_file_info(data_root_2)[ "finalized" ] ) if __name__ == "__main__": AutoSyncHistoricalTest().main()