@@ -555,7 +555,8 @@ def _invoke_import_differ(self, genmcf_output_path: str,
555555 absolute_import_dir : str ) -> Tuple [str , str ]:
556556 """Invokes the differ tool to compare current data with previous data."""
557557 current_data_path = os .path .join (genmcf_output_path , '*.mcf' )
558- previous_data_path = latest_version + f'/{ import_prefix } /genmcf/*.mcf'
558+ previous_data_path = os .path .join (latest_version , import_prefix ,
559+ 'genmcf' , '*.mcf' )
559560 diff_found = True
560561 # TODO: remove fallback logic once all imports move to new path.
561562 if not file_util .file_get_matching (previous_data_path ):
@@ -715,17 +716,7 @@ def _invoke_import_validation(self, repo_dir: str, relative_import_dir: str,
715716 import_summary .import_stats .get ('validation_execution_time' , 0 ),
716717 import_summary .import_stats .get ('validation_data_size' ,
717718 0 ), validation_message )
718- if not self .config .ignore_validation_status and not validation_status :
719- logging .error (
720- "Marking import as VALIDATION due to validation failure." )
721- import_summary .status = ImportStatus .VALIDATION
722- elif not differ_status :
723- logging .info ("Marking import as SKIP due to no data diff." )
724- import_summary .status = ImportStatus .SKIP
725- else :
726- import_summary .status = ImportStatus .STAGING
727-
728- return validation_status
719+ return validation_status , differ_status
729720
730721 def _get_validation_message (
731722 self , validation_results : List [ValidationResult ]) -> str :
@@ -916,9 +907,10 @@ def _import_one_helper(
916907 import_summary = import_summary )
917908
918909 validation_status = True
910+ differ_status = True
919911 if self .config .invoke_import_validation :
920912 logging .info ("Invoking import validations" )
921- validation_status = self ._invoke_import_validation (
913+ validation_status , differ_status = self ._invoke_import_validation (
922914 repo_dir = repo_dir ,
923915 relative_import_dir = relative_import_dir ,
924916 absolute_import_dir = absolute_import_dir ,
@@ -932,6 +924,16 @@ def _import_one_helper(
932924 logging .info (
933925 'Skipping import validations as per import config.' )
934926
927+ if not self .config .ignore_validation_status and not validation_status :
928+ logging .error (
929+ "Marking import as VALIDATION due to validation failure." )
930+ import_summary .status = ImportStatus .VALIDATION
931+ elif not differ_status :
932+ logging .info ("Marking import as SKIP due to no data diff." )
933+ import_summary .status = ImportStatus .SKIP
934+ else :
935+ import_summary .status = ImportStatus .STAGING
936+
935937 import_summary .execution_time = int (time .time () - start_time )
936938 import_summary .data_volume = int (
937939 import_summary .import_stats .get ('source_data_size' , 0 ) +
@@ -987,6 +989,13 @@ def _upload_import_inputs(self, import_dir: str, output_dir: str,
987989 import_inputs: Specification of the import as a dict.
988990
989991 """
992+ # Copy manifest file
993+ manifest_file = os .path .join (import_dir , 'manifest.json' )
994+ dest = f'{ output_dir } /{ version } /{ os .path .basename (manifest_file )} '
995+ self ._upload_file_helper (
996+ src = manifest_file ,
997+ dest = dest ,
998+ )
990999 import_inputs = import_spec .get ('import_inputs' , [])
9911000 errors = []
9921001 data_size = 0
@@ -996,7 +1005,7 @@ def _upload_import_inputs(self, import_dir: str, output_dir: str,
9961005 import_files = self ._get_import_input_files (import_input ,
9971006 import_dir )
9981007 for file in import_files :
999- dest = f'{ output_dir } /{ version } /input { input_index } / { os .path .basename (file )} '
1008+ dest = f'{ output_dir } /{ version } /{ os .path .basename (file )} '
10001009 data_size += os .path .getsize (file )
10011010 if not self .config .skip_input_upload :
10021011 self ._upload_file_helper (
@@ -1012,11 +1021,10 @@ def _upload_import_inputs(self, import_dir: str, output_dir: str,
10121021 for file in source_files :
10131022 dest = f'{ output_dir } /{ version } /source_files/{ os .path .relpath (file , import_dir )} '
10141023 data_size += os .path .getsize (file )
1015- if not self .config .skip_input_upload :
1016- self ._upload_file_helper (
1017- src = file ,
1018- dest = dest ,
1019- )
1024+ self ._upload_file_helper (
1025+ src = file ,
1026+ dest = dest ,
1027+ )
10201028
10211029 import_summary .import_stats ['source_data_size' ] = data_size
10221030 if errors :
0 commit comments