def wait_for_job(self, job_id): job_status = None http = hooks.HttpHook(method='GET', http_conn_id=self.http_conn_id) while not job_status == 'FINISHED': time.sleep(1) response = http.run(endpoint=self.endpoint_job_status + str(job_id)) job_status = response.json()['status'] logging.info('status of decision job {} is {}'.format( job_id, job_status))
def __init__(self, endpoint, http_conn_id='http_default', params=None, headers=None, response_check=None, extra_options=None, *args, **kwargs): super(HttpSensor, self).__init__(*args, **kwargs) self.endpoint = endpoint self.http_conn_id = http_conn_id self.params = params or {} self.headers = headers or {} self.extra_options = extra_options or {} self.response_check = response_check self.hook = hooks.HttpHook(method='GET', http_conn_id=http_conn_id)
def execute(self, context): http = hooks.HttpHook(method='POST', http_conn_id=self.http_conn_id) response = http.run(endpoint=self.endpoint_job_start) job_id = response.json()['job_id'] logging.info('started decision job with job id {}'.format(job_id)) self.wait_for_job(job_id)