Classe: Mongo::Error::Parser Private
- Herda:
-
Objeto
- Objeto
- Mongo::Error::parser
- Inclui:
- SdamErrorDetection
- Definido em:
- lib/mongo/error/parser.rb
Visão geral
Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.
Classe para analisar as várias formas em que os erros podem vir das respostas de comando MongoDB.
Os erros podem ser relatados pelo servidor de várias maneiras:
- ok: a resposta 0 indica falha. Em servidores mais recentes, os campos code, codeName e errmsg devem ser definidos. Em servidores mais antigos, alguns podem não estar definidos.
- ok: resposta 1 com um erro de write concern (campo de nível superior writeConcernError). Isso indica que o nó que responde executou a solicitação com êxito, mas outros nós não executaram a solicitação com êxito o suficiente para satisfazer o write concern.
- ok:1 resposta com o campo de nível superior writeErrors . Isso pode ser obtido em uma gravação em massa, mas também em uma gravação não em massa. Em uma gravação não em massa, deve haver exatamente um erro na lista writeErrors. O caso de vários erros é tratado por BulkWrite::Result.
- ok:1 resposta com o campo de nível superior writeConcernErrors. Isso só pode ser obtido em uma gravação em massa e é tratado por BulkWrite::Result, não por essa classe.
Observe que writeErrors não têm campos codeName - eles apenas fornecem códigos e mensagens. Da mesma forma, os writeConcernErrors podem não fornecer nomes de código.
Resumo constante
Constantes incluídas de SdamErrorDetection
SdamErrorDetection::NODE_RECOVERING_CODES, SdamErrorDetection::NODE_SHUTTING_DOWN_CODES, SdamErrorDetection::NOT_MASTER_CODES
Recolhimento do Resumo do atributo de instância
-
#code ➤ inteiro
Somente leitura
privado
O código de erro analisado do documento.
-
#code_name ➤ string
Somente leitura
privado
O nome do código de erro analisado do documento.
-
#document ➤ BSON::Document
Somente leitura
privado
O documento devolvido.
-
#rótulos ➤ Array<String>
Somente leitura
privado
O conjunto de rótulos associados ao erro.
-
#mensagem ➤ string
Somente leitura
privado
A mensagem de erro completa a ser usada na exceção gerada.
-
#replies ⇒ Array<Protocol::Message>
Somente leitura
privado
A mensagem responde.
-
#server_message ➤ string
Somente leitura
privado
A mensagem de erro retornada pelo servidor analisada a partir da resposta.
- #wtimeout ➤ Objeto Somente leitura privado
Recolhimento do Resumo do método de classe
Recolhimento do Resumo do método de instância
-
#initialize(documento, respostas = nil, opções = nil) ➤ Analisador
construtor
privado
Crie o novo analisador com o documento retornado.
-
#write_concern_error? ➤ verdadeiro | false
Se o documento inclui um erro de write concern.
-
#write_concern_error_code ➤ Inteiro | nada
O código de erro para o erro de preocupação de gravação, se um erro de preocupação de gravação estiver presente e tiver um código.
-
#write_concern_error_code_name ➤ string | nada
O nome de código do erro de preocupação de gravação , se um erro de preocupação de gravação estiver presente e tiver um nome de código.
-
#write_concern_error_document ➤ Hash | nada
Retorna o documento de erro de write concern conforme relatado pelo servidor, se houver.
-
#write_concern_error_labels ➤ Array<String> | nada
privado
erro de write concern, se houver um erro de write concern presente.
Métodos incluídos do SdamErrorDetection
#node_recovering?, #node_shutting_down?, #not_master?
Detalhes do construtor
#initialize(documento, responses = nil, options = nil) ➤ Analisador
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Crie o novo analisador com o documento retornado.
85 86 87 88 89 90 91 92 93 94 |
# Arquivo 'lib/mongo/error/parser.rb', linha 85 def inicializar(documento, respostas = nada, = nada) @document = documento || {} @replica = respostas @opções = se .dup mais {} end.congelar análise! end |
Detalhes do atributo da instância
#code ➤ Inteiro (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o código de erro analisado do documento.
62 63 64 |
# Arquivo 'lib/mongo/error/parser.rb', linha 62 def código @code end |
#code_name ➤ string (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o nome do código de erro analisado do documento.
66 67 68 |
# Arquivo 'lib/mongo/error/parser.rb', linha 66 def code_name @code_name end |
#document ➤ BSON::Document (readonly)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna O documento retornado.
47 48 49 |
# Arquivo 'lib/mongo/error/parser.rb', linha 47 def documento @document end |
#rótulos ➤ Array<String> (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna o conjunto de rótulos associados ao erro.
70 71 72 |
# Arquivo 'lib/mongo/error/parser.rb', linha 70 def rótulos @labels end |
#mensagem ➤ string (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna a mensagem de erro completa a ser usada na exceção gerada.
51 52 53 |
# Arquivo 'lib/mongo/error/parser.rb', linha 51 def @message end |
#replies ⇒ Array<Protocol::Message> (readonly)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna A mensagem responde.
58 59 60 |
# Arquivo 'lib/mongo/error/parser.rb', linha 58 def respostas @replica end |
#server_message ➤ string (readonly)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna A mensagem de erro retornada pelo servidor analisada a partir da resposta.
55 56 57 |
# Arquivo 'lib/mongo/error/parser.rb', linha 55 def @server_message end |
#wtimeout ➤ Object (somente leitura)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
73 74 75 |
# Arquivo 'lib/mongo/error/parser.rb', linha 73 def tempo esgotado @wtimeout end |
Detalhes do método de classe
.build_message(code: nil, code_name: nil, mensagem: nil) ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
140 141 142 143 144 145 146 147 148 149 150 151 152 153 |
# Arquivo 'lib/mongo/error/parser.rb', linha 140 def (código: nada, code_name: nada, Mensagem: nada) se code_name && código "[#{code}:#{code_name}]: #{}" elsif code_name # Isso seguramente nunca deve acontecer, se houver um nome de código # também deve haver o código fornecido. # Lidar com este caso para completar. "[#{code_name}]: #{}" elsif código "[#{code}]: #{}" mais end end |
Detalhes do método de instância
#write_concern_error? ➤ verdadeiro | false
Retorna se o documento inclui um erro de write concern. Uma falha pode ter um erro de nível superior e um erro de write concern ou qualquer um dos dois.
102 103 104 |
# Arquivo 'lib/mongo/error/parser.rb', linha 102 def write_concern_error? !!write_concern_error_document end |
#write_concern_error_code ➤ Inteiro | nada
Retorna o código de erro para o erro de preocupação de gravação, se um erro de preocupação de gravação estiver presente e tiver um código.
120 121 122 |
# Arquivo 'lib/mongo/error/parser.rb', linha 120 def write_concern_error_code write_concern_error_document && write_concern_error_document['código'] end |
#write_concern_error_code_name ➤ string | nada
Retorna o nome do código do erro de preocupação de gravação, se um erro de preocupação de gravação estiver presente e tiver um nome de código.
129 130 131 |
# Arquivo 'lib/mongo/error/parser.rb', linha 129 def write_concern_error_code_name write_concern_error_document && write_concern_error_document['codeName'] end |
#write_concern_error_document ➤ Hash | nada
Retorna o documento de erro de write concern conforme relatado pelo servidor, se houver.
111 112 113 |
# Arquivo 'lib/mongo/error/parser.rb', linha 111 def write_concern_error_document documento['writeConcernError'] end |
#write_concern_error_labels ➤ Array<String> | nada
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
erro de write concern, se houver um erro de write concern presente.
135 136 137 |
# Arquivo 'lib/mongo/error/parser.rb', linha 135 def write_concern_error_labels write_concern_error_document && write_concern_error_document['errorLabels'] end |