✨ Source S3: Add IAM Role Authentication (#33818)
This commit is contained in:
@@ -3,14 +3,46 @@
|
||||
#
|
||||
|
||||
|
||||
import json
|
||||
import logging
|
||||
from pathlib import Path
|
||||
from typing import Iterable
|
||||
|
||||
import pytest
|
||||
import yaml
|
||||
|
||||
pytest_plugins = ("connector_acceptance_test.plugin",)
|
||||
logger = logging.getLogger("airbyte")
|
||||
|
||||
|
||||
@pytest.fixture(scope="session", autouse=True)
|
||||
def connector_setup() -> Iterable[None]:
|
||||
"""This fixture is a placeholder for external resources that acceptance test might require."""
|
||||
"""This fixture is responsible for configuring AWS credentials that are used for assuming role during the IAM role based authentication."""
|
||||
config_file_path = "secrets/config_iam_role.json"
|
||||
acceptance_test_config_file_path = "acceptance-test-config.yml"
|
||||
|
||||
# Read environment variables from the JSON file
|
||||
with open(config_file_path, "r") as file:
|
||||
config = json.load(file)
|
||||
|
||||
# Prepare environment variables to append to the YAML file
|
||||
env_vars = {
|
||||
"custom_environment_variables": {
|
||||
"AWS_ASSUME_ROLE_EXTERNAL_ID": config["acceptance_test_aws_external_id"],
|
||||
"AWS_ACCESS_KEY_ID": config["acceptance_test_aws_access_key_id"],
|
||||
"AWS_SECRET_ACCESS_KEY": config["acceptance_test_aws_secret_access_key"],
|
||||
}
|
||||
}
|
||||
|
||||
# Append environment variables to the YAML file
|
||||
yaml_path = Path(acceptance_test_config_file_path)
|
||||
if yaml_path.is_file():
|
||||
with open(acceptance_test_config_file_path, "r") as file:
|
||||
existing_data = yaml.safe_load(file) or {}
|
||||
existing_data.update(env_vars)
|
||||
with open(acceptance_test_config_file_path, "w") as file:
|
||||
yaml.safe_dump(existing_data, file)
|
||||
else:
|
||||
raise Exception(f"{acceptance_test_config_file_path} does not exist.")
|
||||
|
||||
yield
|
||||
|
||||
Reference in New Issue
Block a user