class CouchdbSync::Provisioner
Public Instance Methods
configure(root_config)
click to toggle source
# File lib/couchdbSync/provisioner.rb, line 4 def configure(root_config) end
provision()
click to toggle source
# File lib/couchdbSync/provisioner.rb, line 7 def provision puts config.dbhosts couchHosts = config.dbhosts couchDB = config.couchdb firstDB = true couchHosts.each do |couchHost| firstCouch = Couch::Server.new(couchHost, "5984") if firstDB begin res = firstCouch.get("/" + couchDB) json = res.body puts json rescue firstCouch.put("/"+ couchDB +"/", "") firstDB = false end end replicateFromURL = "http://" + couchHost + ":5984/" + couchDB puts "createServer:" + couchHost + ":5984/" + couchDB couchHosts.each do |replicateTo| if replicateTo != couchHost #secondCouch = Couch::Server.new(replicateTo, "5984") replicateToURL = "http://" + replicateTo + ":5984/" + couchDB payload = '{ "source":' + '"' + replicateFromURL + '"' + ',' + ' "target":' + '"' + replicateToURL + '"' + ',' + ' "continuous": true,' + ' "create_target": true' + '}' replicateJSON = JSON.parse(payload) puts replicateJSON firstCouch.post("/_replicate", replicateJSON.to_json) end end end end