Clase: Mongo::Server::Description

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/server/description.rb,
lib/mongo/server/description/features.rb,
lib/mongo/server/description/load_balancer.rb

Overview

Representa una descripción del servidor, rellena con el resultado del comando hello.

Nota: Los servidores desconocidos no tienen versiones de cable, pero por razones de legado, devolvemos 0 para min_wire_version y max_wire_version de cualquier servidor que no las tenga. Actualmente, el controlador a veces construye comandos cuando el servidor es desconocido, por lo que las referencias a min_wire_version y max_wire_version no deben ser nulas. Cuando se modifique el comportamiento del controlador (jira.mongodb.org/browse/RUBY-), esto podría dejar1805de ser necesario.

Desde:

  • 2.0.0

Definido en el espacio de nombres

Clases: Características, LoadBalancer

Colapso delresumen constante

ÁRBITRO =
Obsoleto.

Constante para leer la información del árbitro desde la configuración.

Desde:

  • 2.0.0

'árbitroSolo '.freeze
ÁRBITROS =

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

Desde:

  • 2.0.0

'árbitros'.freeze
OCULTO =

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

Desde:

  • 2.0.0

'hidden'.freeze
ANFITRIONES =

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

Desde:

  • 2.0.0

'anfitriones '.freeze
MENSAJE =
Obsoleto.

Constante para la clave para el valor del mensaje.

Desde:

  • 2.0.0

'msg'.freeze
MENSAJE_MONGOS =
Obsoleto.

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

Desde:

  • 2.0.0

'isdbgrid'.freeze
CONJUNTO_DE_RÉPLICAS =
Obsoleto.

Constante para determinar servidores fantasmas.

Desde:

  • 2.0.0

'es un conjunto de réplicas'.freeze
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'.freeze
MÁXIMO_MENSAJE_BYTES =

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

Desde:

  • 2.0.0

'maxMessageSizeBytes'.freeze
VERSIÓN MÁXIMA DEL CABLE =

Constante para la versión de cable máximo.

Desde:

  • 2.0.0

'maxWireVersion'.freeze
VERSIÓN MÍNIMA DEL CABLE =

Constante para la versión de cable mínimo.

Desde:

  • 2.0.0

' minWireVersion '.freeze
TAMAÑO MÁXIMO DEL LOTE DE ESCRITURA =

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

Desde:

  • 2.0.0

'tamaño máximo de lote de escritura '.freeze
ÚLTIMA_ESCRITURA =

Constante para el subdocumento lastWrite.

Desde:

  • 2.4.0

'última escritura '.freeze
FECHA DE ÚLTIMA ESCRITURA =

Constante para el campo lastWriteDate en el subdocumento lastWrite.

Desde:

  • 2.4.0

' última fecha deescritura '.freeze
YO =

Constante para leer el campo yo.

Desde:

  • 2.1.0

'me'.freeze
TAMAÑO MÁXIMO DE LOTE DE ESCRITURA PREDETERMINADO =

Tamaño máximo de lote de escritura predeterminado.

Desde:

  • 2.0.0

1000.freeze
VERSIÓN DEL CABLE LEGADO =
Obsoleto.

Se eliminará en 3.0.

La versión heredada del protocolo de cable.

Desde:

  • 2.0.0

0.freeze
PASIVO =

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

Desde:

  • 2.0.0

'pasivo '.freeze
PASIVOS =

Constante para leer la lista de servidores pasivos.

Desde:

  • 2.0.0

'pasivos '.freeze
PRIMARIA =
Obsoleto.

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

Desde:

  • 2.0.0

'ismaster'.freeze
HOST PRINCIPAL =

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

Desde:

  • 2.5.0

'primario '.freeze
SECUNDARIA =
Obsoleto.

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

Desde:

  • 2.0.0

'secundario'.freeze
ESTABLECER_NOMBRE =

Constante para leer la información del nombre del conjunto de réplicas desde la configuración.

Desde:

  • 2.0.0

'setName'.freeze
ETIQUETAS =

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

Desde:

  • 2.0.0

'tags'.freeze
ID_ELECCIÓN =

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

Desde:

  • 2.1.0

'elecciónId'.freeze
SET_VERSION =

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

