@@ -111,7 +111,9 @@ def _add_clp_env_vars(
111111 / "data"
112112 / ("archives" if clp_archive_output_storage_type == "fs" else "staged-archives" ),
113113 )
114- if "s3" == clp_archive_output_storage_type :
114+ if "fs" == clp_archive_output_storage_type :
115+ pass
116+ elif "s3" == clp_archive_output_storage_type :
115117 s3_config_key_prefix = f"archive_output.storage.s3_config"
116118 s3_credentials_key_prefix = f"{ s3_config_key_prefix } .aws_authentication.credentials"
117119
@@ -121,15 +123,31 @@ def _add_clp_env_vars(
121123
122124 s3_bucket = _get_config_value (clp_config , f"{ s3_config_key_prefix } .bucket" )
123125 s3_region_code = _get_config_value (clp_config , f"{ s3_config_key_prefix } .region_code" )
124- s3_end_point = f"https://{ s3_bucket } .s3.{ s3_region_code } .amazonaws.com/"
125126
126127 s3_secret_access_key = _get_config_value (
127128 clp_config , f"{ s3_credentials_key_prefix } .secret_access_key"
128129 )
129130
131+ # Validate required S3 fields
132+ missing = []
133+
134+ for k , v in {
135+ f"{ s3_credentials_key_prefix } .access_key_id" : s3_access_key_id ,
136+ f"{ s3_credentials_key_prefix } .secret_access_key" : s3_secret_access_key ,
137+ f"{ s3_config_key_prefix } .bucket" : s3_bucket ,
138+ f"{ s3_config_key_prefix } .region_code" : s3_region_code ,
139+ }.items ():
140+ if not v :
141+ missing .append (k )
142+
143+ if missing :
144+ logger .error ("Missing required S3 config key(s): %s" , ", " .join (missing ))
145+ return False
146+
130147 env_vars ["PRESTO_WORKER_CLPPROPERTIES_STORAGE_TYPE" ] = "s3"
131148 env_vars ["PRESTO_WORKER_CLPPROPERTIES_S3_AUTH_PROVIDER" ] = "clp_package"
132149 env_vars ["PRESTO_WORKER_CLPPROPERTIES_S3_ACCESS_KEY_ID" ] = s3_access_key_id
150+ s3_end_point = f"https://{ s3_bucket } .s3.{ s3_region_code } .amazonaws.com/"
133151 env_vars ["PRESTO_WORKER_CLPPROPERTIES_S3_END_POINT" ] = s3_end_point
134152 env_vars ["PRESTO_WORKER_CLPPROPERTIES_S3_SECRET_ACCESS_KEY" ] = s3_secret_access_key
135153 else :
0 commit comments