示例#1
0
    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
示例#2
0
 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