Menu

MongoDB Routing Server Start

Waits the replica set of config server to be initialized and ready before starting any mongos instance. For this we wait to be able to execute a rs.status() on the first initiated replica set primary server.

module.exports = header: 'MongoDB Router Server Start', label_true: 'READY', handler: ({options}) ->
  @connection.wait options.wait_configsrv
  @service.start name: 'mongod-router-server'

  # mongodb_configsrvs = @contexts 'ryba/mongodb/configsrv'
  # {mongodb, realm, ssl} = @config.ryba
  # {router} = mongodb
  # mongo_shell_exec =  ""
  # mongo_shell_admin_exec =  "#{mongo_shell_exec} -u #{mongodb.admin.name} --password  '#{mongodb.admin.password}'"
  #find master of the config server's replica set
  # [replica_master_ctx] = mongodb_configsrvs.filter (ctx) =>
  #   configsrv = ctx.config.ryba.mongodb.configsrv
  #   configsrv.config.replication.replSetName is router.my_cfgsrv_repl_set and configsrv.is_master
  #we wait for the replica set to be ready before starting the router server
  # mongo_shell_root_exec =  "mongo admin "
  # mongo_shell_root_exec +=  "-h #{replica_master_ctx.config.host} "
  # mongo_shell_root_exec += "--port #{replica_master_ctx.config.ryba.mongodb.configsrv.config.net.port} "
  # mongo_shell_root_exec += "-u #{replica_master_ctx.config.ryba.mongodb.root.name} "
  # mongo_shell_root_exec += "-p #{replica_master_ctx.config.ryba.mongodb.root.password} "
  # cmd = " --eval 'rs.status().ok ' | grep -v 'MongoDB shell version' | grep -v 'connecting to:' | grep 1 "
  # @wait.execute
  #   cmd: "#{mongo_shell_root_exec} #{cmd}"
  # TODO check if all config server are available