43 lines
1.1 KiB
Ruby
43 lines
1.1 KiB
Ruby
require File.join(File.dirname(__FILE__), "worker")
|
|
|
|
require "lib/executors/server_executor"
|
|
require "db/mongo/models/report"
|
|
|
|
class WaitRebootstrapWorker < Worker
|
|
|
|
# @options
|
|
# 'jid': bootstrap job to wait
|
|
# 'server_node_name'
|
|
# 'owner'
|
|
# 'old_chef_node': node info
|
|
|
|
def perform(options)
|
|
call do
|
|
owner = options.fetch("owner")
|
|
server = Devops::Db.connector.server_by_chef_node_name(options.fetch("server_node_name"))
|
|
save_report(owner, server)
|
|
|
|
old_node_info = options.fetch('old_chef_node')
|
|
out.puts(JSON.pretty_generate(old_node_info))
|
|
out.puts("Waiting for bootstrap end...")
|
|
|
|
Devops::Helpers::JobWaiter.new(options["jid"], 10*60).wait
|
|
|
|
out.puts("Setting run list to #{old_node_info['run_list']}")
|
|
|
|
executor = Devops::Executor::ServerExecutor.new(server, out, current_user: owner)
|
|
executor.set_run_list(old_node_info["run_list"])
|
|
end
|
|
end
|
|
|
|
def save_report(owner, server)
|
|
update_report(
|
|
"created_by" => owner,
|
|
"project" => server.project,
|
|
"deploy_env" => server.deploy_env,
|
|
"type" => Devops::Model::Report::WAIT_BOOTSTRAP
|
|
)
|
|
end
|
|
end
|
|
|