Exemple #1
0
def salt_index(request):
    line_list = Line.objects.filter()
    business = Project.objects.filter(line__isnull=False)
    no_business = Project.objects.filter(line__isnull=True)
    # business = Project.objects.all()

    data = host_all()
    ztree_data = ztree_tag(request.user.username)

    idc_count = IDC.objects.all()

    idc_data = {}
    for idc in idc_count:
        idc_data[idc.name] = Host.objects.filter(idc=idc).count()
    user_count = CustomUser.objects.filter().count()

    department_count = department_Mode.objects.filter().count()
    # idc = IDC.objects.get(uuid='9cd9516af1454c619af617d92050fc99')
    # f = open("/Users/voilet/python_code/cmdb/doc/cmdb.txt", "r")
    # s = f.readlines()
    # for i in s:
    #     i = i.split()
    #     t = Host(eth1=i[0], number=i[1], Services_Code=i[3], server_sn=i[2], status=1, brand=u'Dell R420',
    #              idc=idc, system=u"CentOS")
    #     t.save()
    # f.close()

    return render_to_response('default/default.html', locals(), context_instance=RequestContext(request))
Exemple #2
0
def salt_index_new(request):
    line_list = Line.objects.all()
    if line_list.count() == 0:
        return HttpResponseRedirect('/assets/product/add/?init=true')

    ztree_data = ztree_tag(request.user.username)
    users = CustomUser.objects.count()
    hosts = Host.objects.count()
    problems = Incident.objects.count()
    project = Project.objects.count()
    idc_count = IDC.objects.all().count()
    if idc_count == 0:
        return HttpResponseRedirect('/assets/idc_add/?init=true')
    if project == 0:
        return HttpResponseRedirect('/assets/server/type/add/?init=true')
    if hosts == 0:
        return HttpResponseRedirect('/assets/host_add/?init=true')
    swan_count = project_swan.objects.count()
    swan_log_data = SwanLog.objects.all().order_by("-swan_datetime")
    swan_log = swan_log_data[:10]
    start_time, stop_time = Date_time()
    swan_push_data = SwanLog.objects.filter(swan_datetime__gte=stop_time)
    swan_data = {}
    for i in swan_push_data:
        project_name = i.project_name
        if swan_data.get(project_name, False):
            swan_data[i.project_name]["count"] += 1
        else:
            swan_data[i.project_name] = {"count": 1, "uuid": i.project_uuid}
    # for k, v in swan_data.items():
    #     print k, v
    return render_to_response('default/default_new.html', locals(), context_instance=RequestContext(request))
Exemple #3
0
def salt_index_new(request):
    line_list = Line.objects.all()
    if line_list.count() == 0:
        return HttpResponseRedirect('/assets/product/add/?init=true')

    ztree_data = ztree_tag(request.user.username)
    users = CustomUser.objects.count()
    hosts = Host.objects.count()
    problems = Incident.objects.count()
    project = Project.objects.count()
    idc_count = IDC.objects.all().count()
    if idc_count == 0:
        return HttpResponseRedirect('/assets/idc_add/?init=true')
    if project == 0:
        return HttpResponseRedirect('/assets/server/type/add/?init=true')
    if hosts == 0:
        return HttpResponseRedirect('/assets/host_add/?init=true')
    swan_count = project_swan.objects.count()
    swan_log_data = SwanLog.objects.all().order_by("-swan_datetime")
    swan_log = swan_log_data[:10]
    start_time, stop_time = Date_time()
    swan_push_data = SwanLog.objects.filter(swan_datetime__gte=stop_time)
    swan_data = {}
    for i in swan_push_data:
        project_name = i.project_name
        if swan_data.get(project_name, False):
            swan_data[i.project_name]["count"] += 1
        else:
            swan_data[i.project_name] = {"count": 1, "uuid": i.project_uuid}
    # for k, v in swan_data.items():
    #     print k, v
    return render_to_response('default/default_new.html',
                              locals(),
                              context_instance=RequestContext(request))
Exemple #4
0
def ztree_project(request):
    line_list = Line.objects.filter()
    business = Project.objects.filter(line__isnull=False)
    no_business = Project.objects.filter(line__isnull=True)
    ztree_data = ztree_tag(request.user.username)

    return render_to_response('default/default.html', locals(), context_instance=RequestContext(request))
