@@ -29,20 +29,20 @@ def run(self, params={}):
2929 "POST" , "/projects/%s/scenarios/%s/run" % (self .project_key , self .id ), body = params )
3030 return DSSTriggerFire (self , trigger_fire )
3131
32- def get_trigger (self , trigger_id , run_id ):
32+ def get_trigger_fire (self , trigger_id , trigger_run_id ):
3333 """
3434 Requests a trigger of the run of a scenario
3535
3636 Args:
3737 trigger_id: Id of trigger
38- run_id : Id of associated run
38+ trigger_run_id : Id of the run of the trigger
3939
4040 Returns:
4141 A :class:`dataikuapi.dss.admin.DSSTriggerFire` trigger handle
4242 """
4343 trigger_fire = self .client ._perform_json (
44- "GET" , "/projects/%s/scenarios/%s/get-trigger /%s" % (self .project_key , self .id , trigger_id ), params = {
45- 'runId ' : run_id
44+ "GET" , "/projects/%s/scenarios/trigger/%s /%s" % (self .project_key , self .id , trigger_id ), params = {
45+ 'triggerRunId ' : trigger_run_id
4646 })
4747 return DSSTriggerFire (self , trigger_fire )
4848
@@ -63,14 +63,13 @@ def run_and_wait(self, params={}):
6363 refresh_trigger_counter += 1
6464 if refresh_trigger_counter == 10 :
6565 refresh_trigger_counter = 0
66- trigger_fire = self .get_trigger (trigger_fire .trigger_id , trigger_fire .run_id )
67- if trigger_fire .is_cancelled ():
66+ if trigger_fire .is_cancelled (refresh = refresh_trigger_counter == 0 ):
6867 raise DataikuException ("Scenario run has been cancelled" )
6968 scenario_run = trigger_fire .get_scenario_run ()
7069 time .sleep (5 )
7170 while not scenario_run .run .get ('result' , False ):
7271 scenario_run = trigger_fire .get_scenario_run ()
73- time .sleep (60 )
72+ time .sleep (5 )
7473 return scenario_run
7574
7675 def get_last_runs (self , limit = 10 , only_finished_runs = False ):
@@ -239,5 +238,15 @@ def get_scenario_run(self):
239238 else :
240239 return DSSScenarioRun (self .client , run ['scenarioRun' ])
241240
242- def is_cancelled (self ):
241+ def is_cancelled (self , refresh = False ):
242+ """
243+ Whether the trigger has been cancelled
244+
245+ :param refresh: get the state of the trigger from the backend
246+ """
247+ if refresh == True :
248+ self .trigger_fire = self .client ._perform_json (
249+ "GET" , "/projects/%s/scenarios/%s/get-trigger/%s" % (self .project_key , self .scenario_id , self .trigger_id ), params = {
250+ 'runId' : self .run_id
251+ })
243252 return self .trigger_fire ["cancelled" ]
0 commit comments