Ejemplo n.º 1
0
def close_log(request):
    """
    关闭实时日志
    :param request:
    :return:
    """

    res = BaseResponse()  # 初始化返回值
    if request.method == "POST":
        ip = request.POST.get('ip')
        dir = request.POST.get('dir')
        # 日志文件
        file_name = request.POST.get('file_name')
        log_file = os.path.join(settings.LOG_BASE_DIR, dir, file_name)
        # print("关闭日志%s" % log_file)

        cmd = "kill -9 `ps -aux|grep -v grep|grep %s|awk '{print $2}'`" % file_name
        print("关闭日志,命令:", cmd)
        result = ssh3(ip, cmd)
        # print("result", result,type(result))

        if not result or result['status'] != 0:
            res.code = 500
            res.error = "错误,主机: {},关闭实时日志: {} 失败!".format(ip, log_file)
            return HttpResponse(json.dumps(res.__dict__))

    else:
        res.code = 500
        res.error = "非法请求"

    return HttpResponse(json.dumps(res.__dict__))
Ejemplo n.º 2
0
 def post_idc(request):
     response = BaseResponse()
     try:
         name = request.POST.get('name', None)
         floor = request.POST.get('floor', None)
         # add_dict = QueryDict(request.body, encoding='utf-8')
         # print('add_dict', add_dict)
         # print(hostname, manage_ip, device_type_id, device_status_id, idc_id, business_unit_id)
         t_dict = {'name': name, 'floor': floor}
         print(t_dict)
         error_count = 0
         idc_obj = models.IDC.objects.filter(**t_dict)
         if idc_obj:
             response.message = '添加的IDC信息已经存在'
             response.status = False
             response.error = '错误代码1'
             pass
         else:
             try:
                 models.IDC.objects.create(name=name, floor=floor)
             except Exception as e:
                 response.error = str(e)
                 response.status = False
                 error_count += 1
             if error_count:
                 response.message = '添加IDC信息失败'
             else:
                 response.message = '添加IDC信息成功'
     except Exception as e:
         response.status = False
         response.message = str(e)
     return response
     pass
Ejemplo n.º 3
0
 def post_users(request):
     response = BaseResponse()
     try:
         name = request.POST.get('name', None)
         email = request.POST.get('email', None)
         phone = request.POST.get('phone', None)
         mobile = request.POST.get('mobile', None)
         # add_dict = QueryDict(request.body, encoding='utf-8')
         # print('add_dict', add_dict)
         # print(hostname, manage_ip, device_type_id, device_status_id, idc_id, business_unit_id)
         t_dict = {'name': name, 'email': email, 'phone': phone, 'mobile': mobile}
         print(t_dict)
         error_count = 0
         idc_obj = models.UserProfile.objects.filter(**t_dict)
         if idc_obj:
             response.message = '添加的IDC信息已经存在'
             response.status = False
             response.error = '错误代码1'
             pass
         else:
             try:
                 models.UserProfile.objects.create(**t_dict)
             except Exception as e:
                 response.error = str(e)
                 response.status = False
                 error_count += 1
             if error_count:
                 response.message = '添加IDC信息失败'
             else:
                 response.message = '添加IDC信息成功'
     except Exception as e:
         response.status = False
         response.message = str(e)
     return response
     pass
