def task_message(task_id, escience_token, server_url, wait_timer, task='not_progress_bar'): """ Function to check create and destroy celery tasks running from orka-CLI and log task state messages. """ payload = {"job": {"task_id": task_id}} yarn_cluster_logger = ClusterRequest(escience_token, server_url, payload, action='job') previous_response = {'job': {'state': 'placeholder'}} response = yarn_cluster_logger.retrieve() while 'state' in response['job']: if response['job']['state'].replace('\r','') != previous_response['job']['state'].replace('\r',''): if task == 'has_progress_bar': stderr.write(u'{0}\r'.format(response['job']['state'])) stderr.flush() else: stderr.write('{0}'.format('\r')) logging.log(SUMMARY, '{0}'.format(response['job']['state'])) previous_response = response else: stderr.write('{0}'.format('.')) sleep(wait_timer) response = yarn_cluster_logger.retrieve() stderr.flush() if 'success' in response['job']: stderr.write('{0}'.format('\r')) return response['job']['success'] elif 'error' in response['job']: stderr.write('{0}'.format('\r')) logging.error(response['job']['error']) exit(error_fatal)