@@ -734,41 +734,56 @@ def check_opf_status_mismatch(connection, **kwargs):
734
734
'''
735
735
check = CheckResult (connection , 'check_opf_status_mismatch' )
736
736
737
+ # list of uuids to filter out as they have a tag to ignore them
738
+ tagged2ignore = get_items_with_ignore_tags (connection .ff_keys )
739
+
737
740
opf_set = ('search/?type=ExperimentSet&other_processed_files.title%21=No+value&field=status'
738
741
'&field=other_processed_files&field=experiments_in_set.other_processed_files' )
739
742
opf_exp = ('search/?type=ExperimentSet&other_processed_files.title=No+value'
740
743
'&experiments_in_set.other_processed_files.title%21=No+value'
741
744
'&field=experiments_in_set.other_processed_files&field=status' )
742
745
opf_set_results = ff_utils .search_metadata (opf_set , key = connection .ff_keys )
743
746
opf_exp_results = ff_utils .search_metadata (opf_exp , key = connection .ff_keys )
744
- results = opf_set_results + opf_exp_results
745
- # extract file uuids
747
+ results = opf_set_results + opf_exp_results # these are expset and expt items w/opfs
748
+ # extract all opf file and higlass viewconf uuids
746
749
files = []
747
750
for result in results :
748
751
if result .get ('other_processed_files' ):
749
752
for case in result ['other_processed_files' ]:
750
- files .extend ([i ['uuid' ] for i in case ['files' ]])
753
+ files .extend ([i ['uuid' ] for i in case ['files' ]]) # if i.get('uuid') not in tagged2ignore])
751
754
if case .get ('higlass_view_config' ):
755
+ # if case['higlass_view_config'].get('uuid') not in tagged2ignore:
752
756
files .append (case ['higlass_view_config' ].get ('uuid' ))
753
757
if result .get ('experiments_in_set' ):
754
758
for exp in result ['experiments_in_set' ]:
755
759
for case in exp ['other_processed_files' ]:
756
- files .extend ([i ['uuid' ] for i in case ['files' ]])
757
- # get metadata for files, to collect status
760
+ files .extend ([i ['uuid' ] for i in case ['files' ]]) # if i.get('uuid') not in tagged2ignore])
761
+
762
+ # get metadata for files, to collect status
758
763
resp = get_es_metadata (list (set (files )),
759
764
sources = ['links.quality_metric' , 'object.status' , 'uuid' ],
760
765
key = connection .ff_keys )
766
+ # key = opf uuid; value = status
761
767
opf_status_dict = {item ['uuid' ]: item ['object' ]['status' ] for item in resp if item ['uuid' ] in files }
768
+
769
+ # key opf uuid; value = linked quality metric items
762
770
opf_linked_dict = {
763
771
item ['uuid' ]: item .get ('links' , {}).get ('quality_metric' , []) for item in resp if item ['uuid' ] in files
764
772
}
773
+
774
+ # quality metric uuids
765
775
quality_metrics = [uuid for item in resp for uuid in item .get ('links' , {}).get ('quality_metric' , [])]
776
+
777
+ # get metadata for quality metrics (status)
766
778
qm_resp = get_es_metadata (list (set (quality_metrics )),
767
779
sources = ['uuid' , 'object.status' ],
768
780
key = connection .ff_keys )
781
+
782
+ # key = qual met uuid; value = status
769
783
opf_other_dict = {item ['uuid' ]: item ['object' ]['status' ] for item in qm_resp if item not in files }
784
+
770
785
check .full_output = {}
771
- for result in results :
786
+ for result in results : # now go through each expset or experiment again and make sure all the statuses agree
772
787
hg_dict = {item ['title' ]: item .get ('higlass_view_config' , {}).get ('uuid' )
773
788
for item in result .get ('other_processed_files' , [])}
774
789
titles = [item ['title' ] for item in result .get ('other_processed_files' , [])]
@@ -782,8 +797,7 @@ def check_opf_status_mismatch(connection, **kwargs):
782
797
file_list .extend ([item for exp in result .get ('experiments_in_set' , [])
783
798
for fileset in exp ['other_processed_files' ]
784
799
for item in fileset ['files' ] if fileset ['title' ] == title ])
785
- statuses = set ([opf_status_dict [f ['uuid' ]] for f in file_list ])
786
- # import pdb; pdb.set_trace()
800
+ statuses = set ([opf_status_dict [f ['uuid' ]] for f in file_list if f .get ('uuid' ) not in tagged2ignore ])
787
801
if not statuses :
788
802
# to account for empty sections that may not yet contain files
789
803
pass
0 commit comments