Exemple #5
0
def salt_index(request):
    line_list = Line.objects.filter()
    business = Project.objects.filter(line__isnull=False)
    no_business = Project.objects.filter(line__isnull=True)
    # business = Project.objects.all()

    data = host_all()
    ztree_data = ztree_tag(request.user.username)

    idc_count = IDC.objects.all()

    idc_data = {}
    for idc in idc_count:
        idc_data[idc.name] = Host.objects.filter(idc=idc).count()
    user_count = CustomUser.objects.filter().count()

    department_count = department_Mode.objects.filter().count()
    # idc = IDC.objects.get(uuid='9cd9516af1454c619af617d92050fc99')
    # f = open("/Users/voilet/python_code/cmdb/doc/cmdb.txt", "r")
    # s = f.readlines()
    # for i in s:
    #     i = i.split()
    #     t = Host(eth1=i[0], number=i[1], Services_Code=i[3], server_sn=i[2], status=1, brand=u'Dell R420',
    #              idc=idc, system=u"CentOS")
    #     t.save()
    # f.close()

    return render_to_response('default/default.html',
                              locals(),
                              context_instance=RequestContext(request))
Exemple #6
0
def OpsDoc(request):
    line_list = Line.objects.filter()
    business = Project.objects.filter(line__isnull=False)
    no_business = Project.objects.filter(line__isnull=True)
    ztree_data = ztree_tag(request.user.username)
    users = CustomUser.objects.all().count()
    hosts = Host.objects.all()
    problems = Incident.objects.all().count()
    project = Project.objects.all().count()
    swan_count = project_swan.objects.all().count()
    swan_log = SwanLog.objects.all().order_by("-swan_datetime")[:10]
    return render_to_response('default/markdown.html', locals(), context_instance=RequestContext(request))
Exemple #7
0
def OpsDoc(request):
    line_list = Line.objects.filter()
    business = Project.objects.filter(line__isnull=False)
    no_business = Project.objects.filter(line__isnull=True)
    ztree_data = ztree_tag(request.user.username)
    users = CustomUser.objects.all().count()
    hosts = Host.objects.all()
    problems = Incident.objects.all().count()
    project = Project.objects.all().count()
    swan_count = project_swan.objects.all().count()
    swan_log = SwanLog.objects.all().order_by("-swan_datetime")[:10]
    return render_to_response('default/markdown.html', locals(), context_instance=RequestContext(request))
Exemple #8
0
def ZtreeIndex(request):
    """

    :param request:
    :return:
    """
    if request.method == 'POST':
        otherParam = request.POST.get("otherParam")
        status = request.POST.get("status")
        line_id = request.POST.get("line_id")

        try:
            name = request.POST.get("name")
            id = request.POST.get("id")

        except:
            name = False

        if not name:
            ztree = ztree_tag(request.user.username)
            return HttpResponse(json.dumps(ztree, ensure_ascii=False, indent=4))

        elif int(status[0]) == 1:
            ztree = []
            return HttpResponse(json.dumps(ztree, ensure_ascii=False, indent=4))

        else:
            ztree = []
            bus_data = Project.objects.get(service_name=name)
            server_list = Host.objects.filter(business=bus_data).order_by("create_time")

            s = []
            for i in server_list:
                t = i.service.all().values()
                for b in t:
                    if b not in s:
                        s.append(b)
            tree_id = 0
            for i in s:
                tree_id += 1

                token = hashlib.sha1(request.user.username + auth_key + i.get("name") + time.strftime('%Y-%m-%d',
                                                                                                      time.localtime(
                                                                                                              time.time()))).hexdigest()

                ztree.append({"id": tree_id, "status": 3, "line_id": line_id, "name": i.get("name"), "token": token,
                              "t": i.get("name"), "business": bus_data.service_name})

            return HttpResponse(json.dumps(ztree, ensure_ascii=False, indent=4))
    content = {"status": 403, "message": "auth error"}
    return HttpResponse(json.dumps(content, ensure_ascii=False, indent=4))
Exemple #9
0
def user_auth_server(request, uuid):
    u"""
    不同用户分配不同服务器权限

    """
    userId = str(uuid)
    user_data = CustomUser.objects.get(uuid=uuid)
    data = server_from()
    business = Project.objects.all()
    all_node = AuthNode.objects.filter(user_name=user_data)
    node_count = all_node.count()

    line_list = Line.objects.filter()
    business = Project.objects.filter(line__isnull=False)
    no_business = Project.objects.filter(line__isnull=True)
    ztree_data = ztree_tag(request.user.username)
    users = 108
    hosts = Host.objects.all()
    problems = 20

    return render_to_response('auth/add_host_auth_ztree.html', locals(), context_instance=RequestContext(request))
