示例#1
0
文件: views.py 项目: donglounew/cmdb
def data_search(request):
    search = request.GET.get('search', '')
    if search:
        x = models.Es()
        y = x.search_all(index='my-index', type='test', reque=search)
        context = {'messages': x.data_despose(data=y)}
        return render(request, "cmdb/index.html", context)
    else:
        x = models.Es()
        # 传输給html的必须是一个字典
        context = {'messages': x.Get_data_all()}
        return render(request, "cmdb/index.html", context)
示例#2
0
 def post(self, request):
     try:
         if request.session['username']:
             # 获取参数数据
             auth = request.POST.get('auth', '')
             if auth:
                 if auth == "0":
                     x = models.Es()
                     context = {
                         'status':
                         1,
                         'messages':
                         x.Get_data_all(
                             index='my-index',
                             type='test',
                             body={"query": {
                                 'term': {
                                     "auth": "0"
                                 }
                             }})
                     }
                     return JsonResponse(context)
                 else:
                     context = {'status': 0, 'messages': "input error"}
                     return JsonResponse(context)
             else:
                 context = {'status': 0, 'message': '查无数据'}
                 return JsonResponse(context)
         else:
             context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
             return JsonResponse(context)
     except KeyError:
         context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
         return JsonResponse(context)
示例#3
0
 def post(self, request):
     try:
         if request.session['username']:
             try:
                 id = request.POST.get('id', '')
                 if id:
                     y = models.Es()
                     y.Rm_data(index='my-task', type='task', id=id)
                     context = {
                         'status': 1,
                         'message': '删除成功!',
                         'messages': id
                     }
                     return JsonResponse(context)
                 else:
                     context = {
                         'status': 0,
                         'message': '删除失败,未接收参数!',
                         'messages': id
                     }
                     return JsonResponse(context)
             except KeyError:
                 context = {'status': 0, 'message': '删除失败!', 'messages': id}
                 return JsonResponse(context)
         else:
             context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
             return JsonResponse(context)
     except KeyError:
         context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
         return JsonResponse(context)
示例#4
0
 def post(self, request):
     try:
         if request.session['username']:
             # 获取参数数据
             id = request.POST.get('id', '')
             if id:
                 if id == "all":
                     x = models.Es()
                     context = {
                         'status':
                         1,
                         'messages':
                         x.Get_data_all(index='my-script', type='script')
                     }
                     return JsonResponse(context)
                 else:
                     context = {'status': 0, 'messages': "input error"}
                     return JsonResponse(context)
             else:
                 context = {'status': 0, 'message': '查无数据'}
                 return JsonResponse(context)
         else:
             context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
             return JsonResponse(context)
     except KeyError:
         context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
         return JsonResponse(context)
示例#5
0
 def post(self, request):
     try:
         if request.session['username']:
             host = request.POST.get('host', '')
             script = request.POST.get('script', '')
             stats = request.POST.get('stats', '')
             #将字符串转化为列表
             host_list = host.strip(',').split(',')
             script_list = script.strip(',').split(',')
             # print(host_list,script_list)
             # print(host,script,stats)
             for host in host_list:
                 if (not host):
                     context = {'status': 0, 'messages': '输入有误'}
                     return JsonResponse(context)
                 x = models.Es()
                 ttx = x.Get_data(index='my-index', type='test', id=host)
                 hostname = ttx['_source']['hostname']
                 port = ttx['_source']['port']
                 username = ttx['_source']['username']
                 password = ttx['_source']['password']
                 # if (not hostname or not port or not username or not password):
                 #                     #     context = {'status': 0, 'messages': '输入有误'}
                 #                     #     return JsonResponse(context)
                 for script in script_list:
                     tty = x.Get_data(index='my-script',
                                      type='script',
                                      id=script)
                     # print(tty['_source']['dir'])
                     # print(tty['_source']['name'])
                     #服务器存储脚本路径
                     local_path = tty['_source']['dir'] + '\\' + tty[
                         '_source']['name']
                     print(local_path)
                     #上次至服务器路径
                     remote_path = r'/tmp/' + tty['_source']['name']
                     print(remote_path)
                     pty = models.SSH_passwd()
                     ttt = pty.put_file(hostname=hostname,
                                        port=port,
                                        username=username,
                                        password=password,
                                        local_path=local_path,
                                        remote_path=remote_path)
                     execmd = 'sh /tmp/' + tty['_source']['name']
                     ttp = pty.sshclient_execmd(hostname=hostname,
                                                port=port,
                                                username=username,
                                                password=password,
                                                execmd=execmd)
                     ttl = eval(ttp)
             context = {'status': 1, 'messages': ttl}
             # context = {'status': 1, 'messages': 'env execmd succeed!'}
             return JsonResponse(context)
         else:
             context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
             return JsonResponse(context)
     except KeyError:
         context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
         return JsonResponse(context)