Desde:

  • 2.2.2

'setVersion'.freeze
HORA LOCAL =

Constante para leer información de hora local desde la configuración.

Desde:

  • 2.1.0

' hora local '.freeze
TIEMPO_DE_OPERACIÓN =

Constante para leer la información de tiempo de operación desde la configuración.

Desde:

  • 2.5.0

'tiempoOperación '.freeze
LOGICAL_SESSION_TIMEOUT_MINUTES =

Constante para leer la información logicalSessionTimeoutMinutes desde config.

Desde:

  • 2.5.0

'MinutosDeTiempoDeExpiraciónDeSesiónLógica'.freeze
ID DE CONEXIÓN =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

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

Desde:

  • 2.0.0

'Id de conexión'.freeze
EXCLUIR_PARA_COMPARACIÓN =

Campos para excluir al comparar dos descripciones.

Desde:

  • 2.0.6

[ LOCAL_TIME,
  ÚLTIMA ESCRITURA,
  TIEMPO DE OPERACIÓN,
  Operación::CLUSTER_TIME,
  CONEXIÓN_ID,
].freeze

Colapso delresumen de atributos de instancia

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(dirección, configuración = {}, tiempo promedio de ida y vuelta: nulo, tiempo mínimo de ida0 y vuelta:, balanceador de carga: falso, balanceador de carga forzado: falso) ⇒ Descripción

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Cree una instancia de la nueva descripción del servidor a partir del resultado del comando hello o fabrique una descripción de marcador de posición para servidores desconocidos y LoadBalancer.

Ejemplos:

Crear una instancia de la nueva descripción.

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

Parámetros:

  • dirección ( DIRECCIÓN) -

    La dirección del servidor.

  • config (Hash) (predeterminado: {})

    El resultado del comando hola.

  • tiempo promedio de ida y vuelta (Flotar) (predeterminado: nulo)

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

  • tiempo mínimo de ida y vuelta (Flotar) 0(predeterminado:)

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

  • equilibrador de carga (true | false) (predeterminado: falso)

    Si el servidor se trata como un equilibrador de carga.

  • equilibrador de carga de fuerza (true | false) (predeterminado: falso)

    Si el servidor está obligado a ser un balanceador de carga.

Desde:

  • 2.0.0



220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
# Archivo 'lib/mongo/server/description.rb', línea 220

def inicializar(dirección, config = {}, tiempo promedio de ida y vuelta: nulo,
  tiempo mínimo de ida y vuelta: 0, equilibrador de carga: false,
  equilibrador de carga de fuerza: false
)
  @DIRECCIÓN = dirección
  @config = config
  @balanceador de carga = !!equilibrador de carga
  @balanceador de carga de fuerza = !!equilibrador de carga de fuerza
  @características = Características.Nuevo(versiones de cable, me || @DIRECCIÓN.a_s)
  @tiempo_promedio_de_viaje_de_ida_y_vuelta = tiempo promedio de ida y vuelta
  @tiempo mínimo de ida y vuelta = tiempo mínimo de ida y vuelta
  @last_update_time = Tiempo.ahora.freeze
  @last_update_monotime = Utils.monotonic_time

  Si equilibrador de carga
    # Cuando se establece la opción URI loadBalanced=true, el controlador 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 de balanceador de carga adecuada en Evergreen
    #
    # Por lo tanto, cuando se utiliza la opción Ruby connect=:load_balanced
    # de la opción URI loadBalanced=true, si serviceId no está configurado en
    # respuesta ismaster/hello, el controlador fabrica un serviceId y
    # procede a tratar un servidor que no se reporta como tal
    # detrás de un balanceador de carga como un servidor que está detrás de un balanceador de carga.
    #
    # 5.0+ servidores deben proporcionar topologyVersion.processId que
    # es específico de la instancia de proceso en particular. Podemos usarlo
    # campo como proxy para serviceId.
    #
    # Si no se proporciona la topologíaVersion por cualquier motivo,
    # fabricar un serviceId localmente.
    #
    # En cualquier caso, un serviceId proporcionado por un servidor real detrás
    # Se supone que un balanceador de carga es un BSON::ObjectId. El fabricado
    # Los identificadores de servicio son cadenas para distinguirlos de los reales.
    # En particular, processId también es un BSON::ObjectId, pero será
    # asignado a una cadena para mayor claridad de que se trata de una identificación de servicio falsa.
    #
    # TODO: Eliminar esto cuando https://jira.mongodb.org/browse/RUBY-2881 haya terminado.
    Si ok? && !id_de_servicio
      a no ser que equilibrador de carga de fuerza
        propagar Error::Id. de servicio faltante, "Elservidor en #{address.seed} no proporcionó un ID de servicio en la respuesta del protocolo deenlace"
      end

      ID de servicio falso = Si id_del_proceso = versión_de_topología && versión_de_topología['processId']
        "proceso:#{process_id}"
      else
        "falso:#{rand(2**32-1)+1 "
      end
      @config = @config.unir('ID de servicio' => ID de servicio falso)
    end
  end

  Si Mongo::Lint.¿activado?
    Variables de instancia de caché pregeneradas
    Hospedadores
    Árbitros
    pasivos
    versión_de_topología

    freeze
  end
