#root = File.join(File.dirname(__FILE__), "..") #$LOAD_PATH.push root unless $LOAD_PATH.include? root require File.join(File.dirname(__FILE__), "worker") require "providers/provider_factory" require "commands/server" require "db/mongo/models/server" class CreateServerWorker < Worker include ServerCommands def perform(dir, e_provider, server, conf) set_status jid, "init" config = convert_config(conf) File.open(File.join(dir, jid), "w") do |out| begin set_status jid, "running" mongo = mongo_connector(config) ::Provider::ProviderFactory.init(config) provider = ::Provider::ProviderFactory.get(e_provider) logger.debug "Provider: #{provider.inspect}" s = Server.new(server) s.options = convert_config(server["options"]) status = create_server_proc.call(out, s, provider, mongo) set_status jid, (status == 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