Clase: Mongo::Srv::Resolver Privado
- Hereda:
-
Objeto
- Objeto
- Mongo::Srv::Resolver
- Incluye:
- Registrable
- Definido en:
- lib/mongo/srv/resolver.rb
Overview
Esta clase forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Encapsula el comportamiento necesario para consultar registros SRV según lo requiera el controlador.
Colapso delresumen constante
- PREFIJO_DE_REGISTRO =
Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve RECORD_PREFIX El prefijo añadido a cada nombre de host antes de consultar los registros SRV.
'_mongodb._tcp.'.freeze
Constantes incluidas desde Loggable
Colapso delresumen de atributos de instancia
-
#options ⇒ Hash
solo lectura
privada
Opciones de resolución.
Colapso del resumen del método de instancia
-
#obtener_registros(nombre_de_host, nombre_de_servicio_de_servidor = nil, hosts_máximos_de_servidor = nil) ⇒ Mongo::Srv::Resultado
privada
Obtiene todos los registros SRV para un nombre de host determinado.
-
#get_txt_options_string(hostname) ⇒ nil | String
privada
Obtiene los registros TXT de un host.
-
#inicializar(**opts) ⇒ Resolver
constructor
privada
Crea un nuevo Resolver.
-
#prefijo_de_registro(nombre_de_servicio_srv = nil) ⇒ Cadena
privada
Genera el prefijo de registro con un nombre de servicio SRV personalizado si se proporciona.
- #tiempo de espera ⇒ Objeto privada
Métodos incluidos en Loggable
#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger
Detalles del constructor
#inicializar(**opts) ⇒ Resolver
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Crea un nuevo Resolver.
51 52 53 54 55 |
# Archivo 'lib/mongo/srv/resolver.rb', línea 51 def inicializar(**opta) @opciones = opta.freeze @resolver = Resolver::DNS.Nuevo(@opciones[:resolv_opciones]) @resolver.tiempos de espera = tiempo de espera end |
Detalles de los atributos de instancia
#opciones ⇒ Hash (solo lectura)
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Devuelve las opciones del solucionador.
58 59 60 |
# Archivo 'lib/mongo/srv/resolver.rb', línea 58 def @opciones end |
Detalles del método de instancia
#obtener_registros(nombre_de_host, nombre_de_servicio_de_servidor = nil, hosts_máximos_de_servidor = nil) ⇒ Mongo::Srv::Resultado
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtiene todos los registros SRV de un nombre de host determinado. Si se especifica un valor de srv_max_hosts mayor que 0, se devuelve el máximo de registros srv_max_hosts.
En el caso de que se encuentre un registro con un dominio no coincidente o no se encuentren registros, si la opción :raise_on_invalid es verdadera, se generará una excepción; de lo contrario, se registrará una advertencia.
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 |
# Archivo 'lib/mongo/srv/resolver.rb', línea 84 def obtener_registros(Nombre del host, nombre_del_servicio_srv=nulo, srv_max_hosts=nulo) nombre_query = prefijo de registro(nombre_del_servicio_srv) + Nombre del host recursos = @resolver.getresources(nombre_query, Resolver::DNS::Resource::EN::SRV) # Recopila todos los registros en un objeto Result, lo que genera un error # o registrar una advertencia si se encuentra un registro con un dominio no coincidente. # Tenga en cuenta que en caso de que se genere una advertencia, el registro _no_ es # añadido al objeto Resultado. resultado = Srv::Resultado.Nuevo(Nombre del host) recursos.cada hacer |registro| begin resultado.agregar_registro(registro) rescate Error::Dominio no coincidente => e Si raise_on_invalid? propagar else advertencia de registro(e.) end end end # Si no se encuentran registros, genere un error o registre una advertencia # basado en la opción :raise_on_invalid del Resolver. Si resultado.¿vacío? Si raise_on_invalid? propagar Error::NoSRVRecords.Nuevo(URI::Protocolo SRV::NO_REGISTROS_SRV % Nombre del host) else advertencia de registro(URI::Protocolo SRV::NO_REGISTROS_SRV % Nombre del host) end end # si srv_max_hosts está en [1, #direcciones) Si (1...resultado.direcciones_strs.longitud).¿incluir? srv_max_hosts registros muestreados = recursos.barajar.primera(srv_max_hosts) resultado = Srv::Resultado.Nuevo(Nombre del host) registros muestreados.cada { |registro| resultado.agregar_registro(registro) } end resultado end |
#get_txt_options_string(hostname) ⇒ nil | String
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Obtiene los registros TXT de un host.
132 133 134 135 136 137 138 139 140 141 142 143 144 145 |
# Archivo 'lib/mongo/srv/resolver.rb', línea 132 def (Nombre del host) registros = @resolver.getresources(Nombre del host, Resolver::DNS::Resource::EN::TXT) Si registros.¿vacío? return nulo end Si registros.longitud > 1 msg = "Solose permite un registro TXT: la consulta del nombre de host #{hostname} devolvió #{records.length} registros" propagar Error::InvalidTXTRecord, msg end registros[0].cadenas.Join end |
#prefijo_de_registro(nombre_de_servicio_srv = nil) ⇒ Cadena
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Genera el prefijo de registro con un nombre de servicio SRV personalizado si se proporciona.
38 39 40 |
# Archivo 'lib/mongo/srv/resolver.rb', línea 38 def prefijo de registro(nombre_del_servicio_srv=nulo) return nombre_del_servicio_srv ? "_#{nombre_servicio_srv }._tcp." : PREFIJO_DE_REGISTRO end |
#tiempo de espera ⇒ Objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
60 61 62 |
# Archivo 'lib/mongo/srv/resolver.rb', línea 60 def tiempo de espera [:timeout] || Supervisar::TIEMPO DE ESPERA PREDETERMINADO end |