end

Detalles de los atributos de instancia

#direcciónDirección (solo lectura)

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

Devuelve:

  • ( DIRECCIÓN) -

    dirección La dirección del servidor.

Desde:

  • 2.0.0



287
288
289
# Archivo 'lib/mongo/server/description.rb', línea 287

def dirección
  @DIRECCIÓN
end

#tiempo_promedio_de_ida_y_vueltaFlotante (solo lectura)

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

Devuelve:

  • (Flotar) -

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

Desde:

  • 2.0.0



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

def tiempo promedio de ida y vuelta
  @tiempo_promedio_de_viaje_de_ida_y_vuelta
end

#configHash (solo lectura)

Devuelve el resultado real del comando hello.

Devuelve:

  • (Hash)

    El resultado real del comando hello.

Desde:

  • 2.0.0



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

def config
  @config
end

#last_update_monotimeFlotante (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Hora en que se creó esta descripción del servidor según el reloj monótono.

Devuelve:

  • (Flotar) -

    Tiempo monótono de creación de descripción del servidor.

Ver también:

  • Para más detalles

Desde:

  • 2.0.0



848
849
850
# Archivo 'lib/mongo/server/description.rb', línea 848

def last_update_monotime
  @last_update_monotime
end

#last_update_timeHora (solo lectura)

Nota:

Este tiempo no indica cuándo se realizó una verificación del servidor exitosa

Hora en que se creó esta descripción del servidor.

Completado, ya que al marcar un servidor como desconocido se actualizan su descripción y la hora de la última actualización. Use Server#last_scan para averiguar cuándo el servidor fue revisado correctamente por última vez por su monitor.

Devuelve:

  • (Time)

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

Desde:

  • 2.7.0



839
840
841
# Archivo 'lib/mongo/server/description.rb', línea 839

def last_update_time
  @last_update_time
end

#tiempo_mínimo_de_ida_y_vueltaFlotante (solo lectura)

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

Devuelve:

  • (Flotar) -

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

Desde:

  • 2.0.0



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

def tiempo mínimo de ida y vuelta
  @tiempo mínimo de ida y vuelta
end

Detalles del método de instancia

#==(otro) ⇒ verdadero, falso También conocido como: eql?

Comprobar la igualdad de dos descripciones.

Ejemplos:

Comprobar igualdad de descripción.

description == other

Parámetros:

  • otros (Objeto) -

    La otra descripción.

Devuelve:

  • (verdadero,falso)

    Si los objetos son iguales.

Desde:

  • 2.0.6



872
873
874
875
876
877
878
879
# Archivo 'lib/mongo/server/description.rb', línea 872

def ==(otros)
  return false Si yo.clase != otros.clase
  return false Si ¿desconocido? || otros.¿desconocido?

  (config.claves + otros.config.claves).único.¿todo? hacer |k|
    config[k] == otros.config[k] || EXCLUIR PARA COMPARACIÓN.¿incluir?(k)
  end
end

#¿árbitro?verdadero, falso

Devuelve si este servidor es un árbitro, según la especificación SDAM.

Ejemplos:

¿El servidor es un árbitro?

description.arbiter?

