Clase: Mongo::Servidor::Descripción
- Hereda:
-
Objeto
- Objeto
- Mongo::servidor::descripción
- Definido en:
- lib/mongo/servidor/descripción.rb,
lib/mongo/servidor/descripción/funcionalidades.rb,
lib/mongo/servidor/descripción/load_balancer.rb
Overview
Representa una descripción del servidor, rellena con el resultado del comando hello.
Nota: Los servidores desconocidos no tienen versiones de wire, pero por razones heredadas, devolvemos 0 para min_wire_version y max_wire_version de cualquier servidor que no las tenga. Actualmente el controlador a veces construye comandos cuando se desconoce el servidor, por lo que las referencias a min_wire_version y max_wire_version no deben ser nulas. Cuando se cambie el comportamiento del controlador (<ahref=\"1805 \">jira.mongodb.org/browse/RUBY-), esto puede que ya no sea necesario.
Definido bajo Namespace
Clases: Características, LoadBalancer
Colapso delresumen constante
- árbitro =
Obsoleto.
Constante para leer la información del árbitro de la configuración.
'soloÁrbitro'.freeze
- árbitro =
Constante para leer información de árbitros desde la configuración.
'árbitro'.freeze
- OCULTO =
Constante para leer información oculta desde la configuración.
'hidden'.freeze
- host =
Constante para leer la información de hosts de la configuración.
'anfitriones '.freeze
- MENSAJE =
Obsoleto.
Constante de la clave para el valor del mensaje.
'msg'.freeze
- MONGOS_MESSAGE =
Obsoleto.
Constante para el mensaje que indica un clúster particionado.
'isdbgrid'.freeze
- CONJUNTO_DE_RÉPLICAS =
Obsoleto.
Constante para determinar servidores fantasma.
'isreplicaset'.freeze
- MAX_BSON_OBJECT_SIZE =
Constante para leer la información del tamaño máximo de bson desde la configuración.
'maxBsonObjectSize'.freeze
- MAX_MESSAGE_BYTES =
Constante para leer la información del tamaño máximo del mensaje desde la configuración.
'maxMessageSizeBytes'.freeze
- MAX_WIRE_VERSION =
Constante para la versión máxima del cableado.
'maxWireVersion'.freeze
- MIN_WIRE_VERSION =
Constante para la versión de cable mínimo.
'minWireVersion'.freeze
- MAX_WRITE_BATCH_SIZE =
Constante para leer el tamaño máximo del lote de guardado agrupado.
'maxWriteBatchSize'.freeze
- LAST_WRITE =
Constante para el subdocumento lastWrite.
'última escritura '.freeze
- LAST_WRITE_DATE =
Constante para el campo lastWriteDate en el subdocumento lastWrite.
'lastWriteDate'.freeze
- ME =
Constante para leer el campo me.
'me'.freeze
- TAMAÑO MÁXIMO DE LOTE DE ESCRITURA PREDETERMINADO =
Tamaño máximo de agrupar de guardar por defecto.
1000.freeze
- LEGACY_WIRE_VERSION =
Obsoleto.
Se eliminará en 3.0.
La versión del protocolo de conexión heredado.
0.freeze
- PASIVO =
Constante para leer información pasiva de la configuración.
'pasivo'.freeze
- PASIVOS =
Constante para leer la lista de servidores pasivos.
'pasivos'.freeze
- primario/a =
Obsoleto.
Constante para leer la información primaria de la configuración.
'ismaster'.freeze
- PRIMARY_HOST =
Constante para leer el campo de host primario desde la configuración.
'primario '.freeze
- secundario =
Obsoleto.
Constante para leer información secundaria desde la configuración.
'secundario'.freeze
- SET_NAME =
Constante para leer la información del nombre del conjunto de réplicas desde la configuración.
'setName'.freeze
- etiqueta =
Constante para leer la información de las etiquetas desde la configuración.
'tags'.freeze
- ID_ELECCIÓN =
Constante para leer la información de electionId de la configuración.
'electionId'.freeze
- SET_VERSION =
Constante para leer la información de setVersion desde la configuración.
'setVersion'.freeze
- LOCAL_TIME =
Constante para leer la información de localTime desde la configuración.
' hora local '.freeze
- TIEMPO_DE_OPERACION =
Constante para leer la información de operationTime desde la configuración.
'tiempoOperación '.freeze
- LOGICAL_SESSION_TIMEOUT_MINUTES =
Constante para leer la información logicalSessionTimeoutMinutes desde config.
'logicalSessionTimeoutMinutes'.freeze
- CONNECTION_ID =
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.
Constante para leer la información de connectionId desde la configuración.
'Id de conexión'.freeze
- EXCLUDE_FOR_COMPARISON =
Campos para excluir al comparar dos descripciones.
[ LOCAL_TIME, ÚLTIMA ESCRITURA, OPERATION_TIME, Operación::CLUSTER_TIME, CONEXIÓN_ID, ].freeze
Resumen de atributos de la instancia colapsar
-
#dirección ⇒ Dirección
Solo lectura
Dirección La dirección del servidor.
-
#average_round_trip_time ⇒ Float
Solo lectura
El tiempo promedio móvil que tardó la llamada de saludo en completarse.
-
#config ⇒ Hash
Solo lectura
El resultado real del comando hello.
-
#last_update_monotime ⇒ Float
Solo lectura
privado
Tiempo de creación de esta descripción del servidor según el reloj monótono.
-
#last_update_time ⇒ Time
Solo lectura
Hora en que se creó esta descripción del servidor.
-
#minimum_round_trip_time ⇒ Float
Solo lectura
El tiempo mínimo que tardaron en completarse las diez últimas llamadas de saludo.
Resumen del método de instancia colapsar
-
#==(otro) ⇒ true, false (también: #eql?)
Comprobar la igualdad de dos descripciones.
-
#árbitro? ⇒ true, false
Devuelve si este servidor es un árbitro, según la especificación SDAM.
-
#árbitros ⇒ Array<String>
Obtenga una lista de todos los árbitros en el set de réplicas.
-
#data_bearing? ⇒ verdadero, falso
Si esta descripción proviene de un servidor que almacena datos (autónomo, mongos, primario o secundario).
-
#election_id ⇒ BSON::ObjectId
Obtenga el ID de elección de la configuración.
-
#funcionalidades ⇒ Funcionalidades
Funcionalidades Las funcionalidades del servidor.
-
#¿fantasma? ⇒ verdadero, falso
Si este servidor es un fantasma, según la especificación SDAM.
-
#¿oculto? ⇒ verdadero, falso
Devolverá true si el servidor está oculto.
-
#hosts ⇒ Array<String>
Obtenga una lista de todos los servidores en el set de réplicas.
-
#initialize(address, config = {}, average_round_trip_time: nil, minimum_round_trip_time: 0, load_balancer: false, force_load_balancer: false) ⇒ Descripción
constructor
privado
Cree una instancia de la nueva descripción del servidor a partir del resultado del comando hello o fabrique una descripción de marcador de posición para servidores desconocidos y LoadBalancer.
-
#inspeccionar ⇒ Cadena
Inspecciona la descripción del servidor.
- #is_server?(servidor) ⇒ true, false Obsoleto Obsoleto.
-
#fecha_de_última_escritura ⇒ Hora
Obtenga el lastWriteDate del subdocumento lastWrite en la configuración.
- #lists_servidor?(servidor) ⇒ true, false Obsoleto Obsoleto.
-
#balanceador_de_carga? ⇒ verdadero | falso
Devuelve si este servidor es un balanceador de carga.
-
#logical_session_timeout ⇒ Integer?
Obtener logicalSessionTimeoutMinutes desde la configuración.
-
#tamaño_máximo_del_objeto_bson ⇒ Entero
Obtén el tamaño máximo de objeto BSON para esta versión del servidor.
-
#max_message_size ⇒ Integer
Obtenga el tamaño máximo de mensaje para esta versión del servidor.
-
#max_wire_version ⇒ Integer
Obtener la versión máxima del cable.
-
#max_write_batch_size ⇒ Entero
Obten el tamaño máximo de agrupación para guardados.
-
#me ⇒ String
Obtiene el valor del campo me.
-
#me_desfase? ⇒ verdadero, falso
Comprueba si hay una discrepancia entre el host de la dirección y el campo me.
-
#min_wire_version ⇒ Integer
Obtenga la versión mínima de red.
-
#mongocryptd? ⇒ verdadero, falso
Si esta descripción es de un servidor mongocryptd.
-
#mongos? ⇒ verdadero, falso
Retorna si este servidor es un mongos, según la especificación SDAM.
- #ok? ⇒ Boolean privado
-
#op_time ⇒ BSON::Timestamp
opTime en el subdocumento lastWrite de la respuesta hello.
-
#¿otro? ⇒ verdadero, falso
Devuelve si el servidor es de otro tipo, según la especificación SDAM.
-
#pasivo? ⇒ verdadero, falso
Devolverá verdadero si el servidor está en modo pasivo.
-
#pasivos ⇒ Array<String>
Obtén una lista de los servidores pasivos en el clúster.
-
#primario? ⇒ verdadero, falso
Devuelve si este servidor es principal, según la especificación SDAM.
-
#primary_host ⇒ String | nil
Obtenga la dirección del host principal.
-
#miembro_del_conjunto_de_réplicas? ⇒ verdadero, falso
¿Esta descripción corresponde a un miembro de un set de réplicas?.
-
#replica_set_name ⇒ String?
Obtenga el nombre del set de réplicas al que pertenece el servidor, devuelve nil si no hay ninguno.
-
#¿secundario? ⇒ verdadero, falso
Retorna si este servidor es secundario, según la especificación SDAM.
- #server_connection_id ⇒ Objeto
-
#server_type ⇒ Symbol
Devuelve el tipo de servidor como un símbolo.
- #server_version_gte?(version) ⇒ Boolean privado
-
#servidores ⇒ Array<String>
Consigue una lista de todos los servidores conocidos por el clúster.
-
#service_id ⇒ nil | Objeto
El identificador del servicio, si lo hay.
-
#set_version ⇒ Integer
Obtenga setVersion de la configuración.
-
#autónomo? ⇒ true, false
Devuelve si este servidor es autónomo, según la especificación SDAM.
-
#etiquetas ⇒ Hash
Obtén las etiquetas configuradas para el servidor.
-
#topology_version ⇒ TopologyVersion | nil
La versión de la topología.
-
#topology_version_gt?(other_desc) ⇒ true | false
privado
Devuelve si la versión de topología en esta descripción es potencialmente más nueva o igual que la versión de topología en otra descripción.
-
#topología_versión_gte?(otra_desc) ⇒ verdadero | falso
privado
Devuelve si la versión de topología en esta descripción es posiblemente más reciente que la versión de topología en otra descripción.
-
#unknown? ⇒ true, false
Devuelve si este servidor es desconocido, según la especificación SDAM.
-
#wire_versions ⇒ rango
Obtén el rango de versiones de wire admitidas para el servidor.
Detalles del constructor
#inicializar(address, config = {}, average_round_trip_time: nil, minimum_round_trip_time: 0, load_balancer: false, force_load_balancer: false) ⇒ Descripción
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
Cree una instancia de la nueva descripción del servidor a partir del resultado del comando hello o fabrique una descripción de marcador de posición para servidores desconocidos y LoadBalancer.
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 |
# Archivo 'lib/mongo/server/description.rb', línea 220 def inicializar(dirección, config = {}, tiempo promedio de ida y vuelta: nulo, minimum_round_trip_time: 0, equilibrador de carga: false, force_load_balancer: false ) @address = dirección @config = config @load_balancer = !!equilibrador de carga @force_load_balancer = !!equilibrador de carga de fuerza @características = Características.Nuevo(wire_versions, me || @address.to_s) @tiempo_promedio_de_viaje_de_ida_y_vuelta = average_round_trip_time @minimum_round_trip_time = tiempo mínimo de ida y vuelta @last_update_time = Tiempo.ahora.freeze @last_update_monotime = Utils.monotonic_time si equilibrador de carga # Cuando la opción URI loadBalanced=true está configurada, el driver rechazará # para funcionar si el servidor con el que se comunica no establece serviceId # en la respuesta ismaster/hello. # # En este momento no podemos ejecutar una configuración adecuada de balanceador de carga en evergreen # # Por lo tanto, cuando se utiliza la opción Ruby connect=:load_balanced # de la opción URI loadBalanced=true, si serviceId no está configurado en # respuesta ismaster/hello, el controlador fabrica un serviceId y # procede a tratar un servidor que no se informa como # detrás de un balanceador de carga como un servidor que se encuentra detrás de un balanceador de carga. # # 5.0+ servidores deben proporcionar topologyVersion.processId que # es específico para la instancia particular del proceso. Podemos usar eso # campo como proxy para serviceId. # # Si topologyVersion no se proporciona por alguna razón, nosotros # fabricar un serviceId localmente. # # En cualquier caso, un serviceId proporcionado por un servidor real detrás # se supone que un balanceador de carga es un BSON::ObjectId. El fabricado # Los identificadores de servicio son cadenas para distinguirlos de los reales. # En particular processId también es un BSON::ObjectId, pero será # asignado a una cadena para mayor claridad de que se trata de una identificación de servicio falsa. # # TODO: Eliminar esto cuando https://jira.mongodb.org/browse/RUBY-2881 haya terminado. si ok? && !service_id a menos que equilibrador de carga de fuerza propagar Error::Id. de servicio faltante, "El servidor en #{address.seed} no proporcionó un ID de servicio en la respuesta de handshake" end fake_service_id = si id_del_proceso = topology_version && topology_version['processId'] "proceso:#{process_id}" else "fake:#{rand(2**32-1)+1}" end @config = @config.fusionar('serviceId' => fake_service_id) end end si Mongo::Lint.¿habilitado? Variables de instancia de caché pregeneradas host Árbitros pasivos topology_version freeze end end |
Detalles de los atributos de instancia
#address ⇒ Dirección (solo lectura)
Devuelve la dirección La dirección del servidor.
287 288 289 |
# Archivo 'lib/mongo/server/description.rb', línea 287 def dirección @address end |
#average_round_trip_time ⇒ Float (solo lectura)
Devuelve el tiempo promedio móvil que tardó en completarse la llamada hello.
305 306 307 |
# Archivo 'lib/mongo/server/description.rb', línea 305 def average_round_trip_time @tiempo_promedio_de_viaje_de_ida_y_vuelta end |
#config ⇒ Hash (solo lectura)
Devuelve el resultado real del comando hello.
290 291 292 |
# Archivo 'lib/mongo/server/description.rb', línea 290 def config @config end |
#last_update_monotime ⇒ Flotante (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.
Tiempo de creación de esta descripción del servidor según el reloj monótono.
848 849 850 |
# Archivo 'lib/mongo/server/description.rb', línea 848 def last_update_monotime @last_update_monotime end |
#last_update_time ⇒ Time (solo lectura)
Este tiempo no indica cuándo una verificación de servidor fue exitosa
Hora en que se creó esta descripción del servidor.
completado, porque marcar un servidor como desconocido actualiza su descripción y last_update_time. Usa Server#last_scan para saber cuándo fue la última vez que el Monitor comprobó correctamente el servidor.
839 840 841 |
# Archivo 'lib/mongo/server/description.rb', línea 839 def last_update_time @last_update_time end |
#minimum_round_trip_time ⇒ Float (solo lectura)
Devuelve el tiempo mínimo que tardaron en completarse las diez últimas llamadas hello.
309 310 311 |
# Archivo 'lib/mongo/server/description.rb', línea 309 def tiempo mínimo de ida y vuelta @minimum_round_trip_time end |
Detalles del método de instancia
#==(otro) ⇒ verdadero, falso También conocido como: eql?
Comprobar la igualdad de dos descripciones.
872 873 874 875 876 877 878 879 |
# Archivo 'lib/mongo/server/description.rb', línea 872 def ==(Otros) return false si sí mismo.clase != Otros.clase return false si ¿desconocido? || Otros.¿desconocido? (config.claves + Otros.config.claves).único.¿todos? hacer |k| config[k] == Otros.config[k] || EXCLUDE_FOR_COMPARISON.incluir?(k) end end |
#árbitro? ⇒ true, false
Devuelve si este servidor es un árbitro, según la especificación SDAM.
319 320 321 322 323 |
# Archivo 'lib/mongo/server/description.rb', línea 319 def árbitro? ok? && config['soloÁrbitro'] == true && !!config['setName'] end |
#árbitros ⇒ Array<String>
Obtenga una lista de todos los árbitros en el set de réplicas.
333 334 335 |
# Archivo 'lib/mongo/server/description.rb', línea 333 def Árbitros @arbiters ||= (config[Árbitros] || []).map { |s| s.minúscula } end |
#data_bearing? ⇒ true, false
Si esta descripción proviene de un servidor que almacena datos (autónomo, mongos, primario o secundario).
794 795 796 |
# Archivo 'lib/mongo/server/description.rb', línea 794 def ¿portador de datos? mongos? || primario/a? || secundario? || autónomo? end |
#election_id ⇒ BSON::ObjectId
Obtenga el ID de elección de la configuración.
481 482 483 |
# Archivo 'lib/mongo/server/description.rb', línea 481 def id_elección config[ID_ELECCIONES] end |
#features ⇒ funcionalidad
Devuelve características Las características del servidor.
300 301 302 |
# Archivo 'lib/mongo/server/description.rb', línea 300 def Funcionalidades @características end |
#¿fantasma? ⇒ verdadero, falso
Si este servidor es un fantasma, según la especificación SDAM.
345 346 347 348 |
# Archivo 'lib/mongo/server/description.rb', línea 345 def ghost? ok? && config['isreplicaset'] == true end |
#oculto? ⇒ true, false
Devolverá true si el servidor está oculto.
358 359 360 |
# Archivo 'lib/mongo/server/description.rb', línea 358 def hidden? ok? && !!config[Oculto] end |
#hosts ⇒ Matriz<String>
Obtenga una lista de todos los servidores en el set de réplicas.
370 371 372 |
# Archivo 'lib/mongo/server/description.rb', línea 370 def host @anfitriones ||= (config[HOSTS] || []).map { |s| s.minúscula } end |
#inspect ⇒ String
Inspecciona la descripción del servidor.
382 383 384 |
# Archivo 'lib/mongo/server/description.rb', línea 382 def inspeccionar "#<Mongo::Server:Description:0x#{object_id} config=#{config} tiempo_de_ida_y_vuelta_promedio=#{tiempo_de_ida_y_vuelta_promedio}>" end |
#is_server?(servidor) ⇒ verdadero, falso
¿Esta descripción es del servidor dado?
756 757 758 |
# Archivo 'lib/mongo/server/description.rb', línea 756 def is_server?(Server) dirección == Server.dirección end |
#fecha_de_última_escritura ⇒ Hora
Obtenga el lastWriteDate del subdocumento lastWrite en la configuración.
546 547 548 |
# Archivo 'lib/mongo/server/description.rb', línea 546 def last_write_date config[ÚLTIMA ESCRITURA][FECHA DE ÚLTIMA ESCRITURA] si config[ÚLTIMA ESCRITURA] end |
#lists_servidor?(servidor) ⇒ true, false
¿Se incluye un servidor en la lista de servidores de esta descripción?
770 771 772 |
# Archivo 'lib/mongo/server/description.rb', línea 770 def lists_server?(Server) servidores.incluir?(Server.dirección.to_s) end |
#equilibrador_de_carga? ⇒ true | false
Devuelve si este servidor es un balanceador de carga.
295 296 297 |
# Archivo 'lib/mongo/server/description.rb', línea 295 def load_balancer? @load_balancer end |
#logical_session_timeout ⇒ Integer?
Obtener logicalSessionTimeoutMinutes desde la configuración.
558 559 560 |
# Archivo 'lib/mongo/server/description.rb', línea 558 def logical_session_timeout config[LOGICAL_SESSION_TIMEOUT_MINUTES] si config[LOGICAL_SESSION_TIMEOUT_MINUTES] end |
#max_bson_object_size ⇒ Integer
Obtén el tamaño máximo de objeto BSON para esta versión del servidor.
394 395 396 |
# Archivo 'lib/mongo/server/description.rb', línea 394 def max_bson_object_size config[MAX_BSON_OBJECT_SIZE] end |
#max_message_size ⇒ Integer
Obtenga el tamaño máximo de mensaje para esta versión del servidor.
406 407 408 |
# Archivo 'lib/mongo/server/description.rb', línea 406 def config[MÁXIMO_BYTES_DE_MENSAJE] end |
#max_wire_version ⇒ Integer
Obtenga la versión de línea máxima. Por defecto es cero.
430 431 432 |
# Archivo 'lib/mongo/server/description.rb', línea 430 def max_wire_version config[MAX_WIRE_VERSION] || 0 end |
#max_write_batch_size ⇒ Entero
Obten el tamaño máximo de agrupación para guardados.
418 419 420 |
# Archivo 'lib/mongo/server/description.rb', línea 418 def tamaño máximo del lote de escritura config[MAX_WRITE_BATCH_SIZE] || DEFAULT_MAX_WRITE_BATCH_SIZE end |
#me ⇒ String
El valor en el campo 'me' puede diferir de la dirección de la descripción del servidor. Esto puede ocurrir, por ejemplo, en configuraciones de horizonte dividido. La especificación SDAM solo requiere remover los servidores cuyo campo 'me' no coincide con su dirección en algunas situaciones (por ejemplo, cuando el servidor en cuestión es nodo de un RS pero no es primario).
Obtiene el valor del campo me.
457 458 459 |
# Archivo 'lib/mongo/server/description.rb', línea 457 def me config[ME] end |
#me_mismatch? ⇒ true, false
Comprueba si hay una discrepancia entre el host de la dirección y el campo me.
806 807 808 |
# Archivo 'lib/mongo/server/description.rb', línea 806 def me_mismatch? !!(dirección.to_s.minúscula != me.minúscula si me) end |
#min_wire_version ⇒ Integer
Obtén la versión mínima del cable. Por defecto es cero.
442 443 444 |
# Archivo 'lib/mongo/server/description.rb', línea 442 def min_wire_version config[MIN_WIRE_VERSION] || 0 end |
#mongocryptd? ⇒ true, false
Si esta descripción es de un servidor mongocryptd.
814 815 816 |
# Archivo 'lib/mongo/server/description.rb', línea 814 def mongocryptd? ok? && config['iscryptd'] == true end |
#mongos? ⇒ verdadero, falso
Retorna si este servidor es un mongos, según la especificación SDAM.
570 571 572 |
# Archivo 'lib/mongo/server/description.rb', línea 570 def mongos? ok? && config['msg'] == 'isdbgrid' end |
#ok? ⇒ Boolean
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
731 732 733 |
# Archivo 'lib/mongo/server/description.rb', línea 731 def ok? config[Operación::Resultado::Vale] == 1 end |
#op_time ⇒ BSON::Timestamp
opTime en el subdocumento lastWrite de la respuesta hello.
823 824 825 826 827 |
# Archivo 'lib/mongo/server/description.rb', línea 823 def op_time si config['última escritura '] && config['última escritura ']['optime'] config['última escritura ']['optime']['ts'] end end |
#otro? ⇒ verdadero, falso
Devuelve si el servidor es de otro tipo, según la especificación SDAM.
582 583 584 585 586 587 588 589 590 591 |
# Archivo 'lib/mongo/server/description.rb', línea 582 def ¿otro? # La especificación SDAM es un poco confusa sobre lo que significa "otro", # pero se le denomina "RSOther", lo que significa que no es un nodo de RS # no puede ser "otro". ok? && !!config['setName'] && ( config['hidden'] == true || !primario/a? && !secundario? && !árbitro? ) end |
#pasivo? ⇒ verdadero, falso
Devolverá verdadero si el servidor está en modo pasivo.
601 602 603 |
# Archivo 'lib/mongo/server/description.rb', línea 601 def ¿pasivo? ok? && !!config[PASIVO] end |
#pasivos ⇒ arreglo<String>
Obtén una lista de los servidores pasivos en el clúster.
613 614 615 |
# Archivo 'lib/mongo/server/description.rb', línea 613 def pasivos @passives ||= (config[PASIVOS] || []).map { |s| s.minúscula } end |
#primario/a? ⇒ true, false
Devuelve si este servidor es principal, según la especificación SDAM.
637 638 639 640 641 |
# Archivo 'lib/mongo/server/description.rb', línea 637 def primario/a? ok? && (config['ismaster'] == true || config['isWritablePrimary'] == true ) && !!config['setName'] end |
#primary_host ⇒ String | nil
Obtenga la dirección del host principal.
625 626 627 |
# Archivo 'lib/mongo/server/description.rb', línea 625 def primary_host config[PRIMARY_HOST] && config[PRIMARY_HOST].minúscula end |
#miembro_del_conjunto_de_réplicas? ⇒ verdadero, falso
¿Esta descripción corresponde a un miembro de un set de réplicas?.
783 784 785 |
# Archivo 'lib/mongo/server/description.rb', línea 783 def ¿miembro del conjunto de réplicas? ok? && !(autónomo? || mongos?) end |
#replica_set_name ⇒ String?
Obtenga el nombre del set de réplicas al que pertenece el servidor, devuelve nil si no hay ninguno.
652 653 654 |
# Archivo 'lib/mongo/server/description.rb', línea 652 def nombre_del_conjunto_de_réplicas config[SET_NAME] end |
#¿Secundario? ⇒ verdadero, falso
Retorna si este servidor es secundario, según la especificación SDAM.
676 677 678 679 680 |
# Archivo 'lib/mongo/server/description.rb', línea 676 def secundario? ok? && config['secundario'] == true && !!config['setName'] end |
#server_connection_id ⇒ objeto
851 852 853 |
# Archivo 'lib/mongo/server/description.rb', línea 851 def server_connection_id config['Id de conexión'] end |
#server_type ⇒ Symbol
Devuelve el tipo de servidor como un símbolo.
690 691 692 693 694 695 696 697 698 699 700 |
# Archivo 'lib/mongo/server/description.rb', línea 690 def server_type return balanceador_de_carga si load_balancer? return árbitro si árbitro? return :ghost si ghost? return :fragmentado si mongos? return :primario si primario/a? return secundario si secundario? return :autónomo si autónomo? return :otro si ¿otro? :desconocido end |
#server_version_gte?(version) ⇒ Boolean
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 |
# Archivo 'lib/mongo/server/description.rb', línea 883 def server_version_gte?(Versión) requerido_wv = caso Versión Cuando '7.0' 21 Cuando '6.0' 17 Cuando '5.2' 15 Cuando '5.1' 14 Cuando '5.0' 12 Cuando '4.4' 9 Cuando '4.2' 8 Cuando '4.0' 7 Cuando '3.6' 6 Cuando '3.4' 5 Cuando '3.2' 4 Cuando '3.0' 3 Cuando '2.6' 2 else propagar ArgumentError, "Versiónrequerida falsa #{version }" end si load_balancer? # Si estamos hablando con un balanceador de carga, no hay monitoreo # y no sabemos qué servidor está detrás del balanceador de carga. # Supongamos que todo es compatible. # TODO remover esto cuando se implemente RUBY-2220. return true end requerido_wv >= min_wire_version && requerido_wv <= max_wire_version end |
#servidores ⇒ arreglo<String>
Consigue una lista de todos los servidores conocidos por el clúster.
664 665 666 |
# Archivo 'lib/mongo/server/description.rb', línea 664 def servidores host + Árbitros + pasivos end |
#service_id ⇒ nil | objeto
Devuelve el ID del servicio, si lo hay.
858 859 860 |
# Archivo 'lib/mongo/server/description.rb', línea 858 def service_id config['serviceId'] end |
#set_version ⇒ Integer
Obtenga setVersion de la configuración.
493 494 495 |
# Archivo 'lib/mongo/server/description.rb', línea 493 def set_version config[SET_VERSION] end |
#autónomo? ⇒ true, false
Devuelve si este servidor es autónomo, según la especificación SDAM.
710 711 712 713 714 715 |
# Archivo 'lib/mongo/server/description.rb', línea 710 def autónomo? ok? && config['msg'] != 'isdbgrid' && config['setName'].nil? && config['isreplicaset'] != true end |
#tags ⇒ Hash
Obtén las etiquetas configuradas para el servidor.
469 470 471 |
# Archivo 'lib/mongo/server/description.rb', línea 469 def config[etiqueta] || {} end |
#topology_version ⇒ TopologyVersion | nil
Devuelve la versión de la topología.
498 499 500 501 502 503 504 |
# Archivo 'lib/mongo/server/description.rb', línea 498 def topology_version a menos que ¿definido?(@topology_version) @topology_version = config['topologyVersion'] && TopologyVersion.Nuevo(config['topologyVersion']) end @topology_version end |
#topology_version_gt?(other_desc) ⇒ true | false
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 si la versión de topología en esta descripción es potencialmente más nueva o igual que la versión de topología en otra descripción.
514 515 516 517 518 519 520 |
# Archivo 'lib/mongo/server/description.rb', línea 514 def topology_version_gt?(other_desc) si topology_version.nil? || other_desc.topology_version.nil? true else topology_version.gt?(other_desc.topology_version) end end |
#topología_versión_gte?(otra_desc) ⇒ verdadero | falso
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 si la versión de topología en esta descripción es posiblemente más reciente que la versión de topología en otra descripción.
530 531 532 533 534 535 536 |
# Archivo 'lib/mongo/server/description.rb', línea 530 def topology_version_gte?(other_desc) si topology_version.nil? || other_desc.topology_version.nil? true else topology_version.gte?(other_desc.topology_version) end end |
#¿desconocido? ⇒ true, false
Devuelve si este servidor es desconocido, según la especificación SDAM.
725 726 727 728 |
# Archivo 'lib/mongo/server/description.rb', línea 725 def ¿desconocido? return false si load_balancer? config.¿vacío? || config.claves == %w(topologyVersion) || !ok? end |
#wire_versions ⇒ rango
Obtén el rango de versiones de wire admitidas para el servidor.
743 744 745 |
# Archivo 'lib/mongo/server/description.rb', línea 743 def wire_versions min_wire_version..max_wire_version end |