2018-04-04 22:44:39 +03:00
|
|
|
require_relative "worker"
|
2014-10-22 15:01:55 +04:00
|
|
|
|
|
|
|
|
class BootstrapWorker < Worker
|
|
|
|
|
|
2016-04-04 13:17:07 +03:00
|
|
|
# @options
|
2018-04-04 22:44:39 +03:00
|
|
|
# 'server_id': required
|
2016-04-04 13:17:07 +03:00
|
|
|
# 'owner': required
|
|
|
|
|
# 'skip_rollback': optional
|
|
|
|
|
# 'deploy_info': optional
|
|
|
|
|
# 'deployers': optional
|
|
|
|
|
# 'bootstrap_template': optional
|
|
|
|
|
# 'chef_environment': optional
|
|
|
|
|
# 'config': optional, whatever this parameter really means
|
2015-09-02 12:41:29 +03:00
|
|
|
def perform(options)
|
2018-04-04 22:44:39 +03:00
|
|
|
server_id = options.fetch('server_id')
|
|
|
|
|
owner = options.fetch('owner')
|
2016-08-12 14:39:07 +03:00
|
|
|
|
2018-04-04 22:44:39 +03:00
|
|
|
bootstrap_options = {}
|
|
|
|
|
['bootstrap_template', 'run_list', 'cm_name'].each do |key|
|
|
|
|
|
bootstrap_options[key.to_sym] = options[key] if options.key?(key)
|
|
|
|
|
end
|
2016-02-10 20:39:49 +03:00
|
|
|
|
2018-04-04 22:44:39 +03:00
|
|
|
call() do |out, task|
|
|
|
|
|
server = Devops::Model::Server.find(server_id)
|
|
|
|
|
set_task_data({
|
|
|
|
|
"created_by" => owner,
|
|
|
|
|
"project" => server.project,
|
|
|
|
|
"environment" => server.environment,
|
|
|
|
|
"server_id" => server.id,
|
|
|
|
|
"category" => server.category,
|
|
|
|
|
"type" => Devops::Model::JobTask::BOOTSTRAP_TYPE
|
|
|
|
|
})
|
|
|
|
|
executor = Devops::Executor::ServerExecutor.new(server, out, owner)
|
|
|
|
|
executor.job_task = task
|
|
|
|
|
|
|
|
|
|
status = begin
|
|
|
|
|
info = executor.deploy_info(bootstrap_options)
|
|
|
|
|
executor.bootstrap_server bootstrap_options, info
|
|
|
|
|
0
|
|
|
|
|
rescue Devops::Exception::ServerOperationError => e
|
|
|
|
|
msg = e.message
|
|
|
|
|
DevopsLogger.logger.error msg
|
|
|
|
|
e.error_code
|
|
|
|
|
end
|
|
|
|
|
out.puts msg
|
|
|
|
|
out.flush
|
2014-12-04 13:07:25 +03:00
|
|
|
status
|
2014-10-22 15:01:55 +04:00
|
|
|
end
|
|
|
|
|
end
|
2015-09-02 12:41:29 +03:00
|
|
|
|
2014-10-22 15:01:55 +04:00
|
|
|
end
|
|
|
|
|
|