public class MongoDbReplicaSet
extends java.lang.Object
implements org.testcontainers.lifecycle.Startable, java.lang.AutoCloseable
Supports Mongo DB version 3.6.14 and up.
replicaSetNumber local docker host local docker host running tests from inside a container with mapping the Docker socket remote docker daemon availability of an arbiter node 1+ + + - from 2 to 7 (including)only if adding 127.0.0.1 dockerhost to the OS host file + + +
See examples on mongodb-replica-set on github
| Modifier and Type | Class and Description |
|---|---|
static class |
MongoDbReplicaSet.MongoDbReplicaSetBuilder |
| Modifier and Type | Field and Description |
|---|---|
static java.util.Comparator<MongoSocketAddress> |
COMPARATOR_MAPPED_PORT |
static int |
MAX_VOTING_MEMBERS |
static java.lang.String |
RECONFIG_RS_MSG |
| Modifier and Type | Method and Description |
|---|---|
static MongoDbReplicaSet.MongoDbReplicaSetBuilder |
builder() |
void |
close() |
void |
connectNodeToNetwork(MongoNode mongoNode)
Connects a Mongo node (a Docker container) back to its network.
|
void |
connectNodeToNetworkWithForceRemoval(MongoNode mongoNode)
Connects a Mongo node (a Docker container) back to its network.
|
void |
connectNodeToNetworkWithoutRemoval(MongoNode mongoNode)
Connects a Mongo node (a Docker container) back to its network.
|
void |
connectNodeToNetworkWithReconfiguration(MongoNode mongoNode)
Connects a Mongo node (a Docker container) back to its network
with forcing a cluster reconfiguration (for instance, in case
there is no master in a cluster after some network disconnection).
|
void |
disconnectNodeFromNetwork(MongoNode mongoNode)
Disconnects a Mongo node (a Docker container) from its network.
|
boolean |
getAddArbiter() |
boolean |
getAddToxiproxy() |
MongoNode |
getArbiterMongoNode(java.util.List<MongoNode> mongoNodes)
Fetches an arbiter node in a list of provided mongo nodes.
|
int |
getAwaitNodeInitAttempts() |
MongoNode |
getMasterMongoNode(java.util.List<MongoNode> mongoNodes)
Fetches a master node in a list of provided mongo nodes.
|
java.lang.String |
getMongoDockerImageName() |
MongoRsStatus |
getMongoRsStatus() |
int |
getReplicaSetNumber() |
java.lang.String |
getReplicaSetUrl() |
java.lang.String |
getReplicaSetUrl(java.lang.String readPreference) |
MongoNode |
getSecondaryMongoNode(java.util.List<MongoNode> mongoNodes)
Fetches any secondary node in a list of provided mongo nodes.
|
int |
getSlaveDelayNumber() |
int |
getSlaveDelayTimeout() |
boolean |
getUseHostDockerInternal() |
boolean |
isEnabled() |
void |
killNode(MongoNode mongoNode)
Kills a Mongo node (a Docker container).
|
java.lang.String |
mongoDockerImageName() |
java.util.stream.Stream<MongoNode> |
mongoNodes(java.util.List<MongoNode> mongoNodes,
ReplicaSetMemberState memberState) |
java.util.List<ReplicaSetMemberState> |
nodeStates(java.util.List<MongoNode> mongoNodes) |
void |
reconfigureReplSetRemoveDownAndUnknownNodes()
Removes all nodes in Down and Unknown state.
|
void |
reconfigureReplSetToDefaults()
Reconfigures a replica set by setting slaveDelay=0, priority=1 and hidden=false
for each node.
|
void |
removeNodeFromReplSetConfig(MongoNode mongoNodeToRemove)
Removes a node from a replica set configuration.
|
void |
removeNodeFromReplSetConfigWithForce(MongoNode mongoNodeToRemove) |
void |
start() |
void |
startInternal() |
void |
stop() |
void |
stopNode(MongoNode mongoNode)
Stops a Mongo node (a Docker container).
|
void |
waitForAllMongoNodesUp()
Waits until a replica set has only PRIMARY, ARBITER or SECONDARY nodes.
|
void |
waitForMaster()
Waits for a master node to be present in a cluster.
|
void |
waitForMasterReelection(MongoNode previousMasterMongoNode)
Waits for a reelection in a replica set to completion
based on the appearance of a master node that is not equal to a
provided previousMasterMongoNode.
|
void |
waitForMongoNodesDown(int nodeNumber)
Waits until a replica set has the nodeNumber of the nodes in the DOWN state.
|
public static final int MAX_VOTING_MEMBERS
public static final java.util.Comparator<MongoSocketAddress> COMPARATOR_MAPPED_PORT
public static final java.lang.String RECONFIG_RS_MSG
public void close()
close in interface java.lang.AutoCloseableclose in interface org.testcontainers.lifecycle.Startablepublic java.lang.String getReplicaSetUrl()
public java.lang.String getReplicaSetUrl(java.lang.String readPreference)
public MongoRsStatus getMongoRsStatus()
public void stop()
stop in interface org.testcontainers.lifecycle.Startablepublic boolean isEnabled()
public java.lang.String mongoDockerImageName()
public int getReplicaSetNumber()
public int getAwaitNodeInitAttempts()
public java.lang.String getMongoDockerImageName()
public boolean getAddArbiter()
public boolean getAddToxiproxy()
public int getSlaveDelayTimeout()
public int getSlaveDelayNumber()
public boolean getUseHostDockerInternal()
public void start()
start in interface org.testcontainers.lifecycle.Startablepublic void startInternal()
public void stopNode(MongoNode mongoNode)
mongoNode - a node to stop.public void killNode(MongoNode mongoNode)
mongoNode - a node to killpublic void disconnectNodeFromNetwork(MongoNode mongoNode)
mongoNode - a node to disconnect.public void connectNodeToNetworkWithReconfiguration(MongoNode mongoNode)
mongoNode - a node to connect.public void connectNodeToNetwork(MongoNode mongoNode)
mongoNode - a node to connect.public void connectNodeToNetworkWithForceRemoval(MongoNode mongoNode)
mongoNode - a node to connect.public void connectNodeToNetworkWithoutRemoval(MongoNode mongoNode)
mongoNode - a node to connect.public void reconfigureReplSetRemoveDownAndUnknownNodes()
public void reconfigureReplSetToDefaults()
public void removeNodeFromReplSetConfig(MongoNode mongoNodeToRemove)
mongoNodeToRemove - a node to remove from a replica set.public void removeNodeFromReplSetConfigWithForce(MongoNode mongoNodeToRemove)
public void waitForMasterReelection(MongoNode previousMasterMongoNode)
previousMasterMongoNode - a node that is not supposed to become
a new master elected.public void waitForMaster()
public void waitForAllMongoNodesUp()
public void waitForMongoNodesDown(int nodeNumber)
nodeNumber - a number of nodes in the DOWN state to wait for.public MongoNode getArbiterMongoNode(java.util.List<MongoNode> mongoNodes)
mongoNodes - a list in which to search for a master node.public MongoNode getMasterMongoNode(java.util.List<MongoNode> mongoNodes)
mongoNodes - a list in which to search for a master node.public MongoNode getSecondaryMongoNode(java.util.List<MongoNode> mongoNodes)
mongoNodes - a list in which to search for a master node.public java.util.stream.Stream<MongoNode> mongoNodes(java.util.List<MongoNode> mongoNodes, ReplicaSetMemberState memberState)
public java.util.List<ReplicaSetMemberState> nodeStates(java.util.List<MongoNode> mongoNodes)
public static MongoDbReplicaSet.MongoDbReplicaSetBuilder builder()