Exemplo n.º 1
0
def minionKeysReject(request):
    '''
    展示已经被拒绝的Minino keys;
    :param request:
    :return:
    '''
    user = request.user.username
    dccn_list = []
    dc_hosts = {}
    dc_hosts_keys = {}

    sapi = SaltAPI(url=settings.SALT_API['url'],
                   username=settings.SALT_API['user'],
                   password=settings.SALT_API['password'])
    minions, minions_pre, minions_rej = sapi.allMinionKeys()
    minions_rej_set = set(minions_rej)

    dcs = DataCenter.objects.all()
    for dc in dcs:
        minion_info_dict = {}
        hosts = HostList.objects.filter(dccn=dc.dccn)
        dccn_list.append(dc.dccn)
        for host in hosts:
            minion_id = host.minionid
            if minion_id in minions_rej_set:
                minion_info_dict[minion_id] = host.ip
        dc_hosts[dc.dccn] = minion_info_dict
    dccn_list.sort()

    return render(request, 'manage_keys_reject.html', {
        'all_dc_list': dccn_list,
        'all_minions_rej': dc_hosts
    })
Exemplo n.º 2
0
def manageMinionKeysAPI(request):
    '''
    前端选择不同状态、机房、维护人员下的Minion id相关信息,通过ajax后台请求并刷新页面;
    :param request:
    :return: [
                {'192.168.220.201': 'CNET_HQ_SH_BETA_192_168_220_201'},
                {'192.168.220.202': 'CNET_HQ_SH_BETA_192_168_220_202'},
                ...
             ]
    '''
    user = request.user.username
    ip_list = []
    serv_list = []
    serv_dict = {}

    if request.method == 'GET':
        column = request.GET.get('col', '')
        dcen = request.GET.get('dcen', '')
        engi = request.GET.get('engi', '')

        sapi = SaltAPI(
            url=settings.SALT_API['url'],
            username=settings.SALT_API['user'],
            password=settings.SALT_API['password']
        )
        minions, minions_pre, minions_rej = sapi.allMinionKeys()

        if column == 'acp':
            result = clearUpMinionKyes(minions, dcen, engi)
        elif column == 'pre':
            result = clearUpMinionKyes(minions_pre, dcen, engi)
        elif column == 'rej':
            result = clearUpMinionKyes(minions_rej, dcen, engi)
        else:
            log.error("Unexpected execution here.")

        for id in result:
            id_list = id.split('_')
            ip = '.'.join(id_list[4:])
            ip_list.append(ip)
            serv_dict[ip] = id
        ip_list.sort()
        for i in ip_list:
            ipid_dict = {}
            id = serv_dict.get(i)
            ipid_dict[i] = id
            serv_list.append(ipid_dict)
            del ipid_dict
    else:
        log.error("Request the wrong way, need to GET method.")

    keys_json = json.dumps(serv_list)

    return HttpResponse(keys_json, content_type="application/json")
Exemplo n.º 3
0
def manageMinionKeysAPI(request):
    '''
    前端选择不同状态、机房、维护人员下的Minion id相关信息,通过ajax后台请求并刷新页面;
    :param request:
    :return: [
                {'192.168.220.201': 'CNET_HQ_SH_BETA_192_168_220_201'},
                {'192.168.220.202': 'CNET_HQ_SH_BETA_192_168_220_202'},
                ...
             ]
    '''
    user = request.user.username
    ip_list = []
    serv_list = []
    serv_dict = {}

    if request.method == 'GET':
        column = request.GET.get('col', '')
        dcen = request.GET.get('dcen', '')
        engi = request.GET.get('engi', '')

        sapi = SaltAPI(url=settings.SALT_API['url'],
                       username=settings.SALT_API['user'],
                       password=settings.SALT_API['password'])
        minions, minions_pre, minions_rej = sapi.allMinionKeys()

        if column == 'acp':
            result = clearUpMinionKyes(minions, dcen, engi)
        elif column == 'pre':
            result = clearUpMinionKyes(minions_pre, dcen, engi)
        elif column == 'rej':
            result = clearUpMinionKyes(minions_rej, dcen, engi)
        else:
            log.error("Unexpected execution here.")

        for id in result:
            id_list = id.split('_')
            ip = '.'.join(id_list[4:])
            ip_list.append(ip)
            serv_dict[ip] = id
        ip_list.sort()
        for i in ip_list:
            ipid_dict = {}
            id = serv_dict.get(i)
            ipid_dict[i] = id
            serv_list.append(ipid_dict)
            del ipid_dict
    else:
        log.error("Request the wrong way, need to GET method.")

    keys_json = json.dumps(serv_list)

    return HttpResponse(keys_json, content_type="application/json")
