示例#1
0
    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)
示例#2
0
 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
示例#3
0
 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()
示例#4
0
 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
示例#5
0
    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())
示例#6
0
 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
示例#7
0
 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)]