Devuelve:

  • (verdadero,falso)

    Si el servidor es un árbitro.

Desde:

  • 2.0.0



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

def ¿árbitro?
  ok? &&
  config['árbitroSolo '] == true &&
  !!config['setName']
end

#árbitrosArray<String>

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

Ejemplos:

Obtenga los árbitros en el conjunto de réplicas.

description.arbiters

Devuelve:

  • (Matriz<String>)

    Los árbitros en el set.

Desde:

  • 2.0.0



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

def Árbitros
  @árbitros ||= (config[ÁRBITROS] || []).map { |s| s.mayúsculas y minúsculas }
end

#data_bearing?verdadero, falso

Si esta descripción proviene de un servidor que contiene datos (independiente, mongos, primario o secundario).

Devuelve:

  • (verdadero,falso)

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

Desde:

  • 2.7.0



794
795
796
# Archivo 'lib/mongo/server/description.rb', línea 794

def ¿datos_de_portador?
  mongos? || ¿primario? || ¿secundario? || ¿autónomo?
end

#id_elecciónBSON::Id_objeto

Obtenga el electionId de la configuración.

Ejemplos:

Obtenga el electionId.

description.election_id

Devuelve:

  • (BSON::ObjectId)

    La identificación electoral.

Desde:

  • 2.1.0



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

def id_elección
  config[ID DE ELECCIÓN]
end

#featuresfuncionalidad

Devuelve características Las características del servidor.

Devuelve:

Desde:

  • 2.0.0



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

def características
  @características
end

#¿fantasma?verdadero, falso

Si este servidor es un fantasma, según la especificación SDAM.

Ejemplos:

¿El servidor es un fantasma?

description.ghost?

Devuelve:

  • (verdadero,falso)

    Si el servidor es un fantasma.

Desde:

  • 2.0.0



345
346
347
348
# Archivo 'lib/mongo/server/description.rb', línea 345

def ghost?
  ok? &&
  config['es un conjunto de réplicas'] == true
end

#¿oculto?verdadero, falso

Devolverá verdadero si el servidor está oculto.

Ejemplos:

¿El servidor está oculto?

description.hidden?

Devuelve:

  • (verdadero,falso)

    Si el servidor está oculto.

Desde:

  • 2.0.0



358
359
360
# Archivo 'lib/mongo/server/description.rb', línea 358

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

#hostsMatriz<String>

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

Ejemplos:

Obtenga los servidores en el conjunto de réplicas.

description.hosts

Devuelve:

  • (Matriz<String>)

    Los servidores en el conjunto.

Desde:

  • 2.0.0



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

def Hospedadores
  @anfitriones ||= (config[HOSTS] || []).map { |s| s.mayúsculas y minúsculas }
end

#inspeccionarCadena

Inspeccione la descripción del servidor.

Ejemplos:

Inspeccionar la descripción del servidor

description.inspect

Devuelve:

  • (Cadena) -

    La inspección.

Desde:

  • 2.0.0



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

def inspeccionar
  "#<Mongo::Server:Description:0x#{object_id} config=#{config} tiempo_de_ida_y_vuelta_promedio=#{tiempo_de_ida_y_vuelta_promedio}>"
end

#is_server?(servidor) ⇒ verdadero, falso

Obsoleto.

¿Esta descripción es del servidor dado?

Ejemplos:

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

description.is_server?(server)

Devuelve:

  • (verdadero,falso)

    Si la descripción es del servidor.

Desde:

  • 2.0.6



756
757
758
# Archivo 'lib/mongo/server/description.rb', línea 756

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

#fecha_de_última_escrituraHora

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

Ejemplos:

Obtenga el valor de lastWriteDate.

description.last_write_date

Devuelve:

  • (Time)

    La última fecha de escritura.

Desde:

  • 2.4.0



546
547
548
# Archivo 'lib/mongo/server/description.rb', línea 546

def fecha de última escritura
  config[ÚLTIMA ESCRITURA][FECHA DE ÚLTIMA ESCRITURA] Si config[ÚLTIMA ESCRITURA]
end

#lists_server?(servidor) ⇒ verdadero, falso

Obsoleto.

Es un servidor incluido en la lista de servidores de esta descripción.

Ejemplos:

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

