|
95 | 95 | "required": [
|
96 | 96 | "meta"
|
97 | 97 | ]
|
| 98 | + }, |
| 99 | + "extra_config": { |
| 100 | + "required": [], |
| 101 | + "properties": { |
| 102 | + "add_extra_keys": {"type": "boolean"} |
| 103 | + } |
98 | 104 | }
|
99 | 105 | },
|
100 | 106 | "required": []
|
@@ -141,6 +147,34 @@ def __read_pds_metadata_file(self):
|
141 | 147 | self.__s3.target_key = self._pds_file_dict['key']
|
142 | 148 | return self.__s3.read_small_txt_file()
|
143 | 149 |
|
| 150 | + def __is_adding_extra_keys(self): |
| 151 | + if 'extra_config' not in self.__event['cma']: |
| 152 | + return True |
| 153 | + if 'add_extra_keys' not in self.__event['cma']['extra_config']: |
| 154 | + return True |
| 155 | + return self.__event['cma']['extra_config']['add_extra_keys'] |
| 156 | + |
| 157 | + def __generate_output_dict(self, echo_metadata_md5: str): |
| 158 | + output_dict = { |
| 159 | + "checksumType": "md5", |
| 160 | + "checksum": echo_metadata_md5, |
| 161 | + "type": "metadata", |
| 162 | + |
| 163 | + "key": self.__s3.target_key, |
| 164 | + "fileName": os.path.basename(self.__s3.target_key), |
| 165 | + "bucket": self.__s3.target_bucket, |
| 166 | + "size": int(self.__s3.get_size()), |
| 167 | + } |
| 168 | + if not self.__is_adding_extra_keys(): |
| 169 | + return output_dict |
| 170 | + output_dict = {**output_dict, **{ |
| 171 | + "path": os.path.dirname(self.__s3.target_key), |
| 172 | + "name": os.path.basename(self.__s3.target_key), |
| 173 | + "source_bucket": self.__s3.target_bucket, |
| 174 | + "url_path": f's3://{self.__s3.target_bucket}/{self.__s3.target_key}', |
| 175 | + }} |
| 176 | + return output_dict |
| 177 | + |
144 | 178 | def start(self):
|
145 | 179 | """
|
146 | 180 | sample event
|
@@ -371,21 +405,7 @@ def start(self):
|
371 | 405 | "granuleId": granule_id,
|
372 | 406 | "dataType": collection_name,
|
373 | 407 | "version": collection_version,
|
374 |
| - "files": self.__input_file_list + [{ |
375 |
| - |
376 |
| - "path": os.path.dirname(self.__s3.target_key), |
377 |
| - "checksumType": "md5", |
378 |
| - "checksum": echo_metadata_md5, |
379 |
| - "type": "metadata", |
380 |
| - |
381 |
| - "key": self.__s3.target_key, |
382 |
| - "name": os.path.basename(self.__s3.target_key), |
383 |
| - "fileName": os.path.basename(self.__s3.target_key), |
384 |
| - "bucket": self.__s3.target_bucket, |
385 |
| - "source_bucket": self.__s3.target_bucket, |
386 |
| - "url_path": f's3://{self.__s3.target_bucket}/{self.__s3.target_key}', |
387 |
| - "size": int(self.__s3.get_size()), |
388 |
| - }], |
| 408 | + "files": self.__input_file_list + [self.__generate_output_dict(echo_metadata_md5)], |
389 | 409 | # "files": self.__input_file_list,
|
390 | 410 | "sync_granule_duration": 20302,
|
391 | 411 | "createdAt": TimeUtils.get_current_unix_milli(),
|
|
0 commit comments