@@ -907,18 +907,22 @@ def link_dataset_to_direct_ancestors(property_key, normalized_type, request, use
907907 activity_uuid = activity_data_dict ['uuid' ]
908908 create_activity = True
909909
910- if new_ancestors :
911-
910+ if new_ancestors :
911+ logger . info ( f"Linking the following new ancestors: { ', ' . join ( new_ancestors ) } " )
912912 try :
913913 schema_neo4j_queries .add_new_ancestors_to_existing_activity (schema_manager .get_neo4j_driver_instance (), list (new_ancestors ), activity_uuid , create_activity , activity_data_dict , dataset_uuid )
914914 except TransactionError :
915915 raise
916916
917917 if ancestors_to_unlink :
918+ logger .info (f"Unlinking the following ancestors: { ', ' .join (ancestors_to_unlink )} " )
918919 try :
919920 schema_neo4j_queries .delete_ancestor_linkages_tx (schema_manager .get_neo4j_driver_instance (), dataset_uuid , list (ancestors_to_unlink ))
920921 except TransactionError :
921922 raise
923+
924+ if not (ancestors_to_unlink or new_ancestors ):
925+ logger .info ("No new ancestors linked, nor old ancestors unlinked" )
922926
923927
924928"""
@@ -1921,13 +1925,19 @@ def link_sample_to_direct_ancestor(property_key, normalized_type, request, user_
19211925 create_activity = False
19221926 activity_data_dict = {}
19231927 sample_uuid = existing_data_dict ['uuid' ]
1928+ new_ancestors = None
1929+ ancestors_to_unlink = None
19241930
19251931 # Build a list of direct ancestor uuids
19261932 # Only one uuid in the list in this case
19271933 direct_ancestor_uuids = [new_data_dict ['direct_ancestor_uuid' ]]
19281934 existing_sample_ancestor_uuids = schema_neo4j_queries .get_sample_direct_ancestor (schema_manager .get_neo4j_driver_instance (), sample_uuid , "uuid" )
1929- new_ancestors = set (direct_ancestor_uuids )- set (existing_sample_ancestor_uuids )
1930- ancestors_to_unlink = set (existing_sample_ancestor_uuids )- set (direct_ancestor_uuids )
1935+ if isinstance (existing_sample_ancestor_uuids , list ):
1936+ existing_sample_ancestor_uuids = existing_sample_ancestor_uuids [0 ]
1937+ if existing_sample_ancestor_uuids and existing_sample_ancestor_uuids != direct_ancestor_uuids :
1938+ new_ancestors = direct_ancestor_uuids
1939+ if not existing_sample_ancestor_uuids :
1940+ new_ancestors = direct_ancestor_uuids
19311941 activity_uuid = schema_neo4j_queries .get_parent_activity_uuid_from_entity (schema_manager .get_neo4j_driver_instance (), sample_uuid )
19321942
19331943 if not activity_uuid :
@@ -1936,17 +1946,22 @@ def link_sample_to_direct_ancestor(property_key, normalized_type, request, user_
19361946 create_activity = True
19371947
19381948 if new_ancestors :
1939-
1949+ ancestors_to_unlink = existing_sample_ancestor_uuids
1950+ logger .info (f"Linking the following new ancestors: { new_ancestors } " )
19401951 try :
1941- schema_neo4j_queries .add_new_ancestors_to_existing_activity (schema_manager .get_neo4j_driver_instance (), list ( new_ancestors ) , activity_uuid , create_activity , activity_data_dict , sample_uuid )
1952+ schema_neo4j_queries .add_new_ancestors_to_existing_activity (schema_manager .get_neo4j_driver_instance (), new_ancestors , activity_uuid , create_activity , activity_data_dict , sample_uuid )
19421953 except TransactionError :
19431954 raise
1944-
1955+
19451956 if ancestors_to_unlink :
1957+ logger .info (f"Unlinking the following ancestor: { ancestors_to_unlink } " )
19461958 try :
1947- schema_neo4j_queries .delete_ancestor_linkages_tx (schema_manager .get_neo4j_driver_instance (), sample_uuid , list ( ancestors_to_unlink ) )
1959+ schema_neo4j_queries .delete_ancestor_linkages_tx (schema_manager .get_neo4j_driver_instance (), sample_uuid , [ ancestors_to_unlink ] )
19481960 except TransactionError :
19491961 raise
1962+
1963+ if not (ancestors_to_unlink or new_ancestors ):
1964+ logger .info ("No new ancestors linked, nor old ancestors unlinked" )
19501965
19511966"""
19521967TriggerTypeEnum.BEFORE_CREATE and TriggerTypeEnum.BEFORE_UPDATE
0 commit comments