Exemplo n.º 4
0
def manageMinionKeys(request):
    '''
    进入页面,首次展示已经接受的所有Minion ID,从这里获取并返回;
    :param request:
    :return:
    '''
    user = request.user.username
    serv_list = []
    ip_list = []
    serv_dict = {}
    dc_dict = {}
    engi_dict ={}

    sapi = SaltAPI(
        url=settings.SALT_API['url'],
        username=settings.SALT_API['user'],
        password=settings.SALT_API['password']
    )
    minions, minions_pre, minions_rej = sapi.allMinionKeys()
    # log.debug(str(minions))

    dcs = DataCenter.objects.all()
    for dc in dcs:
        dc_dict[dc.dcen] = dc.dccn
    egs = Dzhuser.objects.all()
    for eg in egs:
        engi_dict[eg.username] = eg.engineer

    for id in minions:
        id_list = id.split('_')
        ip = '.'.join(id_list[4:])
        ip_list.append(ip)
        serv_dict[ip] = id
    ip_list.sort()
    for i in ip_list:
        ipid_dict = {}
        id = serv_dict.get(i)
        ipid_dict[i] = id
        serv_list.append(ipid_dict)
        del ipid_dict

    return render(
        request,
        'manage_keys.html',
        {
            'dc_dict': dc_dict,
            'engi_dict': engi_dict,
            'serv_list': serv_list
        }
    )
Exemplo n.º 5
0
def manageMinionKeys(request):
    '''
    进入页面,首次展示已经接受的所有Minion ID,从这里获取并返回;
    :param request:
    :return:
    '''
    user = request.user.username
    serv_list = []
    ip_list = []
    serv_dict = {}
    dc_dict = {}
    engi_dict = {}

    sapi = SaltAPI(url=settings.SALT_API['url'],
                   username=settings.SALT_API['user'],
                   password=settings.SALT_API['password'])
    minions, minions_pre, minions_rej = sapi.allMinionKeys()
    # log.debug(str(minions))

    dcs = DataCenter.objects.all()
    for dc in dcs:
        dc_dict[dc.dcen] = dc.dccn
    egs = Dzhuser.objects.all()
    for eg in egs:
        engi_dict[eg.username] = eg.engineer

    for id in minions:
        id_list = id.split('_')
        ip = '.'.join(id_list[4:])
        ip_list.append(ip)
        serv_dict[ip] = id
    ip_list.sort()
    for i in ip_list:
        ipid_dict = {}
        id = serv_dict.get(i)
        ipid_dict[i] = id
        serv_list.append(ipid_dict)
        del ipid_dict

    return render(request, 'manage_keys.html', {
        'dc_dict': dc_dict,
        'engi_dict': engi_dict,
        'serv_list': serv_list
    })
Exemplo n.º 6
0
def minionKeysAccept(request):
    '''
    展示Master已经接受的所有Minion keys;
    :param request:
    :return:
    '''
    user = request.user.username
    dccn_list = []
    dc_hosts = {}

    sapi = SaltAPI(
        url=settings.SALT_API['url'],
        username=settings.SALT_API['user'],
        password=settings.SALT_API['password']
    )

    minions, minions_pre, minions_rej = sapi.allMinionKeys()
    minions_set = set(minions)

    dcs = DataCenter.objects.all()
    for dc in dcs:
        minion_info_dict = {}
        hosts = HostList.objects.filter(dccn=dc.dccn)
        dccn_list.append(dc.dccn)
        for host in hosts:
            minion_id = host.minionid
            if minion_id in minions_set:
                minion_info_dict[minion_id] = host.ip
        dc_hosts[dc.dccn] = minion_info_dict

    dccn_list.sort()

    return render(
        request,
        'manage_keys_accept.html',
        {
            'all_dc_list': dccn_list,
            'all_dc_hosts': dc_hosts
        }
    )