10gen / mongo-orchestration

Apache License 2.0
7 stars 11 forks source link

Support customization of replica set configuration #244

Open jyemin opened 6 years ago

jyemin commented 6 years ago

I'd like to be able to set writeConcernMajorityJournalDefault so that I can run a replica set with members that use the inMemory storage engine and still execute tests that use "majority" write concern. Currently there is no way to set this option.

Shane suggested a hack of adding

config['writeConcernMajorityJournalDefault'] = False

to https://github.com/10gen/mongo-orchestration/blob/master/mongo_orchestration/replica_sets.py#L174, which is my current workaround.

ShaneHarvey commented 6 years ago

One option, add a "rsConfig" parameter:

{
  "rsConfig": {"writeConcernMajorityJournalDefault": false},
  "members": [{}]
}

MO already supports a "rsSettings" paramter that maps to rsConf.settings. If we add "rsConfig" MO should not allow it to be used in combination with "rsSettings". Instead just specficy "settings" as part of the "rsConfig":

{
  "rsConfig": {
    "writeConcernMajorityJournalDefault": false,
    "settings": {"heartbeatTimeoutSecs": 20},
   },
  "members": [{}]
}

It should also be illegal to specify "members" in "rsConfig" as the per-member replica set config is specified in "members.rsParams" like this:

{
  "rsConfig": {
    "writeConcernMajorityJournalDefault": false,
    "settings": {"heartbeatTimeoutSecs": 20},
   },
  "members": [{"rsParams": {"priority": 10}}]
}