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)
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)
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))