Exemple #10
0
def user_auth_server(request, uuid):
    u"""
    不同用户分配不同服务器权限

    """
    userId = str(uuid)
    user_data = CustomUser.objects.get(uuid=uuid)
    data = server_from()
    business = Project.objects.all()
    all_node = AuthNode.objects.filter(user_name=user_data)
    node_count = all_node.count()

    line_list = Line.objects.filter()
    business = Project.objects.filter(line__isnull=False)
    no_business = Project.objects.filter(line__isnull=True)
    ztree_data = ztree_tag(request.user.username)
    users = 108
    hosts = Host.objects.all()
    problems = 20

    return render_to_response('auth/add_host_auth_ztree.html',
                              locals(),
                              context_instance=RequestContext(request))
Exemple #11
0
def ztree_business(request):
    u"""
    树请求验证
    :param request:
    :return:
    """
    business_name = request.GET.get("name")
    get_token = str(request.GET.get("token"))
    user = request.GET.get("user")
    sum_token = str(hashlib.sha1(request.user.username + auth_key + business_name + time.strftime('%Y-%m-%d',
                                                                                                  time.localtime(
                                                                                                      time.time()))).hexdigest())
    userId = str(user)
    user_data = CustomUser.objects.get(uuid=userId)

    if get_token != sum_token:
        content_status = False

    if request.method == 'POST':
        data = request.POST
        auth_weights = data.get("auth_weights", False)
        auth = int(data.get("auth"))
        for i in data.getlist("node_name"):
            server = Host.objects.get(uuid=i)
            # if user_data.department.desc_gid == 1001:
            if AuthNode.objects.filter(user_name=user_data, node=server).count() == 0:
                data = AuthNode(user_name=user_data, auth=auth, node=server)
                data.save()

                args = {"user": user_data.username,
                        "type": 1,
                        "auth": auth,
                        "node": server.node_name,
                        "ip": server.eth1,
                        "uid": int(3000 + user_data.id),
                        "gid": int(user_data.department.desc_gid),
                        "ssh_key": (user_data.user_key).replace("ssh-rsa ", "")}
                print args
                s = RabApi(args=args)
                print s.SendMessage()
            else:
                print u"数据已存在"

    data = server_from()
    business = Project.objects.all()
    all_node = AuthNode.objects.filter(user_name=user_data)
    ip_list = [i.node.eth1 for i in all_node]
    node_count = all_node.count()

    if business_name != u"未分类":
        bus_data = Project.objects.get(pk=request.GET.get("name"))
        server_list = Host.objects.filter(business=bus_data).order_by("create_time")

    else:
        bus_data = u'未分类'
        idc_data = IDC.objects.filter(type=1)
        server_list = Host.objects.filter(business__isnull=True, idc=idc_data).order_by("create_time")

    ztree_data = ztree_tag(request.user.username)

    content_status = True

    return render_to_response('auth/add_host_auth_project.html', locals(), context_instance=RequestContext(request))
Exemple #12
0
def ztree_business(request):
    u"""
    树请求验证
    :param request:
    :return:
    """
    business_name = request.GET.get("name")
    get_token = str(request.GET.get("token"))
    user = request.GET.get("user")
    sum_token = str(
        hashlib.sha1(request.user.username + auth_key + business_name +
                     time.strftime('%Y-%m-%d', time.localtime(time.time()))).
        hexdigest())
    userId = str(user)
    user_data = CustomUser.objects.get(uuid=userId)

    if get_token != sum_token:
        content_status = False

    if request.method == 'POST':
        data = request.POST
        auth_weights = data.get("auth_weights", False)
        auth = int(data.get("auth"))
        for i in data.getlist("node_name"):
            server = Host.objects.get(uuid=i)
            # if user_data.department.desc_gid == 1001:
            if AuthNode.objects.filter(user_name=user_data,
                                       node=server).count() == 0:
                data = AuthNode(user_name=user_data, auth=auth, node=server)
                data.save()

                args = {
                    "user": user_data.username,
                    "type": 1,
                    "auth": auth,
                    "node": server.node_name,
                    "ip": server.eth1,
                    "uid": int(3000 + user_data.id),
                    "gid": int(user_data.department.desc_gid),
                    "ssh_key": (user_data.user_key).replace("ssh-rsa ", "")
                }
                print args
                s = RabApi(args=args)
                print s.SendMessage()
            else:
                print u"数据已存在"

    data = server_from()
    business = Project.objects.all()
    all_node = AuthNode.objects.filter(user_name=user_data)
    ip_list = [i.node.eth1 for i in all_node]
    node_count = all_node.count()

    if business_name != u"未分类":
        bus_data = Project.objects.get(pk=request.GET.get("name"))
        server_list = Host.objects.filter(
            business=bus_data).order_by("create_time")

    else:
        bus_data = u'未分类'
        idc_data = IDC.objects.filter(type=1)
        server_list = Host.objects.filter(business__isnull=True,
                                          idc=idc_data).order_by("create_time")

    ztree_data = ztree_tag(request.user.username)

    content_status = True

    return render_to_response('auth/add_host_auth_project.html',
                              locals(),
                              context_instance=RequestContext(request))
