示例#1
0
文件: views.py 项目: hegins/mytest
def module_deploy(request):
    """
    deploy (nginx/php/mysql..etc) module
    """

    ret = []
    jid = []
    user = request.user
    if request.method == 'POST':
        action = request.get_full_path().split('=')[1]
        if action == 'deploy':
            tgt = request.POST.get('tgt')
            arg = request.POST.getlist('module')
            tgtcheck = HostList.objects.filter(hostname=tgt)
        if tgtcheck:
            Message.objects.create(type='salt',
                                   action='deploy',
                                   action_ip=tgt,
                                   content='saltstack %s module depoy' % (arg))
            sapi = SaltAPI(url=settings.SALT_API['url'],
                           username=settings.SALT_API['user'],
                           password=settings.SALT_API['password'])
            db = db_operate()

            if 'sysinit' in arg:
                obj = sapi.async_deploy(
                    tgt, arg[-1])  # 先执行初始化模块,其他任意 sysinit 在最后的模块
                sql = "insert INTO salt_returns VALUES(%s) " % obj
                print sql
                jid.append(obj)
                arg.remove('sysinit')
                if arg:
                    for i in arg:
                        obj = sapi.async_deploy(tgt, i)
                        jid.append(obj)
            else:
                for i in arg:
                    obj = sapi.async_deploy(tgt, i)
                    sql = "insert INTO salt_returns VALUES(%s) " % obj
                    db.mysql_command(settings.OMS_MYSQL, sql)
                    jid.append(obj)
                    msg = '%s deploy %s module success,jid is %s' % (tgt, i,
                                                                     obj)
                    ret.append(msg)
                    # db = db_operate()
                    # for i in jid:
                    #     # time.sleep(10)
                    #     sql = 'select returns from salt_returns where returns=%s'
                    #     result=db.select_table(settings.OMS_MYSQL,sql,str(i))    #通过jid获取执行结果
                    #     print result
                    #     ret.extend(result)
                    # sapi.async_deploy('test-01','zabbix.api')   #调用zabbix.api执行模块监控
        else:
            ret = '亲,目标主机不对,请重新输入'

    return render(request, 'salt_module_deploy.html', {'ret': ret})
示例#2
0
文件: views.py 项目: AmiLiY/my_oms
def module_deploy(request):
    """
    deploy (nginx/php/mysql..etc) module
    """

    ret = []
    jid = []
    user = request.user
    if request.method == 'POST':
        action = request.get_full_path().split('=')[1]
        if action == 'deploy':
            tgt = request.POST.get('tgt')
            arg = request.POST.getlist('module')
            tgtcheck = HostList.objects.filter(hostname=tgt)
        if tgtcheck:
            Message.objects.create(type='salt', action='deploy', action_ip=tgt,
                                   content='saltstack %s module depoy' % (arg))
            sapi = SaltAPI(url=settings.SALT_API['url'], username=settings.SALT_API['user'],
                           password=settings.SALT_API['password'])
            db = db_operate()

            if 'sysinit' in arg:
                obj = sapi.async_deploy(tgt, arg[-1])  # 先执行初始化模块,其他任意 sysinit 在最后的模块
                sql = "insert INTO salt_returns VALUES(%s) " % obj
                print sql
                jid.append(obj)
                arg.remove('sysinit')
                if arg:
                    for i in arg:
                        obj = sapi.async_deploy(tgt, i)
                        jid.append(obj)
            else:
                for i in arg:
                    obj = sapi.async_deploy(tgt, i)
                    sql = "insert INTO salt_returns VALUES(%s) " % obj
                    db.mysql_command(settings.OMS_MYSQL, sql)
                    jid.append(obj)
                    msg = '%s deploy %s module success,jid is %s' % (tgt, i, obj)
                    ret.append(msg)
                    # db = db_operate()
                    # for i in jid:
                    #     # time.sleep(10)
                    #     sql = 'select returns from salt_returns where returns=%s'
                    #     result=db.select_table(settings.OMS_MYSQL,sql,str(i))    #通过jid获取执行结果
                    #     print result
                    #     ret.extend(result)
                    # sapi.async_deploy('test-01','zabbix.api')   #调用zabbix.api执行模块监控
        else:
            ret = '亲,目标主机不对,请重新输入'

    return render(request, 'salt_module_deploy.html', {'ret': ret})
示例#3
0
def module_deploy(request):
    """
    deploy (nginx/php/mysql..etc) module
    :param request:
    :return:
    """

    ret = []
    jid = []
    user = request.user
    if request.method == 'POST':
        action = request.get_full_path().split('=')[1]
        if action == 'deploy':
            tgt = request.POST.get('tgt')
            arg = request.POST.getlist('module')
            tgtcheck = HostList.objects.filter(hostname=tgt)
        if tgtcheck:
            Message.objects.create(type='salt', action='deploy', action_ip=tgt,
                                   content='saltstack %s module deploy' % (arg))
            sapi = SaltAPI(url=settings.SALT_API['url'], username=settings.SALT_API['user'],
                           password=settings.SALT_API['password'])
            db = db_operate()

            if 'sysinit' in arg:
                obj = sapi.async_deploy(tgt, arg[-1])
                sql = "instert INTO salt_returns VALUES(%s) " % obj
                print sql
                jid.append(obj)
                arg.remove('sysinit')
                if arg:
                    for i in arg:
                        obj = sapi.async_deploy(tgt, i)
                        jid.append(obj)

            else:
                for i in arg:
                    obj = sapi.async_deploy(tgt, i)
                    sql = "insert INTO salt_returns VALUES(%s) " % obj
                    db.mysql_command(settings.OMS_MYSQL, sql)
                    jid.append(obj)
                    msg = '%s deploy %s module success,jid is %s' % (tgt, i, obj)
                    ret.append(msg)
        else:
            ret = '目标主机不对,请重新输入'

    return render(request, 'salt_module_deploy.html', {'ret': ret})