示例#6
0
 def post(self, request):
     try:
         if request.session['username']:
             tagname = request.POST.get('tagname', '')
             # dir = request.POST.get('dir', '')
             name = request.POST.get('name', '')
             stats = request.POST.get('stats', '')
             notes = request.POST.get('notes', '')
             x = models.Es()
             #部署到生产环节时需要修改此处的绝对路径,存放脚本
             dir = r'C:\Users\Administrator\Desktop\cmdb\myapp\script'
             message = {
                 'tagname': tagname,
                 'dir': dir,
                 'name': name,
                 'stats': stats,
                 'notes': notes
             }
             print(message)
             x.Create_data(index='my-script', type='script', body=message)
             context = {'status': 1, 'messages': '添加成功'}
             return JsonResponse(context)
         else:
             context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
             return JsonResponse(context)
     except KeyError:
         context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
         return JsonResponse(context)
示例#7
0
文件: api_es.py 项目: donglounew/cmdb
    def post(self, request):
        try:
            if request.session['username']:
                y = models.Es()
                id = request.POST.get('id', '')
                print(id)
                # 判断tagname是否已有,若有则不能添加
                if id:
                    tagname = request.POST.get('tagname', '')
                    cpu = request.POST.get('cpu', '')
                    memory = request.POST.get('memory', '')
                    ip = request.POST.get('ip', '')
                    systemd_version = request.POST.get('systemd_version', '')
                    kernel_version = request.POST.get('kernel_version', '')
                    tag = request.POST.get('tag', '')
                    stats = request.POST.get('stats', '')

                    space = request.POST.get('space', '')
                    update_time = time.strftime('%Y-%m-%d %H:%M:%S',
                                                time.localtime())
                    update_username = request.POST.get('update_username', '')
                    notes = request.POST.get('notes', '')
                    cost = request.POST.get('cost', '0')

                    message = {
                        'cpu': cpu,
                        'tagname': tagname,
                        'memory': memory,
                        'ip': ip,
                        'systemd_version': systemd_version,
                        'kernel_version': kernel_version,
                        'tag': tag,
                        'stats': stats,
                        'update_time': update_time,
                        'update_username': update_username,
                        'space': space,
                        'notes': notes,
                        'cost': cost
                    }
                    print(id, message)
                    res = y.update_data(index='my-index',
                                        type='test',
                                        id=id,
                                        body=message)
                    print(res)
                    context = {'status': 1, 'message': '数据更新成功!'}
                    return JsonResponse(context)
                else:
                    context = {'status': 0, 'message': '数据更新失败!'}
                    return JsonResponse(context)
            else:
                context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
                return JsonResponse(context)
        except KeyError:
            context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
            return JsonResponse(context)
示例#8
0
文件: views.py 项目: donglounew/cmdb
def index_return(request):
    try:
        if request.session['username']:
            x = models.Es()
            # 传输給html的必须是一个字典
            context = {'messages': x.Get_data_all()}
            return render(request, "cmdb/index.html", context)
        else:
            return render(request, "login/login.html")
    except KeyError:
        return render(request, "login/login.html")
示例#9
0
文件: views.py 项目: donglounew/cmdb
def data_look(request):
    try:
        if request.session['username']:
            #从前端传来一个值-欠缺;从前端传输回来某条数据的id
            appip = '3'
            y = models.Es()
            res = y.Get_data(index='my-index', type='test', id=appip)
            context = {'messages': json.dumps(res)}
            return render(request, "cmdb/data_look.html", context)
        else:
            return render(request, "login/login.html")
    except KeyError:
        return render(request, "login/login.html")
