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.'
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.
49 50 51 52 53 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 49 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.
56 57 58 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 56 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.
82 83 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 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 82 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| Resultado.add_record(registro) salvar Erro::Domínio incompatível => e aumentar se raise_on_invalid? log_service(e.) 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? aumentar Erro::NoSRRVecords.Novo(URI::Protocolo SRV::NO_SRV_RECORDS % nome do host) se raise_on_invalid? log_service(URI::Protocolo SRV::NO_SRV_RECORDS % nome do host) end # se srv_max_hosts estiver em [1, #addresses) se (1...Resultado.endereço_strs.Tamanho).incluir? srv_max_hosts sampled_records = Recursos.Amostra(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.
125 126 127 128 129 130 131 132 133 134 135 136 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 125 def (nome do host) registros = @resolver.obter recursos(nome do host, Resolver::DNS::Resource::Em::TXT) Método nada se registros.vazio? 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.
36 37 38 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 36 def record_prefix(srv_service_name = nada) 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.
58 59 60 |
# Arquivo 'lib/mongo/srv/resolver.rb', linha 58 def timeout [:timeout] || Monitorar::DEFAULT_TIMEOUT end |