You've already forked mariadb-columnstore-engine
							
							
				mirror of
				https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
				synced 2025-11-03 17:13:17 +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"])
 |