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.
- ok:1 respuesta con un error de nivel de confirmación de escritura (write concern) (writeConcernError campo de nivel superior). Esto indica que el nodo que responde ejecutó exitosamente la solicitud, pero no hubo suficientes otros nodos que ejecutaran exitosamente la solicitud para satisfacer el nivel de confirmación de escritura (write concern).
- ok:1 respuesta con el campo de nivel superior writeErrors. Esto se puede obtener en una operación de guardar masiva, pero también en una operación de no guardar masiva. En un guardado no masivo, debe haber exactamente un error en la lista de errores de guardado. El caso de errores múltiples es gestionado por BulkWrite::Result.
- ok:1 respuesta con el campo de nivel superior writeConcernErrors. Esto solo se puede obtener en una escritura masiva y es gestionado por BulkWrite::Result, no por 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 extraído del documento.
-
#document ⇒ BSON::Document
Solo lectura
privado
El documento devuelto.
-
#etiquetas ⇒ arreglo<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
-
#initialize(documento, respuestas = nil, opciones = nil) ⇒ parser
constructor
privado
Crea el nuevo analizador con el documento devuelto.
-
#write_concern_error? ⇒ true | false
Si el documento incluye un error de nivel de confirmación de escritura (write concern).
-
#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 nivel de confirmación de escritura (write concern) tal y como lo reportó el servidor, si lo hubo.
-
#write_concern_error_labels ⇒ Array<String> | nil
privado
error de nivel de confirmación de escritura (write concern), si hay un error de nivel de confirmación de escritura (write concern) 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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Crea el nuevo analizador con el documento devuelto.
85 86 87 88 89 90 91 92 93 94 |
# Archivo 'lib/mongo/error/parser.rb', línea 85 def inicializar(Documento, respuestas = nulo, = nulo) @document = Documento || {} @replies = respuestas @options = si .dup else {} end.freeze parse! end |
Detalles de atributo de instancias
#código ⇒ Entero (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el código de error analizado del documento.
62 63 64 |
# Archivo 'lib/mongo/error/parser.rb', línea 62 def Código @code end |
#nombre_del_código ⇒ string (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve el nombre del código de error extraído del documento.
66 67 68 |
# Archivo 'lib/mongo/error/parser.rb', línea 66 def code_name @code_name end |
#documento ⇒ BSON::Documento (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve El documento devuelto.
47 48 49 |
# Archivo 'lib/mongo/error/parser.rb', línea 47 def Documento @document end |
#labels ⇒ arreglo<String> (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve El conjunto de etiquetas asociado al error.
70 71 72 |
# Archivo 'lib/mongo/error/parser.rb', línea 70 def etiquetas @labels end |
#mensaje ⇒ string (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método 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.
51 52 53 |
# Archivo 'lib/mongo/error/parser.rb', línea 51 def @message end |
#replies ⇒ Array<Protocol::Message> (readonly)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve Las respuestas de los mensajes.
58 59 60 |
# Archivo 'lib/mongo/error/parser.rb', línea 58 def respuestas @replies end |
#mensaje_del_servidor ⇒ String (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método 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.
55 56 57 |
# Archivo 'lib/mongo/error/parser.rb', línea 55 def @server_message end |
#wtimeout ⇒ objeto (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
73 74 75 |
# Archivo 'lib/mongo/error/parser.rb', línea 73 def wtimeout @wtimeout end |
Detalles del método de clase
.build_message(código: nil, nombre_código: nil, mensaje: nil) ⇒ Object
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# Archivo 'lib/mongo/error/parser.rb', línea 140 def (código: nulo, code_name: nulo, mensaje: nulo) si code_name && Código "[#{code}:#{code_name}]: #{}" elsif code_name # Esto seguramente nunca debería suceder, si hay un nombre de código # también debería proporcionarse el código. # Gestiona este caso para mayor exhaustividad. "[#{code_name}]: #{}" elsif Código "[#{code}]: #{}" 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.
102 103 104 |
# Archivo 'lib/mongo/error/parser.rb', línea 102 def ¿error_de_escritura? !!documento_de_error_de_gravedad_de_escritura end |
#write_concern_error_code ⇒ Integer | nil
Devuelve el código de error 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) presente y tiene un código.
120 121 122 |
# Archivo 'lib/mongo/error/parser.rb', línea 120 def write_concern_error_code documento_de_error_de_gravedad_de_escritura && documento_de_error_de_gravedad_de_escritura['code'] end |
#write_concern_error_code_name ⇒ String | nil
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.
129 130 131 |
# Archivo 'lib/mongo/error/parser.rb', línea 129 def write_concern_error_code_name documento_de_error_de_gravedad_de_escritura && documento_de_error_de_gravedad_de_escritura['codeName'] end |
#Documento de error de write concern ⇒ Hash | nil
Devuelve el documento de error de nivel de confirmación de escritura (write concern) tal y como lo reportó el servidor, si lo hubo.
111 112 113 |
# Archivo 'lib/mongo/error/parser.rb', línea 111 def documento_de_error_de_gravedad_de_escritura Documento['writeConcernError'] end |
#write_concern_error_labels ⇒ arreglo<String> | nil
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
error de nivel de confirmación de escritura (write concern), si hay un error de nivel de confirmación de escritura (write concern) presente.
135 136 137 |
# Archivo 'lib/mongo/error/parser.rb', línea 135 def write_concern_error_labels documento_de_error_de_gravedad_de_escritura && documento_de_error_de_gravedad_de_escritura['errorLabels'] end |