def get_job_details(task_id): log = Log.getLogger(__name__ + '.get_job_details') log.debug("Entering get job detailes function.") rds = Rds("job-" + task_id) job_details = rds.getter() # job_details = eval_json_data(job_details) return job_details
def _run_cmd(self, file_handler, cmd): f = open(file_handler, 'w') process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) sys.stdout = f # Poll process for new output until finished while True: nextline = process.stdout.readline() if nextline == '' and process.poll() is not None: break sys.stdout.write(str(nextline)) sys.stdout.flush() sys.stdout = sys.__stdout__ f.close() f = open(file_handler, 'r') output = f.readlines() f.close() job_store = Rds('job-' + self.request.id) job = job_store.getter() job['task_state'] = 'finished' job['finish_time'] = Time() job['update_time'] = Time() job_store.setter(job) log.debug(job) return output
def get_job_details(task_id): log = Log.getLogger(__name__ + '.get_job_details') log.debug("Entering get job detailes function.") rds = Rds("job-" + task_id) job_details = rds.getter() # job_details = eval_json_data(job_details) # from celery.contrib.rdb import set_trace # set_trace() # fix result is running while job has already finished issue if job_details['task_state'] == 'finished' and job_details[ 'result'] == 'running': job_details['result'] = 'failed' return job_details
def post(self, task_id): log = Log.getLogger(__name__ + ".Callback.post") data = {} data = request.get_json() queue = Rds('job-' + task_id) log.debug(queue._key_name) queue_data = queue.getter() step_result_id = len(queue_data['step_result']) + 1 queue_data['step_result'][step_result_id] = data queue_data['update_time'] = data['timestamp'] if data.has_key('result'): queue_data['result'] = data['result'] queue.setter(queue_data) log.debug("Task event updated from callback: %s %s" % (task_id, json.dumps(queue_data)))
def _save_job_details(self): job = {} job['task_id'] = self.request.id job['inventory'] = self.params.inventory job['task_state'] = 'pending' job['result'] = 'running' job['playbook'] = self.params.playbook job['step_result'] = {} job['start_time'] = Time() job['finish_time'] = '' job['update_time'] = () job_store = Rds('job-' + str(job['task_id'])) job_store.setter(job) log.debug(job) return job
def get(self, task_id): log = Log.getLogger(__name__ + ".Callback.get") queue = Rds('job-' + task_id) queue_data = queue.getter() log.debug("Task event callback called: %s %s" % (task_id, json.dumps(queue_data)))