Skip to content

Commit d7478f8

Browse files
committed
Address coderabbitai comments
1 parent 5e13836 commit d7478f8

File tree

3 files changed

+35
-28
lines changed

3 files changed

+35
-28
lines changed

tools/deployment/presto-clp/scripts/generate-configs.py renamed to tools/deployment/presto-clp/scripts/generate-user-env-vars-file.py

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ def main(argv=None) -> int:
5050
clp_config_file_path,
5151
clp_package_dir.resolve(),
5252
)
53-
return False
53+
return 1
5454

5555
with open(clp_config_file_path, "r") as clp_config_file:
5656
clp_config = yaml.safe_load(clp_config_file)
@@ -103,28 +103,15 @@ def _add_clp_env_vars(
103103
clp_archive_output_storage_type = _get_config_value(
104104
clp_config, "archive_output.storage.type", "fs"
105105
)
106-
if "fs" == clp_archive_output_storage_type:
107-
clp_archives_dir = _get_config_value(
108-
clp_config,
109-
"archive_output.storage.directory",
110-
str(clp_package_dir / "var" / "data" / "archives"),
111-
)
112-
if Path(clp_archives_dir).is_absolute():
113-
env_vars["CLP_ARCHIVES_DIR"] = clp_archives_dir
114-
else:
115-
env_vars["CLP_ARCHIVES_DIR"] = str(clp_package_dir / clp_archives_dir)
116-
elif "s3" == clp_archive_output_storage_type:
117-
# This will not be used, just to ensure CLP_ARCHIVES_DIR is not an empty string
118-
clp_archives_dir = _get_config_value(
119-
clp_config,
120-
"archive_output.storage.directory",
121-
str(clp_package_dir / "var" / "data" / "staged-archives"),
122-
)
123-
if Path(clp_archives_dir).is_absolute():
124-
env_vars["CLP_ARCHIVES_DIR"] = clp_archives_dir
125-
else:
126-
env_vars["CLP_ARCHIVES_DIR"] = str(clp_package_dir / clp_archives_dir)
127-
106+
env_vars["CLP_ARCHIVES_DIR"] = _resolve_archives_dir(
107+
clp_package_dir,
108+
_get_config_value(clp_config, "archive_output.storage.directory"),
109+
clp_package_dir
110+
/ "var"
111+
/ "data"
112+
/ ("archives" if clp_archive_output_storage_type == "fs" else "staged-archives"),
113+
)
114+
if "s3" == clp_archive_output_storage_type:
128115
s3_config_key_prefix = f"archive_output.storage.s3_config"
129116
s3_credentials_key_prefix = f"{s3_config_key_prefix}.aws_authentication.credentials"
130117

@@ -174,6 +161,11 @@ def _add_clp_env_vars(
174161
return True
175162

176163

164+
def _resolve_archives_dir(base_dir: Path, configured: Optional[str], default: Path) -> str:
165+
effective = configured or str(default)
166+
return effective if Path(effective).is_absolute() else str(base_dir / effective)
167+
168+
177169
def _add_worker_env_vars(coordinator_common_env_file_path: Path, env_vars: Dict[str, str]) -> bool:
178170
"""
179171
Adds environment variables for worker config values to `env_vars`.

tools/deployment/presto-clp/scripts/set-up-config.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,6 @@ echo "Installing required Python packages..."
2323
pip3 install -r "${script_dir}/requirements.txt"
2424

2525
echo "Generating environment variables file for user-configured properties..."
26-
python3 "${script_dir}/generate-configs.py" \
26+
python3 "${script_dir}/generate-user-env-vars-file.py" \
2727
--clp-package-dir "${clp_package_dir}" \
2828
--output-file "${script_dir}/../.env"

tools/deployment/presto-clp/worker/scripts/generate-configs.sh

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,19 @@ update_config_file() {
4848
local file_path=$1
4949
local key=$2
5050
local value=$3
51+
local sensitive=${4:-false}
5152

5253
if grep --quiet "^${key}=.*$" "$file_path"; then
5354
sed --in-place "s|^${key}=.*|${key}=${value}|" "$file_path"
5455
else
5556
echo "${key}=${value}" >>"$file_path"
5657
fi
57-
log "INFO" "Set ${key}=${value} in ${file_path}"
58+
if [[ "$sensitive" == "true" ]]; then
59+
local masked="****${value: -4}"
60+
log "INFO" "Set ${key}=${masked} in ${file_path}"
61+
else
62+
log "INFO" "Set ${key}=${value} in ${file_path}"
63+
fi
5864
}
5965

6066
apt-get update && apt-get install --assume-yes --no-install-recommends jq wget
@@ -76,13 +82,22 @@ mv "${PRESTO_CONFIG_DIR}/clp.properties" "${PRESTO_CONFIG_DIR}/catalog"
7682

7783
# Update clp.properties
7884
readonly CLP_PROPERTIES_FILE="/opt/presto-server/etc/catalog/clp.properties"
79-
if [ -n "${PRESTO_WORKER_CLPPROPERTIES_S3_AUTH_PROVIDER:-}" ]; then
85+
if [ "${PRESTO_WORKER_CLPPROPERTIES_STORAGE_TYPE:-}" = "s3" ]; then
8086
log "INFO" "Enable S3 support"
87+
for var in PRESTO_WORKER_CLPPROPERTIES_S3_AUTH_PROVIDER \
88+
PRESTO_WORKER_CLPPROPERTIES_S3_ACCESS_KEY_ID \
89+
PRESTO_WORKER_CLPPROPERTIES_S3_SECRET_ACCESS_KEY \
90+
PRESTO_WORKER_CLPPROPERTIES_S3_END_POINT; do
91+
if [ -z "${!var:-}" ]; then
92+
log "ERROR" "Missing required env var: $var"
93+
exit 1
94+
fi
95+
done
8196
update_config_file "$CLP_PROPERTIES_FILE" "clp.storage-type" "${PRESTO_WORKER_CLPPROPERTIES_STORAGE_TYPE}"
8297
update_config_file "$CLP_PROPERTIES_FILE" "clp.s3-auth-provider" "${PRESTO_WORKER_CLPPROPERTIES_S3_AUTH_PROVIDER}"
83-
update_config_file "$CLP_PROPERTIES_FILE" "clp.s3-access-key-id" "${PRESTO_WORKER_CLPPROPERTIES_S3_ACCESS_KEY_ID}"
98+
update_config_file "$CLP_PROPERTIES_FILE" "clp.s3-access-key-id" "${PRESTO_WORKER_CLPPROPERTIES_S3_ACCESS_KEY_ID}" true
8499
update_config_file "$CLP_PROPERTIES_FILE" "clp.s3-end-point" "${PRESTO_WORKER_CLPPROPERTIES_S3_END_POINT}"
85-
update_config_file "$CLP_PROPERTIES_FILE" "clp.s3-secret-access-key" "${PRESTO_WORKER_CLPPROPERTIES_S3_SECRET_ACCESS_KEY}"
100+
update_config_file "$CLP_PROPERTIES_FILE" "clp.s3-secret-access-key" "${PRESTO_WORKER_CLPPROPERTIES_S3_SECRET_ACCESS_KEY}" true
86101
fi
87102

88103
# Update config.properties

0 commit comments

Comments
 (0)