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'
EXCLUDE_FOR_COMPARISON =

Campos para excluir al comparar dos descripciones.

Desde:

  • 2.0.6

[ LOCAL_TIME,
ULTIMA_ESCRITURA,
OPERATION_TIME,
Operación::CLUSTER_TIME,
CONEXIÓN_ID, ].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



216
217
218
219
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
# Archivo 'lib/mongo/server/description.rb', línea 216

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



281
282
283
# Archivo 'lib/mongo/server/description.rb', línea 281

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



297
298
299
# Archivo 'lib/mongo/server/description.rb', línea 297

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



284
285
286
# Archivo 'lib/mongo/server/description.rb', línea 284

def config
  @config
end

#funcionalidadesFuncionalidades (solo lectura)

Devuelve funcionalidades Las funcionalidades del servidor.

Devuelve:

  • (funcionalidad)

    funcionalidades Las funcionalidades del servidor.

Desde:

  • 2.0.0



294
295
296
# Archivo 'lib/mongo/server/description.rb', línea 294

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



842
843
844
# Archivo 'lib/mongo/server/description.rb', línea 842

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



833
834
835
# Archivo 'lib/mongo/server/description.rb', línea 833

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



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

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



866
867
868
869
870
871
872
873
# Archivo 'lib/mongo/server/description.rb', línea 866

def ==(Otros)
  return false si sí mismo.clase != Otros.clase
  return false si ¿desconocido? || Otros.¿desconocido?

  (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



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

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



325
326
327
# Archivo 'lib/mongo/server/description.rb', línea 325

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



788
789
790
# Archivo 'lib/mongo/server/description.rb', línea 788

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



473
474
475
# Archivo 'lib/mongo/server/description.rb', línea 473

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



337
338
339
340
# Archivo 'lib/mongo/server/description.rb', línea 337

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



350
351
352
# Archivo 'lib/mongo/server/description.rb', línea 350

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



362
363
364
# Archivo 'lib/mongo/server/description.rb', línea 362

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



374
375
376
# Archivo 'lib/mongo/server/description.rb', línea 374

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



750
751
752
# Archivo 'lib/mongo/server/description.rb', línea 750

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



538
539
540
# Archivo 'lib/mongo/server/description.rb', línea 538

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



764
765
766
# Archivo 'lib/mongo/server/description.rb', línea 764

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



289
290
291
# Archivo 'lib/mongo/server/description.rb', línea 289

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



550
551
552
# Archivo 'lib/mongo/server/description.rb', línea 550

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



386
387
388
# Archivo 'lib/mongo/server/description.rb', línea 386

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



398
399
400
# Archivo 'lib/mongo/server/description.rb', línea 398

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



422
423
424
# Archivo 'lib/mongo/server/description.rb', línea 422

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



410
411
412
# Archivo 'lib/mongo/server/description.rb', línea 410

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



449
450
451
# Archivo 'lib/mongo/server/description.rb', línea 449

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



800
801
802
# Archivo 'lib/mongo/server/description.rb', línea 800

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



434
435
436
# Archivo 'lib/mongo/server/description.rb', línea 434

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



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

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



562
563
564
# Archivo 'lib/mongo/server/description.rb', línea 562

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



725
726
727
# Archivo 'lib/mongo/server/description.rb', línea 725

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



817
818
819
820
821
# Archivo 'lib/mongo/server/description.rb', línea 817

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



574
575
576
577
578
579
580
581
582
583
# Archivo 'lib/mongo/server/description.rb', línea 574

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



593
594
595
# Archivo 'lib/mongo/server/description.rb', línea 593

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



605
606
607
# Archivo 'lib/mongo/server/description.rb', línea 605

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



629
630
631
632
633
# Archivo 'lib/mongo/server/description.rb', línea 629

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



617
618
619
# Archivo 'lib/mongo/server/description.rb', línea 617

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



777
778
779
# Archivo 'lib/mongo/server/description.rb', línea 777

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



644
645
646
# Archivo 'lib/mongo/server/description.rb', línea 644

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



668
669
670
671
672
# Archivo 'lib/mongo/server/description.rb', línea 668

def secundario?
  ok? &&
    config['secundario'] == true &&
    !!config['setName']
end

#server_connection_idobjeto

Desde:

  • 2.0.0



845
846
847
# Archivo 'lib/mongo/server/description.rb', línea 845

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



682
683
684
685
686
687
688
689
690
691
692
693
# Archivo 'lib/mongo/server/description.rb', línea 682

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



890
891
892
893
894
895
896
897
898
899
900
901
902
903
# Archivo 'lib/mongo/server/description.rb', línea 890

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



656
657
658
# Archivo 'lib/mongo/server/description.rb', línea 656

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



852
853
854
# Archivo 'lib/mongo/server/description.rb', línea 852

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



485
486
487
# Archivo 'lib/mongo/server/description.rb', línea 485

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



703
704
705
706
707
708
# Archivo 'lib/mongo/server/description.rb', línea 703

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



461
462
463
# Archivo 'lib/mongo/server/description.rb', línea 461

def etiqueta
  config[etiqueta] || {}
end

#topology_versionTopologyVersion | nil

Devuelve la versión de la topología.

Devuelve:

Desde:

  • 2.0.0



490
491
492
493
494
495
496
# Archivo 'lib/mongo/server/description.rb', línea 490

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



506
507
508
509
510
511
512
# Archivo 'lib/mongo/server/description.rb', línea 506

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



522
523
524
525
526
527
528
# Archivo 'lib/mongo/server/description.rb', línea 522

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



718
719
720
721
722
# Archivo 'lib/mongo/server/description.rb', línea 718

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



737
738
739
# Archivo 'lib/mongo/server/description.rb', línea 737

def wire_versions
  min_wire_version..max_wire_version
end