Clase: Mongo::Error::Parser Privada

Hereda:
Objeto
  • Objeto
Mostrar todo
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.

Desde:

  • 2.0.0

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

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

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.

Ejemplos:

Crea el nuevo parser.

Parser.new({ 'errmsg' => 'failed' })

Parámetros:

  • Documento (BSON::Document)

    El documento devuelto.

  • respuestas (Array<Protocol::Message>) (valor por defecto: nil)

    Las respuestas a los mensajes.

  • opciones (encriptada) (valor por defecto: nil)

    Las opciones.

Desde:

  • 2.0.0



85
86
87
88
89
90
91
92
93
94
# Archivo 'lib/mongo/error/parser.rb', línea 85

def inicializar(Documento, respuestas = nulo, opciones = nulo)
  @document = Documento || {}
  @replies = respuestas
  @options = si opciones
               opciones.dup
             else
               {}
             end.freeze
  parse!
end

Detalles de atributo de instancias

#códigoEntero (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.

Devuelve:

  • (Número entero)

    El código de error analizado del documento.

Desde:

  • 2.6.0



62
63
64
# Archivo 'lib/mongo/error/parser.rb', línea 62

def Código
  @code
end

#nombre_del_códigostring (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.

Devuelve:

  • (string)

    El nombre del código de error extraído del documento.

Desde:

  • 2.6.0



66
67
68
# Archivo 'lib/mongo/error/parser.rb', línea 66

def code_name
  @code_name
end

#documentoBSON::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.

Devuelve:

  • (BSON::Document)

    El documento devuelto.

Desde:

  • 2.0.0



47
48
49
# Archivo 'lib/mongo/error/parser.rb', línea 47

def Documento
  @document
end

#labelsarreglo<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.

Devuelve:

  • (arreglo<String>)

    El conjunto de etiquetas asociadas con el error.

Desde:

  • 2.7.0



70
71
72
# Archivo 'lib/mongo/error/parser.rb', línea 70

def etiquetas
  @labels
end

#mensajestring (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.

Devuelve:

  • (string)

    El mensaje de error completo que se utilizará en la excepción generada.

Desde:

  • 2.0.0



51
52
53
# Archivo 'lib/mongo/error/parser.rb', línea 51

def mensaje
  @message
end

#repliesArray<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.

Devuelve:

Desde:

  • 2.0.0



58
59
60
# Archivo 'lib/mongo/error/parser.rb', línea 58

def respuestas
  @replies
end

#mensaje_del_servidorString (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.

Devuelve:

  • (string)

    El mensaje de error devuelto por el servidor que se ha analizado a partir de la respuesta.

Desde:

  • 2.0.0



55
56
57
# Archivo 'lib/mongo/error/parser.rb', línea 55

def server_message
  @server_message
end

#wtimeoutobjeto (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.

Desde:

  • 2.0.0



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.

Desde:

  • 2.0.0



140
141
142
143
144
145
146
147
148
149
150
151
152
153
# Archivo 'lib/mongo/error/parser.rb', línea 140

def build_message(código: nulo, code_name: nulo, mensaje: nulo)
  si code_name && Código
    "[#{code}:#{code_name}]: #{message}"
  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}]: #{message}"
  elsif Código
    "[#{code}]: #{message}"
  else
    mensaje
  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.

Devuelve:

  • (true | false)

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

Desde:

  • 2.10.0



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

Devuelve:

  • (Integer | 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.

Desde:

  • 2.10.0



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

Devuelve:

  • (String | nil)

    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.

Desde:

  • 2.10.0



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

Devuelve:

  • (Hash | nil)

    Error de nivel de confirmación de escritura (write concern) según lo informado al servidor.

Desde:

  • 2.0.0



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

Devuelve:

  • (arreglo<String> | nil)

    Las etiquetas de error asociadas a esto

Desde:

  • 2.0.0



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