Clase: Mongo::Error::Parser Privada
- Hereda:
-
Objeto
- Objeto
- Mongo::Error::Parser
- Incluye:
- SdamErrorDetection
- Definido en:
- lib/mongo/error/parser.rb
Overview
Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.
Clase para analizar las diversas formas en que pueden presentarse errores en las respuestas a comandos de MongoDB.
Los errores pueden ser reportados por el servidor de diversas maneras:
-
ok:0 respuesta indica fallo. En servidores más recientes, deben establecerse los campos code, codeName y errmsg. En servidores antiguos, es posible que algunos no estén configurados.
-
Respuesta ok:1 con un error de escritura (campo de nivel superior writeConcernError). Esto indica que el nodo que respondió ejecutó la solicitud correctamente, pero no hubo suficientes otros nodos para satisfacer el error de escritura.
-
Respuesta ok:1 con el campo de nivel superior writeErrors. Esto se puede obtener tanto en una escritura masiva como en una escritura no masiva. En una escritura no masiva, debe haber exactamente un error en la lista writeErrors. BulkWrite::Result gestiona los errores múltiples.
-
Respuesta ok:1 con el campo de nivel superior writeConcernErrors. Esto solo se puede obtener en una escritura masiva y lo gestiona BulkWrite::Result, no esta clase.
Tenga en cuenta que writeErrors no tiene campos codeName; solo proporciona códigos y mensajes. De manera similar, writeConcernErrors podría no proporcionar nombres de código.
Resumen constante
Constantes incluidas de SdamErrorDetection
SdamErrorDetection::NODE_RECOVERING_CODES, SdamErrorDetection::NODE_SHUTTING_DOWN_CODES, SdamErrorDetection::NOT_MASTER_CODES
Resumen de atributos de la instancia colapsar
-
#code ⇒ Integer
Solo lectura
privado
El código de error analizado del documento.
-
#code_name ⇒ String
Solo lectura
privado
El nombre del código de error analizado del documento.
-
#document ⇒ BSON::Document
Solo lectura
privado
El documento devuelto.
-
#etiquetas ⇒ Matriz<String>
Solo lectura
privado
El conjunto de etiquetas asociadas con el error.
-
#message ⇒ String
Solo lectura
privado
El mensaje de error completo que se utilizará en la excepción generada.
-
#replies ⇒ Array<Protocol::Message>
Solo lectura
privado
Las respuestas a los mensajes.
-
#server_message ⇒ String
Solo lectura
privado
El mensaje de error devuelto por el servidor que se ha analizado a partir de la respuesta.
- #wtimeout ⇒ Objeto Solo lectura privado
Resumen del método de clase colapsar
Resumen del método de instancia colapsar
-
#inicializar(documento, respuestas = nulo, opciones = nulo) ⇒ Analizador
constructor
privado
Crea el nuevo analizador con el documento devuelto.
-
#write_concern_error? ⇒ true | false
Si el documento incluye un error de escritura.
-
#write_concern_error_code ⇒ Entero | nil
El código de error del error de nivel de confirmación de escritura (write concern), si un error de nivel de confirmación de escritura (write concern) está presente y tiene un código.
-
#write_concern_error_code_name ⇒ String | nulo
El nombre en clave para el error de nivel de confirmación de escritura (write concern), si existe un error de nivel de confirmación de escritura (write concern) y tiene un nombre en clave.
-
#write_concern_error_document ⇒ Hash | nil
Devuelve el documento de error de escritura tal como lo informó el servidor, si lo hay.
-
#escribir_etiquetas_de_error_de_preocupación ⇒ Matriz<String> | nulo
privado
Error de escritura, si hay un error de escritura presente.
Métodos incluidos de SdamErrorDetection
#nodo_recuperando?, #nodo_apagándose?, #no_es_máster?
Detalles del constructor
#inicializar(documento, respuestas = nil, opciones = nil) ⇒ Parser
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Crea el nuevo analizador con el documento devuelto.
En el modo heredado, los campos code y codeName del documento no se examinan porque el estado (ok: 1) no forma parte del documento y no es posible distinguir las respuestas correctas de las incorrectas utilizando el propio documento. Una respuesta correcta puede tener legítimamente { code: 123, codeName: 'foo' } como contenido de un documento insertado por el usuario. Las versiones heredadas del servidor no completan code ni codeName, por lo que no leerlos no implica pérdida de información.
122 123 124 125 126 127 128 129 130 131 |
# Archivo 'lib/mongo/error/parser.rb', línea 122 def inicializar(Documento, respuestas = nulo, = nulo) @documento = Documento || {} @replies = respuestas @options = si .dup else {} end.freeze parse! end |
Detalles de los atributos de instancia
#código ⇒ Entero (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el código de error analizado del documento.
88 89 90 |
# Archivo 'lib/mongo/error/parser.rb', línea 88 def Código @code end |
#nombre_del_código ⇒ string (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el nombre del código de error analizado del documento.
92 93 94 |
# Archivo 'lib/mongo/error/parser.rb', línea 92 def nombre_clave @code_name end |
#documento ⇒ BSON::Documento (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve El documento devuelto.
73 74 75 |
# Archivo 'lib/mongo/error/parser.rb', línea 73 def Documento @documento end |
#labels ⇒ arreglo<String> (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve El conjunto de etiquetas asociado al error.
96 97 98 |
# Archivo 'lib/mongo/error/parser.rb', línea 96 def etiquetas @labels end |
#mensaje ⇒ string (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el mensaje de error completo que se debe usar en la excepción generada.
77 78 79 |
# Archivo 'lib/mongo/error/parser.rb', línea 77 def @mensaje end |
#replies ⇒ Array<Protocol::Message> (readonly)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve las respuestas del mensaje.
84 85 86 |
# Archivo 'lib/mongo/error/parser.rb', línea 84 def respuestas @replies end |
#mensaje_del_servidor ⇒ String (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
DevuelveEl mensaje de error devuelto por el servidor analizado de la respuesta.
81 82 83 |
# Archivo 'lib/mongo/error/parser.rb', línea 81 def @server_message end |
#wtimeout ⇒ objeto (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
99 100 101 |
# Archivo 'lib/mongo/error/parser.rb', línea 99 def wtimeout @wtimeout end |
Detalles del método de clase
.build_message(código: nil, nombre_código: nil, mensaje: nil) ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# Archivo 'lib/mongo/error/parser.rb', línea 177 def (código: nulo, nombre_código: nulo, Mensaje: nulo) si nombre_clave && Código "[#{code}:#{code_name}]: #{}" elsif nombre_clave # Esto seguramente nunca debería suceder, si hay un nombre en código # también debería proporcionarse el código. # Manejar este caso para completarlo. "[#{code_name}]: #{}" elsif Código "[#{código}]: #{}" else end end |
Detalles del método de instancia
#es_una_inquietud_de _escritura? ⇒ true | false
Devuelve si el documento incluye un error de nivel de confirmación de escritura (write concern). Una falla puede tener un error de nivel superior y un error de nivel de confirmación de escritura (write concern) o uno de los dos.
139 140 141 |
# Archivo 'lib/mongo/error/parser.rb', línea 139 def ¿error_de_escritura? !!documento_de_error_de_gravedad_de_escritura end |
#write_concern_error_code ⇒ Entero | nulo
Devuelve el código de error para el error de escritura, si hay un error de escritura y tiene un código.
157 158 159 |
# Archivo 'lib/mongo/error/parser.rb', línea 157 def write_concern_error_code documento_de_error_de_gravedad_de_escritura && documento_de_error_de_gravedad_de_escritura['code'] end |
#nombre_código_error_escritura_preocupación ⇒ Cadena | nulo
Retorna el nombre del código para el error de nivel de confirmación de escritura (write concern), si hay un error de nivel de confirmación de escritura (write concern) y este tiene un nombre de código.
166 167 168 |
# Archivo 'lib/mongo/error/parser.rb', línea 166 def write_concern_error_code_name documento_de_error_de_gravedad_de_escritura && documento_de_error_de_gravedad_de_escritura['nombreCódigo'] end |
#Documento de error de write concern ⇒ Hash | nil
Devuelve el documento de error de escritura tal como lo informó el servidor, si lo hay.
148 149 150 |
# Archivo 'lib/mongo/error/parser.rb', línea 148 def documento_de_error_de_gravedad_de_escritura Documento['writeConcernError'] end |
#escribir_etiquetas_de_error_de_preocupación ⇒ Matriz<String> | nulo
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Error de escritura, si hay un error de escritura presente.
172 173 174 |
# Archivo 'lib/mongo/error/parser.rb', línea 172 def etiquetas de error de escritura de preocupación documento_de_error_de_gravedad_de_escritura && documento_de_error_de_gravedad_de_escritura['errorLabels'] end |