Merge branch 'features' of /home/git/repositories/cloudtechlab/devops-service into qa
This commit is contained in:
commit
b7dde52459
@ -186,6 +186,13 @@ module Devops
|
||||
return s, rl || d.run_list, t
|
||||
end
|
||||
|
||||
def unbootstrap_server id
|
||||
s = get_server_by_key(id, parser.instance_key)
|
||||
### Authorization
|
||||
Devops::Db.connector.check_project_auth s.project, s.deploy_env, parser.current_user
|
||||
Devops::Executor::ServerExecutor.new(s, "").unbootstrap
|
||||
end
|
||||
|
||||
def add_server
|
||||
body = parser.add_server
|
||||
project = body["project"]
|
||||
|
||||
@ -279,6 +279,25 @@ module Devops
|
||||
end
|
||||
end
|
||||
|
||||
# Unbootstrap devops server
|
||||
#
|
||||
# * *Request*
|
||||
# - method : POST
|
||||
# - headers :
|
||||
# - Accept: application/json
|
||||
# - Content-Type: application/json
|
||||
# - body :
|
||||
# {
|
||||
# "key": "instance", -> search server by instance_id rather then chef_node_name
|
||||
# }
|
||||
#
|
||||
# * *Returns* : 200
|
||||
app.post_with_headers "/server/:id/unbootstrap", :headers => [:accept, :content_type] do |id|
|
||||
check_privileges("server", "w")
|
||||
info = Devops::API2_0::Handler::Server.new(request).unbootstrap_server(id)
|
||||
create_response("Unbootstrap", info)
|
||||
end
|
||||
|
||||
# Add external server to devops
|
||||
#
|
||||
# * *Request*
|
||||
|
||||
@ -281,17 +281,27 @@ module Devops
|
||||
k = Devops::Db.connector.key(@server.key)
|
||||
cert_path = k.path
|
||||
i = 0
|
||||
res = delete_from_chef_server(@server.chef_node_name)
|
||||
begin
|
||||
r = `ssh -i #{cert_path} -q #{@server.remote_user}@#{@server.private_ip} rm -Rf /etc/chef`
|
||||
raise(r) unless $?.success?
|
||||
new_name = "/etc/chef.backup_#{Time.now.strftime("%d-%m-%Y_%H.%M.%S")}"
|
||||
# r = `ssh -i #{cert_path} -q #{@server.remote_user}@#{@server.private_ip} rm -Rf /etc/chef`
|
||||
cmd = "ssh -i #{cert_path} -q #{@server.remote_user}@#{@server.private_ip} \"/bin/sh -c 'if [[ -d /etc/chef ]]; then mv /etc/chef #{new_name}; else echo not found; fi'\""
|
||||
DevopsLogger.logger.info("Trying to run command '#{cmd}'")
|
||||
r = `#{cmd}`.strip
|
||||
if r == 'not found'
|
||||
res[:server] = "Directory '/etc/chef' does not exists"
|
||||
else
|
||||
raise(r) unless $?.success?
|
||||
res[:server] = "'/etc/chef' renamed to '#{new_name}'"
|
||||
end
|
||||
rescue => e
|
||||
DevopsLogger.logger.error "Unbootstrap error: " + e.message
|
||||
i += 1
|
||||
sleep(1)
|
||||
retry unless i == 5
|
||||
return e.message
|
||||
return {error: e.message}
|
||||
end
|
||||
nil
|
||||
res
|
||||
end
|
||||
|
||||
def deploy_server_with_tags tags, deploy_info
|
||||
|
||||
Loading…
Reference in New Issue
Block a user