|
13 | 13 | import json |
14 | 14 | import uuid |
15 | 15 | from os import environ, path |
| 16 | +from tempfile import TemporaryDirectory |
16 | 17 |
|
17 | 18 | import yaml |
18 | 19 | from compose_x_common.compose_x_common import keyisset |
@@ -56,7 +57,7 @@ def init_config( |
56 | 57 | iam_override = {"SessionName": "FilesComposerInit"} |
57 | 58 | if ssm_parameter or s3_config or secret_config: |
58 | 59 | role_arn = environ.get("CONFIG_IAM_ROLE_ARN", role_arn) |
59 | | - external_id = environ.get("CONFIG_IAM_EXTERNAL_ID", None) |
| 60 | + external_id = environ.get("CONFIG_IAM_EXTERNAL_ID", external_id) |
60 | 61 | if role_arn: |
61 | 62 | iam_override.update({"RoleArn": role_arn}) |
62 | 63 | if external_id: |
@@ -90,11 +91,12 @@ def init_config( |
90 | 91 | elif env_var: |
91 | 92 | initial_config = {"content": environ.get(env_var, None)} |
92 | 93 | else: |
93 | | - raise Exception("No input source was provided") |
| 94 | + raise ValueError("No input source was provided") |
94 | 95 | if not initial_config: |
95 | 96 | raise ImportError("Failed to import a configuration content") |
96 | 97 | LOG.debug(initial_config) |
97 | | - config_path = f"/tmp/{str(uuid.uuid1())}/init_config.conf" |
| 98 | + temp_dir = TemporaryDirectory() |
| 99 | + config_path = f"{temp_dir.name}/init_config.conf" |
98 | 100 | jobs_input_def = { |
99 | 101 | "files": {config_path: initial_config}, |
100 | 102 | "IamOverride": iam_override, |
|
0 commit comments