def __init__(self, job, target): self.job = job self.job_id = job.job_id self.target = [from_view_dict(t) for t in target] self.result = [] self.create_time = time.time() for t in self.target: node_id = t['node_id'] container_id = t['container_id'] self.result.append({ 'job_id': job.job_id, 'job_name': job.name, 'node_id': node_id, 'container_id': container_id, 'status': STATUS_STARTING, 'start_time': 0, 'end_time': 0 }) self.cmd = '{0} {1}'.format(job.cmd, ' '.join(job.secret_args)) self.privileged = job.privileged self.user = job.user self.env = job.env self.save(is_insert=True)
def get(self): args = reqparse.RequestParser(). \ add_argument('AppName', required=False, default=None). \ add_argument('JobId', required=False, default=None). \ parse_args() args = from_view_dict(args) executors = get_exec_history(**args) return executors
def put(self, job_id): args = reqparse.RequestParser(). \ add_argument('Name', required=True). \ add_argument('AppName', required=True). \ add_argument('ServiceName', required=True). \ add_argument('Cmd', required=True). \ add_argument('User'). \ add_argument('Privileged', type=bool). \ add_argument('Env', action='append', default=None). \ add_argument('SecretArgs', action='append', default=None). \ parse_args() args = from_view_dict(args) return modify_job(job_id=job_id, **args).as_view_dict()
def post(self): args = reqparse.RequestParser(). \ add_argument('Name', required=True). \ add_argument('AppName', required=True). \ add_argument('ServiceName', required=False). \ add_argument('Cmd', required=True). \ add_argument('User'). \ add_argument('Privileged', type=bool). \ add_argument('Env', action='append', default=None). \ add_argument('SecretArgs', action='append', default=None). \ parse_args() args = from_view_dict(args) return create_job(**args).as_view_dict(), 201
def get(self, job_id, executor_id): args = reqparse.RequestParser(). \ add_argument('ContainerId', required=True, default=''). \ parse_args() args = from_view_dict(args) container_id = args['container_id'] job = get_job(job_id) if not job: return '' output, timestamp = get_executor_container_output( job_id, executor_id, container_id) headers = { 'Content-Disposition': 'attachment; filename="job-container-{0}-{1}.log"'.format( container_id, datetime.datetime.fromtimestamp(timestamp).strftime( '%Y-%m-%d-%H:%M:%S')), 'Content-Type': 'text/plain' } return Response(output, mimetype='text/plain', headers=headers.iteritems())
def post(self, job_id): args = reqparse.RequestParser(). \ add_argument('Target', required=True, action='append', default=[], type=dict). \ parse_args() args = from_view_dict(args) return start_job(job_id=job_id, **args).as_view_dict(), 201
def get(self): args = reqparse.RequestParser(). \ add_argument('AppName', required=False, default=None). \ parse_args() args = from_view_dict(args) return [j.as_view_dict() for j in get_jobs(**args)]