description.lists_server?(server)

Devuelve:

  • (verdadero,falso)

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

Desde:

  • 2.0.6



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

def listas_servidor?(Server)
  servidores.¿incluir?(Server.dirección.a_s)
end

#balanceador_de_carga?verdadero | falso

Devuelve si este servidor es un balanceador de carga.

Devuelve:

  • (verdadero | falso)

    Si este servidor es un balanceador de carga.

Desde:

  • 2.0.0



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

def ¿equilibrador de carga?
  @balanceador de carga
end

#logical_session_timeoutInteger?

Obtenga los logicalSessionTimeoutMinutes de la configuración.

Ejemplos:

Obtenga el valor de logicalSessionTimeoutMinutes en minutos.

description.logical_session_timeout

Devuelve:

  • (Integer, nil)

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

Desde:

  • 2.5.0



558
559
560
# Archivo 'lib/mongo/server/description.rb', línea 558

def tiempo de espera de sesión lógica
  config[MINUTOS DE TIEMPO DE ESPERA DE SESIÓN LÓGICA] Si config[MINUTOS DE TIEMPO DE ESPERA DE SESIÓN LÓGICA]
end

#max_bson_object_sizeInteger

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

Ejemplos:

Obtenga el tamaño máximo del objeto BSON.

description.max_bson_object_size

Devuelve:

  • (Entero)

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

Desde:

  • 2.0.0



394
395
396
# Archivo 'lib/mongo/server/description.rb', línea 394

def tamaño máximo del objeto bson
  config[TAMAÑO MÁXIMO DEL OBJETO BSON]
end

#tamaño_máximo_del_mensajeEntero

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

Ejemplos:

Obtenga el tamaño máximo del mensaje.

description.max_message_size

Devuelve:

  • (Entero)

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

Desde:

  • 2.0.0



406
407
408
# Archivo 'lib/mongo/server/description.rb', línea 406

def tamaño máximo del mensaje
  config[MÁXIMO_BYTES_DE_MENSAJE]
end

#max_wire_versionInteger

Obtener la versión máxima del cable. El valor predeterminado es cero.

Ejemplos:

Obtenga la versión de cable máximo.

description.max_wire_version

Devuelve:

  • (Entero)

    Se admite la versión de cable máximo.

Desde:

  • 2.0.0



430
431
432
# Archivo 'lib/mongo/server/description.rb', línea 430

def versión máxima del cable
  config[VERSIÓN MÁXIMA DEL CABLE] || 0
end

#tamaño máximo del lote de escritura ⇒ Entero

Obtenga el tamaño máximo de lote para escrituras.

Ejemplos:

Obtenga el tamaño máximo del lote.

description.max_write_batch_size

Devuelve:

  • (Entero)

    El tamaño máximo del lote.

Desde:

  • 2.0.0



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

def tamaño máximo del lote de escritura
  config[MAX_WRITE_BATCH_SIZE] || TAMAÑO MÁXIMO DE LOTE DE ESCRITURA PREDETERMINADO
end

#yoCadena

Nota:

El valor del campo "me" puede diferir de la dirección de la descripción del servidor. Esto puede ocurrir, por ejemplo, en configuraciones de horizonte dividido. La especificación SDAM solo requiere eliminar servidores cuyo "me" no coincida con su dirección en algunas situaciones (por ejemplo, cuando el servidor en cuestión es miembro de RS, pero no principal).

Obtenga el valor del campo yo.

Devuelve:

  • (Cadena) -

    El campo yo.

Desde:

  • 2.1.0



457
458
459
# Archivo 'lib/mongo/server/description.rb', línea 457

def me
  config[ME]
end

#me_mismatch?verdadero, falso

Verifique si hay una discordancia entre la dirección del host y el campo yo.

Ejemplos:

Compruebe si hay una discrepancia.

description.me_mismatch?

Devuelve:

  • (verdadero,falso)

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

Desde:

  • 2.0.6



806
807
808
# Archivo 'lib/mongo/server/description.rb', línea 806

def ¿me_desajuste?
  !!(dirección.a_s.mayúsculas y minúsculas != me.mayúsculas y minúsculas Si me)
end

#min_wire_versionEntero

