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
|
return s, rl || d.run_list, t
|
||||||
end
|
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
|
def add_server
|
||||||
body = parser.add_server
|
body = parser.add_server
|
||||||
project = body["project"]
|
project = body["project"]
|
||||||
|
|||||||
@ -279,6 +279,25 @@ module Devops
|
|||||||
end
|
end
|
||||||
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
|
# Add external server to devops
|
||||||
#
|
#
|
||||||
# * *Request*
|
# * *Request*
|
||||||
|
|||||||
@ -281,17 +281,27 @@ module Devops
|
|||||||
k = Devops::Db.connector.key(@server.key)
|
k = Devops::Db.connector.key(@server.key)
|
||||||
cert_path = k.path
|
cert_path = k.path
|
||||||
i = 0
|
i = 0
|
||||||
|
res = delete_from_chef_server(@server.chef_node_name)
|
||||||
begin
|
begin
|
||||||
r = `ssh -i #{cert_path} -q #{@server.remote_user}@#{@server.private_ip} rm -Rf /etc/chef`
|
new_name = "/etc/chef.backup_#{Time.now.strftime("%d-%m-%Y_%H.%M.%S")}"
|
||||||
raise(r) unless $?.success?
|
# 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
|
rescue => e
|
||||||
DevopsLogger.logger.error "Unbootstrap error: " + e.message
|
DevopsLogger.logger.error "Unbootstrap error: " + e.message
|
||||||
i += 1
|
i += 1
|
||||||
sleep(1)
|
sleep(1)
|
||||||
retry unless i == 5
|
retry unless i == 5
|
||||||
return e.message
|
return {error: e.message}
|
||||||
end
|
end
|
||||||
nil
|
res
|
||||||
end
|
end
|
||||||
|
|
||||||
def deploy_server_with_tags tags, deploy_info
|
def deploy_server_with_tags tags, deploy_info
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user