示例#1
0
 def get_group_back_up_info(self, tenant, region, group_id):
     return backup_record_repo.get_group_backup_records(tenant.tenant_id, region, group_id).order_by("-ID")
示例#2
0
    def get(self, request, *args, **kwargs):
        """
        总览 团队应用信息
        """
        try:
            page = int(request.GET.get("page", 1))
            page_size = int(request.GET.get("page_size", 10))
            groups = group_repo.get_tenant_region_groups(
                self.team.tenant_id, self.response_region)
            total = len(groups)
            app_num_dict = {"total": total}
            start = (page - 1) * page_size
            end = page * page_size
            app_list = []
            if groups:
                for group in groups:
                    app_dict = dict()
                    app_dict["group_name"] = group.group_name
                    app_dict["group_id"] = group.ID
                    # 分享记录和备份记录
                    share_record_num = share_repo.get_app_share_record_count_by_groupid(
                        group_id=group.ID)
                    app_dict["share_record_num"] = share_record_num
                    backup_records = backup_record_repo.get_group_backup_records(
                        self.team.tenant_id, self.response_region, group.ID)
                    backup_record_num = len(backup_records)
                    app_dict["backup_record_num"] = backup_record_num
                    # 服务数量记录
                    services = group_service_relation_repo.get_services_by_group(
                        group.ID)
                    services_num = len(services)
                    app_dict["services_num"] = services_num

                    run_service_num = 0
                    if services:
                        service_ids = []
                        for service in services:
                            service_ids.append(service.service_id)

                        status_list = base_service.status_multi_service(
                            region=self.response_region,
                            tenant_name=self.team_name,
                            service_ids=service_ids,
                            enterprise_id=self.team.enterprise_id)
                        for status in status_list:
                            if status["status"] in [
                                    "running", "upgrade", "starting",
                                    "some_abnormal"
                            ]:
                                run_service_num += 1

                    app_dict["run_service_num"] = run_service_num
                    app_list.append(app_dict)

                # 排序
                app_list.sort(key=lambda x: x['run_service_num'], reverse=True)

            apps_list = app_list[start:end]
            result = general_message(200,
                                     "success",
                                     "查询成功",
                                     list=apps_list,
                                     bean=app_num_dict)
            return Response(result, status=200)
        except Exception as e:
            logger.exception(e)
            result = error_message(e.message)
            return Response(result, status=500)