在基于蓝鲸智云平台开发SaaS应用时,经常需要和目标服务器进行交互,往指定目标服务器上run一些脚本,想获取返回的执行结果,这就需要调用fast_execute_script快速执行脚本接口,在此把常用的快速执行脚本封装成一个函数,后续的业务逻辑需要的话,直接调用这个函数即可,按需调配.
# 快速执行脚本
def execute_script(kwargs):
# 获取登录态
# client = get_client_by_request(request)
user = "admin"
client = get_client_by_user(user)
# 调用蓝鲸的快速执行脚本
execute_result = client.job.fast_execute_script(kwargs)
# print execute_result
# 获取执行完作业的作业实例ID
job_instance_id = execute_result["data"].get("job_instance_id")
# print job_instance_id
parms = {
"bk_biz_id": kwargs.get("bk_biz_id"),
"job_instance_id": job_instance_id
}
# 根据作业实例ID获取作业执行完返回的日志内容
while True:
jog_result = client.job.get_job_instance_log(parms)
# print jog_result
step_results = jog_result["data"][0].get("step_results")
if jog_result["data"][0]['is_finished']:
break
# print step_results
ip_logs = step_results[0].get("ip_logs")
# print ip_logs
log_content = ip_logs[0].get('log_content')
# print log_content
return log_content