def post(self):
        op = self.get_argument('op', '')
        if op == 'show':
            name = self.get_argument('name', '')
            job = Job.get_job_fromdb(name)
            self.write('<pre>%s</pre>' % str(job))
            return

        title = '任务配置'
        #需要先从azkaban登陆
        session_id = self.get_argument('session_id', '')
        login_user = self.get_argument('login_user', '')
        if session_id == '' or login_user == '':
            self.render('to_login.html')
            return
        #参数
        query_name = self.get_argument('query_name', '')
        query_project_name = self.get_argument('query_project_name', '')
        query_server_host = self.get_argument('query_server_host', '')
        query_user = self.get_argument('query_user', '')
        #任务
        name = self.get_argument('name', '')
        is_copy = self.get_argument('is_copy', 'false')
        job = Job()
        if name != '':
            job = Job.get_job_fromdb(name)
        if is_copy == 'true':
            job.name = ''
            job.loc = ''
        projects = Job.get_projects(login_user)
        jobs = Job.get_alljobs(login_user=login_user)
        all_jobs = Job.get_alljobs()

        query_dict = {
            'query_name': query_name,
            'query_project_name': query_project_name,
            'query_server_host': query_server_host,
            'query_user': query_user,
            'session_id': session_id,
            'login_user': login_user
        }

        logging.info('to update job [%s]' % name)
        self.render('to_update.html',
                    title=title,
                    job=job,
                    jobs=jobs,
                    all_jobs=all_jobs,
                    projects=projects,
                    query_dict=query_dict)
Пример #2
0
    def post(self):
        #更新完跳转到列表页
        title = '调度任务列表'
        #需要先从azkaban登陆
        session_id = self.get_argument('session_id','')
        login_user = self.get_argument('login_user','')
        if session_id=='' or login_user=='':
            self.render('to_login.html')
            return
        #参数
        query_name = self.get_argument('query_name','')
        query_project_name = self.get_argument('query_project_name','')
        query_server_host = self.get_argument('query_server_host','')
        query_user = self.get_argument('query_user','')
        #生成job
        attr_list = Job.get_attr_list()
        dependencies_box = self.get_argument('dependencies_box','')
        logging.info('>>>>>>>>>>>'+str(type(dependencies_box)))
        logging.info('>>>>>>>>>>>'+str(dependencies_box))
        job = Job()
        #动态加载字段,默认均为字符串
        for attr in attr_list:
            value = str(self.get_argument(attr,'')).strip()
            if value!='':
                setattr(job,attr,value)
                logging.info(attr+':'+value)
        #默认设置
        job.name = job.name.replace('.','-')
        job.updater = login_user
        job.update_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if job.creator == '':
            job.creator = job.updater
            job.create_time = job.update_time
        #更新
        job.update_job()

        #列表
        jobs = Job.get_alljobs(query_name,query_project_name,query_server_host,query_user,login_user)

        query_dict = {
                'query_name':query_name,
                'query_project_name':query_project_name,
                'query_server_host':query_server_host,
                'query_user':query_user,
                'session_id':session_id,
                'login_user':login_user
        }

        logging.info('[%s] update job [%s]' % (login_user,job.name))
        self.render('list.html',title=title,jobs=jobs,query_dict=query_dict)
Пример #3
0
    def update_job(self):
        login_user = self.username
        #必需参数
        required_args = [
            'name', 'project_name', 'server_host', 'server_user',
            'server_script', 'server_dir'
        ]
        for arg in required_args:
            self.get_argument(arg)
        #生成job
        attr_list = Job.get_attr_list()
        #dependencies_box = self.get_argument('dependencies_box','')
        job = Job()
        #动态加载字段,默认均为字符串
        for attr in attr_list:
            value = str(self.get_argument(attr, '')).strip()
            if value != '':
                setattr(job, attr, value)
                logging.info(attr + ':' + value)
        #默认设置
        job.name = job.name.replace('.', '-')
        job.updater = login_user
        job.update_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
        if job.creator == '':
            job.creator = job.updater
            job.create_time = job.update_time
        #更新
        flag, mes = job.has_job_permission()

        logging.info('check job permission [%s] [%s]' % (flag, mes))
        if not flag:
            raise Exception(mes)

        job.update_job()

        logging.info('[%s] update job [%s]' % (login_user, job.name))