查询job返回日志

这里写自定义目录标题

执行查询日志返回

import base64
import time
from blueking.component.shortcuts import get_client_by_user, get_client_by_request
def script_and_log(kwargs):
    """
    执行脚本返回脚本内容
    :param kwargs:
    :return:
    """
    result = fast_execute_script(kwargs)
    result_ = []
    if result['result']:
        job_instance_id = result["data"]['job_instance_id']
        i = 0
        while True:
            time.sleep(5)
            job_result = get_job_instance_log(kwargs["bk_biz_id"], job_instance_id)
            if job_result["result"]:
                data = job_result["data"]
                if data[0]["is_finished"]:
                    result_ = data[0]["step_results"][0]['ip_logs']
                    break
            i += 1
            if i > 10:
                break
        if result_:
            return {"result": True, 'data': result_}
        else:
            return {"result": False, "data": result_}
    else:
        return {"result": False, "data": result_}


def fast_execute_script(kwargs):
    '''
    执行脚本
    :params: bk_biz_id   int  业务id
    :params: script_content   str  脚本内容
    :params: script_param   str  脚本参数
    :params: script_timeout   int  脚本超时时间,秒
    :params: account   str  执行账号
    :params: script_type   int   脚本类型 1(shell脚本)、2(bat脚本)、3(perl脚本)、4(python脚本)、5(Powershell脚本)
    :params: ip_list   list   执行IP  [ {"bk_cloud_id": 0, "ip": "10.0.0.1"}]  bk_cloud_id 云区域ID
    :return:
    '''

    user = "admin"
    client = get_client_by_user(user)
    # 参数
    kwargs = {
        "bk_supplier_account": "0",
        "bk_biz_id": kwargs.get('bk_biz_id'),
        "script_content": base64.b64encode(kwargs.get('script_content')),
        "script_param": base64.b64encode(kwargs.get('script_param', "")),
        "script_timeout": kwargs.get('script_timeout', 1000),
        "account": kwargs.get('account', "root"),
        "is_param_sensitive": 0,
        "script_type": kwargs.get('script_type', 1),
        "ip_list": kwargs.get('ip_list', [])

    }
    result = client.job.fast_execute_script(kwargs)
    print result
    return result


def get_job_instance_log(bk_biz_id, job_instance_id):
    """
    获取脚本执行日志
    :return:
    """
    user = "admin"
    client = get_client_by_user(user)
    kwargs = {
        "bk_biz_id": bk_biz_id,
        "job_instance_id": job_instance_id
    }
    result = client.job.get_job_instance_log(kwargs)
    print result
    return result
# 举例说明
    str_script = '''df -h'''
    kwargs = {
        "bk_biz_id": 3,
        "script_content": str_script,
        "ip_list": [{
            "bk_cloud_id": 0,
            "ip": "10.221.165.9"
        }
        ]
    }
    # fast_execute_script(kwargs)  {u'message': u'success', u'code': 0, u'data': {u'job_instance_id': 537,
    # get_job_instance_log(2, 537)
    data = script_and_log(kwargs)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

beter138

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值