Classificação: Mongo::Servidor::Descrição

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/ servidor/description.rb,
build/ruby-driver-v2.19/lib/mongo/ servidor/description/features.rb,
build/ruby-driver-v2.19/lib/mongo/ servidor/description/load_balancer.rb

Visão geral

Representa uma descrição do servidor, preenchido pelo resultado do comando hello .

Observação: servidores desconhecidos não têm versões de fio, mas, por motivos legado , retornamos 0 para min_wire_version e max_wire_version de qualquer servidor que não os tenha. Atualmente, o driver às vezes constrói comandos quando o servidor é desconhecido, portanto, as referências a min_wire_version e max_wire_version não devem ser nulas. Quando o comportamento do motorista é alterado (jira.mongodb.org/browse/RUBY-{21805), isso pode não ser mais necessário.

Desde:

  • 2.0.0

Definido sob namespace

Classes: Recursos, LoadBalancer

Colapsode resumo constante

arbiter =
Obsoleto.

Constante para ler informações de árbitro de configuração.

Desde:

  • 2.0.0

'arbiterOnly'.congelar
Árbitros =

Constante para ler informações de árbitros da configuração.

Desde:

  • 2.0.0

'árbitros'.congelar
OCULTO =

Constante para ler informações ocultas da configuração.

Desde:

  • 2.0.0

'oculto'.congelar
HOSTS =

Constante para ler informações de hosts da configuração.

Desde:

  • 2.0.0

'hosts'.congelar
MESSAGE =
Obsoleto.

Constante para a chave para o valor da mensagem.

Desde:

  • 2.0.0

'msg'.congelar
MONGOS_MSSAGE =
Obsoleto.

Constante para a mensagem que indica um cluster fragmentado.

Desde:

  • 2.0.0

'isdbgrade'.congelar
REPLICA_SET =
Obsoleto.

Constante para determinar servidores fantasma.

Desde:

  • 2.0.0

'isreplicaset'.congelar
MAX_BSON_OBJECT_SIZE =

Constante para ler informações de tamanho máximo de BSON da configuração.

Desde:

  • 2.0.0

'maxBsonObjectSize'.congelar
MAX_MSSAGE_BYTES =

Constante para ler informações de tamanho máximo de mensagem de config.

Desde:

  • 2.0.0

'maxMessageSizeBytes'.congelar
MAX_WIRE_VERSION =

Constante para a versão máxima do fio.

Desde:

  • 2.0.0

'maxWireVersion'.congelar
MIN_WIRE_VERSION =

Constante para a versão mínima do fio.

Desde:

  • 2.0.0

'minWireVersion'.congelar
MAX_WRITE_BATCH_SIZE =

Constante para ler o tamanho máximo do lote de gravação.

Desde:

  • 2.0.0

'maxWriteBatchSize'.congelar
LAST_WRITE =

Constante para o subdocumento lastWrite.

Desde:

  • 2.4.0

'lastWrite'.congelar
LAST_WRITE_DATE =

Constante para o campo lastWriteDate no subdocumento lastWrite.

Desde:

  • 2.4.0

'lastWriteDate'.congelar
eu =

Constante para ler o campo me .

Desde:

  • 2.1.0

'me'.congelar
DEFAULT_MAX_WRITE_BATCH_SIZE =

Tamanho máximo do lote de gravação padrão.

Desde:

  • 2.0.0

1000.congelar
LGACY_WIRE_VERSION =
Obsoleto.

Será removido em 3.0.

A versão legado do protocolo de conexão .

Desde:

  • 2.0.0

0.congelar
Passiva =

Constante para ler informações passivas da configuração.

Desde:

  • 2.0.0

'passivo'.congelar
Passivos =

Constante para ler a lista de servidor passivos.

Desde:

  • 2.0.0

'passivos'.congelar
PRIMARY =
Obsoleto.

Constante para ler informações primárias da configuração.

Desde:

  • 2.0.0

'ismaster'.congelar
PRIMARY_HOST =

Constante para ler o campo de host primário da configuração.

Desde:

  • 2.5.0

'primary'.congelar
SECUNDÁRIO =
Obsoleto.

Constante para ler informações secundárias da configuração.

Desde:

  • 2.0.0

'secundário'.congelar
set_name =

Constante para ler informações de nome do conjunto de réplicas da configuração.

Desde:

  • 2.0.0

'setName'.congelar
TAGS =

Constante para ler informações de tags da configuração.

Desde:

  • 2.0.0

'tags'.congelar
ELECTION_ID =

Constante para ler informações electionId da configuração.

Desde:

  • 2.1.0

'electionId'.congelar
set_VERSION =

Constante para ler informações setVersion da configuração.

Desde:

  • 2.2.2

'setVersion'.congelar
LOCAL_TIME =

Constante para ler informações de localTime da configuração.

Desde:

  • 2.1.0

'localTime'.congelar
Operation_time =

Constante para ler informações de operationTime da configuração.

Desde:

  • 2.5.0

'operationTime'.congelar
LOGical_SESSION_TIMEOUT_MINUSES =

Constante para ler informações logicalSessionTimeoutMinutes de config.

Desde:

  • 2.5.0

'logicalSessionTimeoutMinutes'.congelar
CONNECTION_ID =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

Constante para ler informações connectionId da configuração.

Desde:

  • 2.0.0

'connectionId'.congelar
EXCLUDE_FOR_COMPARISON =

Campos a serem excluídos ao comparar duas descrições.

Desde:

  • 2.0.6

[ LOCAL_TIME,
  LAST_WRITE,
  operation_time,
  (operação)::CLUSTER_TIME,
  CONNECTION_ID,
].congelar

Recolhimento do Resumo do atributo de instância

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(address, config = {}, average_round_trip_time: nil, load_balancer: false, force_load_balancer: false) ➤ Descrição

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Instale a nova descrição do servidor a partir do resultado do comando hello ou crie uma descrição de espaço reservado para os servidores Unknown e LoadBalancer.

Exemplos:

Instancie a nova descrição.

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

Parâmetros:

  • endereço (Endereço)

    O endereço do servidor .

  • config (Hash) (padrão para: {})

    O resultado do comando hello.

  • average_round_trip_time (Flutuante) (padrão para: nil)

    O tempo médio móvel (seg) que o comando hello levou para ser concluído.

  • average_round_trip_time (Flutuante) (padrão para: nil)

    O tempo médio móvel (seg) que a chamada ismaster levou para ser concluída.

  • load_balancer (verdadeiro | falso) (padrão para: false)

    Se o servidor é tratado como um balanceador de carga .

  • force_load_balancer (verdadeiro | falso) (padrão para: false)

    Se o servidor é forçado a ser um 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
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 220

def inicializar(endereço, config = {}, average_round_trip_time: nada,
  load_balancer: false, force_load_balancer: false
)
  @address = endereço
  @config = config
  @load_balancer = !!load_balancer
  @force_load_balancer = !!force_load_balancer
  @features = Características.Novo(wire_versions, eu || @address.to_s)
  @average_round_trip_time = average_round_trip_time
  @last_update_time = Hora.agora.congelar
  @last_update_monotime = Utilidades.monotonic_time

  se load_balancer
    # Quando a opção loadBalanced=true URI estiver definida, o motorista recusará
    # para funcionar se o servidor com o qual ele se comunica não definir serviceId
    # na resposta ismaster/hello.
    #
    # No momento, não podemos executar uma configuração adequada do balanceador de carga em evergreen
    #
    # Portanto, quando a opção connect=:load_balanced Ruby é usada
    # da opção loadBalanced=true URI, se serviceId não estiver definido em
    # resposta ismaster/hello, o driver fabrica um serviceId e
    # continua tratando um servidor que não se identifica como sendo
    # atrás de um balanceador de carga como um servidor que está atrás de um balanceador de carga.
    #
    # 5.0+ servidores devem fornecer topologyVersion.processId qual
    # é específico para a instância de processo específica. Podemos usar isso
    campo # como proxy para serviceId.
    #
    # Se a topologyVersion não for fornecida por qualquer motivo, nós
    # fabricar um serviceId localmente.
    #
    # Em ambos os casos, um serviceId fornecido por um servidor real por trás
    # um balanceador de carga deve ser um BSON::ObjectId. O falso
    # os IDs de serviço são strings, para diferenciá-los dos reais.
    # Em particular, processId também é um BSON::ObjectId, mas será
    # mapeado para uma string para maior clareza de que esta é uma ID de serviço falsa.
    #
    # TODO: Remova isto quando https://jira.mongodb.org/browse/RUBY-2881 terminar.
    se tudo bem? && !service_id
      a menos que force_load_balancer
        aumentar Erro::missingServiceId, "O servidor em #{endereço.seed} não forneceu uma ID de serviço na resposta do handshake"
      end

      false_service_id = se process_id = topology_version && topology_version['processId']
        "process:#{process_id}"
      mais
        "falso:#{random(2**32-1)+1}"
      end
      @config = @config.mesclar('serviceId' => false_service_id)
    end
  end

  se mongo::Lint.habilitado?
    # preencher previamente variáveis de instância de cache
    hosts
    Árbitros
    Passivos
    topology_version

    congelar
  end
end

Detalhes do atributo da instância

#endereçoEndereço (somente leitura)

Retorna endereço O endereço do servidor.

Retorna:

  • (Endereço)

    endereço O endereço do servidor.

Desde:

  • 2.0.0



285
286
287
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 285

def endereço
  @address
end

#average_round_trip_time ➤ Flutuante (somente leitura)

Retorna O tempo médio móvel que a chamada de saudação levou para ser concluída.

Retorna:

  • (Flutuante)

    O tempo médio móvel que a chamada de saudação levou para ser concluída.

Desde:

  • 2.0.0



303
304
305
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 303

def average_round_trip_time
  @average_round_trip_time
end

#configHash (somente leitura)

Retorna o resultado real do comando hello.

Retorna:

  • (Hash)

    O resultado real do comando hello .

Desde:

  • 2.0.0



288
289
290
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 288

def config
  @config
end

#last_update_monotime ➤ Flutuante (somente leitura)

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Hora em que esta descrição de servidor foi criada de acordo com o relógio monotônico.

Retorna:

  • (Flutuante)

    Tempo monotônico de criação da descrição do servidor MongoDB.

Veja também:

  • para mais detalhes

Desde:

  • 2.0.0



835
836
837
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 835

def last_update_monotime
  @last_update_monotime
end

#last_update_time ➤ Hora (somente leitura)

Observação:

Desta vez não indica quando uma verificação de servidor bem-sucedida

Hora em que esta descrição de servidor foi criada.

concluído, porque marcar um servidor desconhecido atualiza sua descrição e last_update_time. Use Server#last_scan para descobrir quando o servidor foi verificado pela última vez pelo Monitor.

Retorna:

  • (Tempo)

    Hora de criação da descrição do servidor MongoDB.

Desde:

  • 2.7.0



826
827
828
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 826

def last_update_time
  @last_update_time
end

Detalhes do método de instância

#==(outro) ➤ true, false Também conhecido como: eql?

Verifique a igualdade de duas descrições.

Exemplos:

Verifique a igualdade da descrição.

description == other

Parâmetros:

  • Outro (Objeto)

    A outra descrição.

Retorna:

  • (verdadeiro, falso)

    Se os objetos são iguais.

Desde:

  • 2.0.6



859
860
861
862
863
864
865
866
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 859

def ==(Outro)
  Método false se auto.classe != Outro.classe
  Método false se desconhecido? || Outro.desconhecido?

  (config.keys + Outro.config.keys).uniq.todos? fazer |k|
    config[k] == Outro.config[k] || EXCLUDE_FOR_COMPARISON.incluir?(k)
  end
end

#árbitro?true, false

Retorna se este servidor é um árbitro, de acordo com a especificação do SDAM.

Exemplos:

O servidor é um árbitro?

description.arbiter?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for um árbitro.

Desde:

  • 2.0.0



313
314
315
316
317
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 313

def árbitro?
  tudo bem? &&
  config['arbiterOnly'] == true &&
  !!config['setName']
end

#arbiters } Array<String>

Obtenha uma lista de todos os árbitros no conjunto de réplicas.

Exemplos:

Obtenha os árbitros no conjunto de réplicas.

description.arbiters

Retorna:

  • (Array<String>)

    Os árbitros no conjunto.

Desde:

  • 2.0.0



327
328
329
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 327

def Árbitros
  @arbiters ||= (config[Árbitros] || []).map { |s| s.downcase }
end

#data_Bearing?true, false

Se essa descrição é de um servidor com dados (autônomo, mongos, primário ou secundário).

Retorna:

  • (verdadeiro, falso)

    Se a descrição é de um servidor com dados.

Desde:

  • 2.7.0



789
790
791
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 789

def data_Bearing?
  mongos? || primário? || secundário? || autônomo?
end

#election_id ➤ BSON::ObjectId

Obtenha o electionId da configuração.

Exemplos:

Obtenha o electionId.

description.election_id

Retorna:

  • (BSON::ObjectId)

    O ID da eleição.

Desde:

  • 2.1.0



475
476
477
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 475

def election_id
  config[ELECTION_ID]
end

#featureFeature

Retorna recursos Os recursos do servidor.

Retorna:

  • (Recursos)

    funcionalidades As funcionalidades do servidor.

Desde:

  • 2.0.0



298
299
300
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 298

def características
  @features
end

#fantasma?true, false

Se este servidor é um fantasma, de acordo com a especificação do SDAM.

Exemplos:

O servidor é um fantasma?

description.ghost?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for um fantasma.

Desde:

  • 2.0.0



339
340
341
342
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 339

def ghost?
  tudo bem? &&
  config['isreplicaset'] == true
end

#oculto?true, false

Retornará verdadeiro se o servidor estiver oculto.

Exemplos:

O servidor está oculto?

description.hidden?

Retorna:

  • (verdadeiro, falso)

    Se o servidor estiver oculto.

Desde:

  • 2.0.0



352
353
354
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 352

def oculto?
  tudo bem? && !!config[Oculto]
end

#hostsArray<String>

Obtenha uma lista de todos os servidores no conjunto de réplicas.

Exemplos:

Obtenha os servidores no conjunto de réplicas.

description.hosts

Retorna:

  • (Array<String>)

    Os servidores no conjunto.

Desde:

  • 2.0.0



364
365
366
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 364

def hosts
  @hosts ||= (config[HOSTS] || []).map { |s| s.downcase }
end

#inspecionarstring

Inspecione a descrição do servidor .

Exemplos:

Inspecione a descrição do servidor

description.inspect

Retorna:

  • (string)

    A inspeção.

Desde:

  • 2.0.0



376
377
378
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 376

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

#is_server?(servidor) ➤ verdadeiro, falso

Obsoleto.

Esta descrição é do servidor fornecido.

Exemplos:

Verifique se a descrição é de um determinado servidor.

description.is_server?(server)

Retorna:

  • (verdadeiro, falso)

    Se a descrição for do servidor.

Desde:

  • 2.0.6



751
752
753
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 751

def is_server?(Servidor)
  endereço == Servidor.endereço
end

#last_write_date ➤ Hora

Obtenha o lastWriteDate do subdocumento lastWrite na configuração.

Exemplos:

Obtenha o valor lastWriteDate.

description.last_write_date

Retorna:

  • (Tempo)

    A última data de gravação.

Desde:

  • 2.4.0



540
541
542
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 540

def last_write_date
  config[LAST_WRITE][LAST_WRITE_DATE] se config[LAST_WRITE]
end

#lists_server?(servidor) ➤ verdadeiro, falso

Obsoleto.

É um servidor incluído na lista de servidores desta descrição.

Exemplos:

Verifique se um servidor está na lista de descrição dos servidores.

description.lists_server?(server)

Retorna:

  • (verdadeiro, falso)

    Se um servidor estiver na lista de servidores da descrição.

Desde:

  • 2.0.6



765
766
767
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 765

def lists_server?(Servidor)
  Servidores.incluir?(Servidor.endereço.to_s)
end

#load_balancer?verdadeiro | false

Retorna se este servidor é um balanceador de carga .

Retorna:

  • (verdadeiro | falso)

    Se este servidor é um balanceador de carga .

Desde:

  • 2.0.0



293
294
295
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 293

def load_balancer?
  @load_balancer
end

#logical_session_timeoutInteger?

Obtenha o logicalSessionTimeoutMinutes da configuração.

Exemplos:

Obtenha o valor logicalSessionTimeoutMinutes em minutos.

description.logical_session_timeout

Retorna:

  • (Inteiro, zero)

    O tempo limite lógico da sessão em minutos.

Desde:

  • 2.5.0



552
553
554
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 552

def logical_session_timeout
  config[LOGical_SESSION_TIMEOUT_MINUSES] se config[LOGical_SESSION_TIMEOUT_MINUSES]
end

#max_bson_object_size ➤ Inteiro

Obtenha o tamanho máximo do objeto BSON para esta versão do servidor .

Exemplos:

Obtenha o tamanho máximo do objeto BSON.

description.max_bson_object_size

Retorna:

  • (Inteiro)

    O tamanho máximo do objeto em bytes.

Desde:

  • 2.0.0



388
389
390
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 388

def max_bson_object_size
  config[MAX_BSON_OBJECT_SIZE]
end

#max_message_size ➤ Inteiro

Obtenha o tamanho máximo de mensagem para esta versão do servidor.

Exemplos:

Obtenha o tamanho máximo da mensagem.

description.max_message_size

Retorna:

  • (Inteiro)

    O tamanho máximo da mensagem em bytes.

Desde:

  • 2.0.0



400
401
402
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 400

def max_message_size
  config[MAX_MSSAGE_BYTES]
end

#max_wire_versionInteger

Obtenha a versão máxima do fio. O padrão é zero.

Exemplos:

Obtenha a versão máxima do fio.

description.max_wire_version

Retorna:

  • (Inteiro)

    A versão máxima do fio suportada.

Desde:

  • 2.0.0



424
425
426
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 424

def max_wire_version
  config[MAX_WIRE_VERSION] || 0
end

#max_write_batch_size ➤ Inteiro

Obtenha o tamanho máximo do lote para gravações.

Exemplos:

Obtenha o tamanho máximo do lote .

description.max_write_batch_size

Retorna:

  • (Inteiro)

    O tamanho máximo do lote.

Desde:

  • 2.0.0



412
413
414
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 412

def max_write_batch_size
  config[MAX_WRITE_BATCH_SIZE] || DEFAULT_MAX_WRITE_BATCH_SIZE
end

#mestring

Observação:

O valor no campo me pode ser diferente do endereço da descrição do servidor . Isso pode acontecer, por exemplo, em configurações de horizonte divisão . A especificação SDAM exige apenas a remoção de servidores cujo eu não corresponda ao endereço em algumas das situações (por exemplo, quando o servidor em questão é um membro do RS, mas não um primário).

Obtenha o valor do campo me.

Retorna:

  • (string)

    O campo eu.

Desde:

  • 2.1.0



451
452
453
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 451

def eu
  config[eu]
end

#me_mismatch?true, false

Verifique se há uma incompatibilidade entre o host de endereço e o campo me .

Exemplos:

Verifique se há uma incompatibilidade.

description.me_mismatch?

Retorna:

  • (verdadeiro, falso)

    Se houver uma incompatibilidade entre o campo me e o host de endereço.

Desde:

  • 2.0.6



801
802
803
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 801

def me_mismatch?
  !!(endereço.to_s.downcase != eu.downcase se eu)
end

#min_wire_version ➤ Integer

Obtenha a versão mínima com fio. O padrão é zero.

Exemplos:

Obtenha a versão mínima do fio.

description.min_wire_version

Retorna:

  • (Inteiro)

    A versão mínima de fio suportada.

Desde:

  • 2.0.0



436
437
438
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 436

def min_wire_version
  config[MIN_WIRE_VERSION] || 0
end

#mongos?true, false

Retorna se este servidor é um mongos, de acordo com a especificação do SDAM.

Exemplos:

O servidor é um mongos?

description.mongos?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for um mongos.

Desde:

  • 2.0.0



564
565
566
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 564

def mongos?
  tudo bem? && config['msg'] == 'isdbgrade'
end

#ok?Booleano

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna:

  • (Booleano)

Desde:

  • 2.0.0



725
726
727
728
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 725

def tudo bem?
  config[(operação)::Resultado::OK] &&
    config[(operação)::Resultado::OK] == 1 || false
end

#op_timeBSON::Timestamp

optime no subdocumento lastWrite da resposta hello.

Retorna:

  • (BSON::Timestamp)

    O carimbo de data/hora.

Desde:

  • 2.7.0



810
811
812
813
814
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 810

def op_time
  se config['lastWrite'] && config['lastWrite']['optime']
    config['lastWrite']['optime']['ts']
  end
end

#outro?true, false

Retorna se o servidor é outro, de acordo com a especificação do SDAM.

Exemplos:

É a descrição do tipo outro.

description.other?

Retorna:

  • (verdadeiro, falso)

    Se a descrição for outra.

Desde:

  • 2.0.0



576
577
578
579
580
581
582
583
584
585
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 576

def outro?
  # A especificação do SDAM é um pouco confusa sobre o que "outro" significa,
  # mas é referido como "RSOther", o que significa um não membro do RS
  # não pode ser "outro".
  tudo bem? &&
  !!config['setName'] && (
    config['oculto'] == true ||
    !primário? && !secundário? && !árbitro?
  )
end

#passivo?true, false

Retornará verdadeiro se o servidor for passivo.

Exemplos:

O servidor é passivo?

description.passive?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for passivo.

Desde:

  • 2.0.0



595
596
597
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 595

def passivo?
  tudo bem? && !!config[Passiva]
end

#passivos ➤ Array<String>

Obtenha uma lista dos servidores passivos no cluster.

Exemplos:

Obtenha os passivos.

description.passives

Retorna:

  • (Array<String>)

    A lista de passivos.

Desde:

  • 2.0.0



607
608
609
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 607

def Passivos
  @passives ||= (config[Passivos] || []).map { |s| s.downcase }
end

#primary?true, false

Retorna se este servidor é um primary, de acordo com a especificação do SDAM.

Exemplos:

O servidor é primary?

description.primary?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for primário.

Desde:

  • 2.0.0



631
632
633
634
635
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 631

def primário?
  tudo bem? &&
    (config['ismaster'] == true || config['isWritablePrimary'] == true ) &&
  !!config['setName']
end

#primary_hoststring | nada

Obtenha o endereço do host primário.

Exemplos:

Obtenha o endereço do primário.

description.primary_host

Retorna:

  • (string | nil)

    O endereço do primário.

Desde:

  • 2.6.0



619
620
621
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 619

def primary_host
  config[PRIMARY_HOST] && config[PRIMARY_HOST].downcase
end

#replica_set_member?true, false

Esta descrição corresponde a um membro do conjunto de réplicas.

Exemplos:

Verifique se a descrição é de um membro do conjunto de réplicas.

description.replica_set_member?

Retorna:

  • (verdadeiro, falso)

    Se a descrição for de um membro do conjunto de réplicas.

Desde:

  • 2.0.6



778
779
780
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 778

def replica_set_member?
  tudo bem? && !(autônomo? || mongos?)
end

#replica_set_name ➤ string?

Obtenha o nome do conjunto de réplicas ao qual o servidor pertence, retorna nulo se não houver.

Exemplos:

Obtenha o nome do conjunto de réplicas .

description.replica_set_name

Retorna:

  • (string, nil)

    O nome do conjunto de réplicas.

Desde:

  • 2.0.0



646
647
648
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 646

def replica_set_name
  config[Set_NAME]
end

#secundário?true, false

Retorna se este servidor é secundário, de acordo com a especificação do SDAM.

Exemplos:

O servidor é secundário?

description.secondary?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for secundário.

Desde:

  • 2.0.0



670
671
672
673
674
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 670

def secundário?
  tudo bem? &&
  config['secundário'] == true &&
  !!config['setName']
end

#server_connection_id ➤ Objeto

Desde:

  • 2.0.0



838
839
840
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 838

def server_connection_id
  config['connectionId']
end

#server_type ➤ Símbolo

Retorna o tipo de servidor como um símbolo.

Exemplos:

Obtenha o tipo de servidor .

description.server_type

Retorna:

Desde:

  • 2.4.0



684
685
686
687
688
689
690
691
692
693
694
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 684

def server_type
  Método :load_balancer se load_balancer?
  Método : árbitro se árbitro?
  Método :ghost se ghost?
  Método :sharded se mongos?
  Método :primary se primário?
  Método :secondary se secundário?
  Método : autônomo se autônomo?
  Método :OTHER se outro?
  :unknown
end

#server_version_gte?(version) ⇒ Boolean

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna:

  • (Booleano)

Desde:

  • 2.0.0



870
871
872
873
874
875
876
877
878
879
880
881
882
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
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 870

def server_version_gte?(Versão)
  require_wv = caso Versão
    quando '7.0'
      21
    quando '6.0'
      17
    quando '5.2'
      15
    quando '5.1'
      14
    quando '5.0'
      12
    quando '4.4'
      9
    quando '4.2'
      8
    quando '4.0'
      7
    quando '3.6'
      6
    quando '3.4'
      5
    quando '3.2'
      4
    quando '3.0'
      3
    quando '2.6'
      2
    mais
      aumentar ArgumentError, "Versão exigida falsa #{version}"
    end

  se load_balancer?
    # Se estivermos falando com um balancer de carga, não há monitoramento
    # e não sabemos qual servidor está atrás do balanceador de carga .
    # Suponha que tudo seja suportado.
    # TODO remova isso quando o RUBY-2220 for implementado.
    Método true
  end

  require_wv >= min_wire_version && require_wv <= max_wire_version
end

#servidoresArray<String>

Obtenha uma lista de todos os servidores conhecidos do cluster.

Exemplos:

Obtenha todos os servidores.

description.servers

Retorna:

  • (Array<String>)

    A lista de todos os servidores.

Desde:

  • 2.0.0



658
659
660
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 658

def Servidores
  hosts + Árbitros + Passivos
end

#service_idnil | Objeto

Retorna A ID do serviço, se houver.

Retorna:

  • (nil | Objeto)

    A ID do serviço, se houver.

Desde:

  • 2.0.0



845
846
847
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 845

def service_id
  config['serviceId']
end

#set_versionInteger

Obtenha o setVersion a partir da configuração.

Exemplos:

Obtenha a setVersion.

description.set_version

Retorna:

  • (Inteiro)

    A versão definida.

Desde:

  • 2.2.2



487
488
489
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 487

def set_version
  config[set_VERSION]
end

#autônomo?true, false

Retorna se o servidor é autônomo, de acordo com a especificação do SDAM.

Exemplos:

O servidor é autônomo?

description.standalone?

Retorna:

  • (verdadeiro, falso)

    Se o servidor for autônomo.

Desde:

  • 2.0.0



704
705
706
707
708
709
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 704

def autônomo?
  tudo bem? &&
  config['msg'] != 'isdbgrade' &&
  config['setName'].nada? &&
  config['isreplicaset'] != true
end

#tagsHash

Obtenha as tags configuradas para o servidor.

Exemplos:

Obtenha as marcações.

description.tags

Retorna:

  • (Hash)

    As tags do servidor.

Desde:

  • 2.0.0



463
464
465
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 463

def tags
  config[Tags] || {}
end

#topology_versionTopologyVersion | nada

Retorna a versão da topologia.

Retorna:

Desde:

  • 2.0.0



492
493
494
495
496
497
498
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 492

def topology_version
  a menos que definido?(@topology_version)
    @topology_version = config['topologyVersion'] &&
      Versão de topologia.Novo(config['topologyVersion'])
  end
  @topology_version
end

#topology_version_gt?(outras_desc) ➤ true | false

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna se a versão de topologia nesta descrição é potencialmente mais recente ou igual à versão de topologia em outra descrição.

Parâmetros:

Retorna:

  • (verdadeiro | falso)

    Se a versão de topologia nesta descrição é potencialmente mais recente ou igual.

Desde:

  • 2.0.0



508
509
510
511
512
513
514
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 508

def topology_version_gt?(other_desc)
  se topology_version.nada? || other_desc.topology_version.nada?
    true
  mais
    topology_version.gt?(other_desc.topology_version)
  end
end

#topology_version_gte?(outras_desc) ➤ true | false

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Retorna se a versão de topologia nesta descrição é potencialmente mais recente do que a versão de topologia em outra descrição.

Parâmetros:

Retorna:

  • (verdadeiro | falso)

    Se a versão da topologia nesta descrição é potencialmente mais recente.

Desde:

  • 2.0.0



524
525
526
527
528
529
530
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 524

def topology_version_gte?(other_desc)
  se topology_version.nada? || other_desc.topology_version.nada?
    true
  mais
    topology_version.gte?(other_desc.topology_version)
  end
end

#desconhecido?true, false

Retorna se este servidor é desconhecido, de acordo com a especificação do SDAM.

Exemplos:

A descrição do servidor é desconhecida?

description.unknown?

Retorna:

  • (verdadeiro, falso)

    Se a descrição do servidor for desconhecida.

Desde:

  • 2.0.0



719
720
721
722
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 719

def desconhecido?
  Método false se load_balancer?
  config.vazio? || config.keys == %w(topologyVersion) || !tudo bem?
end

#wire_versions ➤ Intervalo

Obtenha a faixa de versões de fio suportadas para o servidor.

Exemplos:

Obtenha o intervalo da versão com fio.

description.wire_versions

Retorna:

  • (Faixa)

    O intervalo da versão com fio.

Desde:

  • 2.0.0



738
739
740
# File 'build/ruby-driver-v2.19/lib/mongo/server/description.rb', linha 738

def wire_versions
  min_wire_version..max_wire_version
end