Class: Mongo::Cluster::Topology::ReplicaSetNoPrimary
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Subclasses:
|
|
Super Chains via Extension / Inclusion / Inheritance | |
Class Chain:
self,
Base ,
Forwardable
|
|
Instance Chain:
|
|
Inherits: |
Mongo::Cluster::Topology::Base
|
Defined in: | lib/mongo/cluster/topology/replica_set_no_primary.rb |
Overview
Defines behavior when a cluster is in replica set topology, and there is no primary or the primary has not yet been discovered by the driver.
Constant Summary
-
NAME =
Deprecated.
The display name for the topology.
'Replica Set'.freeze
::Mongo::Loggable
- Included
Class Method Summary
Instance Attribute Summary
-
#replica_set? ⇒ true
readonly
A replica set topology is a replica set.
-
#sharded? ⇒ false
readonly
A replica set topology is not sharded.
-
#single? ⇒ false
readonly
A replica set topology is not single.
-
#unknown? ⇒ false
readonly
A replica set topology is not unknown.
Base
- Inherited
#compatibility_error, #compatible?, #data_bearing_servers?, | |
#logical_session_timeout | The logical session timeout value in minutes. |
#monitoring, #options, #server_descriptions, #cluster |
::Mongo::Monitoring::Publishable
- Included
Instance Method Summary
-
#display_name ⇒ String
Get the display name.
- #has_readable_server?(cluster, server_selector = nil) ⇒ true, false deprecated Deprecated.
-
#has_writable_server?(cluster) ⇒ true, false
Determine if the topology would select a writable server for the provided candidates.
-
#servers(servers) ⇒ Array<Server>
Select appropriate servers for this topology.
- #summary
- #validate_options(options, cluster) private
Base
- Inherited
#addresses, | |
#max_election_id | The largest electionId ever reported by a primary. |
#max_set_version | The largest setVersion ever reported by a primary. |
#new_max_election_id, #new_max_set_version, | |
#replica_set_name | Get the replica set name configured for this topology. |
#server_hosts_match_any? | Compares each server address against the list of patterns. |
#validate_options | Validates and/or transforms options as necessary for the topology. |
::Mongo::Monitoring::Publishable
- Included
#publish_cmap_event, #publish_event, #publish_sdam_event, #command_completed, #command_failed, #command_started, #command_succeeded, #duration |
::Mongo::Loggable
- Included
#log_debug | Convenience method to log debug messages with the standard prefix. |
#log_error | Convenience method to log error messages with the standard prefix. |
#log_fatal | Convenience method to log fatal messages with the standard prefix. |
#log_info | Convenience method to log info messages with the standard prefix. |
#log_warn | Convenience method to log warn messages with the standard prefix. |
#logger | Get the logger instance. |
#_mongo_log_prefix, #format_message |
Instance Attribute Details
#replica_set? ⇒ true
(readonly)
A replica set topology is a replica set.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 107
def replica_set?; true; end
#sharded? ⇒ false
(readonly)
A replica set topology is not sharded.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 134
def sharded?; false; end
#single? ⇒ false
(readonly)
A replica set topology is not single.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 144
def single?; false; end
#unknown? ⇒ false
(readonly)
A replica set topology is not unknown.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 154
def unknown?; false; end
Instance Method Details
#display_name ⇒ String
Get the display name.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 43
def display_name self.class.name.gsub(/.*::/, '') end
#has_readable_server?(cluster, server_selector = nil) ⇒ true
, false
Determine if the topology would select a readable server for the provided candidates and read preference.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 80
def has_readable_server?(cluster, server_selector = nil) !(server_selector || ServerSelector.primary).try_select_server(cluster).nil? end
#has_writable_server?(cluster) ⇒ true
, false
Determine if the topology would select a writable server for the provided candidates.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 95
def has_writable_server?(cluster) !ServerSelector.primary.try_select_server(cluster).nil? end
#servers(servers) ⇒ Array
<Server>
Select appropriate servers for this topology.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 119
def servers(servers) servers.select do |server| (replica_set_name.nil? || server.replica_set_name == replica_set_name) && server.primary? || server.secondary? end end
#summary
This method is experimental and subject to change.
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 51
def summary details = server_descriptions.keys.join(',') if details != '' details << ',' end details << "name=#{replica_set_name}" if max_set_version details << ",v=#{max_set_version}" end if max_election_id details << ",e=#{max_election_id && max_election_id.to_s.sub(/^0+/, '')}" end "#{display_name}[#{details}]" end
#validate_options(options, cluster) (private)
# File 'lib/mongo/cluster/topology/replica_set_no_primary.rb', line 158
def (, cluster) if [:replica_set_name] == '' = .merge(replica_set_name: nil) end unless [:replica_set_name] raise ArgumentError, 'Cannot instantiate a replica set topology without a replica set name' end super(, cluster) end