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
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
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 })
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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)
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
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)
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
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
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
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
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
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)
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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