Obtener la versión mínima del cable. El valor predeterminado es cero.

Ejemplos:

Obtenga la versión min wire.

description.min_wire_version

Devuelve:

  • (Entero)

    Se admite la versión min wire.

Desde:

  • 2.0.0



442
443
444
# Archivo 'lib/mongo/server/description.rb', línea 442

def versión mínima del cable
  config[VERSIÓN MÍNIMA DEL CABLE] || 0
end

#mongocryptd?verdadero, falso

Si esta descripción es de un servidor mongocryptd.

Devuelve:

  • (verdadero,falso)

    Si esta descripción es de un servidor mongocryptd.

Desde:

  • 2.0.0



814
815
816
# Archivo 'lib/mongo/server/description.rb', línea 814

def mongocryptd?
  ok? && config['iscryptd'] == true
end

#mongos?verdadero, falso

Retorna si este servidor es un mongos, según la especificación SDAM.

Ejemplos:

¿El servidor es un mongos?

description.mongos?

Devuelve:

  • (verdadero,falso)

    Si el servidor es un mongos.

Desde:

  • 2.0.0



570
571
572
# Archivo 'lib/mongo/server/description.rb', línea 570

def mongos?
  ok? && config['msg'] == 'isdbgrid'
end

#ok?Boolean

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)

Desde:

  • 2.0.0



731
732
733
# Archivo 'lib/mongo/server/description.rb', línea 731

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

#op_timeBSON::Timestamp

opTime en el subdocumento lastWrite de la respuesta de saludo.

Devuelve:

  • (BSON::Timestamp)

    La marca de tiempo.

Desde:

  • 2.7.0



823
824
825
826
827
# Archivo 'lib/mongo/server/description.rb', línea 823

def tiempo de operación
  Si config['última escritura '] && config['última escritura ']['opTime ']
    config['última escritura ']['opTime ']['ts']
  end
end

#otro?verdadero, falso

Devuelve si el servidor es otro, según la especificación SDAM.

Ejemplos:

¿La descripción del tipo es otra?

description.other?

Devuelve:

  • (verdadero,falso)

    Si la descripción es otra.

Desde:

  • 2.0.0



582
583
584
585
586
587
588
589
590
591
# Archivo 'lib/mongo/server/description.rb', línea 582

def ¿otro?
  # La especificación SDAM es un poco confusa sobre lo que significa "otro".
  # pero se le conoce como "RSOther", que significa que no es miembro de RS
  # no puede ser "otro".
  ok? &&
  !!config['setName'] && (
    config['hidden'] == true ||
    !¿primario? && !¿secundario? && !¿árbitro?
  )
end

#pasivo?verdadero, falso

Devolverá verdadero si el servidor es pasivo.

Ejemplos:

¿El servidor es pasivo?

description.passive?

Devuelve:

  • (verdadero,falso)

    Si el servidor es pasivo.

Desde:

  • 2.0.0



601
602
603
# Archivo 'lib/mongo/server/description.rb', línea 601

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

#pasivosArray<String>

Obtenga una lista de los servidores pasivos en el clúster.

Ejemplos:

Consigue los pasivos.

description.passives

Devuelve:

  • (Matriz<String>)

    La lista de pasivos.

Desde:

  • 2.0.0



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

def pasivos
  @pasivos ||= (config[PASIVOS] || []).map { |s| s.mayúsculas y minúsculas }
end

#¿primario?verdadero, falso

Devuelve si este servidor es principal, según la especificación SDAM.

Ejemplos:

¿El servidor es principal?

description.primary?

Devuelve:

  • (verdadero,falso)

    Si el servidor es principal.

Desde:

  • 2.0.0



637
638
639
640
641
# Archivo 'lib/mongo/server/description.rb', línea 637

def ¿primario?
  ok? &&
    (config['ismaster'] == true || config[' esEscribiblePrimario '] == true ) &&
  !!config['setName']
end

#host_principalCadena | nulo

Obtenga la dirección del host principal.

Ejemplos:

Obtenga la dirección del principal.

description.primary_host

Devuelve:

  • ( Cadena| nulo ) —

    La dirección de la primaria.

Desde:

  • 2.6.0



625
626
627
# Archivo 'lib/mongo/server/description.rb', línea 625

