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 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import json
 | |
| from pathlib import Path
 | |
| import subprocess
 | |
| from integration_tests.utils import change_directory
 | |
| 
 | |
| 
 | |
| def cluster_exists(terraform_dir) -> bool:
 | |
|     """
 | |
|     Check if the cluster exists by running terraform output command.
 | |
|     """
 | |
|     with change_directory(terraform_dir):
 | |
|         try:
 | |
|             outputs = json.loads(subprocess.check_output(
 | |
|                 ["terraform", "output", "-json"],
 | |
|                 text=True,
 | |
|             ))
 | |
|             return bool(outputs)
 | |
|         except subprocess.CalledProcessError as e:
 | |
|             print(f"Error checking cluster existence: {e}")
 | |
|             return False
 | |
| 
 | |
| 
 | |
| def create_cluster(terraform_dir: Path) -> None:
 | |
|     """
 | |
|     Create the cluster by running terraform and ansible
 | |
|     """
 | |
|     with change_directory(terraform_dir):
 | |
|         subprocess.check_call(["terraform", "init"])
 | |
|         subprocess.check_call(["terraform", "plan"])
 | |
|         subprocess.check_call(["terraform", "apply", "-auto-approve"])
 | |
|         subprocess.check_call(["ansible-playbook", "provision.yml"])
 | |
| 
 | |
|         # Run our own provisioning playbook to prepare the cluster for the tests
 | |
|         our_playbook = Path(__file__).parent / "integration_tests.yml"
 | |
|         subprocess.check_call(["ansible-playbook", str(our_playbook.absolute())])
 | |
| 
 | |
| 
 | |
| def destroy_cluster(terraform_dir: Path) -> None:
 | |
|     assert cluster_exists(terraform_dir), "Cluster does not exist"
 | |
|     with change_directory(terraform_dir):
 | |
|         subprocess.check_call(["terraform", "destroy", "-auto-approve"])
 |