Classe: Mongo::Srv::Resolver Private
- Herda:
-
Objeto
- Objeto
- Mongo::Srv::Resolver
- Inclui:
- Logável
- Definido em:
- lib/mongo/srv/resolver.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.
Encapsula o comportamento necessário para consultar registros SRV, conforme exigido pelo driver.
Colapsode resumo constante
- gravar_prefixo =
Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.
Retorna REcord_Prefixe o prefixo anexado a cada nome de host antes de consultar os registros SRV.
'_mongodb._tcp.'.congelar
Constantes incluídas do Loggable
Recolhimento do Resumo do atributo de instância
-
#opções ➤ Hash
Somente leitura
privado
Opções do Resolver.
Recolhimento do Resumo do método de instância
-
#get_records(hostname, srv_service_name = nil, srv_max_hosts = nil) ➤ Mongo::Srv::Result
privado
Obtém todos os registros SRV para um determinado nome de host.
-
#get_txt_options_string(hostname) ➤ nil | string
privado
Obtém os registros TXT de um host.
-
#initialize(**opts) ➤ Resolver
construtor
privado
Cria um novo Resolvedor.
-
#record_prefix(srv_service_name = nil) ➤ string
privado
Gera o prefixo do registro com um nome de serviço SRV personalizado, se fornecido.
- #timeout ➤ Object privado
Métodos incluídos no Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger
Detalhes do construtor
#initialize(**opts) ➤ Resolver
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.
Cria um novo Resolvedor.
51 52 53 54 55 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 51 def inicializar(**opciona) @opções = opciona.congelar @resolver = Resolver::DNS.Novo(@opções[:resolv_options]) @resolver.tempos limite = timeout end |
Detalhes do atributo da instância
#opções ➤ Hash (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 as opções do Resolver.
58 59 60 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 58 def @opções end |
Detalhes do método de instância
#get_records(hostname, srv_service_name = nil, srv_max_hosts = nil) ➤ Mongo::Srv::Result
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.
Obtém todos os registros SRV para um determinado nome de host. Se um srv_max_hosts for especificado e for maior que 0, retorne o máximo de registros srv_max_hosts.
evento um registro com um domínio incompatível seja encontrado ou nenhum registro seja encontrado, se a opção :raise_on_invalid for verdadeira, será gerada uma exceção, caso contrário, será registrado um aviso.
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 84 def get_records(nome do host, srv_service_name=nada, srv_max_hosts=nada) query_name = record_prefix(srv_service_name) + nome do host Recursos = @resolver.obter recursos(query_name, Resolver::DNS::Resource::Em::SRV) # Colete todos os registros em um objeto Resultado , criando um erro # ou registrando um aviso se um registro com um domínio incompatível for encontrado. # Observe que, caso um aviso seja gerado, o registro é _not_ # adicionado ao objeto Resultado . Resultado = SRV::Resultado.Novo(nome do host) Recursos.cada fazer |registro| começar Resultado.add_record(registro) salvar Erro::Domínio incompatível => e se raise_on_invalid? aumentar mais log_service(e.) end end end # Se nenhum registro for encontrado, gere um erro ou registre um aviso # com base na opção :raise_on_invalid do Resolver. se Resultado.vazio? se raise_on_invalid? aumentar Erro::NoSRRVecords.Novo(URI::Protocolo SRV::NO_SRV_RECORDS % nome do host) mais log_service(URI::Protocolo SRV::NO_SRV_RECORDS % nome do host) end end # se srv_max_hosts estiver em [1, #addresses) se (1...Resultado.endereço_strs.Tamanho).incluir? srv_max_hosts sampled_records = Recursos.embaralhar.primeiro(srv_max_hosts) Resultado = SRV::Resultado.Novo(nome do host) sampled_records.cada { |registro| Resultado.add_record(registro) } end Resultado end |
#get_txt_options_string(hostname) ➤ nil | string
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.
Obtém os registros TXT de um host.
132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 132 def (nome do host) registros = @resolver.obter recursos(nome do host, Resolver::DNS::Resource::Em::TXT) se registros.vazio? Método nada end se registros.Tamanho > 1 mensagem = "Somente um registro TXT é permitido: consultando o nome do host #{nome dohost} retornou #{registros.comprimento} registros" aumentar Erro::TXTRecord inválido, mensagem end registros[0].strings.juntar end |
#record_prefix(srv_service_name = nil) ➤ string
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.
Gera o prefixo do registro com um nome de serviço SRV personalizado, se fornecido.
38 39 40 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 38 def record_prefix(srv_service_name=nada) Método srv_service_name ? "_#{srv_service_name}._tcp." : gravar_prefixo end |
#timeout ➤ Object
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.
60 61 62 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 60 def timeout [:timeout] || Monitorar::DEFAULT_TIMEOUT end |