Exemplo n.º 1
0
    def has_bcs_service(self, access_token, project_id, request_namespace):
        """判断是否开启容器服务
        开启后就不能关闭,所以缓存很久,默认30天
        """
        cache_key = f"BK_DEVOPS_BCS:HAS_BCS_SERVICE:{project_id}"
        project = region.get(cache_key, expiration_time=3600 * 24 * 30)

        if not project or not isinstance(project, FancyDict):
            result = paas_cc.get_project(access_token, project_id)
            project = result.get("data") or {}

            # coes: container orchestration engines
            project['coes'] = project['kind']
            try:
                from backend.container_service.projects.utils import get_project_kind

                # k8s类型包含kind为1(bcs k8s)或其它属于k8s的编排引擎
                project['kind'] = get_project_kind(project['kind'])
            except ImportError:
                pass

            project = FancyDict(project)

            if request_namespace in SKIP_REQUEST_NAMESPACE:
                # 如果是SKIP_REQUEST_NAMESPACE,有更新接口,不判断kind
                if project.get("cc_app_id") != 0:
                    region.set(cache_key, project)

            elif project.get("cc_app_id") != 0:
                region.set(cache_key, project)
            else:
                # 其他抛出没有开启容器服务
                raise error_codes.NoBCSService()

        return project
Exemplo n.º 2
0
    def _refine_project(self, project: FancyDict):
        project.coes = project.kind
        project.project_code = project.english_name

        try:
            from backend.container_service.projects.utils import get_project_kind

            # k8s类型包含kind为1(bcs k8s)或其它属于k8s的编排引擎
            project.kind = get_project_kind(project.kind)
        except ImportError:
            pass