点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!
场景背景
功能介绍


if request.method == "GET":
return_list={
"data":[]
}
ns_list=['jyfront','jyback','jycom','kyfront','kyback','kycom']
for ns_name in ns_list:
ns_obj=panji_k8s_model.objects.get(namespace=ns_name)
deployment_list=ns_obj.get_deployment_list('')
for deployment_item in deployment_list['data']['items']:
return_item={}
return_item['ns_name']=ns_name
return_item['name']=deployment_item['metadata']['name']
return_item['updatedImage']=deployment_item['spec']['template']['spec']['containers'][0]['image']
updated_yaml_dict=deployment_item['spec']['template']['spec']['containers'][0]
return_item['updatedYaml']=json.dumps(updated_yaml_dict,indent=4).replace("'","''")
sql=sql_template_select.format(ns_name=ns_name,name=return_item['name'])
sql_result=shsnc_sql(sql)
if sql_result==0:
return_item['originalImage']='new'
return_item['originalYaml']='new'
return_list['data'].append(return_item)
else:
sql_result=sql_result[0]['JSON_STR']
origin_yaml_dict=json.loads(sql_result)
if DeepDiff(origin_yaml_dict,updated_yaml_dict,ignore_order=True):
return_item['originalImage']=origin_yaml_dict['image']
return_item['originalYaml']=json.dumps(origin_yaml_dict,indent=4)
return_list['data'].append(return_item)
return JsonResponse(return_list,safe=False)


if request.method == "GET":
return_list={
"data":[]
}
db_table_list=[
{"db_name":"hbyydba2","db_user":"tbcs","table_name":"INT_C2BHTTP_ROUTE","condition_str":"t.status=1"},
{"db_name":"hbyydba2","db_user":"tbcs","table_name":"parameter_value","condition_str":"t.paramvalue like '%http://%' and t.status=1"},
{"db_name":"hbyydba2","db_user":"tbcs","table_name":"dict_item","condition_str":"(t.dictname like '%%http://%%' or t.description like '%%http://%%') and t.status=1"},
{"db_name":"hbiboss1","db_user":"ibosstbcs","table_name":"cb_sys_origin","condition_str":"t.urlgate like 'http%'"},
{"db_name":"hbyydba2","db_user":"common","table_name":"cb_sp_bizdefine_origin","condition_str":"t.urlgate like 'http%'"}]
for db_table_item in db_table_list:
db_name=db_table_item['db_name']
db_user=db_table_item['db_user']
table_name=db_table_item['table_name']
sql_str="select t.*,t.rowid from "+db_user+"."+table_name+" t where "+db_table_item["condition_str"]
sql_result_list=db_run[db_name](sql_str)
tasks=[]
with ThreadPoolExecutor(max_workers=20) ast:
for sql_result_line in sql_result_list:
tasks.append(t.submit(shangxian_panji_check_db_config_data_running_task,db_name,db_user,table_name,sql_result_line,))
for task in as_completed(tasks):
if task.result():
return_list['data'].append(task.result())
return JsonResponse(return_list,safe=False)


defcheck_panji_api(request):
if request.method == "GET":
return render(request, 'check_api.html')
elif request.method == "POST":
panji_api_kind=request.POST.get('panji_api_kind')
ns_name=request.POST.get('ns_name')
ns_obj=panji_k8s_model.objects.get(namespace=ns_name)
result=ns_obj.panji_api_check(panji_api_kind)
if result:
return JsonResponse({'code':1,'msg':''},safe=False)
else:
return JsonResponse({'code':0,'msg':''},safe=False)

本文作者:陈 鹏(上海新炬中北团队)
本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




