def create_runner_instance(cloud_provider, region, availability_zone, test_id, duration): assert cloud_provider.lower() == "aws", "Only AWS is supported" assert len(availability_zone) == 1, f"Invalid AZ: {availability_zone}" add_file_logger() sct_runner_ip_path = Path("sct_runner_ip") sct_runner_ip_path.unlink(missing_ok=True) sct_runner = SctRunner(region_name=region) instance = sct_runner.create_instance(test_id=test_id, test_duration=duration, region_az=region + availability_zone) LOGGER.info("Verifying SSH connectivity...") remoter = sct_runner.get_remoter(host=instance.public_ip_address) result = remoter.run("true", timeout=100, verbose=False, ignore_status=True) if result.exit_status == 0: LOGGER.info( f"Successfully connected the SCT Runner. Public IP: {instance.public_ip_address}" ) with sct_runner_ip_path.open("w") as sct_runner_ip_file: sct_runner_ip_file.write(instance.public_ip_address) else: LOGGER.error( f"Unable to SSH to {instance.public_ip_address}! Exiting...") sys.exit(1)
def create_runner_image(region): add_file_logger() sct_runner = SctRunner(region_name=region) sct_runner.create_image()