示例#1
0
 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
示例#2
0
文件: tasks.py 项目: VaneCloud/kree
 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