예제 #1
0
    def get_all_regions(self, query="", page=None, page_size=None):
        regions = region_repo.get_all_regions(query)
        total = regions.count()
        paginator = Paginator(regions, page_size)
        rp = paginator.page(page)

        result = []
        for region in rp:
            result.append({
                "region_alias": region.region_alias,
                "url": region.url,
                "token": region.token,
                "wsurl": region.wsurl,
                "httpdomain": region.httpdomain,
                "tcpdomain": region.tcpdomain,
                "scope": region.scope,
                "ssl_ca_cert": region.ssl_ca_cert,
                "cert_file": region.cert_file,
                "key_file": region.key_file,
                "status": region.status,
                "desc": region.desc,
                "region_name": region.region_name,
                "region_id": region.region_id
            })

        return result, total
 def get_regions_with_resource(self, query="", page=None, page_size=None):
     # get all region list
     regions = region_repo.get_all_regions(query)
     total = regions.count()
     if page and page_size:
         paginator = Paginator(regions, page_size)
         regions = paginator.page(page)
     return self.conver_regions_info(regions, "yes"), total
    def create_enterprise(self, enterprise_name='', enterprise_alias=''):
        """
        创建一个本地的企业信息, 并生成本地的企业ID

        :param enterprise_name: 企业的英文名, 如果没有则自动生成一个, 如果存在则需要保证传递的名字在数据库中唯一
        :param enterprise_alias: 企业的别名, 可以中文, 用于展示用, 如果为空则自动生成一个
        :return:
        """
        enterprise = TenantEnterprise()

        # Deal with enterprise English name, discard logic.
        if enterprise_name:
            enterprise_name_regx = re.compile(r'^[a-z0-9-]*$')
            if enterprise_name and not enterprise_name_regx.match(
                    enterprise_name):
                logger.error('bad enterprise_name: {}'.format(enterprise_name))
                raise Exception(
                    'enterprise_name  must consist of lower case alphanumeric characters or -'
                )

            if TenantEnterprise.objects.filter(
                    enterprise_name=enterprise_name).count() > 0:
                raise Exception('enterprise_name [{}] already existed!'.format(
                    enterprise_name))
            else:
                enter_name = enterprise_name
        else:
            enter_name = self.random_enterprise_name()
        enterprise.enterprise_name = enter_name

        # 根据企业英文名确认UUID
        is_first_ent = TenantEnterprise.objects.count() == 0
        eid = os.environ.get('ENTERPRISE_ID')
        if not eid or not is_first_ent:
            eid = make_uuid(enter_name)
        region = region_repo.get_all_regions().first()
        if region:
            region.enterprise_id = eid
            region.save()
        enterprise.enterprise_id = eid

        # 处理企业别名
        if not enterprise_alias:
            enterprise.enterprise_alias = '企业{0}'.format(enter_name)
        else:
            enterprise.enterprise_alias = enterprise_alias

        enterprise.save()
        return enterprise
예제 #4
0
 def regions(cls):
     configs = custom_settings.configs()
     # api_conf = custom_settings.REGION_SERVICE_API
     api_conf = configs.get("REGION_SERVICE_API", None)
     # 自定义配置不存在时访问settings文件
     if not api_conf:
         regions = region_repo.get_all_regions()
         region_list = [{
             "name": r.region_name,
             "label": r.region_alias,
             "enable": bool(r.status == "1")
         } for r in regions]
         return region_list
     else:
         region_list = []
         for conf in api_conf:
             region_map = dict()
             region_map["name"] = conf["region_name"]
             region_map["label"] = conf["region_alias"]
             region_map["enable"] = conf.get("enable", True)
             region_list.append(region_map)
         return region_list
예제 #5
0
 def get_all_regions(self):
     return region_repo.get_all_regions()