def forward_to_service(request): results = {} try: method = request.method hu = HttpUtils(request) if method == "GET": req_get = request.GET serivceName = req_get.get("serivceName", None) restName = req_get.get("restName", None) req_data = req_get.get("req_data", None) if serivceName and restName: results = hu.get(serivceName=serivceName, restName=restName, datas=req_data) else: results['status'] = 500 else: req_post = request.POST serivceName = req_post.get("serivceName", None) restName = req_post.get("restName", None) req_data = req_post.get("req_data", None) if serivceName and restName: p_result = hu.post(serivceName=serivceName, restName=restName, datas=req_data) results = json.dumps(p_result.json()) else: results['status'] = 500 except Exception as e: logger.error(e, exc_info=1) results['status'] = 500 return HttpResponse(json.dumps(results), content_type='application/json')
def post_ajax(self, request, *args, **kwargs): result = {'status': 0} try: hu = HttpUtils(self.request) reqData = hu.getRequestParam() script_lang_dict = {'shell': 'sh', 'python': 'py', 'yaml': 'yaml'} if reqData: logger.info("DevopsToolsCreateView.post_ajax reqData:%s" % (reqData)) #tool_set_prime_type = reqData.get("tool_set_prime_type",None) tool_type = reqData.get("tool_type", None) if tool_type: fileName = "" #if tool_type == '5': t = time.time() toolScriptPath = settings.TOOL_SCRIPT_PATH #'/opt/devops/tool_script/' command = reqData.get("command", None) script_lang = reqData.get("script_lang", "shell") try: if not os.path.exists(toolScriptPath): os.makedirs(toolScriptPath) fileName = "%s%s%s.%s" % ( toolScriptPath, int(round(t * 1000)), randomCharStr(), script_lang_dict[script_lang]) f = open(fileName, 'w') f.write(command) os.chmod(fileName, stat.S_IRWXO | stat.S_IRWXG | stat.S_IRWXU) reqData['command'] = fileName reqData['script_md5'] = md5(command) except Exception as e: logger.error(e, exc_info=1) finally: f.close() addResult = hu.post( serivceName="p_job", restName="/rest/tool/add/", datas=reqData) #/rest/job/add_tool_set/ addResultJson = addResult.json() if addResultJson['status'] == 200: result['status'] = 0 result['msg'] = '保存成功' else: remove_file(fileName) result['status'] = 1 result['msg'] = addResultJson['msg'] else: result['status'] = 1 result['msg'] = '未检测到类别和类型信息,保存失败' else: result['status'] = 1 result['msg'] = '保存值为空' except Exception as e: result['status'] = 1 result['msg'] = '保存异常' logger.error(e, exc_info=1) return HttpResponse(json.dumps(result), content_type='application/json')
def post_ajax(self, request, *args, **kwargs): result = {'status': 0} try: user = request.user files = request.FILES command_set = request.POST.get("command_set",None) hu = HttpUtils() resultJson = hu.post(serivceName="job", restName="/rest/job/add/", datas=command_set) resultJson = eval(resultJson.text) if(resultJson["status"] == "FAILURE"): result['status'] = 1 else: data = resultJson["data"] for k in data: step_ids = data[k] for file in files: t = file.split(',') step = step_ids[int(t[0])] f = files[file] path = UPLOAD_SCRIPT_PATH + k + "/" for k2 in step: line = step[k2] path += str(k2) + "/"+str(line[int(t[1])])+"/" os.makedirs(path) destination = open(os.path.join(path, f.name), 'wb+') for chunk in f.chunks(): destination.write(chunk) destination.close() except Exception as e: logger.error(e) return HttpResponse(json.dumps(result),content_type='application/json')
def post_ajax(self, request, *args, **kwargs): result = {'status': 0} try: hu = HttpUtils(self.request) reqData = hu.getRequestParam() app_id = reqData.get("id", None) if app_id: del reqData['offset'] del reqData['limit'] del reqData['csrfmiddlewaretoken'] addAppResults = hu.post(serivceName="p_job", restName="/rest/appmanage/updateById/", datas=reqData) #/rest/app/update_app/ addAppResults = addAppResults.json() if addAppResults['status'] == 200: result['status'] = 200 result['msg'] = '更新应用信息成功' else: result['status'] = 500 result['msg'] = '更新应用信息失败' else: result['status'] = 500 result['msg'] = '更新应用信息失败' except Exception as e: result['status'] = 500 result['msg'] = '更新异常' logger.error(e, exc_info=1) return HttpResponse(json.dumps(result), content_type='application/json')
def get_context_data(self, **kwargs): context = {} try: hu = HttpUtils(self.request) tool_result = hu.get(serivceName="p_job", restName="/rest/tool/getinfo/", datas={"id": kwargs.get('pk', 0) }) #/rest/job/list_tool_set/ tool = tool_result.get("results", []) if tool: tool['param'] = json.loads(tool['param']) tool_set_type = tool["tool_type"] if tool_set_type == 5: command = tool["command"] file_object = open(command, 'rU') tool['filename'] = command try: content = "" for line in file_object: content += r"" + line tool["command"] = content.replace( '\\', '\\\\').replace('"', '\\"').replace( '\r', '\\r').replace('\n', '\\n') finally: file_object.close() else: tool['filename'] = "" #tool["command"] = tool["command"].replace('"', '\\"').replace('\r', '\\r').replace('\n', '\\n') context["result_dict"] = tool except Exception as e: logger.error(e, exc_info=1) return context
def post_ajax(self, request, *args, **kwargs): result = {} try: req = self.request hu = HttpUtils(req) reqData = hu.getRequestParam() id = reqData.get("id",None) appids = reqData.get("app_ids",None) idc = reqData.get("idc",None) env = reqData.get("env",None) version = reqData.get("version",None) #is_all = reqData.get("is_all",0) if id and appids: appids = json.loads(appids) setRunResult = hu.post(serivceName="job", restName="/rest/deploy/set_run_version/",datas={"id": id, "app_ids": appids, "idc": idc, "env": env,"version":version}) # setRunResult = hu.post(serivceName="job", restName="/rest/deploy/set_run/", datas={"id":id,"app_ids":appids,"idc":idc,"env":env}) setRunResult = setRunResult.json() if setRunResult['status'] == "SUCCESS": result['status'] = 0 result['msg'] = "发布成功,后端正在执行中" else: result['status'] = 1 result['msg'] = setRunResult['msg'] else: result['status'] = 1 result['msg'] = "发布失败" except Exception as e: result['status'] = 1 result['msg'] = "发布异常" logger.error(e) return HttpResponse(json.dumps(result),content_type='application/json')
def get_event(self,time_from = None,time_till = None,count=50): global zabbix_auth if time_from is None: time_from = int(time.time()-60*10) time_till = int(time.time()) try: data = { "jsonrpc": "2.0", "method": "event.get", "params": { "output": "extend", "time_from": time_from, "time_till": time_till, "sortfield": ["clock", "eventid"], "sortorder": "DESC" }, "auth": zabbix_auth, "id": 1 } event_result = HttpUtils(None).post2(ZABBIX_URL,data) event_list = event_result.json().get("result", []) event_list = event_list[0:count] except Exception as e: logger.error(e,exc_info=1) return event_list
def get_ajax(self, request, *args, **kwargs): result = {'status': 0} try: hu = HttpUtils(request) id = request.GET.get('id', None) if id: addAppResults = hu.post( serivceName="p_job", restName="/rest/flowcontrol/deleteById/", datas={'id': id}) addAppResults = addAppResults.json() if addAppResults['status'] == 200: result['status'] = 0 result['msg'] = '删除成功' else: result['status'] = 1 result['msg'] = '删除失败' else: result['status'] = 1 result['msg'] = '删除失败' except Exception as e: result['status'] = 1 result['msg'] = '删除异常' logger.error(e, exc_info=1) return HttpResponse(json.dumps(result), content_type='application/json')
def get_context_data(self, **kwargs): context = super(PreSrbUpdateView, self).get_context_data(**kwargs) context["is_add"] = 1 id = kwargs.get('pk', 0) type = self.request.GET.get("type",0) context['type'] = int(type) readonly = "" display = "block" if int(type) > 0: readonly = "readonly" display = "none" context['readonly'] = readonly context['display'] = display is_auditor = 1 # if self.request.devopsgroup == DEVOPSGROUP: # is_auditor = 1 context['is_auditor'] = is_auditor context['pre_srb_additional'] = PRE_SRB_ADDITIONAL context['pre_srb_additional_percent'] = PRE_SRB_ADDITIONAL_PERCENT if id: hu = HttpUtils(self.request) auditor_list = hu.get(serivceName="presrb", restName="/rest/presrb/auditor_list/",datas={}) context['auditor_list'] = auditor_list categoryItem_list = hu.get(serivceName="presrb", restName="/rest/presrb/categoryItem_list/", datas={}) context['categoryItem_list'] = categoryItem_list resultJson = hu.get(serivceName="presrb", restName="/rest/presrb/project_byid/", datas={"id": id}) data = {} if resultJson['status'] == 200: data = resultJson['data'] context['result'] = data return context
def post(self, request): result = {} hu = HttpUtils(self.request) input_dict = hu.getRequestParam() print(input_dict) print(request.POST.get('from', '{}')) _f = request.POST.get('from', '{}') print(request.POST.get('to', '{}')) _t = request.POST.get('to', '{}') _from = json.loads(_f) _to = json.loads(_t) m1 = None m2 = None print(_from, _to) if _from and _from['id']: m1 = Menu.objects.get(id=_from['id']) if _to and _to['id']: m2 = Menu.objects.get(id=_to['id']) print(m1.order_index, m1) print(m2.order_index, m2) tempOrderIdx = None if m1 and m2: tempOrderIdx = m1.order_index m1.order_index = m2.order_index m1.save() m2.order_index = tempOrderIdx m2.save() return HttpResponse(json.dumps(result), content_type='application/json')
def post_ajax(self, request, *args, **kwargs): result = {'status': 0} try: hu = HttpUtils(self.request) reqData = hu.getRequestParam() app_id = reqData.get("id", None) if app_id: del reqData['offset'] del reqData['limit'] del reqData['csrfmiddlewaretoken'] deploy_tool_update_result = hu.post(serivceName="p_job", restName="/rest/deploytool/updateById/", datas=reqData) #/rest/deploytool/update/ deploy_tool_update = deploy_tool_update_result.json() if deploy_tool_update['status'] == 200: result['status'] = 0 result['msg'] = deploy_tool_update['msg'] else: result['status'] = 1 result['msg'] = '更新发版信息失败' else: result['status'] = 1 result['msg'] = '更新发版信息失败' except Exception as e: result['status'] = 1 result['msg'] = '更新异常' logger.error(e) return HttpResponse(json.dumps(result), content_type='application/json')
def get(self, request): result = {} try: hu = HttpUtils(self.request) reqData = hu.getRequestParam() # type = (request.GET.get('type', "user")) request.user cursor = connection.cursor() result['status'] = 0 condition = "1" if "isParent" in reqData: condition = "has_sub_menu =1 " else: condition = 1 sql = "SELECT id, name, menu, parent_id, has_sub_menu, order_index FROM devops_menu_menuitem where {0} and is_enabled = 1 order by order_index desc".format( condition) data = DBUtils.query(sql) result['info'] = (data) except Exception as e: logger.error(e) result['status'] = 1 result['info'] = [] result['msg'] = "不存在" return HttpResponseBadRequest(result['msg']) return HttpResponse(json.dumps(result), content_type='application/json')
def get_ajax(self, request, *args, **kwargs): req = self.request hu = HttpUtils(req) result = hu.get(serivceName="job", restName="/rest/file/delete/", datas={"id": req.GET.get("id", 0)}) return self.render_json_response(result)
def post_ajax(self, request, *args, **kwargs): files = request.FILES path = request.POST.get("path", None) resultJson = {} if path: saveJson = request.POST.get("saveJson", None) hu = HttpUtils(request) result = hu.post(serivceName="job", restName="/rest/file/add/", datas=saveJson) resultJson = result.json() if resultJson['status'] == "SUCCESS": try: file = files['files'] filePath = UPLOAD_SCRIPT_PATH + path filePath = filePath.replace('//', '/') destination = open(os.path.join(filePath, file.name), 'wb+') for chunk in file.chunks(): destination.write(chunk) destination.close() (status, output) = subprocess.getstatusoutput("sed -i 's/\r$//' " + UPLOAD_SCRIPT_PATH + path + file.name) if status != 0: logger.error(output) except Exception as e: logger.error(e) else: resultJson['status'] = 'fail' resultJson['msg'] = '文件夹路径为空' return self.render_json_response(resultJson)
def NginxClusterHostById(request): """ 发布 获取nginx 机器 :param request: :return: """ results = {} try: group_id = request.GET.get("id", None) vs = request.GET.get("vs", None) if group_id and vs: hu = HttpUtils(request) result = hu.get(serivceName='p_job', restName='/rest/slb/nginxclusterhostbyid', datas={"id": group_id, "vs": vs}) if result['status'] == 200: results['status'] = 200 results['data'] = result['data'] else: results['status'] = 500 results['msg'] = "查询失败" else: results['status'] = 500 results['msg'] = "查询参数为空" except Exception as e: logger.error(e, exc_info=1) results['status'] = 500 results['msg'] = "查询异常" return JsonResponse(data=results)
def post_ajax(self, request, *args, **kwargs): resultJson = {} try: saveJson = request.POST.get("saveJson", None) saveJson = eval(saveJson) hu = HttpUtils(request) # updateResult = hu.post(serivceName="presrb", restName="/rest/presrb/project_update/", datas={"p_id":saveJson.get("p_id",0),"deploy_envs":saveJson.get("deploy_envs",0),"change":0}) # updateJson = updateResult.json() # if updateJson.get("status") == "SUCCESS": # resultJson1 = hu.post(serivceName="presrb", restName="/rest/presrb/projectItem_add/", datas=saveJson) # resultJson2 = resultJson1.json() # if resultJson2.get("status") == "SUCCESS": # resultJson["status"] = 0 # else: # resultJson["status"] = 1 # resultJson["msg"] = "保存应用配置失败" resultJson1 = hu.post(serivceName="presrb", restName="/rest/presrb/projectItem_add/", datas=saveJson) resultJson2 = resultJson1.json() if resultJson2.get("status") == "SUCCESS": resultJson["status"] = 0 else: resultJson["status"] = 1 resultJson["msg"] = "保存应用配置失败" except Exception as e: resultJson["status"] = 1 resultJson["msg"] = "保存应用配置异常" logger.error(e,exc_info=1) return HttpResponse(json.dumps(resultJson), content_type='application/json')
def get_deploytaskslist(request): hu = HttpUtils(request) result = hu.get(serivceName='p_job',restName='/rest/slb/deploytaskslist/') for index, task in enumerate(result['results']): task = trans_deploytask(task) result['results'][index] = task return JsonResponse(data=dict(ret=result))
def get_context_data(self, **kwargs): context = super(PreSrbListView, self).get_context_data(**kwargs) try: req = self.request hu = HttpUtils(req) reqData = hu.getRequestParam() reqData['is_auditor'] = 1 resultJson = hu.get(serivceName="presrb", restName="/rest/presrb/project_list/", datas=reqData) list = resultJson.get("results", []) paginator = Paginator(list, req.limit) count = resultJson.get("count", 0) paginator.count = count is_auditor = 1 # if req.devopsgroup == DEVOPSGROUP: # is_auditor = 1 context['is_auditor'] = is_auditor context['result_list'] = list context['is_paginated'] = count > 0 context['page_obj'] = paginator.page(req.offset) context['paginator'] = paginator file_list = [] for parent, dirnames, filenames in os.walk(settings.FILES_DIR): for filename in filenames: file_list.append(filename) context['file_list'] = file_list except Exception as e: logger.error(e,exc_info=1) return context
def post_ajax(self, request, *args, **kwargs): result = {} try: req = self.request postDict = req.POST appName = postDict.get("appName",None) hu = HttpUtils(req) parent_id = postDict.get("parentId","") idc = postDict.get("idc","") env = postDict.get("env","") if appName: appListResult = hu.get(serivceName="job", restName="/rest/deploy/app_list/",datas={"parent_id": parent_id, "idc": idc, "env": env, "name": appName}) appList = appListResult.get("results", []) if len(appList) > 0: applistversionResult = hu.get(serivceName="job", restName="/rest/deploy/app_list_version/",datas={"id": appList[0]['id']}) applistversion = applistversionResult.get("data", []) result['list'] = applistversion else: setListVersionResult = hu.get(serivceName="job", restName="/rest/deploy/set_list_version/",datas={"id": parent_id, "idc": idc, "env": env}) setListVersion = setListVersionResult.get("data", []) result['list'] = setListVersion except Exception as e: logger.error(e) result['status'] = 1 result['list'] = [] return HttpResponse(json.dumps(result), content_type='application/json')
def get(self, request): resultJson = {} try: req = self.request id = int(req.GET.get('id', 0)) if not os.path.exists(settings.FILES_CACHE_DIR): os.makedirs(settings.FILES_CACHE_DIR) hu = HttpUtils(req) resultJson = hu.get(serivceName="presrb", restName="/rest/presrb/project_report_item/", datas={"id":id}) ppt_name = generate_ppt_report(resultJson) filepath = os.path.join(settings.FILES_CACHE_DIR, ppt_name) filename =ppt_name.split('_')[1] response = StreamingHttpResponse(readFile(filepath)) response['Content-Type'] = 'application/octet-stream' response['Content-Disposition'] = 'attachment;filename="{0}"'.format( filename.encode('utf-8').decode('ISO-8859-1')) remove_old_files(settings.FILES_CACHE_DIR) except Exception as e: logger.error(e, exc_info=1) return response
def get_alert(self): result = [] global zabbix_auth try: event_list = self.get_event() eventIds = [] for event in event_list: eventIds.append(event['eventid']) data = { "jsonrpc": "2.0", "method": "alert.get", "params": { "output": "extend", "eventids": eventIds }, "auth": zabbix_auth, "id": 1 } alert_result = HttpUtils(None).post2(ZABBIX_URL,data) alert_list = alert_result.json().get("result", []) for alert in alert_list: result.append({"subject":alert['subject'], "actualValue":alert['retries'], "eventTime":time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(alert['clock']))), "eventId":alert['eventid']}) except Exception as e: logger.error(e,exc_info=1) return result
def get_context_data(self, **kwargs): context = super(PreSrbCreateView, self).get_context_data(**kwargs) try: context["is_add"] = 1 context['readonly'] = "" context['display'] = "block" context['type'] = 0 user = self.request.user #result = {"applicant":user.username,"applicant_email":user.email} result = {"applicant": user.username} context['result'] = result is_auditor = 1 # if self.request.devopsgroup == DEVOPSGROUP: # is_auditor = 1 context['is_auditor'] = is_auditor hu = HttpUtils(self.request) auditor_list = hu.get(serivceName="presrb", restName="/rest/presrb/auditor_list/", datas={}) context['auditor_list'] = auditor_list # category_list = hu.get(serivceName="presrb", restName="/rest/presrb/category_list/", datas={}) # context['category_list'] = category_list categoryItem_list = hu.get(serivceName="presrb", restName="/rest/presrb/categoryItem_list/", datas={}) context['categoryItem_list'] = categoryItem_list context['pre_srb_additional'] = PRE_SRB_ADDITIONAL context['pre_srb_additional_percent'] = PRE_SRB_ADDITIONAL_PERCENT except Exception as e: logger.error(e,exc_info=1) return context
def get_context_data(self, **kwargs): context = {} try: id = kwargs.get('pk', 0) hu = HttpUtils(self.request) app_manage_result = hu.get(serivceName="p_job", restName="/rest/appmanage/getinfo/", datas={'id': id}) app_manage = app_manage_result.get("results", []) version_list = [] if app_manage: app_manage_version_list_result = hu.get( serivceName="p_job", restName="/rest/appmanage/appversionlist/", datas={'app_manage_id': app_manage['id']}) app_manage_version_list = app_manage_version_list_result.get( "results", []) for app_manage_version in app_manage_version_list: version_list.append(app_manage_version['version']) context['version_list'] = version_list context['app_info'] = app_manage context['is_add'] = 0 except Exception as e: logger.error(e, exc_info=1) return context
def post_ajax(self, request, *args, **kwargs): result = {'status': 0} try: hu = HttpUtils(self.request) reqData = hu.getRequestParam() saveJson = reqData.get("saveJson",None); if saveJson: resultAdd = hu.post(serivceName="presrb", restName="/rest/presrb/project_add/", datas=saveJson) resultJson = resultAdd.json() if resultJson['status'] == 'SUCCESS': result['status'] = 0 result['p_id'] = resultJson.get("p_id","") result['msg'] = '保存成功' else: result['status'] = 1 result['msg'] = '保存失败' else: result['status'] = 1 result['msg'] = '保存值为空' except Exception as e: result['status'] = 1 result['msg'] = '保存异常' logger.error(e,exc_info=1) return HttpResponse(json.dumps(result),content_type='application/json')
def get(self, request, *args, **kwargs): result = {'status': 200} try: req = self.request hu = HttpUtils(req) reqData = hu.getRequestParam() logger.info("DevopsToolInfoByToolIdAndVersion.get reqData:%s" % (reqData)) tool_list_result = hu.get(serivceName="p_job", restName="/rest/tool/list/", datas={ 'tool_id': reqData['tool_id'], "tool_version": reqData['tool_version'], "is_history": "-1" }) # /rest/job/list_tool_set/ tool_list = tool_list_result.get("results", []) if tool_list: result['data'] = tool_list[0] else: result['data'] = {} except Exception as e: result['status'] = 500 result['msg'] = '查询异常' logger.error(e, exc_info=1) return self.render_json_response(result)
def post(self, request, *args, **kwargs): result_json = {"status": 1} try: groupId = request.POST.get("group_id", None) host_ids = request.POST.get("host_ids", None) if groupId and host_ids: hu = HttpUtils(request) reqParam = { "group_id": groupId, "host_ids": host_ids.split(',') } updateResult = hu.post( serivceName="cmdb", restName="/rest/hostgroup/batch_host_unbind_group/", datas=reqParam) #/rest/hostgroup/static_group_delete/ result = updateResult.json() if result['status'] == 200: result_json = { "status": 0, 'failCount': len(result['500']), 'successCount': len(result['200']) } else: result_json = { "status": 1, 'failCount': len(result['500']), 'successCount': len(result['200']) } except Exception as e: logger.error(e, exc_info=1) return self.render_json_response(result_json)
def get_context_data(self, **kwargs): context = super(List3View, self).get_context_data(**kwargs) try: req = self.request hu = HttpUtils(req) reqData = hu.getRequestParam() host = reqData.get('host', None) if host: host = json.loads(host) host['go_live'] = 3 reqData['host'] = host else: reqData['host'] = {'go_live': 3} tree = reqData.get('tree', None) if tree: reqData['tree'] = json.loads(tree) resultJson = hu.post(serivceName="cmdb", restName="/rest/host/list/", datas=reqData) resultJson = resultJson.json() list = resultJson.get("results", []) #hostgroupResult = hu.get(serivceName="cmdb", restName="/rest/host/host_group_list/", datas={}) hostGroup_list = RedisBase.get("host_group_3", 2) count = resultJson.get("count", 0) paginator = Paginator(list, req.limit) paginator.count = count context['result_list'] = list context['is_paginated'] = count > 0 context['page_obj'] = paginator.page(req.offset) context['paginator'] = paginator context['hostGroup_list'] = hostGroup_list except Exception as e: logger.error(e, exc_info=1) return context
def site_versions(request): id = int(request.GET.get('id')) hu = HttpUtils(request) setListResult = hu.get(serivceName="p_job", restName="/rest/slb/deployversionbysiteid/", datas={'site_id':id}) #print(setListResult) #setListResult = trans_versions(setListResult) return JsonResponse(data={'ret':setListResult})
def post_ajax(self, request, *args, **kwargs): result_json = {"status": 1} try: flag = request.POST.get("flag", None) if flag: hu = HttpUtils(request) go_live = request.POST.get("status") reqParam = [] if flag == '1': ip_list = json.loads(request.POST.get("ip_list")) for ip in ip_list: reqParam.append({'go_live': go_live, 'host_ip': ip}) else: seach = json.loads(request.POST.get("seach", None)) seach['go_live'] = 2 resultJson = hu.get(serivceName="cmdb", restName="/rest/host/", datas=seach) list = resultJson.get("results", []) for l in list: reqParam.append({ 'go_live': go_live, 'host_ip': l.get("host_ip") }) updateResult = hu.post(serivceName="cmdb", restName="/rest/host/update/", datas=reqParam) result = updateResult.json() if result['status'] == '0': result_json = {"status": 0} except Exception as e: logger.error(e) return self.render_json_response(result_json)
def hostTotalCount(request): results = {} try: r_key = "hostTotalCount_%s" % settings.DEVOPSGROUP result = RedisBase.get(redisKey=r_key, db=1) if result: results['status'] = 200 results['data'] = json.loads(str(result, encoding="utf-8")) else: if request.devopsuser: hu = HttpUtils(request) get_results = hu.get(serivceName="cmdb", restName="/rest/host/host_total_count/", datas={}) if get_results['status'] == 200: data = get_results['data'] RedisBase.set(redisKey=r_key, value=json.dumps(data), time_ms=120, db=1) results['status'] = 200 results['data'] = data else: results['status'] = 500 else: results['status'] = 500 except Exception as e: results['status'] = 500 logger.error(e, exc_info=1) return HttpResponse(json.dumps(results), content_type='application/json')