@@ -417,7 +417,7 @@ def bulk_invoke_http_trigger(self, metadata):
417417 None
418418 """
419419 try :
420- resources_deleted : bool = False
420+ metadata_table_deleted : bool = False
421421 url = f"{ self .influx_host } /api/v3/engine/{ TRIGGER_NAME } "
422422 headers = {"Authorization" : f"Bearer { self .influx_token } " }
423423 for s3_key in metadata :
@@ -438,10 +438,9 @@ def bulk_invoke_http_trigger(self, metadata):
438438 raise RuntimeError (
439439 f"Migrating { s3_key } failed: { response_body ['message' ]} "
440440 )
441- if not resources_deleted :
442- self .delete_trigger ()
441+ if not metadata_table_deleted :
443442 self .delete_metadata_table ()
444- resources_deleted = True
443+ metadata_table_deleted = True
445444
446445 # Final verification invocation.
447446 verification_params = {"verify" : True , "delete_cache" : True }
@@ -457,8 +456,12 @@ def bulk_invoke_http_trigger(self, metadata):
457456 f"Final verification failed: { final_invocation_response .json ()['message' ]} "
458457 )
459458 except Exception as e :
460- self .error (f"HTTP invocation failed: { e } . View processing engine logs for more information" )
461- sys .exit (1 )
459+ self .error (
460+ f"HTTP invocation failed: { e } . View processing engine logs for more information"
461+ )
462+ raise
463+ finally :
464+ self .delete_trigger ()
462465
463466 def get_num_completed_and_total_parquet_files (self ):
464467 """
@@ -488,28 +491,47 @@ def delete_trigger(self):
488491 "Content-Type" : "application/json" ,
489492 }
490493
491- trigger_url = (
492- f"{ self .influx_host } /api/v3/configure/processing_engine_trigger"
494+ disable_trigger_url = (
495+ f"{ self .influx_host } /api/v3/configure/processing_engine_trigger/disable "
493496 )
497+
494498 trigger_payload = {
495- "db" : self .influx_database ,
499+ "db" : self .db_name ,
500+ "trigger_name" : TRIGGER_NAME ,
501+ "plugin_filename" : "liveanalytics_migration_plugin/liveanalytics_migration_plugin.py" ,
502+ "trigger_specification" : f"request:{ TRIGGER_NAME } " , # Creates /api/v3/engine/<TRIGGER_NAME> endpoint.
503+ "trigger_settings" : {"run_async" : False , "error_behavior" : "log" },
504+ "disabled" : "true" ,
505+ "trigger_arguments" : {
506+ "db_name" : self .db_name ,
507+ "s3_bucket" : self .s3_bucket_name ,
508+ "migration_id" : self .migration_id ,
509+ },
510+ }
511+
512+ disable_response : requests .Response = requests .post (
513+ disable_trigger_url , params = trigger_payload , headers = headers
514+ )
515+ disable_response .raise_for_status ()
516+
517+ delete_trigger_url = (
518+ f"{ self .influx_host } /api/v3/configure/processing_engine_trigger"
519+ )
520+
521+ delete_body = {
522+ "db" : self .db_name ,
496523 "trigger_name" : TRIGGER_NAME ,
497524 "force" : True ,
498525 }
499526
500- response : requests . Response = requests .delete (
501- trigger_url , json = trigger_payload , headers = headers
527+ delete_response = requests .delete (
528+ delete_trigger_url , json = delete_body , headers = headers
502529 )
503- if response .status_code == 200 or response .status_code == 201 :
504- self .info (
505- f"Successfully deleted processing engine trigger: { TRIGGER_NAME } "
506- )
507- response .raise_for_status ()
530+ delete_response .raise_for_status ()
508531 except requests .exceptions .RequestException as e :
509- self .error ("Error deleting processing engine trigger: " , str (e ))
510-
532+ self .error ("Error deleting processing engine trigger:" , str (e ))
511533 except Exception as e :
512- self .error ("Failed to delete processing engine trigger: " , str (e ))
534+ self .error ("Failed to delete processing engine trigger:" , str (e ))
513535 return
514536
515537 def delete_metadata_table (self ):
0 commit comments