def get_team_usable_regions(self, team_name, enterprise_id):
     usable_regions = region_repo.get_usable_regions(enterprise_id)
     region_names = [r.region_name for r in usable_regions]
     team_opened_regions = region_repo.get_team_opened_region(team_name)
     if team_opened_regions:
         team_opened_regions = team_opened_regions.filter(
             is_init=True, region_name__in=region_names)
     return team_opened_regions
Esempio n. 2
0
 def get_team_unopen_region(self, team_name):
     usable_regions = region_repo.get_usable_regions()
     team_opened_regions = region_repo.get_team_opened_region(team_name).filter(is_init=True)
     opened_regions_name = [
         team_region.region_name for team_region in team_opened_regions
     ]
     unopen_regions = usable_regions.exclude(
         region_name__in=opened_regions_name)
     return [unopen_region.to_dict() for unopen_region in unopen_regions]
Esempio n. 3
0
 def get_team_usable_regions(self, team_name):
     usable_regions = region_repo.get_usable_regions()
     region_names = [r.region_name for r in usable_regions]
     team_opened_regions = region_repo.get_team_opened_region(
         team_name).filter(is_init=True, region_name__in=region_names)
     return team_opened_regions
Esempio n. 4
0
    def get(self, request, *args, **kwargs):
        """
        组件事件动态
        ---
        parameters:
            - name: team_name
              description: 团队名
              required: true
              type: string
              paramType: path
            - name: page
              description: 页数(默认第一页)
              required: false
              type: string
              paramType: query
            - name: page_size
              description: 每页展示个数(默认3个)
              required: false
              type: string
              paramType: query
        """
        page = request.GET.get("page", 1)
        page_size = request.GET.get("page_size", 3)
        total = 0
        regionsList = region_repo.get_team_opened_region(self.tenant)
        event_service_dynamic_list = []
        for region in regionsList:
            try:
                events, event_count, has_next = event_service.get_target_events(
                    "tenant", self.tenant.tenant_id, self.tenant,
                    region.region_name, int(page), int(page_size))
                event_service_dynamic_list = event_service_dynamic_list + events
                total = total + event_count
            except Exception as e:
                logger.error(
                    "Region api return error {0}, ignore it".format(e))

        event_service_dynamic_list = sorted(event_service_dynamic_list,
                                            self.__sort_events)

        service_ids = []
        for event in event_service_dynamic_list:
            if event["Target"] == "service":
                service_ids.append(event["TargetID"])

        services = service_repo.get_service_by_service_ids(service_ids)

        event_service_list = []
        for event in event_service_dynamic_list:
            if event["Target"] == "service":
                for service in services:
                    if service.service_id == event["TargetID"]:
                        event["service_alias"] = service.service_alias
                        event["service_name"] = service.service_cname
            event_service_list.append(event)

        event_paginator = JuncheePaginator(event_service_list, int(page_size))
        event_page_list = event_paginator.page(page)
        total = event_paginator.count
        event_list = [event for event in event_page_list]
        result = general_message(200,
                                 'success',
                                 "查询成功",
                                 list=event_list,
                                 total=total)
        return Response(result, status=result["code"])