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