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