Ejemplo n.º 4
0
    def post(self, request, *args, **kwargs):
        """
        将课程添加到购物车
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        ret = BaseResponse()
        try:
            # 1. 获取用户提交的课程ID和价格策略ID
            course_id = int(request.data.get('courseid'))
            policy_id = int(request.data.get('policyid'))

            # 2. 获取专题课信息
            course = models.Course.objects.get(id=course_id)

            # 3. 获取该课程相关的所有价格策略
            price_policy_list = course.price_policy.all()
            price_policy_dict = {}
            for item in price_policy_list:
                price_policy_dict[item.id] = {
                    "period": item.valid_period,
                    "period_display": item.get_valid_period_display(),
                    "price": item.price,
                }

            # 4. 判断用户提交的价格策略是否合法
            if policy_id not in price_policy_dict:
                # 价格策略不合法
                raise PricePolicyInvalid('价格策略不合法')

            # 5. 将购物信息添加到redis中
            # self.conn
            # car_key = "luffy_shopping_car_%s_%s"
            car_key = settings.SHOPPING_CAR_KEY % (
                request.auth.user_id,
                course_id,
            )
            car_dict = {
                'title': course.name,
                'img': course.course_img,
                'default_policy': policy_id,
                'policy': json.dumps(price_policy_dict)
            }
            # conn = get_redis_connection("default")
            self.conn.hmset(car_key, car_dict)
            ret.data = '添加成功'

        except PricePolicyInvalid as e:
            ret.code = 2001
            ret.error = e.msg
        except ObjectDoesNotExist as e:
            ret.code = 2001
            ret.error = '课程不存在'
        except Exception as e:
            ret.code = 1001
            ret.error = '获取购物车失败'
        return Response(ret.dict)
Ejemplo n.º 5
0
    def patch(self,request,*args,**kwargs):

        ret = BaseResponse()
        try:
            # 1. 用户提交要修改的优惠券
            course = request.data.get('courseid')
            course_id = str(course) if course else course

            coupon_id = str(request.data.get('couponid'))

            # payment_global_coupon_1
            redis_global_coupon_key = settings.PAYMENT_COUPON_KEY %(request.auth.user_id,)

            # 修改全站优惠券
            if not course_id:
                if coupon_id == "0":
                    # 不使用优惠券,请求数据:{"couponid":0}
                    self.conn.hset(redis_global_coupon_key,'default_coupon',coupon_id)
                    ret.data = "修改成功"
                    return Response(ret.dict)
                # 使用优惠券,请求数据:{"couponid":2}
                coupon_dict = json.loads(self.conn.hget(redis_global_coupon_key,'coupon').decode('utf-8'))

                # 判断用户选择得优惠券是否合法
                if coupon_id not in coupon_dict:
                    ret.code = 1001
                    ret.error = "全站优惠券不存在"
                    return Response(ret.dict)

                # 选择的优惠券合法
                self.conn.hset(redis_global_coupon_key, 'default_coupon', coupon_id)
                ret.data = "修改成功"
                return Response(ret.dict)

            # 修改课程优惠券
            # luffy_payment_1_1
            redis_payment_key = settings.PAYMENT_KEY % (request.auth.user_id, course_id,)
            # 不使用优惠券
            if coupon_id == "0":
                self.conn.hset(redis_payment_key,'default_coupon',coupon_id)
                ret.data = "修改成功"
                return Response(ret.dict)

            # 使用优惠券
            coupon_dict = json.loads(self.conn.hget(redis_payment_key,'coupon').decode('utf-8'))
            if coupon_id not in coupon_dict:
                ret.code = 1010
                ret.error = "课程优惠券不存在"
                return Response(ret.dict)

            self.conn.hset(redis_payment_key,'default_coupon',coupon_id)

        except Exception as e:
            ret.code = 1111
            ret.error = "修改失败"

        return Response(ret.dict)
Ejemplo n.º 6
0
    def create(self, request, *args, **kwargs):
        """ 添加购物车 """
        reply = BaseResponse()
        try:
            # 1. 获取用户id
            user_pk = request.user.pk

            # 2. 获取课程id和对应的价格策略id
            course_id = request.data["course_id"]
            price_policy_id = request.data["price_policy_id"]

            # 3.校验课程数据合法性
            course_obj = models.Course.objects.get(pk=course_id)
            # 4. 校验课程关联的价格策略
            price_policy_list = course_obj.price_policy.all()

            # 构建价格策略字典
            price_policy_dict = {}
            for price_policy in price_policy_list:
                price_policy_dict[price_policy.pk] = {
                    "price": price_policy.price,
                    "valid_period": price_policy.valid_period,
                    "valid_period_text":
                    price_policy.get_valid_period_display()
                }
            if price_policy_id not in price_policy_dict:
                raise PriceDoesNotExist

            # 5.redis中存储数据
            # 得到redis中存储的key
            shopping_car_key = "shopping_car_%s_%s" % (user_pk, course_id)
            # 构造value
            course_info = {
                "name": course_obj.name,
                "course_img": course_obj.course_img,
                "relate_price_policy": json.dumps(price_policy_dict),
                "default_price_policy_id": price_policy_id
            }
            reply.data = "更新购物车成功" if self.redis.exists(
                shopping_car_key) else "加入购物车成功"

            self.redis.hmset(shopping_car_key, course_info)

        except ObjectDoesNotExist as e:
            reply.code = "1002"
            reply.error = "课程不存在!!!"

        except PriceDoesNotExist as e:
            reply.code = "1003"
            reply.error = e.error

        except Exception as e:
            reply.code = "1004"
            reply.error = str(e)

        return Response(reply.dict)
Ejemplo n.º 7
0
    def post(self, request, *args, **kwargs):
        """
        购物车添加一条数据
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        results = BaseResponse()
        try:
            # 1.获取用户提交的 课程ID 和 价格策略ID
            course_id = int(
                request.data.get('course_id'))  # 有可能传来是 str 类型,不管什么类型,都转换成int
            policy_id = int(request.data.get('policy_id'))
            # 2.获取课程信息
            course_obj = models.Course.objects.get(
                id=course_id)  # 课程对象。 如果取不到或取多个就报错 ObjectDoesNotExist
            # 3.获取该课程的所有的价格策略
            price_policy_list = course_obj.price_policy.all()
            price_policy_dict = {}
            for item in price_policy_list:
                price_policy_dict[item.id] = {
                    "period_display": item.get_valid_period_display(),
                    "period": item.valid_period,
                    "price": item.price
                }
            # 4.检测 用户提交的价格策略id 是否存在(合法) 该课程是否有此 价格策略
            if policy_id not in price_policy_dict:  # 价格策略不合法, 抛出自定义异常
                raise PricePolicyInvalid("价格策略不合法")
            # 5.将购物信息添加到 redis 中
            user_id = request.user.id  # 用户认证过后用  user_id = request.user.id 来获取
            redis_car_key = "shopping_car_{0}_{1}".format(
                user_id, course_id)  # redis 中存的key
            # redis_car_key = settings.SHOPPING_CART_KEY.format(user_id, course_id)  # 可以配置到 settings.py 里面

            self.conn.hmset(
                redis_car_key, {
                    "title": course_obj.name,
                    "img": course_obj.course_img,
                    "policy": json.dumps(price_policy_dict),
                    "default_policy": policy_id
                })
            results.data = "添加成功"
        except ObjectDoesNotExist as e:
            results.code = 3001
            results.error = "课程不存在"
        except PricePolicyInvalid as e:
            results.code = 2001
            results.error = e.error
        except Exception as e:
            results.code = 1001
            results.error = "添加失败"
        return Response(results.dict)
Ejemplo n.º 8
0
    def process(server_obj,server_info,user_obj):
        response = BaseResponse()
        try:
            # 获取数据库中所有网卡信息
            # server_info 服务器最新汇报的数据
            nic_info = server_info['nic']
            if not nic_info['status']:
                response.status = False
                models.ErrorLog.objects.create(asset_obj=server_obj.asset,title='nic-agent',content=nic_info['error'])
                return response

            client_nic_dict = nic_info['data']
            nic_obj_list = models.NIC.objects.filter(server_obj=server_obj)
            nic_name_list = map(lambda x:x,(item.name for item in nic_obj_list))

            update_list = agorithm.get_intersection(set(client_nic_dict.keys()),set(nic_name_list))
            add_list = agorithm.get_exclude(client_nic_dict.keys(),update_list)
            del_list = agorithm.get_exclude(nic_name_list,update_list)

            # 删除 更新 添加操作
            HandleNic._add_nic(add_list, client_nic_dict, server_obj, user_obj)
            HandleNic._update_nic(update_list, nic_obj_list, client_nic_dict, server_obj, user_obj)
            HandleNic._del_nic(del_list, nic_obj_list, server_obj, user_obj)


        except Exception as e:
            response.status = False
            response.error = str(e)
            models.ErrorLog.objects.create(asset_obj=server_obj.asset,title='nic-run',content=traceback.format_exc())

        return response
Ejemplo n.º 9
0
 def put_queryset(self, request):
     response = BaseResponse()
     try:
         response.error = []
         put_dict = QueryDict(request.body, encoding='utf-8')
         update_list = json.loads(put_dict.get('update_list'))
         error_count = 0
         for row_dict in update_list:
             nid = row_dict.pop('nid')
             num = row_dict.pop('num')
             try:
                 self.queryset.filter(id=nid).update(**row_dict)
             except Exception as e:
                 response.error.append({'num': num, 'message': str(e)})
                 response.status = False
                 error_count += 1
         if error_count:
             response.message = '共%s条,失败%s条' % (
                 len(update_list), error_count,)
         else:
             response.message = '更新成功'
     except Exception as e:
         response.status = False
         response.message = str(e)
     return response
