def list_custom_objects(self, request, project_id, cluster_id, crd_name): cluster_auth = ClusterAuth(request.user.token.access_token, project_id, cluster_id) crd_client = CustomResourceDefinition(cluster_auth) crd = crd_client.get(name=crd_name, is_format=False) if not crd: raise error_codes.ResNotFoundError(_("集群({})中未注册自定义资源({})").format(cluster_id, crd_name)) cobj_client = get_cobj_client_by_crd(cluster_auth, crd_name) cobj_list = cobj_client.list(namespace=request.query_params.get("namespace")) return Response(to_table_format(crd.to_dict(), cobj_list, cluster_id=cluster_id))
def gen_cobj_web_annotations(request, project_id, cluster_id, crd_name: str) -> Dict: """ 构造 custom_object 相关 web_annotations """ client = CustomResourceDefinition(request.ctx_cluster) crd = client.get(name=crd_name, is_format=False) if not crd: raise ResourceNotExist( _('集群 {} 中未注册自定义资源 {}').format(cluster_id, crd_name)) # 先获取基础的,仅包含权限信息的 web_annotations web_annotations = gen_base_web_annotations(request, project_id, cluster_id) web_annotations.update({'additional_columns': crd.additional_columns}) return web_annotations
def list(self, request, project_id, cluster_id): """获取所有自定义资源列表""" self._validate_perm(request.user.username, project_id, cluster_id, None, DashboardAction.View) client = CustomResourceDefinition(request.ctx_cluster) response_data = ListApiRespBuilder(client).build() return Response(response_data)
def retrieve(self, request, project_id, cluster_id, crd_name): """获取单个自定义资源详情""" self._validate_perm(request.user.username, project_id, cluster_id, None, DashboardAction.View) client = CustomResourceDefinition(request.ctx_cluster) response_data = RetrieveApiRespBuilder(client, namespace=None, name=crd_name).build() return Response(response_data)
def get_crd_info(crd_name: str, ctx_cluster: CtxCluster) -> Dict: """ 获取 CRD 基础信息 :param crd_name: CRD 名称 :param ctx_cluster: 集群 Context :return: CRD 信息,包含 kind,scope 等 """ return CustomResourceDefinition(ctx_cluster).get(crd_name) or {}
def list_custom_objects(self, request, project_id, cluster_id, crd_name): crd_client = CustomResourceDefinition( access_token=request.user.token.access_token, project_id=project_id, cluster_id=cluster_id, ) crd = crd_client.get_custom_resource_definition(crd_name) cobj_client = CustomObject( access_token=request.user.token.access_token, project_id=project_id, cluster_id=cluster_id, crd_name=crd_name, ) query_ns = request.query_params.get("namespace") if query_ns: cobjs = cobj_client.list_namespaced_custom_object(query_ns) else: cobjs = cobj_client.list_cluster_custom_object() return Response(to_table_format(crd, cobjs, cluster_id=cluster_id))
def list(self, request, project_id, cluster_id): crd_client = CustomResourceDefinition(ClusterAuth(request.user.token.access_token, project_id, cluster_id)) return Response(crd_client.list())
def list(self, request, project_id, cluster_id): crd_client = CustomResourceDefinition(request.ctx_cluster) return Response(crd_client.list())
def list(self, request, project_id, cluster_id): crd_client = CustomResourceDefinition( access_token=request.user.token.access_token, project_id=project_id, cluster_id=cluster_id, ) crds = crd_client.list_custom_resource_definition() return Response([{"name": crd.metadata.name, "scope": crd.spec.scope} for crd in crds.items])
def retrieve(self, request, project_id, cluster_id, crd_name): """ 获取单个自定义资源详情 """ client = CustomResourceDefinition(request.ctx_cluster) response_data = RetrieveApiRespBuilder(client, namespace=None, name=crd_name).build() return Response(response_data)
def list(self, request, project_id, cluster_id): """ 获取所有自定义资源列表 """ client = CustomResourceDefinition(request.ctx_cluster) response_data = ListApiRespBuilder(client).build() return Response(response_data)