def _get_resources(self, request, project_id, namespace_id): access_token = request.user.token.access_token # 查询namespace ns_info = get_namespace_by_id(access_token, project_id, namespace_id) client = MesosClient(access_token, project_id, ns_info["cluster_id"], env=None) # 根据类型查询资源,如果有接口调用失败,先忽略 res_names = {} ns_name = ns_info["name"] # 请求bcs api,获取数据 deployment_resp = client.get_deployment(namespace=ns_name) application_resp = client.get_mesos_app_instances(namespace=ns_name) configmap_resp = client.get_configmaps(params={"namespace": ns_name}) service_resp = client.get_services(params={"namespace": ns_name}) secret_resp = client.get_secrets(params={"namespace": ns_name}) res_data = { MesosResourceName.deployment.value: deployment_resp["data"], MesosResourceName.application.value: application_resp["data"], MesosResourceName.configmap.value: configmap_resp["data"], MesosResourceName.service.value: service_resp["data"], MesosResourceName.secret.value: secret_resp["data"] } res_names = self._compose_res_names(res_data) return res_names
def check_ns_image_secret(self, client, access_token, project_id, cluster_id, ns_name): """检查命名空间下是否已经有secret文件""" params = {"namespace": ns_name, "name": MESOS_IMAGE_SECRET, "decode": "1", "field": "namespace,resourceName"} resp = client.get_secrets(params) # 能够在storage上查询到则说明存在 data = resp.get('data') or [] if data: return True return False