Clase: Mongo::Servidor::Descripción

Hereda:
Objeto
  • Objeto
Mostrar todo
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.

Desde:

  • 2.0.0

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.

Desde:

  • 2.0.0

'solo árbitro'
árbitro =

Constante para leer información de árbitros desde la configuración.

Desde:

  • 2.0.0

'Árbitros'
OCULTO =

Constante para leer información oculta desde la configuración.

Desde:

  • 2.0.0

'ocultos'
host =

Constante para leer la información de hosts de la configuración.

Desde:

  • 2.0.0

'host'
MENSAJE =
Obsoleto.

Constante de la clave para el valor del mensaje.

Desde:

  • 2.0.0

'msg'
MONGOS_MESSAGE =
Obsoleto.

Constante para el mensaje que indica un clúster particionado.

Desde:

  • 2.0.0

'isdbgrid'
REPLICA_SET =
Obsoleto.

Constante para determinar servidores fantasma.

Desde:

  • 2.0.0

'isreplicaset'
MAX_BSON_OBJECT_SIZE =

Constante para leer la información del tamaño máximo de bson desde la configuración.

Desde:

  • 2.0.0

'maxBsonObjectSize'
MAX_MESSAGE_BYTES =

Constante para leer la información del tamaño máximo de mensaje de la configuración.

Desde:

  • 2.0.0

'maxMessageSizeBytes'
MAX_WIRE_VERSION =

Constante para la versión máxima del cableado.

Desde:

  • 2.0.0

'maxWireVersion'
MIN_WIRE_VERSION =

Constante para la versión mínima del cable.

Desde:

  • 2.0.0

'minWireVersion'
MAX_WRITE_BATCH_SIZE =

Constante para leer el tamaño máximo del lote de guardado agrupado.

Desde:

  • 2.0.0

'maxWriteBatchSize'
LAST_WRITE =

Constante para el subdocumento lastWrite.

Desde:

  • 2.4.0

'última es'
LAST_WRITE_DATE =

Constante para el campo lastWriteDate en el subdocumento lastWrite.

Desde:

  • 2.4.0

'lastWriteDate'
ME =

Constante para leer el campo me.

Desde:

  • 2.1.0

'me'
DEFAULT_MAX_WRITE_BATCH_SIZE =

Tamaño máximo de agrupar de guardar por defecto.

Desde:

  • 2.0.0

1000
LEGACY_WIRE_VERSION =
Obsoleto.

Se eliminará en 3.0.

La versión del protocolo de conexión heredado.

Desde:

  • 2.0.0

0
PASIVO =

Constante para leer información pasiva de la configuración.

Desde:

  • 2.0.0

'PASIVO'
PASIVOS =

Constante para leer la lista de servidores pasivos.

Desde:

  • 2.0.0

'pasivos'
primario/a =
Obsoleto.

Constante para leer la información primaria de la configuración.

Desde:

  • 2.0.0

'esprincipal'
PRIMARY_HOST =

Constante para leer el campo de host primario desde la configuración.

Desde:

  • 2.5.0

'primario'
secundario =
Obsoleto.

Constante para leer información secundaria desde la configuración.

Desde:

  • 2.0.0

'secundario'
SET_NAME =

Constante para leer la información del nombre del set de réplicas desde config.

Desde:

  • 2.0.0

'nombre del conjunto'
etiqueta =

Constante para leer información de etiquetas de la configuración.

Desde:

  • 2.0.0

'etiqueta'
ELECTION_ID =

Constante para leer la información de electionId de la configuración.

Desde:

  • 2.1.0

'electionId'
SET_VERSION =

Constante para leer la información setVersion de la configuración.

Desde:

  • 2.2.2

'setVersion'
LOCAL_TIME =

Constante para leer la información de localTime desde la configuración.

Desde:

  • 2.1.0

'hora local'
TIEMPO_DE_OPERACION =

Constante para leer la información de operationTime desde la configuración.

Desde:

  • 2.5.0

'tiempo de operación'
LOGICAL_SESSION_TIMEOUT_MINUTES =

