Example #1
0
def list_subdomain(request):
    '''
    列出包含A记录的所有子域名
    :return:
    '''
    d_obj = Domain()
    dm_obj = dmonitor.DMonitor()

    domain_list = d_obj.list()

    id_list = [d.get("id") for d in domain_list]

    d2r_names = {}

    # st = time.time()
    li = []
    for did in id_list:
        t = MyThread(dm_obj.list_subdomain, args=(None, did))
        li.append(t)
        t.start()

    for t in li:
        t.join()  # 一定要join,不然主线程比子线程跑的快,会拿不到结果
        status, data = t.get_result()
        if status:
            d_name = data.get("domain", {}).get("name", "")
            d_id = data.get("domain", {}).get("id", "")
            r_name = data.get("subdomain", [])
            if r_name:
                d2r_names[d_name] = dict(id=d_id, rnames=r_name)
    # et = time.time()
    # print et - st

    # st = time.time()
    # for did in id_list:
    #     status,data = dm_obj.list_subdomain(domain_id=did)
    #     if status:
    #         d_name = data.get("domain",{}).get("name","")
    #         d_id = data.get("domain",{}).get("id","")
    #         r_name = data.get("subdomain",[])
    #         if r_name:
    #             d2r_names[d_name] = dict(id=d_id,rnames=r_name)
    # et = time.time()
    # print et - st

    # print d2r_names
    return HttpResponse(json.dumps(d2r_names))
Example #2
0
def dnspod(request):
    '''
    获取dnspod域名列表
    :return:
    '''
    d_obj = Domain()
    group_id = request.GET.get("group_id", "")
    groups = d_obj.group_list().get('groups', [])
    domain_list = d_obj.list(group_id=group_id)
    result = {}

    status = request.GET.get("status", "")
    message = request.GET.get("message", "")
    if status.isdigit():
        result = {"code": int(status), "message": message}

    return render(request,
                  "dnspod.html", {
                      "domain_list": domain_list,
                      "result": result,
                      "groups": groups,
                      "group_id": group_id
                  },
                  using='jinja2')