def jenkins_info(request): """ :author: yechengzhou :param request: :return: """ if request.method != "GET": return public.fail_result_http(u'该接口只支持GET') if 'name' in request.REQUEST: if 'job' in request.REQUEST: logging.debug('') job = utils.JenkinsInfo(name=request.REQUEST['name'], job=request.REQUEST['job']) if job.get_status(): return public.success_result_http(json.dumps(job.get_ret())) else: return public.fail_result_http(u'get jenkins info failed') else: view = utils.JenkinsInfo(name=request.REQUEST['name']) if view.get_status(): return public.success_result_http(json.dumps(view.get_ret())) else: return public.fail_result_http(u'get jenkins info failed') else: return public.fail_result_http(u"wrong argument")
def get_seal_version(request): module = request.GET.get('module') if module == 'biz': return public.success_result_http(data_utils.get_seal_or_newlab_version('biz')) elif module == "shanghaife": return public.success_result_http(data_utils.get_seal_or_newlab_version('shanghaife')) else: return public.success_result_http({'biz': data_utils.get_seal_or_newlab_version('biz'), "shanghaife": data_utils.get_seal_or_newlab_version('biz')})
def get_seal_version(request): module = request.GET.get('module') if module == 'biz': return public.success_result_http( data_utils.get_seal_or_newlab_version('biz')) elif module == "shanghaife": return public.success_result_http( data_utils.get_seal_or_newlab_version('shanghaife')) else: return public.success_result_http({ 'biz': data_utils.get_seal_or_newlab_version('biz'), "shanghaife": data_utils.get_seal_or_newlab_version('biz') })
def set_algo_view(request): if request.method != "POST": return public.fail_result_http(u"POST only") data = json.loads(request.body) x = data.get("x") y = data.get("y") module = data.get("module_id") scene = data.get("scene_id") resource_name = data.get("resource") if len(utils.get_resource_by_name(resource_name)): resource_id = utils.get_resource_by_name(resource_name).get('id') else: print 'get resource id failed' record_id = data.get("id") if not (x and y and module and scene): return public.fail_result_http(u"module, scence, X, Y should not be NONE") ret = algo.set_algo_info(module, scene , resource_name, x, y) # save formula info tmp = {} tmp['a'] = ret.get('a') tmp['b'] = ret.get('b') this_formula = {} this_formula['resource_id'] = resource_id if resource_id else 0 this_formula['record_id'] = record_id this_formula['formula'] = json.dumps(tmp) utils.save_formula(this_formula) if type(ret) == type(""): return public.fail_result_http(ret) return public.success_result_http(ret)
def save_api_resource_view(request): if request.method != "POST": return public.fail_result_http(u"Only support POST!") else: data = json.loads(request.body) ret = utils.save_api_resource(data) return public.success_result_http(ret)
def static_dashboard_view(request): env = request.GET.get("env") if env.upper() == public.ENV_MOB: ret = utils.static_mob() else: ret = utils.static_newlab() return public.success_result_http(ret)
def save_single_api_record(request): id = utils.save_api_record(json.loads(request.body)) public_info = utils.get_public(request) if public_info.get('auth').get('write') != 1: return public.fail_result_http('have no write right') else: return public.success_result_http({'id': id})
def save_module_view(request): if request.method == "POST": data = json.loads(request.body) ret = utils.save_module(data) return public.success_result_http(ret) else: return public.fail_result_http("Only POST!")
def get_sealed_or_newlab_version(request): # 获取封板号 封板号没有就返回newlab版本 if request.method != "GET": return public.fail_result_http(u"Only support GET") else: ret = utils.get_seal_or_newlab_version(request.REQUEST.get("module")) return public.success_result_http(ret)
def get_build_status(request): if request.method != "GET": return public.fail_result_http(u"do not accept get method") else: job_name = request.REQUEST.get('name') view = request.REQUEST.get('view') # build = request.REQUEST.get('build') # 目前只有newlab if job_name and job_name != 'undefined' and not job_name.startswith( "newlabs"): job_name = "newlabs_" + job_name else: return public.fail_result_http('get job name failed') view = "agile" JB = utils.JenkinsInfo(view, job_name) build = JB.get_ret()['builds'][0]['number'] JI = utils.JenkinsInfo(view, job_name, str(build)) if JI.get_status(): if_building = JI.get_ret()['building'] if JI.get_ret()['result']: job_status = JI.get_ret()['result'].lower() else: job_status = 'fail' return public.success_result_http({ "status": job_status, 'building': if_building }) else: logging.error("Get Job Info Failed:" + str(request)) return public.fail_result_http('get job info failed')
def get_branch_svn_log(request): """ :author: yechengzhou :param request: request should contains branch name and module name :return: json format branch svn log """ if request.method != "GET": return public.fail_result_http(u"该接口只支持GET") else: module = request.GET.get('module') branch = request.GET.get('branch') type = request.GET.get('type') # 0 -- one day 1 -- last 10 if not (module and branch): return public.fail_result_http(u"参数错误") else: if type == '0' or type == None: if branch != "trunk": start = branch.split('_')[-2] start_time = public.str2datetime(start, "%Y%m%d") end_time = start_time + datetime.timedelta(days=1) end = public.datetime2str(end_time, "%Y%m%d") ret = utils.get_branch_svn_log(module,branch, start, end) else: ret = utils.get_branch_svn_log(module,branch) elif type == '1': ret = utils.get_branch_svn_log(module,branch ) return public.success_result_http(ret)
def bind_job_view(request): if request.method != "POST": return public.fail_result_http(u"Only support POST!") else: data = json.loads(request.body) ret = utils.bind_job(data) return public.success_result_http(ret)
def get_branch_svn_log(request): """ :author: yechengzhou :param request: request should contains branch name and module name :return: json format branch svn log """ if request.method != "GET": return public.fail_result_http(u"该接口只支持GET") else: module = request.GET.get('module') branch = request.GET.get('branch') type = request.GET.get('type') # 0 -- one day 1 -- last 10 if not (module and branch): return public.fail_result_http(u"参数错误") else: if type == '0' or type == None: if branch != "trunk": start = branch.split('_')[-2] start_time = public.str2datetime(start, "%Y%m%d") end_time = start_time + datetime.timedelta(days=1) end = public.datetime2str(end_time, "%Y%m%d") ret = utils.get_branch_svn_log(module, branch, start, end) else: ret = utils.get_branch_svn_log(module, branch) elif type == '1': ret = utils.get_branch_svn_log(module, branch) return public.success_result_http(ret)
def update_api_mob_version_view(request): if request.method == "POST": data = json.loads(request.body) ret = utils.update_api_mob_version(data) return public.success_result_http(ret) else: return public.fail_result_http("Only Post!")
def filter_api_view(request): q = request.GET.get("q") data = utils.filter_api(q) if data: return public.success_result_http(data) else: return public.fail_result_http(data)
def set_sub_task_order_view(request): if request.method == "POST": data = json.loads(request.body) utils.set_sub_task_order(data) return public.success_result_http() else: return public.fail_result_http("Only POST!")
def get_build_status(request): if request.method != "GET": return public.fail_result_http(u"do not accept get method") else: job_name = request.REQUEST.get('name') view = request.REQUEST.get('view') # build = request.REQUEST.get('build') # 目前只有newlab if job_name and job_name != 'undefined' and not job_name.startswith("newlabs"): job_name = "newlabs_" + job_name else: return public.fail_result_http('get job name failed') view = "agile" JB = utils.JenkinsInfo(view, job_name) build = JB.get_ret()['builds'][0]['number'] JI = utils.JenkinsInfo(view, job_name, str(build)) if JI.get_status(): if_building = JI.get_ret()['building'] if JI.get_ret()['result']: job_status = JI.get_ret()['result'].lower() else: job_status = 'fail' return public.success_result_http({"status":job_status, 'building': if_building}) else: logging.error("Get Job Info Failed:" + str(request)) return public.fail_result_http('get job info failed')
def copy_api_view(request): data = {} pk = request.GET.get("id") user = request.session.get("django_mail") flag = request.GET.get("flag") ret = utils.copy_api(pk, user, flag) return public.success_result_http(ret)
def start_task_view(request): if request.method == "POST": ret = utils.start_task(request) if ret: return public.fail_result_http(ret) return public.success_result_http(ret) else: return public.fail_result_http("Only POST!")
def bind_api_tag_view(request): if request.method == "POST": data = json.loads(request.body) data["user"] = public.get_user_mail(request) utils.bind_api_tag(data) return public.success_result_http() else: return public.fail_result_http("Only Post!")
def interface_show_api_view(request): data = data_utils.get_api(request.GET.get("id")) urlHost = data_utils.get_url_host_list() url_id = data.get("url") for url in urlHost: if url_id == url.get("id"): data["url"] = url.get("host") return public.success_result_http(data)
def set_auth_view(request): if request.method != "POST": return public.fail_result_http(u"Only support POST!") else: ret = utils.set_auth(request) if ret: return public.fail_result_http(ret) return public.success_result_http(ret)
def save_api_view(request): if request.method != "POST": return public.fail_result_http(u"Only support POST!") else: data = json.loads(request.body) data["creator"] = public.get_user_mail(request) ret = utils.save_api(data) return public.success_result_http(ret)
def rm_api_view(request): if request.method != "POST": return public.fail_result_http(u"Only support POST!") else: data = json.loads(request.body) id = data.get("id") utils.rm_api(id) return public.success_result_http()
def save_data_structure_view(request): if request.method == "POST": ret = data_utils.save_data_structure(request) return public.success_result_http(ret) else: data = {} data["structure"] = data_utils.get_data_structure() data["current"] = data_utils.get_structure_dict(request.GET.get("id")) return render(request, 'edit_structure.html', {"data": data})
def set_next_job_view(request): if request.method == "POST": data = json.loads(request.body) ret = utils.set_next_job(data) if ret: return public.fail_result_http(ret) return public.success_result_http() else: return public.fail_result_http("POST Only!")
def save_svn_history_view(request): logger.debug(request) if request.method == "POST": data = json.loads(request.body) utils.save_svn_history(data) else: return public.fail_result_http(u"该接口只支持POST数据") return public.success_result_http()
def rm_group_view(request): if request.method != "POST": return public.fail_result_http(u"Only support POST!") else: body = json.loads(request.body) ret = utils.rm_group(body.get("id")) if ret != True: return public.fail_result_http(ret) return public.success_result_http(ret)
def edit_url_host_view(request): if request.method == "POST": ret = data_utils.edit_host(request) return public.success_result_http(ret) else: data = {} id = request.GET.get("id") data["host"] = data_utils.get_url_host_dict(id) return render(request, 'edit_host.html', {"data": data})
def get_module_view(request): name = request.GET.get("name") id = request.GET.get("id") ret = {} if name: ret = utils.get_module_by_name(name) elif id: ret = utils.get_module_by_id(id) return public.success_result_http(ret)
def bin_sub_task_job_view(request): if request.method == "POST": data = json.loads(request.body) sub_task_id = data.get("sub_task_id") job_id_list = data.get("job_id_list") ret = utils.bind_sub_task_job(sub_task_id, job_id_list) return public.success_result_http(ret) else: return public.fail_result_http("Only POST!")
def rm_job_view(request): if request.method == "POST": data = json.loads(request.body) id = data.get("id") ret = utils.rm_job(id) if ret: return public.fail_result_http(ret) return public.success_result_http() else: return public.fail_result_http("POST Only!")
def save_job_view(request): if request.method == "POST": data = json.loads(request.body) data["user"] = public.get_user_mail(request) ret = utils.save_job(data) if ret: return public.fail_result_http(ret) return public.success_result_http() else: return public.fail_result_http("POST Only!")
def rm_task_view(request): if request.method == "POST": data = json.loads(request.body) id = data.get("id") ret = utils.rm_task(id) if ret: return public.fail_result_http(ret) return public.success_result_http() else: return public.fail_result_http("Only POST!")
def delete_single_api_record(request): data = json.loads(request.body) public = utils.get_public(request) if public.get('auth').get('write') != 1: return public.fail_result_http('have no write right') if data.get('id'): ret = utils.delete_api_record(data.get('id')) return public.success_result_http(ret) else: return public.fail_result_http('id is empty')
def build_job(request): if request.method == "POST": j = utils.Jenkins() data = json.loads(request.body) job_name = data.get("job_name") parameters = {"parameters": data.get("parameters")} ret = j.build_job(job_name, parameters) return public.success_result_http(ret) else: return public.fail_result_http("POST Only!")
def get_sealed_info(request): """ :author: yechengzhou :param request: :return: sealed release diff info json """ if request.method == "GET": data = request.GET ret = utils.get_sealed_info() return public.success_result_http(ret)
def save_promotion_record_view(request): logger.debug(request) if request.method == "POST": data = json.loads(request.body) err = utils.save_promotion_record(data) if err: return public.fail_result_http(err, data) else: return public.fail_result_http(u"该接口只支持POST数据") return public.success_result_http()
def get_latest_online_version(request): if request.method != "GET": return public.fail_result_http(u'Only support GET') else: if request.REQUEST.get("jobname"): print "bingo",request.REQUEST.get("jobname") ret = utils.get_latest_online_version(request.REQUEST.get("jobname")) return public.success_result_http(ret) else: return public.fail_result_http(u'please provide jobname')
def save_goback_information(request): #存储推送来的数据!-package_status if request.method == "POST": err = data_utils.save_goback_information() if err: return public.fail_result_http(err) else: err = data_utils.save_goback_information() if err: return public.fail_result_http(err) return public.success_result_http()
def get_latest_online_version(request): if request.method != "GET": return public.fail_result_http(u'Only support GET') else: if request.REQUEST.get("jobname"): print "bingo", request.REQUEST.get("jobname") ret = utils.get_latest_online_version( request.REQUEST.get("jobname")) return public.success_result_http(ret) else: return public.fail_result_http(u'please provide jobname')
def jenkins_switch(request): """ :author: yechengzhou :param request: contains trigger para :return: """ if request.method != "POST": return public.fail_result_http(u"该接口只支持POST") else: """ data is a json { "on_off" : "branch_name", "url" : job url } """ """ # 添加用户操作记录 this_option = models.JenkinsUser() if request.REQUEST['on_off'] == "enable": this_option.type = 1 elif request.REQUEST['on_off'] == "disable": this_option.type = 0 tmp_arr = request.REQUEST['url'].split("/") this_option.jobname = tmp_arr[tmp_arr.index('job') + 1] this_option.viewname = "newlab" this_option.optiontime = public.str2datetime(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), "%Y-%m-%d %H:%M:%S") # get user info user_info = web_utils.get_user_cookie(request) this_option.mail = user_info['mail'] """ if request.REQUEST['on_off'] == "enable": type = 1 elif request.REQUEST['on_off'] == "disable": type = 0 if "url" in request.REQUEST and "on_off" in request.REQUEST: JT = utils.JenkinsJobSwitch(request.REQUEST['url'],request.REQUEST['on_off']) if JT.switch(): #this_option.save() this_info = {} this_info['view_name'] = 'agile' this_url = request.REQUEST.get('url') this_info['job_name'] = this_url[this_url.find("/job/") + 5 : this_url.find("/build?")] this_info['type'] = type this_info['version'] = "" utils.save_job_record(request, this_info) return public.success_result_http() else: return public.fail_result_http(u"jenkins触发有错误") else: return public.fail_result_http(u"缺少触发参数,需要url和on_off")
def add_work_view(request): if request.method == "POST": data = data_utils.save_api_work(request) return public.success_result_http(data) else: data = {} data["auth"] = utils.check_auth(request) id = request.GET.get("id") if id: data["work"] = data_utils.get_api_work_dict(id) else: data["work"] = {} return render(request, 'add_work.html', {"data": data})
def set_api_badge_view(request): if request.method == "POST": body = json.loads(request.body) url_param = body.get("url_param") badge = body.get("badge") work = body.get("work") data = body.get("detail") ret = utils.set_api_badge(url_param, badge) utils.save_api_ranking(work, data) return public.success_result_http(ret) else: return public.fail_result_http(u"该接口为POST类型!")