@@ -2431,7 +2431,11 @@ def apply_patch_files(self, item):
24312431 )
24322432
24332433 def apply_patch (self , item ):
2434- field_patch = item ["opencti_field_patch" ]
2434+ field_patch = self .opencti .get_attribute_in_extension (
2435+ "opencti_field_patch" , item
2436+ )
2437+ if field_patch is None :
2438+ field_patch = item ["opencti_field_patch" ]
24352439 field_patch_without_files = [
24362440 op for op in field_patch if op ["key" ] != "x_opencti_files"
24372441 ]
@@ -2458,6 +2462,19 @@ def apply_patch(self, item):
24582462 )
24592463 self .apply_patch_files (item )
24602464
2465+ def apply_opencti_operation (self , item , operation ):
2466+ if operation == "delete" :
2467+ delete_id = item ["id" ]
2468+ self .opencti .stix .delete (id = delete_id )
2469+ elif operation == "merge" :
2470+ target_id = item ["merge_target_id" ]
2471+ source_ids = item ["merge_source_ids" ]
2472+ self .opencti .stix .merge (id = target_id , object_ids = source_ids )
2473+ elif operation == "patch" :
2474+ self .apply_patch (item = item )
2475+ else :
2476+ raise ValueError ("Not supported opencti_operation" )
2477+
24612478 def import_item (
24622479 self ,
24632480 item ,
@@ -2469,18 +2486,13 @@ def import_item(
24692486 worker_logger = self .opencti .logger_class ("worker" )
24702487 try :
24712488 self .opencti .set_retry_number (processing_count )
2472- if "opencti_operation" in item :
2473- if item ["opencti_operation" ] == "delete" :
2474- delete_id = item ["id" ]
2475- self .opencti .stix .delete (id = delete_id )
2476- elif item ["opencti_operation" ] == "merge" :
2477- target_id = item ["merge_target_id" ]
2478- source_ids = item ["merge_source_ids" ]
2479- self .opencti .stix .merge (id = target_id , object_ids = source_ids )
2480- elif item ["opencti_operation" ] == "patch" :
2481- self .apply_patch (item = item )
2482- else :
2483- raise ValueError ("Not supported opencti_operation" )
2489+ opencti_operation = self .opencti .get_attribute_in_extension (
2490+ "opencti_operation" , item
2491+ )
2492+ if opencti_operation is not None :
2493+ self .apply_opencti_operation (item , opencti_operation )
2494+ elif "opencti_operation" in item :
2495+ self .apply_opencti_operation (item , item ["opencti_operation" ])
24842496 elif item ["type" ] == "relationship" :
24852497 # Import relationship
24862498 self .import_relationship (item , update , types )
0 commit comments