def host principal
  config[HOST PRINCIPAL] && config[HOST PRINCIPAL].mayúsculas y minúsculas
end

#miembro_del_conjunto_de_réplicas?verdadero, falso

¿Esta descripción corresponde a un miembro del conjunto de réplicas?

Ejemplos:

Compruebe si la descripción proviene de un miembro del conjunto de réplicas.

description.replica_set_member?

Devuelve:

  • (verdadero,falso)

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

Desde:

  • 2.0.6



783
784
785
# Archivo 'lib/mongo/server/description.rb', línea 783

def ¿miembro del conjunto de réplicas?
  ok? && !(¿autónomo? || mongos?)
end

#nombre_conjunto_réplicaCadena?

Obtiene el nombre del conjunto de réplicas al que pertenece el servidor, devuelve nulo si no hay ninguno.

Ejemplos:

Obtener el nombre del conjunto de réplicas.

description.replica_set_name

Devuelve:

  • (Cadena,nula)

    El nombre del set de réplicas.

Desde:

  • 2.0.0



652
653
654
# Archivo 'lib/mongo/server/description.rb', línea 652

def nombre_del_conjunto_de_réplicas
  config[NOMBRE DEL CONJUNTO]
end

#¿secundario?verdadero, falso

Retorna si este servidor es secundario, según la especificación SDAM.

Ejemplos:

¿El servidor es secundario?

description.secondary?

Devuelve:

  • (verdadero,falso)

    Si el servidor es secundario.

Desde:

  • 2.0.0



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

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

#id_de_conexión_del_servidorObjeto

Desde:

  • 2.0.0



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

def id_de_conexión_del_servidor
  config['Id de conexión']
end

#server_typeSymbol

Devuelve el tipo de servidor como un símbolo.

Ejemplos:

Obtenga el tipo de servidor.

description.server_type

Devuelve:

  • ( Símbolo) -

    El tipo de servidor.

Desde:

  • 2.4.0



690
691
692
693
694
695
696
697
698
699
700
# Archivo 'lib/mongo/server/description.rb', línea 690

def tipo_de_servidor
  return :balanceador de carga Si ¿equilibrador de carga?
  return :árbitro Si ¿árbitro?
  return :ghost Si ghost?
  return :fragmentado Si mongos?
  return :primario Si ¿primario?
  return :secundario Si ¿secundario?
  return :autónomo Si ¿autónomo?
  return :otro Si ¿otro?
  :desconocido
end

#server_version_gte?(version) ⇒ Boolean

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve:

  • (Booleano)

Desde:

  • 2.0.0



883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
# Archivo 'lib/mongo/server/description.rb', línea 883

def server_version_gte?(Versión)
  requerido_wv = caso Versión
    Cuando '7.0'
      21
    Cuando '6.0'
      17
    Cuando '5.2'
      15
    Cuando '5.1'
      14
    Cuando '5.0'
      12
    Cuando '4.4'
      9
    Cuando '4.2'
      8
    Cuando '4.0'
      7
    Cuando '3.6'
      6
    Cuando '3.4'
      5
    Cuando '3.2'
      4
    Cuando '3.0'
      3
    Cuando '2.6'
      2
    else
      propagar ArgumentError, "Versiónrequerida falsa #{version }"
    end

  Si ¿equilibrador de carga?
    # Si estamos hablando con un balanceador de carga, no hay monitoreo
    # y no sabemos qué servidor está detrás del balanceador de carga.
    # Supongamos que todo es compatible.
    # TODO eliminar esto cuando se implementa RUBY-2220.
    return true
  end

  requerido_wv >= versión mínima del cable && requerido_wv < = versión máxima del cable
end

#servidoresArray<String>

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

Ejemplos:

Obtener todos los servidores.

description.servers

Devuelve:

  • (Matriz<String>)

    La lista de todos los servidores.

Desde:

  • 2.0.0



664
665
666
# Archivo 'lib/mongo/server/description.rb', línea 664

def servidores
  Hospedadores + Árbitros + pasivos
end

#service_idnil | objeto

Devuelve el ID del servicio, si lo hay.

Devuelve:

  • (nil | Objeto)

    El identificador del servicio, si lo hay.

