Ejemplo n.º 1
0
    def assets_detail(device_type_id, asset_id):

        response = BaseResponse()
        try:
            if device_type_id == '1':
                response.data = models.Server.objects.filter(asset_id=asset_id).select_related('asset').first()
            else:
                response.data = models.NetworkDevice.objects.filter(asset_id=asset_id).select_related('asset').first()

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 2
0
    def assets_detail(asset_type, asset_id):
        # print(asset_type,asset_id)
        response = BaseResponse()
        try:
            if asset_type == 'server':
                response.data = models.Server.objects.filter(asset_id=asset_id).select_related('asset').first()
            elif asset_type == 'networkdevice':
                response.data = models.NetworkDevice.objects.filter(asset_id=asset_id).select_related('asset').first()
            elif asset_type == 'securitydevice':
                response.data = models.SecurityDevice.objects.filter(asset_id=asset_id).select_related('asset').first()

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 3
0
    def get(self, request, *args, **kwargs):
        response = BaseResponse()
        ret = {}

        file = request.GET.get('file', None)
        business_id = request.GET.get('business_id', None)
        print(file, business_id)
        if file and business_id:
            business_obj = models.BusinessTwo.objects.filter(
                id=business_id).first()
            business_name = business_obj.name
            file_path = '%sprod/%s/%s' % (jenkins_config.config_path,
                                          business_name, file)
            try:
                with open(file_path, "r") as f:
                    response.data = f.read()
                f.close()
                response.status = True
            except Exception as e:
                with open(file_path, "r", encoding='gb2312') as f:
                    response.data = f.read()
                f.close()
                response.status = True
            return JsonResponse(response.__dict__)

        business = request.GET.get('business', None)
        if business:
            business_obj = models.BusinessTwo.objects.filter(
                id=business).first()
            business_name = business_obj.name
            config_path = '%sprod/%s/' % (jenkins_config.config_path,
                                          business_name)
            if os.path.exists(config_path):
                files = os.listdir(config_path)
                response.data = files
                response.status = True
            else:
                response.status = False
            return JsonResponse(response.__dict__)

        business_two_list = models.BusinessTwo.objects.all()

        ret['menu'] = menu(request)
        response.data = ret
        return render(request, 'configs.html', {
            'business_two_list': business_two_list,
            'response': response
        })
Ejemplo n.º 4
0
    def assets_detail(nid, device_type_id):

        response = BaseResponse()
        print(device_type_id, nid)
        try:
            if device_type_id == 1:
                response.data = models.DellServer.objects.filter(asset_id=nid).first()
            else:
                response.data = models.NetWork.objects.filter(asset=nid).first()

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

        return response
