#root = File.join(File.dirname(__FILE__), "..") #$LOAD_PATH.push root unless $LOAD_PATH.include? root require File.join(File.dirname(__FILE__), "worker") require "commands/deploy" require "db/mongo/models/server" require "db/mongo/models/report" class DeployWorker < Worker include DeployCommands def perform(dir, server, tags, owner, conf) set_status jid, "init" config = convert_config(conf) file = File.join(dir, jid) File.open(file, "w") do |out| begin set_status jid, "running" mongo = mongo_connector(config) s = Server.new(server) o = { "file" => file, "_id" => jid, "created_by" => owner, "project" => s.project, "deploy_env" => s.deploy_env, "type" => Report::DEPLOY_TYPE } mongo.save_report(Report.new(o)) r = deploy_server_proc.call(out, s, mongo, tags) set_status jid, (r == 0 ? "completed" : "failed") rescue Exception => e out << "\n" out << e.message out << "\n" out << e.backtrace.join("\n") set_status jid, "failed" end end end end