Exemple #13
0
def ztree_business(request):
    """
    树请求验证
    :param request:
    :return:
    """
    business_name = request.GET.get("uuid", False)
    get_token = str(request.GET.get("token", False))
    ztree_data = ztree_tag(request.user.username)

    try:
        sum_token = str(hashlib.sha1(request.user.username + auth_key + business_name +
                                     time.strftime('%Y-%m-%d', time.localtime(time.time()))).hexdigest())
    except TypeError:
        sum_token = False

    if request.GET.get("options") == "host":
        uuid = request.GET.get('uuid', '')
        ip = request.GET.get('ip', '')
        if uuid:
            host = get_object_or_404(Host, uuid=uuid)
        elif ip:
            host = get_object_or_404(Host, eth1=ip)
        host_record = HostRecord.objects.filter(host=host).order_by('-time')
        user_audit = AuthNode.objects.filter(node=host)
        audit_count = user_audit.count()
        return render_to_response('ztree/host_detail.html', locals(), context_instance=RequestContext(request))


    content_status = True
    idle = request.GET.get("idle", False)

    if get_token != sum_token:
        content_status = False
        return render_to_response('ztree/ztree_service.html', locals(), context_instance=RequestContext(request))

    if business_name != u"未分类":
        try:
            bus_data = Project.objects.get(uuid=request.GET.get("uuid"))
            if not idle:
                server_list = Host.objects.filter(business=bus_data, idle=True).order_by("create_time")
            else:
                server_list = Host.objects.filter(business=bus_data, idle=False).order_by("create_time")
        except:
            pass

    else:
        bus_data = u'未分类'
        idc_data = IDC.objects.filter(type=1)
        if not idle:
            server_list = Host.objects.filter(business__isnull=True, idc=idc_data, idle=True).order_by("create_time")
        else:
            server_list = Host.objects.filter(business__isnull=True, idc=idc_data, idle=False).order_by("create_time")

    if request.GET.get("options") == "swan_push":
        s = Ztree_class(business_name, request.user.first_name)
        rst = s.swan()
        rst_data = rst.get("swan_name")
        status = len(rst_data)
        return render_to_response('ztree/swan.html', locals(), context_instance=RequestContext(request))

    if request.GET.get("options") == "doc":
        data = Project.objects.get(pk=business_name)
        # return render_to_response('ztree/swan.html', locals(), context_instance=RequestContext(request))
        return render_to_response('markdown/index.html', locals(), context_instance=RequestContext(request))

    if request.GET.get("options") == "highstate":
        project = Project.objects.get(uuid=business_name)
        host_list = Host.objects.filter(business=project)
        return render_to_response('ztree/highstate.html', locals(), context_instance=RequestContext(request))

    if request.GET.get("options") == "monitor":
        return render_to_response('ztree/zabbix_count.html', locals(), context_instance=RequestContext(request))

    if request.GET.get("options") == "salt":
        return render_to_response('ztree/saltstack.html', locals(), context_instance=RequestContext(request))


    if request.GET.get("options") == "project":
        ip_list = []
        server_list = {}
        line_name = Line.objects.get(pk=business_name)
        business_data = Project.objects.filter(line=business_name)

        for i in business_data:
            node = Host.objects.filter(business=i, idle=True)
            for k in node:
                if k.eth1 not in ip_list:
                    ip_list.append(k.eth1)
                    server_list[str(k.uuid)] = k.eth1
        count = len(ip_list)
        return render_to_response('ztree/project.html', locals(), context_instance=RequestContext(request))

    if request.GET.get("options") == "types":
        get_env = request.GET.get("name")
        business_data = Project.objects.filter(pk=business_name)
        server_list = Host.objects.filter(business=business_data, env=get_env).order_by("-create_time")

        count = server_list.count()
        return render_to_response('ztree/ztree.html', locals(), context_instance=RequestContext(request))

    if request.GET.get("options") == "service":
        s = []
        bus_data = Project.objects.get(uuid=business_name)
        server_list = Host.objects.filter(business=bus_data, idle=True).order_by("create_time")

        for i in server_list:
            t = i.service.all()
            for b in t:
                if b not in s:
                    s.append(b)

        tag = request.GET.get("tgt", False)

        if tag:
            service_all = Service.objects.get(name=tag)
            server_list = Host.objects.filter(service=service_all, business=bus_data)

        return render_to_response('ztree/ztree_service.html', locals(), context_instance=RequestContext(request))

    count = server_list.count()
    return render_to_response('ztree/ztree.html', locals(), context_instance=RequestContext(request))