Ejemplo n.º 5
0
    def fetch_users(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.users_condition(request)
            users_count = models.UserProfile.objects.filter(conditions).count()
            peritems = int(request.GET.get('peritems', None))
            page_info = PageInfo(request.GET.get('pager', None), users_count,
                                 peritems)
            users_list = models.UserProfile.objects.filter(conditions).extra(
                select=self.extra_select).values(
                    *self.values_list)[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(users_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'role_list': self.role_list,
                'user_status_list': self.user_status_list,
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)
        print(response)
        return response
Ejemplo n.º 6
0
    def destroy(self, request, *args, **kwargs):
        start_time = time.time()
        ruleId = kwargs['pk']
        logger.info('删除规则的id: %s' % (ruleId))
        res = BaseResponse()
        Cassandra_obj = CassandraRule()
        try:
            Cassandra_obj.delete_data(ruleId)
        except OperationalError  as e:
            res.code = 1906
            res.msg = '数据库连接失败'
            logger.debug('删除规则数据时数据库连接失败')
        except Exception as e:
            res.code = 1909
            res.msg = '规则删除失败: %s' % ruleId
            logger.debug('规则%s删除失败:%s' % (ruleId,e))
        else:
            res.data = ruleId
            res.code = 0
            res.msg = '规则删除成功: %s' % ruleId
            logger.info('规则删除成功: %s' % ruleId)
            site_rule_key = '%s_%s_%s' % ("*","*", ruleId)
            try:
                self.redis.find_delete_key(site_rule_key)
            except ConnectionError as e:
                logger.debug('redis连接失败,数据从缓存中删除: %s' % ruleId)

        finally:
            logger.info('destroy QualityRule----time:%.5fs' % (time.time() - start_time))
            return Response(res.dict, status=status.HTTP_200_OK)
Ejemplo n.º 7
0
    def fetch_assets(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            asset_count = models.Asset.objects.filter(conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)

            asset_list = models.Asset.objects.filter(conditions).extra(
                select=self.extra_select).values(*self.values_list).order_by(
                    '-id')[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'device_status_list': self.device_status_list,
                'device_type_list': self.device_type_list,
                'idc_list': self.idc_list,
                'business_unit_list': self.business_unit_list,
                'status_map': self.status_map,
                'tag_list': self.tag_list
            }

            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 8
0
def get_untreated_servers():
    """
    获取未采集的资产
    :return:
    """
    response = BaseResponse()

    try:
        current_date = datetime.datetime.today()
        condition = Q()

        # 今日未采集的资产
        con_date = Q()
        con_date.connector = 'OR'
        con_date.children.append(('asset__latest_date__lt',current_date))
        con_date.children.append(('asset__latest_date',None))

        # 在线状态的服务器
        con_status = Q()
        con_status.children.append(('asset__device_status_id','2'))

        condition.add(con_date,'AND')
        condition.add(con_status,'AND')

        result = models.Server.objects.filter(condition).values('hostname')

        response.data = list(result)
        response.status = True

    except Exception as e:
        response.message = str(e)
        models.ErrorLog.objects.create(asset_obj=None,title='get_untreated_servers',content=traceback.format_exc())


    return response
Ejemplo n.º 9
0
def get_untreated_servers():
    """获取最近一天内"""
    response = BaseResponse()
    try:
        current_date = datetime.date.today()

        condition = Q()

        # 今日未采集的资产
        con_date = Q()
        con_date.connector = 'OR'
        con_date.children.append(("asset__latest_date__lt", current_date))      # 时间 小于当前的日期,表示今天未更新, 假如今天已经更新,则 该资产的 lastst_date 为今天的日期,则不小于今天的日期
        con_date.children.append(("asset__latest_date", None))                  # 时间为空表示新资产

        # 在线状态的服务器
        con_status = Q()
        con_status.connector = 'AND'
        con_status.children.append(('asset__device_status_id', '2'))        # 资产状态为在线状态   2表示在线状态
        con_status.children.append(('asset__device_type_id', '1'))          # 服务器类型, 只采集硬件的资产, 1 表示硬件资产 ,阿里云 ESC 调阿里接口获取数据

        condition.add(con_date, 'AND')
        condition.add(con_status, 'AND')

        result = models.Server.objects.filter(condition).values('hostname')

        response.data = list(result)
        response.status = True
    except Exception as e:
        response.message = str(e)
        models.ErrorLog.objects.create(asset_obj=None, title='get_untreated_servers', content=traceback.format_exc())
    return response
Ejemplo n.º 10
0
 def get_group_by_id(request):
     response = BaseResponse()
     group_id = request.GET.get('group_id')
     get_edit_group_data = repository_models.AppGroups.objects.filter(
         id=group_id).values()
     response.data = list(get_edit_group_data)
     return response.data
Ejemplo n.º 11
0
 def get_instance_by_id(request):
     response = BaseResponse()
     instance_id = request.GET.get('instance_id')
     get_edit_instance_data = CMDB_MODELS.Asset.objects.filter(
         id=instance_id).values("id", "instances__id")
     response.data = list(get_edit_instance_data)
     return response.data
Ejemplo n.º 12
0
    def assets_add(request):
        response = BaseResponse()
        obj = forms.AddAssetForm(request.POST)

        if obj.is_valid():
            hostname = obj.cleaned_data.pop('hostname')
            Server_obj = models.Server.objects.filter(hostname=hostname)

            if Server_obj:  # 判断主机名是否存在
                # 主机名已经存在
                obj.errors['hostname'] = ["主机名已存在"]
            else:
                tag_list = obj.cleaned_data.pop('tag')

                Asset_obj = models.Asset.objects.create(**obj.cleaned_data)

                models.Server.objects.create(hostname=hostname,
                                             asset_id=Asset_obj.id)

                if tag_list:
                    tag_obj = models.Tag.objects.filter(id__in=tag_list)
                    Asset_obj.tag.add(*tag_obj)

                response.status = True
        else:
            response.status = False

        response.data = obj
        return response
Ejemplo n.º 13
0
 def fetch_user(self, request):
     """
     获取用户信息
     :param request:
     :return:
     """
     response = BaseResponse()
     try:
         ret = {}
         conditions = self.select_condition(request)
         user_count = models.UserProfile.objects.filter(conditions).count()
         page_info = PageInfo(request.GET.get('pager', None), user_count)
         user_list = models.UserProfile.objects.filter(conditions).extra(
             select=self.extra_select).values(*self.values_list).order_by(
                 'id')[page_info.start:page_info.end]
         # 加入查询条件
         ret['condition_config'] = self.condition_config
         # 加入配置文件
         ret['table_config'] = self.table_config
         # 加入查询到的数据
         ret['data_list'] = list(user_list)
         # 加入页面信息
         ret['page_info'] = {
             'page_str': page_info.pager(),
             'page_start': page_info.start,
         }
         # 加入全局变量
         ret['global_dict'] = {}
         response.data = ret
         response.message = '获取成功'
     except Exception as e:
         response.status = False
         response.message = str(e)
     return response
Ejemplo n.º 14
0
    def fetch_data(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            asset_count = USER_CENTER_MODELS.Permission.objects.filter(
                conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)
            asset_list = USER_CENTER_MODELS.Permission.objects.filter(
                conditions).extra(select=self.extra_select).values(
                    *self.values_list)[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'url_method_list': self.url_method_list,
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 15
0
    def fetch_services(self,request):
        response = BaseResponse()
        try:
            ret = {}

            conditions = self.Server_condition(request)

            asset_count = models.Base.objects.filter(conditions).count()
            print(asset_count,'count',request.GET.get('pager')  )
            page_info = PageInfo(request.GET.get('pager',None),asset_count)
            asset_list = models.Base.objects.filter(conditions).extra(select=self.extra_select).values(\
                *self.values_list)[page_info.start:page_info.end]
            ret['table_config'] = self.table_config

            ret['condition_config'] = self.condition_config

            ret['data_list'] = list(asset_list)

            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }

            ret['global_dict'] = {
                'device_status_list':self.device_status_list
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 16
0
    def fetch_users(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)

            asset_count = models.UserProfile.objects.filter(conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)

            asset_list = models.UserProfile.objects.filter(conditions).extra(select=self.extra_select).values(
                *self.values_list)[page_info.start:page_info.end]
            print('asset_list', list(asset_list))
            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            # ret['global_dict'] = {'usergroup_list': self.usergroup_list}
            ret['global_dict'] = {'usergroup_list': self.usergroup_list, 'users_list': self.users_list}
            print('ret', ret['global_dict'])
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 17
0
def get_untreated_servers():
    """
    获取在线的硬件服务器、网络设备信息
    :return:
    """
    response = BaseResponse()
    response.data = {}
    try:
        hardware_server_objs = models.HardwareServer.objects.filter(
            asset__asset_status='online').all()
        for item in hardware_server_objs:
            response.data[item.manager_ip] = {
                'device_type': 'server',
                'manufacturer': item.manufacturer,
            }
        network_device_objs = models.NetworkDevice.objects.filter(
            asset__asset_status='online').all()
        for item in network_device_objs:
            response.data[item.manager_ip] = {
                'device_type': item.device_type,
                'manufacturer': item.manufacturer,
            }
    except Exception as e:
        response.message = str(e)
        response.status = False
        models.ErrorLog.objects.create(asset=None,
                                       title='get_untreated_servers',
                                       content=traceback.format_exc())
    return response
Ejemplo n.º 18
0
    def fetch_data(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            asset_count = USER_CENTER_MODELS.Roles.objects.filter(conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)
            asset_list = USER_CENTER_MODELS.Roles.objects.filter(conditions).extra(
                select=self.extra_select).values(
                *self.values_list)[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'url_method_list': self.url_method_list,
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 19
0
    def fetch_tags(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.tag_condition(request)  # 根据搜索条件构造 q 对象
            asset_count = models.Tag.objects.filter(
                conditions).count()  # 根据搜索条件统计搜索总数量
            page_info = PageInfo(request.GET.get('pager', None),
                                 asset_count)  # 使用 PageInfo 构造 分页
            asset_list = models.Tag.objects.filter(conditions).extra(
                select=self.extra_select).values(
                    *self.values_list)[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {}

            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 20
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.º 21
0
    def fetch_user(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            user_count = user_models.UserProfile.objects.filter(conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), user_count)
            user_list = user_models.UserProfile.objects.filter(conditions).extra(select=self.extra_select).values(
                *self.values_list).order_by("-id")[page_info.start:page_info.end]
            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(user_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                "group_list": self.group_list
            }

            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 22
0
    def fetch_queryset(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.queryset_condition(request)
            queryset_count = self.queryset.filter(conditions).count()
            page_info = PageInfo(request.GET.get(
                'pager', None), queryset_count)
            queryset_list = self.queryset.filter(conditions).extra(select=self.extra_select).values(
                *self.values_list)[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(queryset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = self.global_dict
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 23
0
 def get(self, request, *args, **kwargs):
     res_obj = BaseResponse()
     order_queryset = models.Order.objects.filter(
         account=request.user).order_by("-date")
     order_list = []
     for order in order_queryset:
         order_info = {
             "order_number":
             order.order_number,
             "date":
             order.date.strftime("%Y-%m-%d %H:%M:%S"),
             "status":
             order.get_status_display(),
             "actual_amount":
             order.actual_amount,
             "order_detail_list": [{
                 'course_name':
                 detail.obj.content_object.name,
                 "origin_price":
                 detail.original_price,
                 "price":
                 detail.price,
                 "valid_period_display":
                 detail.valid_period_display
             } for detail in order.orderdetail_set.all()]
         }
         order_list.append(order_info)
     res_obj.data = order_list
     return Response(res_obj.dict)
Ejemplo n.º 24
0
    def fetch_assets(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            asset_count = repository_models.Mission.objects.filter(conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)
            asset_list = repository_models.Mission.objects.filter(conditions).extra(select=self.extra_select).values(
                *self.values_list).order_by("-id")[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'mission_type_list': self.mission_type_list
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 25
0
 def destroy(self, request, *args, **kwargs):
     start_time = time.time()
     task_id = kwargs['pk']
     logger.info('删除任务id: %s' % task_id)
     res = BaseResponse()
     Cassandra_obj = Cassandratask()
     try:
         Cassandra_obj.delete_data(task_id)
     except OperationalError as e:
         res.code = 1906
         res.msg = '数据库连接失败'
         logger.debug('数据库连接失败')
     except Exception as e:
         res.code = 1909
         res.msg = '任务删除失败: %s' % task_id
         logger.debug('任务%s删除失败:%s' % (task_id, e))
     else:
         res.data = task_id
         res.code = 0
         res.msg = '任务删除成功: %s' % task_id
         logger.info('任务删除成功: %s' % task_id)
         try:
             self.redis.delete_redis(task_id)
         except ConnectionError as e:
             logger.debug('redis连接失败,任务未从缓存中删去: %s' % taskId)
     finally:
         logger.info('destroy QualityTask----time:%.5fs' %
                     (time.time() - start_time))
     return Response(res.dict, status=status.HTTP_200_OK)
Ejemplo n.º 26
0
    def fetch_assets(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            asset_count = models.Asset.objects.filter(conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)
            asset_list = models.Asset.objects.filter(conditions).extra(select=self.extra_select).values(
                *self.values_list)[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'device_status_list': self.device_status_list,
                'device_type_list': self.device_type_list,
                'idc_list': self.idc_list,
                'business_unit_list': self.business_unit_list,
                'status_map': self.status_map
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 27
0
def get_untreated_servers():
    response = BaseResponse()
    try:
        current_date = datetime.date.today()

        condition = Q()

        # 今日未采集的资产
        con_date = Q()
        con_date.connector = 'OR'
        con_date.children.append(("asset__latest_date__lt", current_date))
        con_date.children.append(("asset__latest_date", None))

        # 在线状态的服务器
        con_status = Q()
        con_status.children.append(('asset__device_status_id', '2'))

        condition.add(con_date, 'AND')
        condition.add(con_status, 'AND')

        result = models.Server.objects.filter(condition).values('hostname')
        response.data = list(result)
        response.status = True
    except Exception as e:
        response.message = str(e)
        models.ErrorLog.objects.create(asset_obj=None, title='get_untreated_servers', content=traceback.format_exc())
    return response
Ejemplo n.º 28
0
    def fetch_group(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            group_count = user_models.UserGroup.objects.filter(
                conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), group_count)
            group_list = user_models.UserGroup.objects.filter(
                conditions).extra(select=self.extra_select).values(
                    *self.values_list).order_by(
                        "-id")[page_info.start:page_info.end]
            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(group_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            # ret['global_dict'] = {
            #     "group_list": self.group_list
            # }

            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 29
0
    def fetch_assets(cls, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = cls.assets_condition(request)
            asset_count = models.Asset.objects.filter(conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)
            asset_list = models.Asset.objects.filter(conditions).values(*cls.asset_values())[
                         page_info.start:page_info.end]

            ret['table_config'] = cls.table_config()
            ret['condition_config'] = cls.condition_config()

            ret['data_list'] = list(asset_list)

            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }

            ret['global_dict'] = {
                'device_status_list': cls.device_status_list(),
                'device_type_list': cls.device_type_list(),
                'idc_list': cls.idc_list(),
                'business_unit_list': cls.business_unit_list()
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 30
0
    def fetch_assets(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)     # 根据搜索条件构造 q 对象
            asset_count = models.Asset.objects.filter(conditions).count()   # 根据搜索条件统计搜索总数量
            page_info = PageInfo(request.GET.get('pager', None), asset_count)   # 使用 PageInfo 构造 分页
            asset_list = models.Asset.objects.filter(conditions).extra(select=self.extra_select).values(*self.values_list)[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'device_status_list': self.device_status_list,
                'device_type_list': self.device_type_list,
                'idc_list': self.idc_list,
                'business_unit_list': self.business_unit_list,
                'tagName_list': self.tagName_list(ret['data_list']),   # 用作资产表中 对应的标签名称
                'tag_name_list': self.tag_name_list,   # 用作搜索条件处显示标签名称搜索条件
            }

            response.data = ret
            response.status = True
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 31
0
 def destroy(self, request, *args, **kwargs):
     start_time = time.time()
     conditionId = kwargs['pk']
     logger.info('删除条件数据id: %s'  % conditionId)
     res = BaseResponse()
     Cassandra_obj = CassandraCondition()
     try:
         Cassandra_obj.delete_data(conditionId)
     except OperationalError  as e:
         res.code = 1906
         res.msg = '数据库连接失败'
         logger.debug('删除条件时数据库连接失败')
     except Exception as e:
         res.code = 1909
         res.msg = '删除条件数据失败: %s' % conditionId
         logger.debug('删除条件数据%s失败:%s' % (conditionId,e))
     else:
         res.data = conditionId
         res.code = 0
         res.msg = '删除条件成功: %s' % (conditionId)
         logger.info('删除条件成功 :%s' % (conditionId))
         try:
             self.redis.delete_redis(conditionId)
         except ConnectionError as e:
             logger.debug('redis连接失败,条件从缓存中删除失败: %s' % conditionId)
     finally:
         logger.info('destroy Condition----time:%.5fs' % (time.time() - start_time))
         return Response(res.dict, status=status.HTTP_200_OK)
Ejemplo n.º 32
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.º 33
0
    def user_config(user_id):

        response = BaseResponse()
        try:
            response.data = user_models.UserProfile.objects.filter(
                id=user_id).first()
            user_group = user_models.UserGroup.objects.all()
            user_roles = user_models.Roles.objects.all()
            select_dic = {
                i.id: {
                    "group_name": i.name,
                    "select": False
                }
                for i in user_group
            }
            roles_dic = {
                i.id: {
                    "role_name": i.name,
                    "select": False
                }
                for i in user_roles
            }
            for i in response.data.user_groups.all():
                select_dic[i.id]["select"] = True

            for i in response.data.roles.all():
                roles_dic[i.id]["select"] = True

            response.select = select_dic
            response.roles_dic = roles_dic
        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 34
0
    def fetch_business(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            # print(conditions)
            asset_count = models.BusinessUnit.objects.filter(conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)
            asset_list = models.BusinessUnit.objects.filter(conditions).extra(select=self.extra_select).values(
                *self.values_list)[page_info.start:page_info.end]
            # print(asset_list, type(asset_list))
            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'contact_id_list': self.contact_id_list,
                'manager_id_list': self.manager_id_list,
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 35
0
 def get_instance_by_id(request):
     response = BaseResponse()
     instance_id = request.GET.get('instance_id')
     get_edit_instance_data = repository_models.AppInstances.objects.filter(id=instance_id).values("id", "ip", "port", "group_id__name", "group_id__id")
     response.data = list(get_edit_instance_data)
     print(response.data)
     return response.data
Ejemplo n.º 36
0
 def get(self, request):
     res = BaseResponse()
     name = "ShoppingCar_for_userId_%s" % request.user.pk
     data = conn.hvals(name)
     res.code = 1000
     res.data = data
     return Response(res.dict)
Ejemplo n.º 37
0
    def fetch_data(self, request):
        response = BaseResponse()
        try:
            ret = {}
            conditions = self.assets_condition(request)
            asset_count = OMTOOLS_MODELS.MongodbMission.objects.filter(
                conditions).count()
            page_info = PageInfo(request.GET.get('pager', None), asset_count)
            asset_list = OMTOOLS_MODELS.MongodbMission.objects.filter(
                conditions).order_by('-id').extra(
                    select=self.extra_select).values(
                        *self.values_list)[page_info.start:page_info.end]

            ret['table_config'] = self.table_config
            ret['condition_config'] = self.condition_config
            ret['data_list'] = list(asset_list)
            ret['page_info'] = {
                "page_str": page_info.pager(),
                "page_start": page_info.start,
            }
            ret['global_dict'] = {
                'op_type_list': self.op_type_list,
                'option_status': self.option_status,
                'status_map': self.status_map,
            }
            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 38
0
 def get_group_info(request):
     response = BaseResponse()
     try:
         response.data = user_models.UserGroup.objects.all()
     except Exception as e:
         response.status = False
         response.message = str(e)
     return response
Ejemplo n.º 39
0
 def get_project_info(request):
     response = BaseResponse()
     try:
         response.data = repository_models.ProjectInfo.objects.all()
     except Exception as e:
         response.status = False
         response.message = str(e)
     return response
Ejemplo n.º 40
0
    def get_data_by_id(url_nid):
        response = BaseResponse()
        try:
            response.data = USER_CENTER_MODELS.Permission.objects.filter(id=url_nid).first()

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 41
0
    def get_buesiness_detail(business_nid):
        response = BaseResponse()
        try:
            response.data = models.BusinessUnit.objects.get(id=business_nid)

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 42
0
    def get_server_urlmaps(server_id):
        response = BaseResponse()
        try:
            response.data = models.Applications.objects.filter(id=server_id).first()

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 43
0
 def get_instance_by_groupid(request):
     response = BaseResponse()
     group_id = request.GET.get('group_id')
     group_type = request.GET.get('group_type')
     if group_type == 'docker':
         get_instance_data = CMDB_MODELS.DockerInstance.objects.filter(dockers__id=group_id).values("id", 'asset__server__ipaddress', 'port')
     else:
         get_instance_data = CMDB_MODELS.Asset.objects.filter(instances__id=group_id).values("id", "server__ipaddress")
     response.data = list(get_instance_data)
     return response
Ejemplo n.º 44
0
    def get_permission_data():

        response = BaseResponse()
        try:
            response.data = USER_CENTER_MODELS.Permission.objects.all().order_by('-id')

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 45
0
    def idc_config(idc_id):

        response = BaseResponse()
        try:
            response.data = CMDB_MODELS.IDC.objects.filter(id=idc_id).first()
            # response.asset_data = CMDB_MODELS.Asset.objects.all()
        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 46
0
    def assets_detail(asset_id):

        response = BaseResponse()
        try:
            print(asset_id)
            response.data = models.Asset.objects.filter(id=asset_id).first()

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 47
0
    def group_config(group_id):

        response = BaseResponse()
        try:
            response.data = user_models.UserGroup.objects.filter(id=group_id).first()

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 48
0
    def get_server_instances_json(server_id):
        response = BaseResponse()

        try:
            get_instance_from_db = repository_models.AppInstances.objects.filter(
                group_id__app_id__id=server_id).values('id', 'ip', 'port', 'asset_number', 'group_id__name', 'group_id__app_id__name').order_by("-id")
            response.data = list(get_instance_from_db)
        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response.data
Ejemplo n.º 49
0
    def server_config(server_id):

        response = BaseResponse()
        try:
            response.data = models.Applications.objects.filter(id=server_id).first()
            response.asset_data = CMDB_MODELS.Asset.objects.all()
            response.urlmaps_data = models.UrlConfigHandler.objects.filter(group_id__app_id=server_id).first()
        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 50
0
    def get_asset_instance(server_id):
        response = BaseResponse()
        try:
            response.data = models.Applications.objects.filter(id=server_id).first()
            # 返回docker宿主机
            response.asset_data = CMDB_MODELS.Asset.objects.filter(device_type_id=2)

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 51
0
    def get_server_groups_json(server_id):
        response = BaseResponse()

        try:
            from django.db.models import Count
            get_group_from_db = models.AppGroups.objects.filter(app_id__id=server_id).values('id', 'name', 'app_id__name', 'app_id__project_id__name', 'group_type').order_by("-id")
            response.data = list(get_group_from_db)
        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response.data
Ejemplo n.º 52
0
    def get_data_by_id(role_nid):
        response = BaseResponse()
        try:
            response.data = USER_CENTER_MODELS.Roles.objects.filter(id=role_nid).first()
            permission_all = USER_CENTER_MODELS.Permission.objects.all()
            left_data = list(set(permission_all) - set(response.data.permissions.all()))
            response.left_data = left_data

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 53
0
    def get_app_by_project(request):
        response = BaseResponse()
        post_dict = QueryDict(request.body, encoding='utf-8')
        project_id = post_dict.get('project_id')
        try:
            data_list = repository_models.Applications.objects.filter(project_id__id=project_id).values()
            response.data = list(data_list)

        except Exception as e:
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 54
0
    def get_asset_instance(server_id):
        response = BaseResponse()
        try:
            response.data = models.Applications.objects.filter(id=server_id).first()
            # 获取project的business,再通过business查找cmdb中对应的资产信息,此处用于绑定实例时,过滤业务线中的资产数据
            response.asset_data = CMDB_MODELS.Asset.objects.filter(
                business_unit__projectinfo__applications__id=server_id)

        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 55
0
    def add_mission(request):
        response = BaseResponse()
        post_dict = QueryDict(request.body, encoding='utf-8')
        mission_name = post_dict.get('mission_name')
        mission_type = post_dict.get('mission_type')
        project_name = post_dict.get('project_name')
        app_list = post_dict.getlist('app_list')

        print(post_dict)

        try:
            # create mission project.
            mission_project = repository_models.MissionProject(
                name = project_name
            )
            mission_project.save()

            # create mission app
            for app_id in app_list:

                mission_app = repository_models.MissionApp(
                    name=repository_models.Applications.objects.get(id=app_id).name
                )
                mission_app.save()

                # create app ip first.
                get_app_instances = repository_models.AppInstances.objects.filter(group_id__name='production', group_id__app_id__id=app_id, group_id__app_id__project_id__name=project_name).values()
                for instance_obj in get_app_instances:
                    mission_appinstance = repository_models.MissionAppInstance(
                        ip = instance_obj.get('ip')
                    )
                    mission_appinstance.save()
                    mission_app.ip.add(mission_appinstance)

                mission_project.app.add(mission_app)

            # create mission
            mission_create = repository_models.Mission(
                name = mission_name,
                mission_type = mission_type,
            )
            mission_create.save()
            mission_create.project.add(mission_project)

            response.data = {'mission_id': mission_create.id}
        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response
Ejemplo n.º 56
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.º 57
0
    def asset_create(self):
        response = BaseResponse()
        try:
            ret = {}

            ret['asset_type'] = self.device_type_list
            ret['idc'] = self.idc_list

            response.data = ret
            response.message = '获取成功'
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 58
0
    def chart():
        response = BaseResponse()
        try:
            sql = """
                SELECT
                    id,
                    name,
                    (select count(id) from assets_asset as A where B.id=A.business_unit_id and A.asset_type='server') as server_count,
                    (select count(id) from assets_asset as A where B.id=A.business_unit_id and A.asset_type='networkdevice') as networkdevice_count,
                    (select count(id) from assets_asset as A where B.id=A.business_unit_id and A.asset_type='storagedevice') as storagedevice_count,
                    (select count(id) from assets_asset as A where B.id=A.business_unit_id and A.asset_type='securitydevice') as securitydevice_count,
                    (select count(id) from assets_asset as A where B.id=A.business_unit_id and A.asset_type='software') as software_count
                from assets_businessunit as B"""
            result = models.BusinessUnit.objects.raw(sql)
            ret = {
                'categories': [],
                'series': [
                    {
                        "name": '服务器',
                        "data": []
                    },{
                        "name": '网络设备',
                        "data": []
                    }, {
                        "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.networkdevice_count)
                ret['series'][2]['data'].append(row.storagedevice_count)
                ret['series'][3]['data'].append(row.securitydevice_count)
                ret['series'][4]['data'].append(row.software_count)
            response.data = ret
        except Exception as e:
            response.status = False
            response.message = str(e)

        return response
Ejemplo n.º 59
0
    def get_mission_detail_json(request, mission_id):
        response = BaseResponse()

        obj = models.Mission.objects.get(id=mission_id)
        print(obj.get_mission_type_display())

        try:
            get_mission_detail_from_db = models.MissionApp.objects.filter(mission_projects__missions__id=mission_id).values('id', 'name', 'mission_projects__name', 'status')
            response.data = list(get_mission_detail_from_db)

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

        return response
Ejemplo n.º 60
0
    def get_server_instances_json(server_id):
        response = BaseResponse()

        try:
            instance_asset_list = CMDB_MODELS.Asset.objects.filter(instances__app_id=server_id).values('id', 'server__ipaddress',
                                                                                              'device_type_id',
                                                                                              'instances__name',
                                                                                              'instances__app_id__name',
                                                                                              'instances__app_id__project_id__name',
                                                                                              'instances__id').order_by("-id")
            response.data = list(instance_asset_list)
        except Exception as e:
            print(Exception, e)
            response.status = False
            response.message = str(e)
        return response