def install_local_kms(): binary_path = INSTALL_PATH_KMS_BINARY_PATTERN.replace('<arch>', get_arch()) if not os.path.exists(binary_path): log_install_msg('KMS') mkdir(INSTALL_DIR_KMS) kms_url = KMS_URL_PATTERN.replace('<arch>', get_arch()) download(kms_url, binary_path) chmod_r(binary_path, 0o777)
def install_go_lambda_runtime(): if os.path.isfile(GO_LAMBDA_RUNTIME): return log_install_msg("Installing golang runtime") system = platform.system().lower() arch = get_arch() if system not in ["linux"]: raise ValueError("unsupported os %s for awslambda-go-runtime" % system) if arch not in ["amd64", "arm64"]: raise ValueError("unsupported arch %s for awslambda-go-runtime" % arch) url = GO_RUNTIME_DOWNLOAD_URL_TEMPLATE.format( version=GO_RUNTIME_VERSION, os=system, arch=arch, ) download_and_extract(url, GO_INSTALL_FOLDER) st = os.stat(GO_LAMBDA_RUNTIME) os.chmod(GO_LAMBDA_RUNTIME, st.st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH) st = os.stat(GO_LAMBDA_MOCKSERVER) os.chmod(GO_LAMBDA_MOCKSERVER, st.st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH)
def _es_url(install_version: semver.VersionInfo) -> str: arch = "x86_64" if get_arch() == "amd64" else "aarch64" version = str(install_version) repo = "https://artifacts.elastic.co/downloads/elasticsearch" if install_version.major <= 6: return f"{repo}/elasticsearch-{version}.tar.gz" return f"{repo}/elasticsearch-{version}-linux-{arch}.tar.gz"
def start_kms(port=None, backend_port=None, asynchronous=None, update_listener=None): port = port or config.PORT_KMS backend_port = get_free_tcp_port() kms_binary = INSTALL_PATH_KMS_BINARY_PATTERN.replace('<arch>', get_arch()) print('Starting mock KMS service in %s ports %s (recommended) and %s (deprecated)...' % ( get_service_protocol(), config.EDGE_PORT, port)) start_proxy_for_service('kms', port, backend_port, update_listener) env_vars = { 'PORT': str(backend_port), 'KMS_REGION': config.DEFAULT_REGION, 'KMS_ACCOUNT_ID': TEST_AWS_ACCOUNT_ID } return do_run(kms_binary, asynchronous, env_vars=env_vars)
def start_kms(port=None, backend_port=None, asynchronous=None, update_listener=None): port = port or config.PORT_KMS backend_port = DEFAULT_PORT_KMS_BACKEND kms_binary = INSTALL_PATH_KMS_BINARY_PATTERN.replace('<arch>', get_arch()) print('Starting mock KMS (%s port %s)...' % (get_service_protocol(), port)) start_proxy_for_service('kms', port, backend_port, update_listener) env_vars = { 'PORT': str(backend_port), 'REGION': config.DEFAULT_REGION, 'ACCOUNT_ID': TEST_AWS_ACCOUNT_ID } return do_run(kms_binary, asynchronous, env_vars=env_vars)
def install_terraform() -> str: if os.path.isfile(TERRAFORM_BIN): return TERRAFORM_BIN log_install_msg(f"Installing terraform {TERRAFORM_VERSION}") system = platform.system().lower() arch = get_arch() url = TERRAFORM_URL_TEMPLATE.format(version=TERRAFORM_VERSION, os=system, arch=arch) download_and_extract(url, os.path.dirname(TERRAFORM_BIN)) chmod_r(TERRAFORM_BIN, 0o777) return TERRAFORM_BIN
def start_kms(port=None, backend_port=None, asynchronous=None, update_listener=None): port = port or config.PORT_KMS backend_port = get_free_tcp_port() kms_binary = INSTALL_PATH_KMS_BINARY_PATTERN.replace('<arch>', get_arch()) log_startup_message('KMS') start_proxy_for_service('kms', port, backend_port, update_listener) env_vars = { 'PORT': str(backend_port), 'KMS_REGION': config.DEFAULT_REGION, 'REGION': config.DEFAULT_REGION, 'KMS_ACCOUNT_ID': TEST_AWS_ACCOUNT_ID, 'ACCOUNT_ID': TEST_AWS_ACCOUNT_ID } if config.DATA_DIR: env_vars['KMS_DATA_PATH'] = config.DATA_DIR result = do_run(kms_binary, asynchronous, env_vars=env_vars) wait_for_port_open(backend_port) return result
def start_kms(port=None, backend_port=None, asynchronous=None, update_listener=None): port = port or config.PORT_KMS backend_port = get_free_tcp_port() kms_binary = INSTALL_PATH_KMS_BINARY_PATTERN.replace('<arch>', get_arch()) print('Starting mock KMS service on %s ...' % edge_ports_info()) start_proxy_for_service('kms', port, backend_port, update_listener) env_vars = { 'PORT': str(backend_port), 'KMS_REGION': config.DEFAULT_REGION, 'REGION': config.DEFAULT_REGION, 'KMS_ACCOUNT_ID': TEST_AWS_ACCOUNT_ID, 'ACCOUNT_ID': TEST_AWS_ACCOUNT_ID } result = do_run(kms_binary, asynchronous, env_vars=env_vars) wait_for_port_open(backend_port) return result
def install_local_kms(): local_arch = get_arch() binary_path = INSTALL_PATH_KMS_BINARY_PATTERN.replace('<arch>', local_arch) if not os.path.exists(binary_path): log_install_msg('KMS') mkdir(INSTALL_DIR_KMS) alpine = '' operating_system = local_arch processor = 'amd64' if (local_arch == 'osx'): operating_system = 'darwin' elif (local_arch == 'alpine'): operating_system = 'linux' alpine = '-alpine' if is_aarch64(): processor = 'arm64' kms_url = KMS_URL_PATTERN.replace('<os>', operating_system).replace( '<processor>', processor).replace('<alpine>', alpine) download(kms_url, binary_path) chmod_r(binary_path, 0o777)
def start_kms(port=None, backend_port=None, asynchronous=None, update_listener=None): port = port or config.PORT_KMS backend_port = get_free_tcp_port() kms_binary = INSTALL_PATH_KMS_BINARY_PATTERN.replace("<arch>", get_arch()) log_startup_message("KMS") start_proxy_for_service("kms", port, backend_port, update_listener) env_vars = { "PORT": str(backend_port), "KMS_REGION": config.DEFAULT_REGION, "REGION": config.DEFAULT_REGION, "KMS_ACCOUNT_ID": TEST_AWS_ACCOUNT_ID, "ACCOUNT_ID": TEST_AWS_ACCOUNT_ID, } if config.DATA_DIR: env_vars["KMS_DATA_PATH"] = config.DATA_DIR result = do_run(kms_binary, asynchronous, env_vars=env_vars) wait_for_port_open(backend_port) return result
def _opensearch_url(install_version: semver.VersionInfo) -> str: arch = "x64" if get_arch() == "amd64" else "arm64" version = str(install_version) return (f"https://artifacts.opensearch.org/releases/bundle/opensearch/" f"{version}/opensearch-{version}-linux-{arch}.tar.gz")