Desde:

  • 2.0.0



858
859
860
# Archivo 'lib/mongo/server/description.rb', línea 858

def id_de_servicio
  config['ID de servicio']
end

#set_versionInteger

Obtenga setVersion de la configuración.

Ejemplos:

Obtener el setVersion.

description.set_version

Devuelve:

  • (Entero)

    La versión establecida.

Desde:

  • 2.2.2



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

def establecer_versión
  config[VERSIÓN DEL ESTABLECIMIENTO]
end

#independiente?verdadero, falso

Devuelve si este servidor es independiente, según la especificación SDAM.

Ejemplos:

¿El servidor es independiente?

description.standalone?

Devuelve:

  • (verdadero,falso)

    Si el servidor es independiente.

Desde:

  • 2.0.0



710
711
712
713
714
715
# Archivo 'lib/mongo/server/description.rb', línea 710

def ¿autónomo?
  ok? &&
  config['msg'] != 'isdbgrid' &&
  config['setName'].nil? &&
  config['es un conjunto de réplicas'] != true
end

#etiquetasHash

Obtenga las etiquetas configuradas para el servidor.

Ejemplos:

Obtenga las etiquetas.

description.tags

Devuelve:

  • (Hash)

    Las etiquetas del servidor.

Desde:

  • 2.0.0



469
470
471
# Archivo 'lib/mongo/server/description.rb', línea 469

def Etiquetas
  config[ETIQUETAS] || {}
end

#topology_versionTopologyVersion | nil

Devuelve la versión de la topología.

Devuelve:

Desde:

  • 2.0.0



498
499
500
501
502
503
504
# Archivo 'lib/mongo/server/description.rb', línea 498

def versión_de_topología
  a no ser que ¿definido?(@topology_version)
    @topology_version = config['topologyVersion'] &&
      TopologyVersion.Nuevo(config['topologyVersion'])
  end
  @topology_version
end

#topología_versión_gt?(otra_desc) ⇒ verdadero | falso

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve si la versión de topología en esta descripción es potencialmente más nueva o igual que la versión de topología en otra descripción.

Parámetros:

  • otra_desc (Servidor::Descripción)

    La otra descripción del servidor.

Devuelve:

  • (verdadero | falso)

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

Desde:

  • 2.0.0



514
515
516
517
518
519
520
# Archivo 'lib/mongo/server/description.rb', línea 514

def topology_version_gt?(otra_desc)
  Si versión_de_topología.nil? || otra_desc.versión_de_topología.nil?
    true
  else
    versión_de_topología.gt?(otra_desc.versión_de_topología)
  end
end

#topología_versión_gte?(otra_desc) ⇒ verdadero | falso

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve si la versión de topología en esta descripción es potencialmente más nueva que la versión de topología en otra descripción.

Parámetros:

  • otra_desc (Servidor::Descripción)

    La otra descripción del servidor.

Devuelve:

  • (verdadero | falso)

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

Desde:

  • 2.0.0



530
531
532
533
534
535
536
# Archivo 'lib/mongo/server/description.rb', línea 530

def topology_version_gte?(otra_desc)
  Si versión_de_topología.nil? || otra_desc.versión_de_topología.nil?
    true
  else
    versión_de_topología.gte?(otra_desc.versión_de_topología)
  end
end

#¿desconocido?true, false

Devuelve si este servidor es desconocido, según la especificación SDAM.

Ejemplos:

¿Se desconoce la descripción del servidor?

description.unknown?

Devuelve:

  • (verdadero,falso)

    Si se desconoce la descripción del servidor.

Desde:

  • 2.0.0



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

def ¿desconocido?
  return false Si ¿equilibrador de carga?
  config.¿vacío? || config.claves == %w(topologyVersion) || !ok?
end

#versiones_de_cableRango

Obtenga la gama de versiones de cable compatibles con el servidor.

Ejemplos:

Obtenga la gama de versiones con cable.

description.wire_versions

Devuelve:

  • (Rango) -

    La gama de versiones con cable.

Desde:

  • 2.0.0



743
744
745
# Archivo 'lib/mongo/server/description.rb', línea 743

def versiones de cable
  versión mínima del cable..versión máxima del cable
end