Merge branch 'do_not_launch_deploy_on_chef_server_migration' into qa
This commit is contained in:
commit
04eac80266
@ -13,6 +13,7 @@ module Devops
|
|||||||
DELETE_SERVER_TYPE = 7
|
DELETE_SERVER_TYPE = 7
|
||||||
EXPIRE_SERVER_TYPE = 8
|
EXPIRE_SERVER_TYPE = 8
|
||||||
SYNC_STACK_TYPE = 9
|
SYNC_STACK_TYPE = 9
|
||||||
|
WAIT_BOOTSTRAP = 10
|
||||||
|
|
||||||
|
|
||||||
SYSTEM_OWNER = 'SYSTEM'
|
SYSTEM_OWNER = 'SYSTEM'
|
||||||
|
|||||||
@ -268,7 +268,7 @@ module Devops
|
|||||||
|
|
||||||
# deploy phase. Assume that all servers are bootstraped successfully here.
|
# deploy phase. Assume that all servers are bootstraped successfully here.
|
||||||
begin
|
begin
|
||||||
run_list = compute_run_list
|
run_list = options[:forced_runlist] || compute_run_list
|
||||||
@out << "\n\nComputed run list: #{run_list.join(", ")}"
|
@out << "\n\nComputed run list: #{run_list.join(", ")}"
|
||||||
@out.flush
|
@out.flush
|
||||||
knife_instance.set_run_list(@server.chef_node_name, run_list)
|
knife_instance.set_run_list(@server.chef_node_name, run_list)
|
||||||
@ -519,6 +519,10 @@ module Devops
|
|||||||
raise 'Failed to sync project metadata with chef' unless succeeded
|
raise 'Failed to sync project metadata with chef' unless succeeded
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def set_run_list(run_list)
|
||||||
|
knife_instance.set_run_list(@server.chef_node_name, run_list)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def schedule_expiration
|
def schedule_expiration
|
||||||
|
|||||||
@ -5,6 +5,7 @@ module Devops
|
|||||||
|
|
||||||
INTERVAL = 5
|
INTERVAL = 5
|
||||||
|
|
||||||
|
# timeout in seconds
|
||||||
def initialize(job_id, timeout=5000)
|
def initialize(job_id, timeout=5000)
|
||||||
@job_id, @timeout = job_id, timeout
|
@job_id, @timeout = job_id, timeout
|
||||||
end
|
end
|
||||||
|
|||||||
@ -15,6 +15,7 @@ class BootstrapWorker < Worker
|
|||||||
# 'bootstrap_template': optional
|
# 'bootstrap_template': optional
|
||||||
# 'chef_environment': optional
|
# 'chef_environment': optional
|
||||||
# 'config': optional, whatever this parameter really means
|
# 'config': optional, whatever this parameter really means
|
||||||
|
# 'forced_runlist': optional, used only in change_server_env action
|
||||||
def perform(options)
|
def perform(options)
|
||||||
call do
|
call do
|
||||||
owner = options.fetch('owner')
|
owner = options.fetch('owner')
|
||||||
|
|||||||
@ -8,6 +8,7 @@ require File.join(root, "stack_bootstrap_worker")
|
|||||||
require File.join(root, "delete_server_worker")
|
require File.join(root, "delete_server_worker")
|
||||||
require File.join(root, "delete_expired_server_worker")
|
require File.join(root, "delete_expired_server_worker")
|
||||||
require File.join(root, "stack_sync_worker")
|
require File.join(root, "stack_sync_worker")
|
||||||
|
require File.join(root, "wait_rebootstrap_worker")
|
||||||
require 'byebug'
|
require 'byebug'
|
||||||
config = {}
|
config = {}
|
||||||
#require File.join(root, "../proxy")
|
#require File.join(root, "../proxy")
|
||||||
|
|||||||
38
devops-service/workers/wait_rebootstrap_worker.rb
Normal file
38
devops-service/workers/wait_rebootstrap_worker.rb
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
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)
|
||||||
|
Devops::Helpers::JobWaiter.new(options["jid"], 10*60).wait
|
||||||
|
|
||||||
|
old_node_info = options.fetch('old_chef_node')
|
||||||
|
out.puts(JSON.pretty_generate(old_node_info))
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
Loading…
Reference in New Issue
Block a user