You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-10-31 18:30:33 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from integration_tests.ssh import ClusterConfig
 | |
| from integration_tests.utils import assert_dict_includes, drop_timestamp
 | |
| 
 | |
| 
 | |
| class TestRemoveNode:
 | |
|     def test_remove_node(self, cluster_config: ClusterConfig, complete_cluster):
 | |
|         """Test removing hosts from the cluster"""
 | |
|         # Remove replicas
 | |
|         remove_cmd = "cluster node remove "
 | |
|         for replica in cluster_config.replicas:
 | |
|             remove_cmd += f"--node {replica.private_ip} "
 | |
|         remove_out = cluster_config.primary.exec_mcs(remove_cmd)
 | |
|         assert len(remove_out) == len(cluster_config.replicas)
 | |
|         removed_node_ids = {node["node_id"] for node in remove_out}
 | |
|         expected_node_ids = {str(replica.private_ip) for replica in cluster_config.replicas}
 | |
|         assert removed_node_ids == expected_node_ids
 | |
| 
 | |
|         status_out = cluster_config.primary.exec_mcs("cluster status")
 | |
|         assert status_out["num_nodes"] == 1
 | |
|         assert str(cluster_config.primary.private_ip) in status_out
 | |
| 
 | |
|         primary_status = drop_timestamp(status_out[str(cluster_config.primary.private_ip)])
 | |
|         assert_dict_includes(
 | |
|             primary_status,
 | |
|             {
 | |
|                 "dbrm_mode": "master",
 | |
|                 "cluster_mode": "readwrite",
 | |
|                 "dbroots": ['1', '2', '3'],  # All the dbroots are rebalanced to the last host
 | |
|                 "module_id": 1,
 | |
|             },
 | |
|         )
 | |
| 
 | |
|         # Remove primary node
 | |
|         print(f"Removing primary node ({cluster_config.primary}) from the cluster")
 | |
|         remove_out = cluster_config.primary.exec_mcs(f"cluster node remove --node {cluster_config.primary.private_ip}")
 | |
|         assert len(remove_out) == 1
 | |
|         assert remove_out[0]["node_id"] == str(cluster_config.primary.private_ip)
 | |
| 
 | |
|         status_out = cluster_config.primary.exec_mcs("cluster status")
 | |
|         print(status_out)
 | |
|         assert status_out["num_nodes"] == 0
 | |
|         assert str(cluster_config.primary.private_ip) not in status_out
 |