Exemplo n.º 1
0
    def get_mesos_context(self, request, project_id, cluster_id):
        """获取mesos context
        """
        client = MesosClient(request.user.token.access_token, project_id, cluster_id, None)
        slz = MesosWebConsoleSLZ(data=request.query_params, context={'client': client})
        slz.is_valid(raise_exception=True)

        context = {
            'short_container_id': slz.validated_data['container_id'][:12],
            'project_kind': request.project.kind,
            'server_address': client._bcs_server_host,
            'user_pod_name': slz.validated_data['container_name'],
        }
        context.update(slz.validated_data)

        exec_id = client.get_container_exec_id(context['host_ip'], context['short_container_id'])
        if not exec_id:
            utils.activity_log(
                project_id, self.cluster_name, request.user.username, False, f'连接{context["user_pod_name"]}失败')

            raise error_codes.APIError(f'连接 {context["user_pod_name"]} 失败,请检查容器状态是否正常{settings.COMMON_EXCEPTION_MSG}')
        context['exec_id'] = exec_id
        context['mode'] = mesos.ContainerDirectClient.MODE

        client_context = {
            'access_token': request.user.token.access_token,
            'project_id': project_id,
            'cluster_id': cluster_id,
            'env': client._bcs_server_stag
        }
        context['client_context'] = client_context
        return context
Exemplo n.º 2
0
    def get_mesos_context(self, request, project_id, cluster_id):
        """获取mesos context
        """
        client = MesosClient(request.user.token.access_token, project_id,
                             cluster_id, None)
        slz = MesosWebConsoleSLZ(data=request.query_params,
                                 context={"client": client})
        slz.is_valid(raise_exception=True)

        context = {
            "short_container_id": slz.validated_data["container_id"][:12],
            "project_kind": request.project.kind,
            "server_address": client._bcs_server_host,
            "user_pod_name": slz.validated_data["container_name"],
        }
        context.update(slz.validated_data)

        exec_id = client.get_container_exec_id(context["host_ip"],
                                               context["short_container_id"])
        if not exec_id:
            utils.activity_log(
                project_id,
                cluster_id,
                self.cluster_name,
                request.user.username,
                False,
                f'连接{context["user_pod_name"]}失败',
            )

            raise error_codes.APIError(
                _("连接 {} 失败,请检查容器状态是否正常{}").format(
                    context["user_pod_name"], settings.COMMON_EXCEPTION_MSG))
        context["exec_id"] = exec_id
        context["mode"] = mesos.ContainerDirectClient.MODE

        client_context = {
            "access_token": request.user.token.access_token,
            "project_id": project_id,
            "cluster_id": cluster_id,
            "env": client._bcs_server_stag,
        }
        context["client_context"] = client_context
        return context