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, configurada por el resultado del comando hello.
Nota: Los servidores desconocidos no tienen versiones de cable, pero por razones de legado devolvemos 0 para min_wire_version y max_wire_version de cualquier servidor que no los tenga. Actualmente, el controlador a veces construye comandos cuando el servidor no se conoce, por lo que las referencias a min_wire_version y max_wire_version no deben ser nil. Cuando se cambia el comportamiento del driver (https://jira.mongodb.org/browse/RUBY-1805), esto ya puede no ser necesario.
Definido bajo Namespace
clase: funcionalidades, Balanceador de Carga
Resumen de constantes colapsar
- árbitro =
Obsoleto.
Constante para leer la información del árbitro de la configuración.
'solo árbitro'- árbitro =
Constante para leer información de árbitros desde la configuración.
'Árbitros'- OCULTO =
Constante para leer información oculta desde la configuración.
'ocultos'- host =
Constante para leer la información de hosts de la configuración.
'host'- MENSAJE =
Obsoleto.
Constante de la clave para el valor del mensaje.
'msg'- MONGOS_MESSAGE =
Obsoleto.
Constante para el mensaje que indica un clúster particionado.
'isdbgrid'- REPLICA_SET =
Obsoleto.
Constante para determinar servidores fantasma.
'isreplicaset'- MAX_BSON_OBJECT_SIZE =
Constante para leer la información del tamaño máximo de bson desde la configuración.
'maxBsonObjectSize'- MAX_MESSAGE_BYTES =
Constante para leer la información del tamaño máximo de mensaje de la configuración.
'maxMessageSizeBytes'- MAX_WIRE_VERSION =
Constante para la versión máxima del cableado.
'maxWireVersion'- MIN_WIRE_VERSION =
Constante para la versión mínima del cable.
'minWireVersion'- MAX_WRITE_BATCH_SIZE =
Constante para leer el tamaño máximo del lote de guardado agrupado.
'maxWriteBatchSize'- LAST_WRITE =
Constante para el subdocumento lastWrite.
'última es'- LAST_WRITE_DATE =
Constante para el campo lastWriteDate en el subdocumento lastWrite.
'lastWriteDate'- ME =
Constante para leer el campo me.
'me'- DEFAULT_MAX_WRITE_BATCH_SIZE =
Tamaño máximo de agrupar de guardar por defecto.
1000- LEGACY_WIRE_VERSION =
Obsoleto.
Se eliminará en 3.0.
La versión del protocolo de conexión heredado.
0- PASIVO =
Constante para leer información pasiva de la configuración.
'PASIVO'- PASIVOS =
Constante para leer la lista de servidores pasivos.
'pasivos'- primario/a =
Obsoleto.
Constante para leer la información primaria de la configuración.
'esprincipal'- PRIMARY_HOST =
Constante para leer el campo de host primario desde la configuración.
'primario'- secundario =
Obsoleto.
Constante para leer información secundaria desde la configuración.
'secundario'- SET_NAME =
Constante para leer la información del nombre del set de réplicas desde config.
'nombre del conjunto'- etiqueta =
Constante para leer información de etiquetas de la configuración.
'etiqueta'- ELECTION_ID =
Constante para leer la información de electionId de la configuración.
'electionId'- SET_VERSION =
Constante para leer la información setVersion de la configuración.
'setVersion'- LOCAL_TIME =
Constante para leer la información de localTime desde la configuración.
'hora local'- TIEMPO_DE_OPERACION =
Constante para leer la información de operationTime desde la configuración.
'tiempo de operación'- LOGICAL_SESSION_TIMEOUT_MINUTES =
Constante para leer la información logicalSessionTimeoutMinutes desde config.
'logicalSessionTimeoutMinutes'- CONNECTION_ID =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Constante para leer la información de connectionId desde la configuración.
'connectionId'- IS_WRITABLE_PRIMARY =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Constante para leer la marca principal moderna de la configuración.
'isWritablePrimary'- HELLO_OK =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
Constante para leer el indicador de capacidad helloOk de la configuración.
'helloOk'- EXCLUDE_FOR_COMPARISON =
Campos para excluir al comparar dos descripciones.
Las claves PRIMARIO/A (heredado/heredada
ismaster), IS_WRITABLE_PRIMARIO/A (modernohello) y HELLO_OK se excluyen porque el driver realiza un cambio de protocolo heredado/heredada-isMastera moderno-helloúnico en el handshake inicial (según la especificación de supervisión del servidor SDAM). Dos respuestas para el mismo rol lógico difieren solo en cuál de estas claves está poblada. El rol en sí todavía se diferencia por la marca secundaria y los metadatos restantes del set de réplicas. [ LOCAL_TIME, ULTIMA_ESCRITURA, OPERATION_TIME, Operación::CLUSTER_TIME, CONEXIÓN_ID, Primario, IS_WRITABLE_PRIMARY, HELLO_OK, ].freeze
- SERVER_VERSION_WIRE_VERSION_MAP =
Esta constante es parte de una API privada. Deberías evitar usar esta constante si es posible, ya que podría ser retirada o cambiada en el futuro.
{ '8.2' => 27, '8.0' => 25, '7.0' => 21, '6.0' => 17, '5.2' => 15, '5.1' => 14, '5.0' => 12, '4.4' => 9, '4.2' => 8, }.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.
-
#features ⇒ Funcionalidades
Solo lectura
Funcionalidades Las funcionalidades del servidor.
-
#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?)
Comprueba 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.
-
#portador_de_datos? ⇒ true, false
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.
-
#ghost? ⇒ true, false
Si este servidor es un fantasma, según la especificación SDAM.
-
#hidden? ⇒ true, false
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 la nueva descripción del servidor a partir del resultado del comando hello o fabrique una descripción de marcador de posición para los servidores Unknown y LoadBalancer.
-
#inspect ⇒ string
Inspecciona la descripción del servidor.
- #is_server?(servidor) ⇒ true, false Obsoleto Obsoleto.
-
#last_write_date ⇒ Time
Obtenga el lastWriteDate del subdocumento lastWrite en la configuración.
- #lists_servidor?(servidor) ⇒ true, false Obsoleto Obsoleto.
-
#load_balancer? ⇒ true | false
Devuelve si este servidor es un balanceador de carga.
-
#logical_session_timeout ⇒ Integer?
Obtener logicalSessionTimeoutMinutes desde la configuración.
-
#max_bson_object_size ⇒ Integer
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 ⇒ arreglo<String>
Obtén una lista de los servidores pasivos en el clúster.
-
#primario? ⇒ verdadero, falso
Devuelve si este servidor es un primario, según la especificación SDAM.
-
#primary_host ⇒ String | nil
Obtenga la dirección del host principal.
-
#miembro_de_replica? ⇒ true, false
¿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 id. del servicio, si lo hay.
-
#set_version ⇒ Integer
Obtenga el 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 reciente o igual a la versión de topología en otra descripción.
-
#topology_version_gte?(other_desc) ⇒ true | false
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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Cree la nueva descripción del servidor a partir del resultado del comando hello o fabrique una descripción de marcador de posición para los servidores Unknown y LoadBalancer.
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 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 |
# Archivo 'lib/mongo/server/description.rb', línea 237 def inicializar(dirección, config = {}, average_round_trip_time: nulo, minimum_round_trip_time: 0, equilibrador_de_carga: false, force_load_balancer: false) @address = dirección @config = config @load_balancer = !!balanceador de carga @force_load_balancer = !!force_load_balancer @características = Características.Nuevo(wire_versions, me || @address.to_s) @average_round_trip_time = average_round_trip_time @minimum_round_trip_time = minimum_round_trip_time @last_update_time = Tiempo.ahora.freeze @last_update_monotime = Utils.monotonic_time # 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 # ismaster/hola respuesta, 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+ los 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 de texto, para distinguirlas de los reales. # En particular processId también es un BSON::ObjectId, pero será # mapped to a string for clarity that this is a fake service ID. # # TODO: remover esto cuando https://jira.mongodb.org/browse/RUBY-2881 esté terminado. si balanceador de carga && ok? && !service_id a menos que force_load_balancer propagar Error::ServicioIdFaltante, "El servidor en #{address.seed} no proporcionó un ID de servicio en la respuesta de handshake" end fake_service_id = si (process_id = topology_version && topology_version['processId']) "proceso:#{process_id}" else "fake:#{rand((2**32) - 1) + 1}" end @config = @config.fusionar('serviceId' => fake_service_id) end return a menos que mongo::Lint.¿habilitado? Variables de instancia de caché pregeneradas host Árbitros pasivos topology_version freeze end |
Detalles de atributo de instancias
#address ⇒ Dirección (solo lectura)
Devuelve la dirección La dirección del servidor.
302 303 304 |
# Archivo 'lib/mongo/server/description.rb', línea 302 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.
318 319 320 |
# Archivo 'lib/mongo/server/description.rb', línea 318 def average_round_trip_time @average_round_trip_time end |
#config ⇒ Hash (solo lectura)
Devuelve el resultado real del comando hello.
305 306 307 |
# Archivo 'lib/mongo/server/description.rb', línea 305 def config @config end |
#funcionalidades ⇒ Funcionalidades (solo lectura)
Devuelve funcionalidades Las funcionalidades del servidor.
315 316 317 |
# Archivo 'lib/mongo/server/description.rb', línea 315 def Funcionalidades @características end |
#last_update_monotime ⇒ Float (solo lectura)
Este método es parte de una API privada. Se debe evitar el uso de este método 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.
863 864 865 |
# Archivo 'lib/mongo/server/description.rb', línea 863 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.
854 855 856 |
# Archivo 'lib/mongo/server/description.rb', línea 854 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 de saludo.
322 323 324 |
# Archivo 'lib/mongo/server/description.rb', línea 322 def minimum_round_trip_time @minimum_round_trip_time end |
Detalles del método de instancia
#==(other) ⇒ verdadero, falso También conocido como: eql?
Comprueba la igualdad de dos descripciones.
887 888 889 890 891 892 893 894 895 |
# Archivo 'lib/mongo/server/description.rb', línea 887 def ==(Otros) return false si sí mismo.clase != Otros.clase return false si ¿desconocido? || Otros.¿desconocido? return false si server_type != Otros.server_type (config.claves + Otros.config.claves).uniq.¿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.
332 333 334 335 336 |
# Archivo 'lib/mongo/server/description.rb', línea 332 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.
346 347 348 |
# Archivo 'lib/mongo/server/description.rb', línea 346 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).
809 810 811 |
# Archivo 'lib/mongo/server/description.rb', línea 809 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.
494 495 496 |
# Archivo 'lib/mongo/server/description.rb', línea 494 def election_id config[ID_ELECCIONES] end |
#ghost? ⇒ verdadero, falso
Si este servidor es un fantasma, según la especificación SDAM.
358 359 360 361 |
# Archivo 'lib/mongo/server/description.rb', línea 358 def ghost? ok? && config['isreplicaset'] == true end |
#oculto? ⇒ true, false
Devolverá true si el servidor está oculto.
371 372 373 |
# Archivo 'lib/mongo/server/description.rb', línea 371 def hidden? ok? && !!config[Oculto] end |
#hosts ⇒ arreglo<String>
Obtenga una lista de todos los servidores en el set de réplicas.
383 384 385 |
# Archivo 'lib/mongo/server/description.rb', línea 383 def host @hosts ||= (config[host] || []).map { |s| s.minúscula } end |
#inspect ⇒ String
Inspecciona la descripción del servidor.
395 396 397 |
# Archivo 'lib/mongo/server/description.rb', línea 395 def inspeccionar "#<Mongo::Servidor:Descripción:0x#{object_id} config=#{configuración} average_round_trip_time=#{average_round_trip_time}>" end |
#¿es_servidor?(servidor) ⇒ verdadero, falso
¿Esta descripción es del servidor dado?
771 772 773 |
# Archivo 'lib/mongo/server/description.rb', línea 771 def is_server?(Server) dirección == Server.dirección end |
#last_write_date ⇒ Time
Obtenga el lastWriteDate del subdocumento lastWrite en la configuración.
559 560 561 |
# Archivo 'lib/mongo/server/description.rb', línea 559 def last_write_date config[ULTIMA_ESCRITURA][FECHA_ÚLTIMA_ESCRITURA] si config[ULTIMA_ESCRITURA] end |
#lists_servidor?(servidor) ⇒ true, false
¿Se incluye un servidor en la lista de servidores de esta descripción?
785 786 787 |
# Archivo 'lib/mongo/server/description.rb', línea 785 def lists_server?(Server) servidor.incluir?(Server.dirección.to_s) end |
#equilibrador_de_carga? ⇒ true | false
Devuelve si este servidor es un balanceador de carga.
310 311 312 |
# Archivo 'lib/mongo/server/description.rb', línea 310 def load_balancer? @load_balancer end |
#logical_session_timeout ⇒ Integer?
Obtener logicalSessionTimeoutMinutes desde la configuración.
571 572 573 |
# Archivo 'lib/mongo/server/description.rb', línea 571 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.
407 408 409 |
# Archivo 'lib/mongo/server/description.rb', línea 407 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.
419 420 421 |
# Archivo 'lib/mongo/server/description.rb', línea 419 def config[MAX_MESSAGE_BYTES] end |
#max_wire_version ⇒ Integer
Obtenga la versión de línea máxima. Por defecto es cero.
443 444 445 |
# Archivo 'lib/mongo/server/description.rb', línea 443 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.
431 432 433 |
# Archivo 'lib/mongo/server/description.rb', línea 431 def max_write_batch_size 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 división Horizon. La especificación SDAM sólo requiere eliminar servidores cuyo nombre no coincide con su dirección en algunas situaciones (por ejemplo, cuando el servidor en cuestión es un nodo de un Conjunto de réplicas pero no es el primario).
Obtiene el valor del campo me.
470 471 472 |
# Archivo 'lib/mongo/server/description.rb', línea 470 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.
821 822 823 |
# Archivo 'lib/mongo/server/description.rb', línea 821 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.
455 456 457 |
# Archivo 'lib/mongo/server/description.rb', línea 455 def min_wire_version config[MIN_WIRE_VERSION] || 0 end |
#mongocryptd? ⇒ true, false
Si esta descripción es de un servidor mongocryptd.
829 830 831 |
# Archivo 'lib/mongo/server/description.rb', línea 829 def mongocryptd? ok? && config['iscryptd'] == true end |
#mongos? ⇒ true, false
Retorna si este servidor es un mongos, según la especificación SDAM.
583 584 585 |
# Archivo 'lib/mongo/server/description.rb', línea 583 def mongos? ok? && config['msg'] == 'isdbgrid' end |
#ok? ⇒ Boolean
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
746 747 748 |
# Archivo 'lib/mongo/server/description.rb', línea 746 def ok? config[Operación::Resultado::OK] == 1 end |
#op_time ⇒ BSON::Timestamp
opTime en el subdocumento lastWrite de la respuesta hello.
838 839 840 841 842 |
# Archivo 'lib/mongo/server/description.rb', línea 838 def op_time return a menos que config['últimaEscritura'] && config['últimaEscritura']['optime'] config['últimaEscritura']['optime']['ts'] end |
#other? ⇒ true, false
Devuelve si el servidor es de otro tipo, según la especificación SDAM.
595 596 597 598 599 600 601 602 603 604 |
# Archivo 'lib/mongo/server/description.rb', línea 595 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? ⇒ true, false
Devolverá verdadero si el servidor está en modo pasivo.
614 615 616 |
# Archivo 'lib/mongo/server/description.rb', línea 614 def ¿pasivo? ok? && !!config[PASIVO] end |
#pasivos ⇒ arreglo<String>
Obtén una lista de los servidores pasivos en el clúster.
626 627 628 |
# Archivo 'lib/mongo/server/description.rb', línea 626 def pasivos @passives ||= (config[PASIVOS] || []).map { |s| s.minúscula } end |
#primario/a? ⇒ true, false
Devuelve si este servidor es un primario, según la especificación SDAM.
650 651 652 653 654 |
# Archivo 'lib/mongo/server/description.rb', línea 650 def primario/a? ok? && (config['ismaster'] == true || config['isWritablePrimary'] == true) && !!config['setName'] end |
#primary_host ⇒ String | nil
Obtenga la dirección del host principal.
638 639 640 |
# Archivo 'lib/mongo/server/description.rb', línea 638 def primary_host config[PRIMARY_HOST] && config[PRIMARY_HOST].minúscula end |
#replica_set_member? ⇒ true, false
¿Esta descripción corresponde a un miembro de un set de réplicas?.
798 799 800 |
# Archivo 'lib/mongo/server/description.rb', línea 798 def replica_set_member? 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.
665 666 667 |
# Archivo 'lib/mongo/server/description.rb', línea 665 def nombre_conjunto_replicación config[SET_NAME] end |
#¿Secundario? ⇒ verdadero, falso
Retorna si este servidor es secundario, según la especificación SDAM.
689 690 691 692 693 |
# Archivo 'lib/mongo/server/description.rb', línea 689 def secundario? ok? && config['secundario'] == true && !!config['setName'] end |
#server_connection_id ⇒ objeto
866 867 868 |
# Archivo 'lib/mongo/server/description.rb', línea 866 def server_connection_id config['connectionId'] end |
#server_type ⇒ Symbol
Devuelve el tipo de servidor como un símbolo.
703 704 705 706 707 708 709 710 711 712 713 714 |
# Archivo 'lib/mongo/server/description.rb', línea 703 def server_type return balanceador_de_carga si load_balancer? return árbitro si árbitro? return :ghost si ghost? return particionado si mongos? return primario/a 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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
912 913 914 915 916 917 918 919 920 921 922 923 924 925 |
# Archivo 'lib/mongo/server/description.rb', línea 912 def server_version_gte?(Versión) si load_balancer? # Si estamos hablando con un balanceador de carga, no hay supervisión # y no sabemos qué servidor está detrás del balanceador de carga. # Suponer que todo está soportado. # TODO remover esto cuando se implemente RUBY-2220. return true end obligatorio_wv = SERVER_VERSION_WIRE_VERSION_MAP[Versión] propagar NotImplementedError, "Versión inesperada del servidor #{versión.inspeccionar}" a menos que obligatorio_wv obligatorio_wv <= max_wire_version end |
#servidores ⇒ arreglo<String>
Consigue una lista de todos los servidores conocidos por el clúster.
677 678 679 |
# Archivo 'lib/mongo/server/description.rb', línea 677 def servidor host + Árbitros + pasivos end |
#service_id ⇒ nil | objeto
Retorna El ID del servicio, si existe.
873 874 875 |
# Archivo 'lib/mongo/server/description.rb', línea 873 def service_id config['serviceId'] end |
#set_version ⇒ Integer
Obtenga el setVersion de la configuración.
506 507 508 |
# Archivo 'lib/mongo/server/description.rb', línea 506 def set_version config[SET_VERSION] end |
#autónomo? ⇒ true, false
Devuelve si este servidor es autónomo, según la especificación SDAM.
724 725 726 727 728 729 |
# Archivo 'lib/mongo/server/description.rb', línea 724 def autónomo? ok? && config['msg'] != 'isdbgrid' && config['setName'].nil? && config['isreplicaset'] != true end |
#tags ⇒ Hash
Obtén las etiquetas configuradas para el servidor.
482 483 484 |
# Archivo 'lib/mongo/server/description.rb', línea 482 def config[etiqueta] || {} end |
#topology_version ⇒ TopologyVersion | nil
Devuelve la versión de la topología.
511 512 513 514 515 516 517 |
# Archivo 'lib/mongo/server/description.rb', línea 511 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 es parte de una API privada. Se debe evitar el uso de este método 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 reciente o igual a la versión de topología en otra descripción.
527 528 529 530 531 532 533 |
# Archivo 'lib/mongo/server/description.rb', línea 527 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 |
#topology_version_gte?(other_desc) ⇒ verdadero | falso
Este método es parte de una API privada. Se debe evitar el uso de este método 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.
543 544 545 546 547 548 549 |
# Archivo 'lib/mongo/server/description.rb', línea 543 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.
739 740 741 742 743 |
# Archivo 'lib/mongo/server/description.rb', línea 739 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.
758 759 760 |
# Archivo 'lib/mongo/server/description.rb', línea 758 def wire_versions min_wire_version..max_wire_version end |