Class: VagrantPlugins::MongoDb::Actions::ReplSetInitiate
- Inherits:
-
Object
- Object
- VagrantPlugins::MongoDb::Actions::ReplSetInitiate
- Includes:
- Vagrant::Util::Retryable
- Defined in:
- lib/vagrant-mongodb/actions/replset_initiate.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, env) ⇒ ReplSetInitiate
constructor
A new instance of ReplSetInitiate.
Constructor Details
#initialize(app, env) ⇒ ReplSetInitiate
Returns a new instance of ReplSetInitiate.
7 8 9 10 11 12 13 |
# File 'lib/vagrant-mongodb/actions/replset_initiate.rb', line 7 def initialize(app, env) @app = app @config = env[:global_config].mongodb @machine = env[:machine] @translator = Helpers::Translator.new('actions.replset_initiate') @logger = Log4r::Logger.new('vagrant_mongodb::actions::replset_initiate') end |
Instance Method Details
#call(env) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
# File 'lib/vagrant-mongodb/actions/replset_initiate.rb', line 15 def call(env) @app.call(env) # check if the current machine is a member of a replica set and the # replica set has not already been initiated @logger.info "Checking if '#{@machine.name}' is part of a replica set..." rs = get_replset(@machine.name) if @config return if !rs or already_initiated?(rs) # ensure all members are available before initiating replica set if all_members_available?(rs) env[:ui].info @translator.t('initiate', { :name => rs.name }) command = "mongo --eval 'printjson(rs.initiate(#{generate_json(rs)}))'" @machine.communicate.execute(command) do |type, data| raise Errors::ReplSetInitiateError if data =~ /"ok" : 0/ end end end |