示例#10
0
文件: api_es.py 项目: donglounew/cmdb
 def post(self, request):
     try:
         if request.session['username']:
             # 获取参数数据
             # session_key = request.session.session_key
             # print(session_key)
             id = request.POST.get('id', '')
             # print(id)
             if id:
                 if id == "all":
                     x = models.Es()
                     context = {
                         'status':
                         1,
                         'messages':
                         x.Get_data_all(index='my-index', type='test')
                     }
                     print(context)
                     return JsonResponse(context)
                 else:
                     try:
                         y = models.Es()
                         res = y.Get_data(index='my-index',
                                          type='test',
                                          id=id)
                         context = {'messages': json.dumps(res)}
                         return JsonResponse(context)
                     except KeyError:
                         context = {'status': 0, 'message': '查无数据'}
                         return JsonResponse(context)
             else:
                 context = {'status': 0, 'message': '查无数据'}
                 return JsonResponse(context)
         else:
             context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
             return JsonResponse(context)
     except KeyError:
         context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
         return JsonResponse(context)
示例#11
0
文件: views.py 项目: donglounew/cmdb
def data_delete(request):
    try:
        if request.session['username']:
            #前端未接入,需要将数据的tagname传输过来,即可删除。目前写死
            tagname = 'nginx1'
            y = models.Es()
            y.Rm_data_tagname(index='my-index', type='test', tagname=tagname)
            context = {'messages': '删除成功!', 'messages_tagname': tagname}
            return render(request, "cmdb/data_delete.html", context)
        else:
            return render(request, "login/login.html")
    except KeyError:
        return render(request, "login/login.html")
示例#12
0
文件: api_es.py 项目: donglounew/cmdb
 def get(self, request):
     try:
         if request.session['username']:
             # 获取参数数据
             search = request.GET.get('search', '')
             if search:
                 x = models.Es()
                 y = x.search_all(index='my-index',
                                  type='test',
                                  reque=search)
                 context = {'status': 1, 'messages': x.data_despose(data=y)}
                 return JsonResponse(context)
             else:
                 x = models.Es()
                 # 传输給html的必须是一个字典
                 context = {'status': 1, 'messages': x.Get_data_all()}
                 return JsonResponse(context)
         else:
             context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
             return JsonResponse(context)
     except KeyError:
         context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
         return JsonResponse(context)
示例#13
0
文件: views.py 项目: donglounew/cmdb
def ssh(request):

    hostname = 'hqh-study-python.com'
    port = 2222
    username = '******'
    password = '******'
    execmd = "cat /etc/redhat-release"

    pty = models.SSH_passwd()
    ttt = pty.sshclient_execmd(hostname=hostname,
                               port=port,
                               username=username,
                               password=password,
                               execmd=execmd)
    print(ttt)
    x = models.Es()
    # 传输給html的必须是一个字典
    context = {'messages': x.Get_data_all()}
    return render(request, "cmdb/index.html", context)
示例#14
0
文件: api_es.py 项目: donglounew/cmdb
    def post(self, request):
        try:
            if request.session['username']:
                y = models.Es()
                id = request.POST.get('id', '')
                print(id)
                # 判断tagname是否已有,若有则不能添加
                if id:
                    hostname = request.POST.get('hostname', '')
                    port = request.POST.get('port', '')
                    username = request.POST.get('username', '')
                    password = request.POST.get('password', '')
                    execmd = request.POST.get('execmd', '')
                    sudo = request.POST.get('sudo', '')
                    auth = request.POST.get('auth', '1')

                    message = {
                        'auth': auth,
                        'execmd': execmd,
                        'sudo': sudo,
                        'password': password,
                        'username': username,
                        'port': port,
                        'hostname': hostname
                    }
                    print(id, message)
                    res = y.update_data(index='my-index',
                                        type='test',
                                        id=id,
                                        body=message)
                    print(res)
                    context = {'status': 1, 'message': '数据更新成功!'}
                    return JsonResponse(context)
                else:
                    context = {'status': 0, 'message': '数据更新失败!'}
                    return JsonResponse(context)
            else:
                context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
                return JsonResponse(context)
        except KeyError:
            context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
            return JsonResponse(context)