Ejemplo n.º 10
0
    def add_server_group(request):
        response = BaseResponse()
        try:
            response.error = {}
            print(request.body)
            post_dict = QueryDict(request.body, encoding='utf-8')

            add_group_app_id = post_dict.get('add_group_app_id')
            add_group_name = post_dict.get('add_group_name')
            add_group_yaml_path = post_dict.get('add_group_yaml_path')
            add_group_type = post_dict.get('add_group_type')

            add_to_db = repository_models.AppGroups(
                name=add_group_name,
                yaml_path=add_group_yaml_path,
                # app_id = repository_models.Applications.objects.get(id=add_group_app_id)
                group_type=add_group_type,
            )

            add_to_db.save()
            add_to_db.app_id.add(repository_models.Applications.objects.get(id=add_group_app_id))

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 11
0
    def update_urlmaps_groups(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')
            urlmaps_id = post_dict.get('urlmaps_id')
            instance_list = post_dict.getlist('instance_list')
            group_type = post_dict.get('group_type')

            urlmaps_obj = repository_models.UrlConfigHandler.objects.get(
                id=urlmaps_id)

            if group_type == 'cloud':
                urlmaps_obj.cloud.clear()
                for instance_id in instance_list:
                    urlmaps_obj.cloud.add(
                        CMDB_MODELS.Asset.objects.get(id=instance_id))
            elif group_type == 'forward':
                urlmaps_obj.forward.clear()
                for instance_id in instance_list:
                    urlmaps_obj.forward.add(
                        CMDB_MODELS.Asset.objects.get(id=instance_id))
            elif group_type == 'docker':
                urlmaps_obj.docker.clear()
                for instance_id in instance_list:
                    urlmaps_obj.docker.add(
                        CMDB_MODELS.DockerInstance.objects.get(id=instance_id))

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 12
0
def git_commits(request):
    """
    根据分支获取所有的commit
    :param request:
    :return:
    """
    response = BaseResponse()
    try:
        env_id = request.GET.get('env_id')
        branch = request.GET.get('branch')

        env_object = models.ProjectEnv.objects.filter(id=env_id).first()
        url = env_object.project.repo
        project_name = env_object.project.title
        local_path = os.path.join(settings.HG_DEPLOY_BASE_PATH, project_name)
        repo_object = GitRepository(local_path, url)

        # 切换到指定分支
        repo_object.change_to_branch(branch)
        # 获取所有提交记录
        commit_list = repo_object.commits()
        response.data = commit_list
    except Exception as e:
        response.status = False
        response.error = '版本获取失败'
    return JsonResponse(response.dict)
Ejemplo n.º 13
0
def application_del(request):
    """应用删除视图"""
    response = BaseResponse()
    if request.method == 'POST':
        aid = request.POST.get('aid')
        try:
            application_obj = models.Application.objects.filter(id=aid).first()
            application_name = application_obj.name
            project_obj = models.Project.objects.filter(
                id=application_obj.project_id).first()
            if os.path.exists(
                    os.path.join(settings.RSYNC_LOG_DIR, project_obj.path_name,
                                 application_obj.path_name)):
                shutil.rmtree(
                    os.path.join(settings.RSYNC_LOG_DIR, project_obj.path_name,
                                 application_obj.path_name))
            application_obj.delete()
            response.message = '删除成功'
            Logger().log(message='[%s]删除应用[%s]成功' %
                         (request.user.name, application_name),
                         mode=True)
        except Exception as e:
            response.status = False
            response.message = '删除失败'
            response.error = str(e)
            Logger().log(message='[%s]删除应用失败,%s' % (request.user.name, str(e)),
                         mode=False)
        return JsonResponse(response.__dict__)
Ejemplo n.º 14
0
    def post_assets(request):
        response = BaseResponse()
        # 前端来获取业务线说明
        get_id = request.POST.get('get_id', None)
        if get_id:
            obj = models.BusinessTwo.objects.filter(id=get_id).first()
            business_remark = obj.business_remark
            response.data = {'business_remark': business_remark}
            response.status = True
            return response

        # 编辑业务线说明
        business_text = request.POST.get('business_text', None)
        if business_text:
            business_id = request.POST.get('id', None)
            try:
                models.BusinessTwo.objects.filter(id=business_id).update(
                    business_remark=business_text)
                response.status = True
            except Exception as e:
                response.status = False
                response.message = str(e)
            return response

        # 新添加业务线
        try:
            response.error = []
            name = request.POST.get('business1_name')
            models.BusinessTwo.objects.create(name=name)
            response.message = '添加成功'
        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 15
0
    def post(self, request, *args, **kwargs):
        """
            用于用户认证相关接口
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        print(request.data)
        # ret = {"code":100,'data':None}
        ret = BaseResponse()
        try:
            user = request.data.get('user')
            pwd = request.data.get('pwd')
            obj = models.UserInfo.objects.filter(user=user, pwd=pwd).first()
            # obj = models.UserInfo.objects.get(user=user,pwd=pwd)
            if not user:  # 简单逻辑往上放
                ret.code = 400
                ret.error = "错误的用户名或密码"
                return Response(ret)

            token = str(uuid.uuid4())
            models.Token.objects.update_or_create(
                user=obj, defaults={"token": token})  # defaults字段用于更新
            ret.token = token
        except Exception as e:
            ret.code = 1002
            ret.msg = e
        # obj = Response('...')
        # obj['Access-Control-Allow-Origin'] = "*"
        return Response(ret.dict)
Ejemplo n.º 16
0
 def post_business(request):
     response = BaseResponse()
     try:
         hostname = request.POST.get('hostname', None)
         manage_ip = request.POST.get('manage_ip', None)
         device_type_id = request.POST.get('device_type_id', None)
         device_status_id = request.POST.get('device_status_id', None)
         idc_id = request.POST.get('idc_id', None)
         business_unit_id = request.POST.get('business_unit_id', None)
         cabinet_num = request.POST.get('cabinet_num', None)
         cabinet_order = request.POST.get('cabinet_order', None)
         # add_dict = QueryDict(request.body, encoding='utf-8')
         # print('add_dict', add_dict)
         # print(hostname, manage_ip, device_type_id, device_status_id, idc_id, business_unit_id)
         obj_asset = models.Asset.objects.create(device_type_id=device_type_id, device_status_id=device_status_id,
                                                 cabinet_num=cabinet_num, cabinet_order=cabinet_order,
                                                 business_unit_id=business_unit_id, idc_id=idc_id)
         print('newobj_asset_id', obj_asset.id)
         if 1 == int(device_type_id):
             models.Server.objects.create(hostname=hostname, manage_ip=manage_ip, asset_id=obj_asset.id)
         elif 2 == int(device_type_id):
             models.NetworkDevice.objects.create(hostname=hostname, manage_ip=manage_ip, asset_id=obj_asset.id)
         if obj_asset:
             response.message = '添加资产成功'
         else:
             response.error = '添加资产失败'
     except Exception as e:
         response.status = False
         response.message = str(e)
     return response
     pass
Ejemplo n.º 17
0
    def approved_data(request):
        response = BaseResponse()
        try:
            response.error = []
            id_list = QueryDict(request.body, encoding='utf-8').getlist('id_list')
            error_count = 0
            ass_handler = client_report_handler.Asset(request)
            for obj_id in id_list:
                try:
                    # 调用接口新增审批资产数据
                    get_source_data = models.NewAssetApprovalZone.objects.filter(id=obj_id)
                    json_data = json.loads(get_source_data[0].data)
                    request.POST = {"asset_data": json_data}
                    ass_handler = client_report_handler.Asset(request)
                    if ass_handler.data_is_valid_without_id():
                        ass_handler.data_inject()
                        models.NewAssetApprovalZone.objects.filter(id=obj_id).update(approved=True, asset_resume_num=ass_handler.asset_obj.asset_num)
                    else:
                        error_count += 1
                        response.error.append({'id': "ID %s" %obj_id, 'message': "Asset already exist."})

                except Exception as e:
                    response.error.append({'id': obj_id, 'message': str(e)})
                    response.status = False
                    error_count += 1

            if error_count:
                response.message = '共%s条,失败%s条' % (len(id_list), error_count,)
                response.status = False
            else:
                response.message = '更新成功'
        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 18
0
    def get(self,request, *args, **kwargs):
        """
        查看购物车中所有的商品
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        ret = BaseResponse()
        try:
            key_match = settings.SHOPPING_CAR_KEY %(request.auth.user_id,"*")

            course_list = []

            for key in self.conn.scan_iter(key_match,count=10):
                info = {
                    "title":self.conn.hget(key,'title').decode('utf-8'),    # 不用getall的原因是每个字段不同
                    "img":self.conn.hget(key,'img').decode('utf-8'),
                    "policy":json.loads(self.conn.hget(key,'policy').decode('utf-8')),
                    "default_policy":self.conn.hget(key,'default_policy').decode('utf-8')
                }
                course_list.append(info)
            ret.data = course_list
        except Exception as e:
            ret.code = 1002
            ret.error = "获取失败"
        return Response(ret.dict)
Ejemplo n.º 19
0
 def delete(self, request, *args, **kwargs):
     """
     删除购物车中的数据
     :param request:
     :param args:
     :param kwargs:
     :return:
     """
     result = BaseResponse()
     try:
         course_id_list = request.data.get('course_id')
         user_id = request.user.id  # 用户认证过后用  user_id = request.user.id 来获取
         # key_list = []
         # for course_id in course_id_list:
         #     redis_car_key = settings.SHOPPING_CART_KEY.format(user_id, course_id)
         #     key_list.append(redis_car_key)
         key_list = [
             settings.SHOPPING_CART_KEY.format(user_id, course_id)
             for course_id in course_id_list
         ]  # 同上注释掉的
         self.conn.delete(*key_list)  # 删除
     except Exception as e:
         result.code = 1001
         result.error = "删除失败"
     return Response(result.dict)
Ejemplo n.º 20
0
    def add_server_group(request):
        response = BaseResponse()
        try:
            response.error = {}
            print(request.body)
            post_dict = QueryDict(request.body, encoding='utf-8')

            add_group_app_id = post_dict.get('add_group_app_id')
            add_group_name = post_dict.get('add_group_name')
            add_group_yaml_path = post_dict.get('add_group_yaml_path')
            add_group_type = post_dict.get('add_group_type')

            add_to_db = repository_models.AppGroups(
                name=add_group_name,
                yaml_path=add_group_yaml_path,
                # app_id = repository_models.Applications.objects.get(id=add_group_app_id)
                group_type=add_group_type,
            )

            add_to_db.save()
            add_to_db.app_id.add(
                repository_models.Applications.objects.get(
                    id=add_group_app_id))

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 21
0
    def add_data(request):
        response = BaseResponse()
        try:
            response.error = []
            post_dict = QueryDict(request.body, encoding='utf-8')

            idc_name = post_dict.get('idc_name')
            idc_floor = post_dict.get('idc_floor')
            idc_phone = post_dict.get('idc_phone')
            idc_address = post_dict.get('idc_address')

            add_to_db = CMDB_MODELS.IDC(
                name=idc_name,
                floor=idc_floor,
                phone=idc_phone,
                idc_address = idc_address,

            )
            add_to_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 22
0
    def get_urlmaps_groups_by_id(request):
        response = BaseResponse()
        try:
            response.error = {}
            group_type = request.GET.get('group_type')
            group_id = request.GET.get('group_id')
            urlmaps_id = request.GET.get('urlmaps_id')

            urlmaps_obj = repository_models.UrlConfigHandler.objects.filter(id=urlmaps_id).values()
            if group_type == 'cloud':
                instance_in_group = CMDB_MODELS.Asset.objects.filter(instances__id=group_id).values('id', 'server__ipaddress')
                instance_in_urlmaps = CMDB_MODELS.Asset.objects.filter(urlconfighandler_cloud__id=urlmaps_id).values('id', 'server__ipaddress')
            elif group_type == 'forward':
                instance_in_group = CMDB_MODELS.Asset.objects.filter(instances__id=group_id).values('id', 'server__ipaddress')
                instance_in_urlmaps = CMDB_MODELS.Asset.objects.filter(urlconfighandler_forward__id=urlmaps_id).values('id', 'server__ipaddress')
            elif group_type == 'docker':
                instance_in_group = CMDB_MODELS.Asset.objects.filter(instances__id=group_id).values('id','server__ipaddress')
                instance_in_urlmaps = CMDB_MODELS.DockerInstance.objects.filter(urlconfighandler_docker__id=urlmaps_id).values('id', 'asset__server__ipaddress', 'port')
                print(instance_in_urlmaps)

            response.urlmaps_obj = list(urlmaps_obj)
            response.left_select_list = list(instance_in_group)
            response.right_select_list = list(instance_in_urlmaps)

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 23
0
    def update_urlmaps_groups(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')
            urlmaps_id = post_dict.get('urlmaps_id')
            instance_list = post_dict.getlist('instance_list')
            group_type = post_dict.get('group_type')

            urlmaps_obj = repository_models.UrlConfigHandler.objects.get(id=urlmaps_id)

            if group_type == 'cloud':
                urlmaps_obj.cloud.clear()
                for instance_id in instance_list:
                    urlmaps_obj.cloud.add(CMDB_MODELS.Asset.objects.get(id=instance_id))
            elif group_type == 'forward':
                urlmaps_obj.forward.clear()
                for instance_id in instance_list:
                    urlmaps_obj.forward.add(CMDB_MODELS.Asset.objects.get(id=instance_id))
            elif group_type == 'docker':
                urlmaps_obj.docker.clear()
                for instance_id in instance_list:
                    urlmaps_obj.docker.add(CMDB_MODELS.DockerInstance.objects.get(id=instance_id))

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 24
0
def update_log(request):
    """更新日志视图"""
    response = BaseResponse()
    if request.method == 'POST':
        app_value = request.POST.get('app_value')
        application_obj = models.Application.objects.filter(
            id=app_value).first()
        application_path_name = application_obj.path_name
        project_path_name = application_obj.project.path_name
        receive_path = os.path.join(settings.RSYNC_LOG_DIR, project_path_name,
                                    application_path_name)
        module_name = '%s_%s' % (project_path_name, application_path_name)
        ip = application_obj.ip
        command = '/usr/bin/rsync -az --delete --password-file=/etc/easylogrsync.secrets easylogrsync_user@%s::%s %s' % (
            ip, module_name, receive_path)
        try:
            subprocess.call(command, shell=True)
            response.message = '更新成功!'
            Logger().log(message='[%s]执行更新命令成功,%s[%s]已更新' %
                         (request.user.name, application_obj.project.name,
                          application_obj.name),
                         mode=True)
        except Exception as e:
            response.status = False
            response.error = str(e)
            response.message = '更新失败!'
            Logger().log(message='[%s]执行更新命令失败,%s[%s]未能成功更新,%s' %
                         (request.user.name, application_obj.project.name,
                          application_obj.name, str(e)),
                         mode=False)
        return JsonResponse(response.__dict__)
Ejemplo n.º 25
0
 def delete(self, request):
     res = BaseResponse()
     course_ids = request.data.get("course_list", "")
     print(course_ids)
     name = "ShoppingCar_for_userId_%s" % request.user.pk
     try:
         for course_id in course_ids:
             if not Course.objects.filter(id=course_id):
                 res.code = 1040
                 res.error = "课程id(%d)不存在" % course_id
                 return Response(res.dict)
             conn.hdel(name, "course_id_%d" % course_id)
         res.code = 1000
         res.data = {"商品删除成功"}
     except Exception as e:
         res.code = 1037
         res.error = "删除失败,reason:" + str(e)
     return Response(res.dict)
Ejemplo n.º 26
0
def softwareserver_api(request):
    """软件服务器API视图"""
    if request.method == 'POST':
        response = BaseResponse()
        report_data = json.loads(request.body.decode('utf-8'))
        hostname = report_data.get('hostname', None)
        idc = report_data.get('idc', None)
        business_unit = report_data.get('business_unit', None)
        if not idc:
            response.status = False
            response.message = '未提供IDC信息'
            return JsonResponse(response.__dict__)
        if not business_unit:
            response.status = False
            response.message = '未提供业务线信息'
            return JsonResponse(response.__dict__)
        if hostname:
            host_obj = models.SoftwareServer.objects.filter(
                hostname=hostname).first()
            if host_obj:
                response.status = False
                response.message = '此软件服务器的主机名已存在'
                return JsonResponse(response.__dict__)
            else:
                try:
                    asset_obj = models.Asset.objects.create(
                        idc_id=int(idc),
                        business_unit_id=int(business_unit),
                        cabinet_num='',
                        cabinet_order='')
                    models.SoftwareServer.objects.create(asset=asset_obj,
                                                         hostname=hostname)
                    response.message = '软件服务器资产添加成功'
                    return JsonResponse(response.__dict__)
                except Exception as e:
                    response.message = '软件服务器资产添加失败'
                    response.error = str(e)
                    response.status = False
                    models.ErrorLog.objects.create(
                        asset=None,
                        title='save_softwareserver_api_post_data',
                        content=traceback.format_exc())
                    return JsonResponse(response.__dict__)
        else:
            response.status = False
            response.message = '未提供软件服务器主机名'
            return JsonResponse(response.__dict__)
    # 如果请求为get
    hostname = request.GET.get('hostname', None)
    if hostname:
        response = softwareserver.check_softwareserver_exist(hostname=hostname)
    else:
        response = BaseResponse()
        response.status = False
        response.message = '未提供软件服务器主机名'
    return JsonResponse(response.__dict__)
Ejemplo n.º 27
0
 def post_assets(request):
     response = BaseResponse()
     try:
         response.error = []
         name = request.POST.get('business1_name')
         models.BusinessThree.objects.create(name=name)
         response.message = '添加成功'
     except Exception as e:
         response.status = False
         response.message = str(e)
     return response
Ejemplo n.º 28
0
    def put_assets(request):
        response = BaseResponse()
        try:
            response.error = []
            put_dict = QueryDict(request.body, encoding='utf-8')
            update_list = json.loads(put_dict.get('update_list'))
            error_count = 0
            for row_dict in update_list:
                nid = row_dict.pop('nid')
                num = row_dict.pop('num')
                # print(row_dict)

                # 更新主机名
                host_name = row_dict.get('host_name')
                if host_name:
                    if re.search('[》>$&()<!#*]', row_dict['host_name']):
                        response.error.append({'num': num, 'message': '非法字符!'})
                        response.status = False
                        error_count += 1
                    else:
                        obj = models.Asset.objects.filter(id=nid)
                        change_host_name(host_ip=obj[0].host_ip,
                                         host_name=row_dict['host_name'])
                        try:
                            models.Asset.objects.filter(id=nid).update(
                                **row_dict)
                            # 更新权限管理表中的主机名
                            models.AuthInfo.objects.filter(
                                ip=obj[0].host_ip).update(hostname=host_name)
                        except Exception as e:
                            response.error.append({
                                'num': num,
                                'message': str(e)
                            })
                            response.status = False
                            error_count += 1
                else:
                    try:
                        models.Asset.objects.filter(id=nid).update(**row_dict)
                    except Exception as e:
                        response.error.append({'num': num, 'message': str(e)})
                        response.status = False
                        error_count += 1
            if error_count:
                response.message = '非法字符!共%s条,失败%s条' % (
                    len(update_list),
                    error_count,
                )
            else:
                response.message = '更新成功'
        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 29
0
 def retrieve(self, request, *args, **kwargs):
     ret = BaseResponse()
     try:
         pk = kwargs.get('pk')
         obj = CourseDetail.objects.filter(id=pk).first()
         ser = CourseDetailViewSetSerializers(instance=obj, many=False)
         ret.data = ser.data
     except Exception as e:
         ret.code = 1001
         ret.error = '未获取到资源'
     return Response(ret.dict)
Ejemplo n.º 30
0
 def post_queryset(self, request):
     response = BaseResponse()
     model_form_class = self.create_model_form()
     model_form_obj = model_form_class(request.POST)
     if model_form_obj.is_valid():
         model_form_obj.save()
         response.message = '创建成功'
     else:
         response.status = False
         response.error = model_form_obj.errors
     return response
Ejemplo n.º 31
0
    def patch(self, request, *args, **kwargs):
        """
        修改课程的价格策略
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        ret = BaseResponse()
        try:
            # 1. 获取价格策略ID和课程ID
            course_id = int(request.data.get('courseid'))
            policy_id = str(request.data.get('policyid'))

            # 2. 拼接课程的key
            key = settings.SHOPPING_CAR_KEY % (
                request.auth.user_id,
                course_id,
            )
            if not self.conn.exists(key):
                ret.code = 1002
                ret.error = "购物车中不存在此课程"
                return Response(ret.dict)
            # 3. redis中获取所有的价格策略
            policy_dict = json.loads(
                str(self.conn.hget(key, 'policy'), encoding='utf-8'))
            if policy_id not in policy_dict:
                ret.code = 1003
                ret.error = "价格策略不合法"
                return Response(ret.dict)

            # 4. 在购物车中修改该课程的默认价格策略
            self.conn.hset(key, 'default_policy', policy_id)

            ret.data = "修改成功"

        except Exception as e:
            ret.code = 1004
            ret.error = "修改失败"

        return Response(ret.dict)
Ejemplo n.º 32
0
 def post(self, request, *args, **kwargs):
     response = BaseResponse()
     try:
         operation = request.POST.get('operation')
         username = request.POST.get('username')
         family_name = request.POST.get('family_name')
         given_name = request.POST.get('given_name')
         tel = request.POST.get('tel')
         email = request.POST.get('email')
         working_place = request.POST.get('working_place')
         pwd = request.POST.get('pwd')
         display_name = family_name + given_name
         # current_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
         current_time = time.strftime('%Y-%m-%d',
                                      time.localtime(time.time()))
         if operation == 'add_user':
             if username:
                 slb_obj = models.DcmUser.objects.filter(
                     user_name=username).all().first()
                 if slb_obj:
                     response.data = '用户已存在,不能重复添加!'
                 else:
                     # 这里需要调用添加用户api返回添加用户成功后再在数据库中插入该用户信息
                     # add_user_res = dcm_add_modify_reset_user.add_user(username, display_name, tel, email, pwd)
                     add_user_res = '添加用户成功'
                     if add_user_res == '添加用户成功':
                         models.DcmUser.objects.create(
                             user_name=username,
                             family_name=family_name,
                             given_name=given_name,
                             tel_number=tel,
                             email=email,
                             working_place=working_place,
                             vpn=0,
                             password=pwd,
                             tag=0,
                             add_time=current_time)
                     # 这里需要调用雨馨接口同步用户信息
             else:
                 response.data = 'Error:系统异常(EcsUpDownView)'
         elif operation == 'modify_user':
             if username:
                 slb_obj = models.DcmUser.objects.filter(
                     username=username).all().first()
                 if slb_obj:
                     modify_user_res = dcm_add_modify_reset_user.modify_user(
                     )
                 else:
                     response.data = '用户不存在!'
         return HttpResponse(json.dumps(response.data))
     except Exception as e:
         response.error = str(e)
         return HttpResponse(json.dumps(response.error))
Ejemplo n.º 33
0
 def post(self, request):
     res = BaseResponse()
     user_id = request.user.pk
     course_id = request.data.get("course_id", "")
     course_obj = Course.objects.filter(pk=course_id).first()
     if not course_obj:
         res.code = 1040
         res.error = "课程id不存在"
         return Response(res.dict)
     else:
         name = "ShoppingCar_for_userId_%s" % user_id
         Value = {
             "course_id":
             course_id,
             "course_img":
             str(course_obj.course_img),
             "PricePolicy": [{
                 "id":
                 police_obj.id,
                 "is_promotion":
                 police_obj.is_promotion,
                 "promotion_price":
                 police_obj.promotion_price,
                 "price":
                 police_obj.price,
                 "valid_period":
                 "永久有效" if police_obj.is_valid_forever else
                 police_obj.get_valid_period_display()
             } for police_obj in course_obj.price_policy.all()]
         }
         try:
             conn.hmset(name, {"course_id_%s" % course_id: Value})
             res.code = 1000
             res.data = {"加入购物车成功"}
         except Exception as e:
             res.code = 1035
             res.error = "加入购物车失败,reason:" + str(e)
     return Response(res.dict)
Ejemplo n.º 34
0
    def login(self, request, *args, **kwargs):
        """用户登陆认证"""
        response = BaseResponse()
        try:
            username = request.data.get('username')
            pwd = request.data.get('password')
            # 验证用户和密码
            user = authenticate(username=username, password=pwd)
            # obj = User.objects.filter(username=user).first()
            # obj = User.objects.get(username=user)
            # uclass = UserInfo.objects.get(user=obj)
            # print(type(uclass)) 输出结果如下,所以此步 定义为uclass
            # <class 'rbac.models.UserInfo'>
            if not user:
                # 判断查询结果
                response.code = 1002
                response.error = '用户名或密码错误'
            else:
                login(request, user)
                uclass = UserInfo.objects.get(user=user)
                obj = UserInfo.objects.filter(user_id=uclass.user_id).first()
                # 查询当前用户的所有角色
                role = obj.roles.all()
                permission_list = []
                for i in role:
                    # 查看当前用户所有角色的所有权限
                    per = i.permissions.all()
                    for j in per:
                        permission_list.append(j.url)
                response.code = 1000

                # 用户所具备的权限列表写入session
                request.session['url'] = permission_list
                init_permission(request, obj)
        except Exception as e:
            response.code = 10005
            response.error = '操作异常'
        return Response(response.dict)
Ejemplo n.º 35
0
def get_dir_json(request):
    """
    目录列表json,供前端ajax调用
    :param request:
    :return:
    """
    res = BaseResponse()  # 初始化返回值
    if request.method == "POST":
        ip = request.POST.get('ip')
        dir = request.POST.get('dir')
        key = request.POST.get('key')
        if key:
            log_list = get_search_log_list(ip, dir,key)
            # 分页a标签的herf前缀
            herf_prefix = "?ip={}&dir={}&search={}".format(ip, dir, key)
        else:
            log_list = get_log_list(ip, dir)
            # 分页a标签的herf前缀
            herf_prefix = "?ip={}&dir={}".format(ip, dir)

        # print("log_list", log_list)
        if log_list is False:
            res.code = 500
            res.error = "获取目录列表失败"
        elif log_list == []:
            res.code = 500
            res.error = "目录列表为空"
        elif log_list == {}:
            res.code = 500
            res.error = "搜索结果为空"
        else:
            res.data = log_list
            res.url = "/view_dir/%s" % (herf_prefix)
    else:
        res.code = 500
        res.error = "非法请求"

    return HttpResponse(json.dumps(res.__dict__))
Ejemplo n.º 36
0
    def get_server_urlmaps_detial(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')
            urlmaps_id = post_dict.get('urlmaps_id')

            get_detail_data = repository_models.UrlConfigHandler.objects.get(id=urlmaps_id)
            response.data = get_detail_data

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 37
0
    def delete_urlmaps(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')
            urlmaps_id = post_dict.get('urlmaps_id')

            data_from_db = repository_models.UrlConfigHandler.objects.get(id=urlmaps_id)
            data_from_db.delete()

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 38
0
    def delete_server_logs(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            log_id = post_dict.get('log_id')

            add_to_db = repository_models.WebConfigLogsCenter.objects.get(id=log_id)
            add_to_db.delete()

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 39
0
    def delete_server_instance(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            delete_instance_id = post_dict.get('instance_id')
            get_data_from_db = repository_models.AppInstances.objects.get(id=delete_instance_id)
            get_data_from_db.delete()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 40
0
    def delete_server_instance(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            group_id = post_dict.get('group_id')
            docker_id = post_dict.get('docker_id')

            add_to_db = repository_models.AppGroups.objects.get(id=group_id)
            add_to_db.docker.remove(CMDB_MODELS.DockerInstance.objects.get(id=docker_id))

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 41
0
    def put_data(request):
        response = BaseResponse()
        try:
            response.error = []
            put_dict = QueryDict(request.body, encoding='utf-8')
            user_id = put_dict.get('group_id')
            group_name = put_dict.get('group_name')

            update_data = user_models.UserGroup.objects.get(id=user_id)

            update_data.name = group_name
            update_data.save()

        except Exception as e:
            print(Exception,e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 42
0
    def update_yaml_conf(self, request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            update_group_id = post_dict.get('group_id')
            yaml_conf_data = post_dict.get('yaml_conf_data')

            get_yaml_from_db = repository_models.DockerYamlConf.objects.get(group_id__id=update_group_id)
            get_yaml_from_db.yaml_data = json.dumps(self.__yaml_to_json(yaml_conf_data))
            get_yaml_from_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 43
0
    def add_server_instance(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')
            print(post_dict)

            add_instance_group_id = post_dict.get('add_instance_group_id')
            add_instance_id = post_dict.get('add_instance_id')

            add_to_db = repository_models.AppGroups.objects.get(id=add_instance_group_id)
            add_to_db.instance.add(CMDB_MODELS.Asset.objects.get(id=add_instance_id))

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 44
0
    def put_assets(request):
        response = BaseResponse()
        try:
            response.error = []
            put_dict = QueryDict(request.body, encoding='utf-8')
            project_id = put_dict.get('project_id')
            project_name = put_dict.get('project_name')
            business_unit_id = put_dict.get('business_unit_id')

            update_data = repository_models.ProjectInfo.objects.get(id=project_id)
            update_data.name = project_name
            update_data.business_unit = CMDB_MODELS.BusinessUnit.objects.get(id=business_unit_id)
            update_data.save()

        except Exception as e:
            print(Exception,e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 45
0
    def update_server_instance(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            docker_group_id = post_dict.get('docker_group_id')
            new_docker_id = post_dict.get('new_docker_id')
            old_docker_id = post_dict.get('old_docker_id')

            get_group_from_db = repository_models.AppGroups.objects.get(id=docker_group_id)
            get_group_from_db.docker.remove(CMDB_MODELS.DockerInstance.objects.get(id=old_docker_id))
            get_group_from_db.docker.add(CMDB_MODELS.DockerInstance.objects.get(id=new_docker_id))

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 46
0
    def chart():
        response = BaseResponse()
        try:
            sql = """
                SELECT
                    id,
                    name,
                    (select count(id) from asset as A where B.id=A.business_unit_id and A.device_type_id=1) as server_count,
                    (select count(id) from asset as A where B.id=A.business_unit_id and A.device_type_id=2) as switch_count,
                    (select count(id) from asset as A where B.id=A.business_unit_id and A.device_type_id=3) as firewall_count
                from businessUnit as B"""
            result = models.BusinessUnit.objects.raw(sql)
            ret = {
                'categories':[],
                'series':[
                    {
                        'name':'服务器',
                        'data':[]
                    },
                    {
                        'name':'交换机',
                        'data':[]
                    },
                    {
                        'name':'防火墙',
                        'data':[]
                    }

                ]
            }
            for row in result:
                ret['categories'].append(row.name)
                ret['series'][0]['data'].append(row.server_count)
                ret['series'][1]['data'].append(row.switch_count)
                ret['series'][2]['data'].append(row.firewall_count)

            response.data = ret

        except Exception as e:
            response.status = False
            response.error = str(e)

        return response
Ejemplo n.º 47
0
    def update_server_group(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            update_group_id = post_dict.get('group_id')
            add_group_name = post_dict.get('add_group_name')
            add_group_yaml_path = post_dict.get('add_group_yaml_path')

            get_group_from_db = repository_models.AppGroups.objects.get(id=update_group_id)
            get_group_from_db.name = add_group_name
            get_group_from_db.yaml_path = add_group_yaml_path
            get_group_from_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 48
0
    def update_server_logs(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            log_id = post_dict.get('log_id')
            add_server_log_url = post_dict.get('add_server_log_url')
            add_server_log_memo = post_dict.get('add_server_log_memo')

            get_logs_from_db = repository_models.WebConfigLogsCenter.objects.get(id=log_id)
            get_logs_from_db.url = add_server_log_url
            get_logs_from_db.memo = add_server_log_memo
            get_logs_from_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 49
0
    def add_data(request):
        response = BaseResponse()
        try:
            response.error = []
            post_dict = QueryDict(request.body, encoding='utf-8')

            # print(post_dict)
            group_name = post_dict.get('group_name')

            add_to_db = user_models.UserGroup(
                name=group_name,

            )
            add_to_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 50
0
    def put_assets(request):
        response = BaseResponse()
        try:
            response.error = []
            put_dict = QueryDict(request.body, encoding='utf-8')
            server_id = put_dict.get('server_id')
            app_name = put_dict.get('app_name')
            project_id = put_dict.get('project_id')
            app_type = put_dict.get('app_type')

            update_data = repository_models.Applications.objects.get(id=server_id)
            update_data.name = app_name
            update_data.project_id = repository_models.ProjectInfo.objects.get(id=project_id)
            update_data.app_type = app_type
            update_data.save()

        except Exception as e:
            print(Exception,e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 51
0
    def update_server_instance(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            instance_id = post_dict.get('instance_id')
            add_instance_group_id = post_dict.get('add_instance_group_id')
            add_instance_ip = post_dict.get('add_instance_ip')
            add_instance_port = post_dict.get('add_instance_port')

            get_instance_from_db = repository_models.AppInstances.objects.get(id=instance_id)
            get_instance_from_db.group_id = repository_models.AppGroups.objects.get(id=add_instance_group_id)
            get_instance_from_db.ip = add_instance_ip
            get_instance_from_db.port = add_instance_port
            get_instance_from_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 52
0
    def add_urlmaps(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            urlmaps_url = post_dict.get('urlmaps_url')
            urlmaps_group_id = post_dict.get('urlmaps_group_id')
            urlmaps_memo = post_dict.get('urlmaps_memo')

            add_to_db = repository_models.UrlConfigHandler(
                group_id_id = urlmaps_group_id,
                url = urlmaps_url,
                memo = urlmaps_memo
            )
            add_to_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 53
0
    def add_server_logs(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            add_logs_group_id = post_dict.get('add_logs_group_id')
            add_server_log_url = post_dict.get('add_server_log_url')
            add_server_log_memo = post_dict.get('add_server_log_memo')

            add_to_db = repository_models.WebConfigLogsCenter(
                group_id_id = add_logs_group_id,
                url = add_server_log_url,
                memo = add_server_log_memo
            )
            add_to_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 54
0
    def add_data(request):
        response = BaseResponse()
        try:
            response.error = []
            post_dict = QueryDict(request.body, encoding='utf-8')

            print(post_dict)
            project_name = post_dict.get('project_name')
            business_unit_id = post_dict.get('business_unit_id')

            add_to_db = repository_models.ProjectInfo(
                name=project_name,
                business_unit=CMDB_MODELS.BusinessUnit.objects.get(id=business_unit_id),

            )
            add_to_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 55
0
    def put_data(request):
        response = BaseResponse()
        try:
            response.error = []
            put_dict = QueryDict(request.body, encoding='utf-8')
            user_id = put_dict.get('user_id')
            user_name = put_dict.get('user_name')
            user_phone = put_dict.get('user_phone')
            user_email = put_dict.get('user_email')
            user_department = put_dict.get('user_department')
            user_group_list = put_dict.getlist('user_group')
            user_roles_list = put_dict.getlist('user_roles')

            update_data = user_models.UserProfile.objects.get(id=user_id)
            try:
                groups_list = user_models.UserGroup.objects.filter(id__in=user_group_list)
            except:
                groups_list = []
            try:
                roles_list = user_models.Roles.objects.filter(id__in=user_roles_list)
            except:
                roles_list = []
            update_data.username = user_name
            update_data.phone = user_phone
            update_data.email = user_email
            update_data.department = user_department
            update_data.user_groups.clear()
            update_data.roles.clear()
            update_data.user_groups.add(*groups_list)
            update_data.roles.add(*roles_list)

            update_data.save()

        except Exception as e:
            print(Exception,e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 56
0
    def put_idc(request):
        response = BaseResponse()
        try:
            response.error = []
            put_dict = QueryDict(request.body, encoding='utf-8')
            idc_id = put_dict.get('idc_id')
            idc_name = put_dict.get('idc_name')
            idc_floor = put_dict.get('idc_floor')
            idc_phone = put_dict.get('idc_phone')
            idc_address = put_dict.get('idc_address')

            update_data = CMDB_MODELS.IDC.objects.get(id=idc_id)
            update_data.name = idc_name
            update_data.floor = idc_floor
            update_data.phone = idc_phone
            update_data.idc_address = idc_address
            update_data.save()

        except Exception as e:
            print(Exception,e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 57
0
    def update_urlmaps(request):
        response = BaseResponse()
        try:
            response.error = {}
            post_dict = QueryDict(request.body, encoding='utf-8')

            print(post_dict)
            urlmaps_id = post_dict.get('urlmaps_id')
            urlmaps_url = post_dict.get('urlmaps_url')
            urlmaps_group_id = post_dict.get('urlmaps_group_id')
            urlmaps_memo = post_dict.get('urlmaps_memo')

            get_data_from_db = repository_models.UrlConfigHandler.objects.get(id=urlmaps_id)
            get_data_from_db.group_id_id = urlmaps_group_id
            get_data_from_db.url = urlmaps_url
            get_data_from_db.memo = urlmaps_memo
            get_data_from_db.save()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 58
0
    def chart(last_id):
        response = BaseResponse()
        try:
            import time
            import random
            last_id = int(last_id)
            if last_id == 0:
                end = 100
            else:
                end = random.randint(1,10)

            ret = []
            for i in range(0,end):
                temp = {'x':time.time()*1000,'y':random.randint(1,1000)}
                ret.append(temp)
            last_id += 10
            response.data = ret
            response.last_id = last_id
        except Exception as e:
            response.status = False
            response.error = str(e)

        return response
Ejemplo n.º 59
0
    def add_data(request):
        response = BaseResponse()
        try:
            response.error = []
            post_dict = QueryDict(request.body, encoding='utf-8')

            print(post_dict)

            app_name = post_dict.get('app_name')
            project_id = post_dict.get('project_id')
            app_type = post_dict.get('app_type')

            add_to_db = repository_models.Applications(
                name = app_name,
                app_type = app_type,
                project_id = repository_models.ProjectInfo.objects.get(id=project_id),
            )
            add_to_db.save()

            # # create groups include production and cstest.
            # from urllib import parse, request
            # import json
            # import urllib
            # groups_list = ['CSTest', 'Production']
            # header_dict = {"Content-Type": "application/x-www-form-urlencoded"}
            # url = 'http://127.0.0.1:%s/update-server-group.html' % settings.project_port
            # for group in groups_list:
            #     textmod = {"add_group_app_id": add_to_db.id, "add_group_name": group, "add_group_yaml_path": 1}
            #     textmod = parse.urlencode(textmod).encode(encoding='utf-8')
            #     request = urllib.request.Request(url=url, data=textmod, headers=header_dict)
            #     response = urllib.request.urlopen(request)

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response