Constante para leer la información logicalSessionTimeoutMinutes desde config.

Desde:

  • 2.5.0

'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.

Desde:

  • 2.0.0

'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.

Desde:

  • 2.0.0

'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.

Desde:

  • 2.0.0

'helloOk'
EXCLUDE_FOR_COMPARISON =

Campos para excluir al comparar dos descripciones.

Las claves PRIMARIO/A (heredado/heredada ismaster), IS_WRITABLE_PRIMARIO/A (moderno hello) y HELLO_OK se excluyen porque el driver realiza un cambio de protocolo heredado/heredada-isMaster a 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.

Desde:

  • 2.0.6

[ 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.

Desde:

  • 2.0.0

{
  '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

Resumen del método de instancia colapsar

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.

Ejemplos:

Inicia la nueva descripción.

Description.new(address, { 'isWritablePrimary' => true }, 0.5)

Parámetros:

  • dirección (Dirección)

    La dirección del servidor.

  • config (encriptada) (por defecto: {})

    El resultado del comando hello.

  • average_round_trip_time (Flotante) (valor por defecto: nil)

    El promedio móvil de tiempo (segundos) que tardó en completarse el comando hello.

  • minimum_round_trip_time (Flotante) (por defecto: 0)

    El tiempo mínimo de ida y vuelta de los diez últimos comandos de hello.

  • balanceador de carga (true | false) (por defecto: false)

    Si el servidor se trata como un balanceador de carga.

  • force_load_balancer (true | false) (por defecto: false)

    Indica si el servidor se fuerza a ser un balanceador de carga.

Desde:

  • 2.0.0



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

#addressDirección (solo lectura)

Devuelve la dirección La dirección del servidor.

Devuelve:

  • (Dirección)

    address La dirección del servidor.

Desde:

  • 2.0.0



302
303
304
# Archivo 'lib/mongo/server/description.rb', línea 302

def dirección
  @address
end

#average_round_trip_timeFloat (solo lectura)

Devuelve el tiempo promedio móvil que tardó en completarse la llamada hello.

Devuelve:

  • (Float)

    El tiempo promedio móvil que tardó la llamada de saludo en completarse.

Desde:

  • 2.0.0



318
319
320
# Archivo 'lib/mongo/server/description.rb', línea 318

def average_round_trip_time
  @average_round_trip_time
end

#configHash (solo lectura)

Devuelve el resultado real del comando hello.

Devuelve:

  • (encriptada)

    El resultado real del comando hello.

Desde:

  • 2.0.0



305
306
307
# Archivo 'lib/mongo/server/description.rb', línea 305

def config
  @config
end

#funcionalidadesFuncionalidades (solo lectura)

Devuelve funcionalidades Las funcionalidades del servidor.

Devuelve:

  • (funcionalidad)

    funcionalidades Las funcionalidades del servidor.

Desde:

  • 2.0.0



315
316
317
# Archivo 'lib/mongo/server/description.rb', línea 315

def Funcionalidades
  @características
end

#last_update_monotimeFloat (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.

Devuelve:

  • (Float)

    Creación de la descripción del servidor en tiempo monotónico.

Véase también:

  • para más detalles

Desde:

  • 2.0.0



863
864
865
# Archivo 'lib/mongo/server/description.rb', línea 863

def last_update_monotime
  @last_update_monotime
end

#last_update_timeTime (solo lectura)

Nota:

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.

Devuelve:

  • (Time)

    Tiempo de creación de la descripción del servidor.

Desde:

  • 2.7.0



854
855
856
# Archivo 'lib/mongo/server/description.rb', línea 854

def last_update_time
  @last_update_time
end

#minimum_round_trip_timeFloat (solo lectura)

Devuelve El tiempo mínimo que tardaron en completarse las diez últimas llamadas de saludo.

Devuelve:

  • (Float)

    El tiempo mínimo que tardaron en completarse las diez últimas llamadas de saludo.

Desde:

  • 2.0.0



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.

Ejemplos:

Comprueba la igualdad de descripción.

description == other

Parámetros:

  • Otros (objeto)

    La otra descripción.

Devuelve:

  • (true, false)

    Si los objetos son iguales.

Desde:

  • 2.0.6



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.

Ejemplos:

¿El servidor es un árbitro?

description.arbiter?

Devuelve:

  • (true, false)

    Si el servidor es un árbitro.

Desde:

  • 2.0.0



332
333
334
335
336
# Archivo 'lib/mongo/server/description.rb', línea 332

def árbitro?
  ok? &&
    config['soloÁrbitro'] == true &&
    !!config['setName']
end

#árbitrosArray<String>

Obtenga una lista de todos los árbitros en el set de réplicas.

Ejemplos:

Obtener los árbitros en el set de réplicas.

description.arbiters

Devuelve:

  • (arreglo<String>)

    Los árbitros en el set.

Desde:

  • 2.0.0



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).

Devuelve:

  • (true, false)

    Si la descripción proviene de un servidor que contiene datos.

Desde:

  • 2.7.0



809
810
811
# Archivo 'lib/mongo/server/description.rb', línea 809

def ¿portador de datos?
  mongos? || primario/a? || secundario? || autónomo?
end

#election_idBSON::ObjectId

Obtenga el ID de elección de la configuración.

Ejemplos:

Obtener el electionId.

description.election_id

Devuelve:

  • (BSON::ObjectId)

    El ID de elección.

Desde:

  • 2.1.0



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.

Ejemplos:

¿Es el servidor un fantasma?

description.ghost?

Devuelve:

  • (true, false)

    Si el servidor es un fantasma.

Desde:

  • 2.0.0



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.

Ejemplos:

¿Está oculto el servidor?

description.hidden?

Devuelve:

  • (true, false)

    Si el servidor está oculto.

Desde:

  • 2.0.0



371
372
373
# Archivo 'lib/mongo/server/description.rb', línea 371

def hidden?
  ok? && !!config[Oculto]
end

#hostsarreglo<String>

Obtenga una lista de todos los servidores en el set de réplicas.

Ejemplos:

Obtener los servidores en el set de réplicas.

description.hosts

Devuelve:

  • (arreglo<String>)

    Los servidores del conjunto.

Desde:

  • 2.0.0



383
384
385
# Archivo 'lib/mongo/server/description.rb', línea 383

def host
  @hosts ||= (config[host] || []).map { |s| s.minúscula }
end

#inspectString

Inspecciona la descripción del servidor.

Ejemplos:

Inspeccionar la descripción del servidor

description.inspect

Devuelve:

  • (string)

    La inspección.

Desde:

  • 2.0.0



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

Obsoleto.

¿Esta descripción es del servidor dado?

Ejemplos:

Comprueba si la descripción proviene de un servidor determinado.

description.is_server?(server)

Devuelve:

  • (true, false)

    Si la descripción es del servidor.

Desde:

  • 2.0.6



771
772
773
# Archivo 'lib/mongo/server/description.rb', línea 771

def is_server?(Server)
  dirección == Server.dirección
end

#last_write_dateTime

Obtenga el lastWriteDate del subdocumento lastWrite en la configuración.

Ejemplos:

Obtenga el valor lastWriteDate.

description.last_write_date

Devuelve:

  • (Time)

    La última fecha de guardado.

Desde:

  • 2.4.0



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

Obsoleto.

¿Se incluye un servidor en la lista de servidores de esta descripción?

Ejemplos:

Verifique si un servidor está en la lista de servidores de la descripción.

description.lists_server?(server)

Devuelve:

  • (true, false)

    Si un servidor está en la lista de servidores de la descripción.

Desde:

  • 2.0.6



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.

Devuelve:

  • (true | false)

    Si este servidor es un balanceador de carga.

Desde:

  • 2.0.0



310
311
312
# Archivo 'lib/mongo/server/description.rb', línea 310

def load_balancer?
  @load_balancer
end

#logical_session_timeoutInteger?

Obtener logicalSessionTimeoutMinutes desde la configuración.

Ejemplos:

Obtenga el valor de logicalSessionTimeoutMinutes en minutos.

description.logical_session_timeout

Devuelve:

  • (Integer, nil)

    El tiempo de espera lógico de la sesión en minutos.

Desde:

  • 2.5.0



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_sizeInteger

Obtén el tamaño máximo de objeto BSON para esta versión del servidor.

Ejemplos:

Obtén el tamaño máximo de objeto BSON.

description.max_bson_object_size

Devuelve:

  • (Número entero)

    El tamaño máximo de objeto en bytes.

Desde:

  • 2.0.0



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_sizeInteger

Obtenga el tamaño máximo de mensaje para esta versión del servidor.

Ejemplos:

Obtener el tamaño máximo del mensaje.

description.max_message_size

Devuelve:

  • (Número entero)

    El tamaño máximo del mensaje en bytes.

Desde:

  • 2.0.0



419
420
421
# Archivo 'lib/mongo/server/description.rb', línea 419

def max_message_size
  config[MAX_MESSAGE_BYTES]
end

#max_wire_versionInteger

Obtenga la versión de línea máxima. Por defecto es cero.

Ejemplos:

Obtén la versión máxima del cable.

description.max_wire_version

Devuelve:

  • (Número entero)

    La versión máxima de cable admitida.

Desde:

  • 2.0.0



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_sizeEntero

Obten el tamaño máximo de agrupación para guardados.

Ejemplos:

Obtener el tamaño máximo de lote.

description.max_write_batch_size

Devuelve:

  • (Número entero)

    El tamaño máximo del lote.

Desde:

  • 2.0.0



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

#meString

Nota:

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.

Devuelve:

  • (string)

    El campo yo.

Desde:

  • 2.1.0



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.

Ejemplos:

Compruebe si hay una discrepancia.

description.me_mismatch?

Devuelve:

  • (true, false)

    Si hay una discordancia entre el campo "me" y el host de la dirección.

Desde:

  • 2.0.6



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_versionInteger

Obtén la versión mínima del cable. Por defecto es cero.

Ejemplos:

Obtén la versión mínima de cable.

description.min_wire_version

Devuelve:

  • (Número entero)

    La versión mínima de cable admitida.

Desde:

  • 2.0.0



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.

Devuelve:

  • (true, false)

    Si esta descripción es de un servidor mongocryptd.

Desde:

  • 2.0.0



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.

Ejemplos:

¿Es el servidor un mongos?

description.mongos?

Devuelve:

  • (true, false)

    Si el servidor es un mongos.

Desde:

  • 2.0.0



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.

Devuelve:

  • (booleano)

Desde:

  • 2.0.0



746
747
748
# Archivo 'lib/mongo/server/description.rb', línea 746

def ok?
  config[Operación::Resultado::OK] == 1
end

#op_timeBSON::Timestamp

opTime en el subdocumento lastWrite de la respuesta hello.

Devuelve:

  • (BSON::Timestamp)

    La marca de tiempo.

Desde:

  • 2.7.0



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.

Ejemplos:

¿Es la descripción de tipo otro?

description.other?

Devuelve:

  • (true, false)

    Si la descripción es otra.

Desde:

  • 2.0.0



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.

Ejemplos:

¿Está el servidor en modo pasivo?

description.passive?

Devuelve:

  • (true, false)

    Si el servidor está en modo pasivo.

Desde:

  • 2.0.0



614
615
616
# Archivo 'lib/mongo/server/description.rb', línea 614

def ¿pasivo?
  ok? && !!config[PASIVO]
end

#pasivosarreglo<String>

Obtén una lista de los servidores pasivos en el clúster.

Ejemplos:

Obtener los pasivos.

description.passives

Devuelve:

  • (arreglo<String>)

    La lista de pasivos.

Desde:

  • 2.0.0



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.

Ejemplos:

¿Es este el servidor primario?

description.primary?

Devuelve:

  • (true, false)

    Si el servidor es uno primario.

Desde:

  • 2.0.0



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_hostString | nil

Obtenga la dirección del host principal.

Ejemplos:

Consigue la dirección del primario.

description.primary_host

Devuelve:

  • (String | nil)

    La dirección del primario.

Desde:

  • 2.6.0



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?.

Ejemplos:

Verifica si la descripción es de un miembro de un set de réplicas.

description.replica_set_member?

Devuelve:

  • (true, false)

    Si la descripción es de un miembro de un set de réplicas.

Desde:

  • 2.0.6



798
799
800
# Archivo 'lib/mongo/server/description.rb', línea 798

def replica_set_member?
  ok? && !(autónomo? || mongos?)
end

#replica_set_nameString?

Obtenga el nombre del set de réplicas al que pertenece el servidor, devuelve nil si no hay ninguno.

Ejemplos:

Obtén el nombre del set de réplicas.

description.replica_set_name

Devuelve:

  • (string, nulo)

    El nombre del set de réplicas.

Desde:

  • 2.0.0



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.

Ejemplos:

¿El servidor es secundario?

description.secondary?

Devuelve:

  • (true, false)

    Si el servidor es secundario.

Desde:

  • 2.0.0



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_idobjeto

Desde:

  • 2.0.0



866
867
868
# Archivo 'lib/mongo/server/description.rb', línea 866

def server_connection_id
  config['connectionId']
end

#server_typeSymbol

Devuelve el tipo de servidor como un símbolo.

Ejemplos:

Obtén el tipo de servidor.

description.server_type

Devuelve:

Desde:

  • 2.4.0



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.

Devuelve:

  • (booleano)

Aumenta:

  • (NotImplementedError)

Desde:

  • 2.0.0



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

#servidoresarreglo<String>

Consigue una lista de todos los servidores conocidos por el clúster.

Ejemplos:

Obtén todos los servidores.

description.servers

Devuelve:

  • (arreglo<String>)

    La lista de todos los servidores.

Desde:

  • 2.0.0



677
678
679
# Archivo 'lib/mongo/server/description.rb', línea 677

def servidor
  host + Árbitros + pasivos
end

#service_idnil | objeto

Retorna El ID del servicio, si existe.

Devuelve:

  • (nil | Object)

    El id. del servicio, si lo hay.

Desde:

  • 2.0.0



873
874
875
# Archivo 'lib/mongo/server/description.rb', línea 873

def service_id
  config['serviceId']
end

#set_versionInteger

Obtenga el setVersion de la configuración.

Ejemplos:

Obtén setVersion.

description.set_version

Devuelve:

  • (Número entero)

    La versión establecida.

Desde:

  • 2.2.2



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.

Ejemplos:

¿El servidor es autónomo?

description.standalone?

Devuelve:

  • (true, false)

    Si el servidor es autónomo.

Desde:

  • 2.0.0



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

#tagsHash

Obtén las etiquetas configuradas para el servidor.

Ejemplos:

Obtén las etiquetas.

description.tags

Devuelve:

  • (encriptada)

    Las etiquetas del servidor.

Desde:

  • 2.0.0



482
483
484
# Archivo 'lib/mongo/server/description.rb', línea 482

def etiqueta
  config[etiqueta] || {}
end

#topology_versionTopologyVersion | nil

Devuelve la versión de la topología.

Devuelve:

Desde:

  • 2.0.0



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.

Parámetros:

Devuelve:

  • (true | false)

    Si la versión de la topología en esta descripción es posiblemente más reciente o igual.

Desde:

  • 2.0.0



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.

Parámetros:

Devuelve:

  • (true | false)

    Si la versión de topología en esta descripción es potencialmente más reciente.

Desde:

  • 2.0.0



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.

Ejemplos:

¿Es desconocida la descripción del servidor?

description.unknown?

Devuelve:

  • (true, false)

    Si se desconoce la descripción del servidor.

Desde:

  • 2.0.0



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_versionsrango

Obtén el rango de versiones de wire admitidas para el servidor.

Ejemplos:

Obtenga el rango de versiones de alambre.

description.wire_versions

Devuelve:

  • (rango)

    El rango de la versión de transmisión.

Desde:

  • 2.0.0



758
759
760
# Archivo 'lib/mongo/server/description.rb', línea 758

def wire_versions
  min_wire_version..max_wire_version
end