示例#15
0
文件: api_es.py 项目: donglounew/cmdb
    def post(self, request):
        try:
            if request.session['username']:
                y = models.Es()
                tagname = request.POST.get('tagname', '')
                # 判断tagname是否已有,若有则不能添加
                if not tagname:
                    context = {'status': 2, 'message': '名称不可为空'}
                    return JsonResponse(context)
                res = y.Get_data_tagname(index='my-index',
                                         type='test',
                                         tagname=tagname)
                if res == 'True':
                    cpu = request.POST.get('cpu', '')
                    memory = request.POST.get('memory', '')
                    ip = request.POST.get('ip', '')
                    systemd_version = request.POST.get('systemd_version', '')
                    kernel_version = request.POST.get('kernel_version', '')
                    tag = request.POST.get('tag', '')

                    message = {
                        'cpu': cpu,
                        'tagname': tagname,
                        'memory': memory,
                        'ip': ip,
                        'systemd_version': systemd_version,
                        'kernel_version': kernel_version,
                        'tag': tag
                    }
                    print(message)
                    y.update_data_tagname(index='my-index',
                                          type='test',
                                          tagname=tagname,
                                          data=message)
                    context = {'status': 1, 'message': '数据已更新!'}
                    return JsonResponse(context)
            else:
                context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
                return JsonResponse(context)
        except KeyError:
            context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
            return JsonResponse(context)
示例#16
0
    def post(self, request):
        try:
            if request.session['username']:
                try:
                    y = models.Es()
                    task = request.POST.get('task', '')
                    # 判断tagname是否已有,若有则不能添加
                    if not task:
                        context = {'status': 2, 'message': '任务不可为空'}
                        return JsonResponse(context)
                    res = y.Get_data_tagname(index='my-task',
                                             type='task',
                                             tagname=task)
                    if res == 'True':
                        context = {'status': 0, 'message': '任务已存在,不需要重复添加'}
                        return JsonResponse(context)

                    status = request.POST.get('status', '')
                    create_time = time.strftime('%Y-%m-%d %H:%M:%S',
                                                time.localtime())
                    message = {
                        'status': status,
                        'task': task,
                        'create_time': create_time
                    }
                    print(message)
                    y.Create_data(index='my-task', type='task', body=message)
                    print("test")
                    context = {'status': 1, 'message': '添加成功'}
                    return JsonResponse(context)
                except KeyError:
                    context = {'status': 3, 'message': '添加失败,KeyError'}
                    return JsonResponse(context)
            else:
                context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
                return JsonResponse(context)
        except KeyError:
            context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
            return JsonResponse(context)
示例#17
0
文件: views.py 项目: donglounew/cmdb
def login_auth(request):
    #只接受POST请求
    try:
        if request.method == "POST":
            #获取用户输入的信息
            usrname = request.POST.get('username', '')
            passwd = request.POST.get('passwd', '')

            #将密码转化为MD5格式
            x = models.Change_md5()
            x.setName(passwd)
            passwd = x.data

            #过滤查询用户输入的用户,返回类型列表
            tty = models.DUser.objects.filter(user=(usrname))
            if not tty:
                # 下列值将给前端使用
                context = {'error_id': 1, 'error': '用户不存在'}
                return render(request, "login/login.html", context)
            # 判断用户输入的密码与数据库保存密码是否一致
            elif passwd == tty[0].passwd:
                request.session['username'] = usrname
                request.session.set_expiry(600)
                x = models.Es()
                #传输給html的必须是一个字典
                # print(request.session.keys())
                # print(x.Get_data_all())
                # context = {'messages': x.Get_data_all(index="my-index", type="test")}
                context = {'messages': 'test'}
                return render(request, "cmdb/index.html", context)
            else:
                print('密码错误')
                context = {'error_id': 2, 'error': '密码错误'}
                return render(request, "login/login.html", context)
        else:
            return render(request, "login/login.html")
    except ValueError:
        return render(request, "login/login.html")
示例#18
0
文件: views.py 项目: donglounew/cmdb
def add_message(request):
    try:
        if request.method == "POST":
            y = models.Es()
            tagname = request.POST.get('tagname', '')
            #判断tagname是否已有,若有则不能添加
            res = y.Get_data_tagname(index='my-index',
                                     type='test',
                                     tagname=tagname)
            if res == 'True':
                context = {'add_messages': '该名称已存在,不可重复添加'}
                return render(request, "cmdb/data_add.html", context)

            cpu = request.POST.get('cpu', '')
            memory = request.POST.get('memory', '')
            ip = request.POST.get('ip', '')
            systemd_version = request.POST.get('systemd_version', '')
            kernel_version = request.POST.get('kernel_version', '')
            tag = request.POST.get('tag', '')
            create_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime())
            message = {
                'cpu': cpu,
                'tagname': tagname,
                'memory': memory,
                'ip': ip,
                'systemd_version': systemd_version,
                'kernel_version': kernel_version,
                'tag': tag,
                'create_time': create_time,
                'status': 0
            }
            # print(message)
            y.Create_data(index='my-index', type='test', body=message)
            return render(request, "cmdb/data_add.html")
        else:
            return render(request, "login/login.html")
    except KeyError:
        return render(request, "login/login.html")
