fluke/devops-service/workers/wait_rebootstrap_worker.rb

43 lines
1.1 KiB
Ruby
Raw Normal View History

require File.join(File.dirname(__FILE__), "worker")
require "db/mongo/models/report"
class WaitRebootstrapWorker < Worker
# @options
# 'jid': bootstrap job to wait
# 'server_node_name'
# 'owner'
# 'old_chef_node': node info
2016-08-12 15:37:00 +03:00
# 'new_chef_env'
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))
2016-08-12 14:31:58 +03:00
puts_and_flush "Waiting for bootstrap end..."
Devops::Helpers::JobWaiter.new(options["jid"], 10*60).wait
2016-08-12 14:31:58 +03:00
puts_and_flush "Setting run list to #{old_node_info['run_list']}"
2016-08-12 15:37:00 +03:00
knife_instance = KnifeFactory.instance(options.fetch("new_chef_env"))
knife_instance.set_run_list(server.chef_node_name, old_node_info["run_list"])
2016-08-12 14:35:30 +03:00
0
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