示例#19
0
文件: api_es.py 项目: donglounew/cmdb
 def post(self, request):
     try:
         if request.session['username']:
             try:
                 # 前端未接入,需要将数据的tagname传输过来,即可删除。目前写死
                 tagname = request.POST.get('tagname', '')
                 if tagname:
                     # tagname = 'nginx1'
                     y = models.Es()
                     y.Rm_data_tagname(index='my-index',
                                       type='test',
                                       tagname=tagname)
                     context = {
                         'status': 1,
                         'message': '删除成功!',
                         'messages': tagname
                     }
                     return JsonResponse(context)
                 else:
                     context = {
                         'status': 0,
                         'message': '删除失败,未接收参数!',
                         'messages': tagname
                     }
                     return JsonResponse(context)
             except KeyError:
                 context = {
                     'status': 0,
                     'message': '删除失败!',
                     'messages': tagname
                 }
                 return JsonResponse(context)
         else:
             context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
             return JsonResponse(context)
     except KeyError:
         context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
         return JsonResponse(context)
示例#20
0
文件: api_es.py 项目: donglounew/cmdb
    def post(self, request):
        try:
            if request.session['username']:
                try:
                    y = models.Es()
                    tagname = request.POST.get('tagname', '')
                    # 判断tagname是否已有,若有则不能添加
                    print(type(tagname))
                    if not tagname:
                        context = {'status': 2, 'message': '名称不可为空'}
                        return JsonResponse(context)
                    res = y.Get_data_tagname(index='my-index',
                                             type='test',
                                             tagname=tagname)
                    if res == 'True':
                        # print("test")
                        context = {'status': 0, 'message': '该名称已存在,不可重复添加'}
                        return JsonResponse(context)
                    cpu = request.POST.get('cpu', '')
                    memory = request.POST.get('memory', '')
                    ip = request.POST.get('ip', '')
                    systemd_version = request.POST.get('systemd_version', '')
                    kernel_version = request.POST.get('kernel_version', '')
                    tag = request.POST.get('tag', '')
                    i_ip = request.POST.get('i_ip', '')
                    e_ip = request.POST.get('e_ip', '')
                    # e_ip为外网ip,i_ip为内网ip
                    if (i_ip or e_ip):
                        if (i_ip and e_ip):
                            ip = i_ip + "/" + e_ip
                        elif i_ip:
                            ip = i_ip
                        else:
                            ip = e_ip
                    space = request.POST.get('space', '')
                    notes = request.POST.get('notes', '')
                    cost = request.POST.get('cost', '0')
                    stats = request.POST.get('stats', '')
                    hostname = request.POST.get('hostname', '')
                    port = request.POST.get('port', '')
                    username = request.POST.get('username', '')
                    password = request.POST.get('password', '')
                    auth = request.POST.get('auth', '1')
                    sudo = request.POST.get('sudo', '1')
                    create_time = time.strftime('%Y-%m-%d %H:%M:%S',
                                                time.localtime())

                    message = {
                        'cpu': cpu,
                        'tagname': tagname,
                        'memory': memory,
                        'ip': ip,
                        'systemd_version': systemd_version,
                        'kernel_version': kernel_version,
                        'tag': tag,
                        'create_time': create_time,
                        'space': space,
                        'stats': stats,
                        'notes': notes,
                        'cost': cost,
                        'auth': auth,
                        'sudo': sudo,
                        'port': port,
                        'hostname': hostname,
                        'username': username,
                        'password': password
                    }
                    print(message)
                    y.Create_data(index='my-index', type='test', body=message)
                    context = {'status': 1, 'message': '添加成功'}
                    return JsonResponse(context)
                except KeyError:
                    context = {'status': 0, 'message': '添加失败,KeyError'}
                    return JsonResponse(context)
            else:
                context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
                return JsonResponse(context)
        except KeyError:
            context = {'status': 7, 'messages': '会话已失效,请重新登录!'}
            return JsonResponse(context)