Fix bug.
This commit is contained in:
parent
c2d298f14b
commit
4f6f07280a
|
@ -358,7 +358,7 @@ class Admin::SitePanelController < OrbitAdminController
|
|||
when 'delete_from_list'
|
||||
SiteConstruct.find(params[:id]).destroy
|
||||
if Is_Rails5
|
||||
redirect_back(fallback_location: { action: "sites_list"})
|
||||
redirect_back(fallback_location: { action: "sites_list"}) and return
|
||||
else
|
||||
redirect_to :back and return
|
||||
end
|
||||
|
|
|
@ -286,7 +286,7 @@
|
|||
}else{
|
||||
$("#info_texts").html("Do you really want to "+$(this).attr('title')+".");
|
||||
if($('#confirm_input').length == 0){
|
||||
$('#info_texts').after("<input id=\"confirm_input\"/ placeholder=\"<%= t('client_management.please_input_confirm_recreate') %>\" style=\"width: 17em;\">");
|
||||
$('#info_texts').after("<input id=\"confirm_input\"/ placeholder=\"<%= t('client_management.please_input_confirm_delete') %>\" style=\"width: 17em;\">");
|
||||
}else{
|
||||
$('#confirm_input').css('display','block');
|
||||
$('#confirm_input').val('');
|
||||
|
|
|
@ -48,7 +48,8 @@ namespace :create_site do
|
|||
extra_exclude_path = ",public/uploads/"
|
||||
end
|
||||
server = SiteServer.where(:server_name => template_site.server_type).first
|
||||
ls_out = exec_ssh_command_for_copy(ssh, "ls #{@site_construct.full_site_path}/app").join("\n")
|
||||
update_infos("Copying site's files for #{args.site_name}!")
|
||||
ls_out = exec_ssh_command_for_copy(ssh, "ls #{@site_construct.full_site_path}/app", false).join("\n")
|
||||
if ls_out.include?("No such") || org_creating
|
||||
if @site_construct.server_type == template_site.server_type
|
||||
exec_ssh_command_for_copy(ssh,"rsync -ar --info=progress2 --no-inc-recursive --delete --exclude={tmp/cache/,tmp/unicorn.sock,tmp/pids/*#{extra_exclude_path}} #{template_site.path}/#{template_site.get_site_name}/ #{args.path}/#{@site_construct.get_site_name}/",true)
|
||||
|
@ -138,33 +139,68 @@ namespace :create_site do
|
|||
end
|
||||
return output.encode!("UTF-8", :invalid => :replace, :undef => :replace, :replace => '')
|
||||
end
|
||||
def update_thread_infos_for_exec(info,update_last=false)
|
||||
if update_last
|
||||
@thread.status["infos"][-1] += info
|
||||
else
|
||||
@thread.status["infos"] = @thread.status["infos"].push(info)
|
||||
end
|
||||
@thread.save!
|
||||
return @thread.status["infos"]
|
||||
end
|
||||
def exec_ssh_command_for_copy(session,command,update=false)
|
||||
def exec_ssh_command_for_copy(session,command,update_outputs=false)
|
||||
outputs = []
|
||||
session.open_channel do |channel|
|
||||
channel.request_pty do |channel, success|
|
||||
channel.exec("LANG=en.UTF8 #{command}") do |ch, success|
|
||||
abort "could not execute command: #{command}" unless success
|
||||
channel.on_data do |ch, data|
|
||||
outputs.push(data)
|
||||
print "#{data}"
|
||||
if update
|
||||
if data.include? "\n"
|
||||
update_infos_for_exec(data)
|
||||
else
|
||||
update_infos_for_exec(data,true)
|
||||
end
|
||||
end
|
||||
if data.to_s.include?("sudo password:") || data.to_s.include?("Password:")
|
||||
data_str = data.to_s
|
||||
data_str.encode!("UTF-8", :invalid => :replace, :undef => :replace, :replace => '')
|
||||
if data_str.include?("sudo password:") || data_str.include?("Password:")
|
||||
channel.send_data "#{@password}\n"
|
||||
else
|
||||
print data_str unless @no_stdout
|
||||
data_str.gsub!("\r\n", "\n")
|
||||
rm_idx = data_str.index("\r")
|
||||
if rm_idx.nil?
|
||||
@remove_last_line = false
|
||||
else
|
||||
@remove_last_line = (outputs.count > 0 && data_str[0...rm_idx].exclude?("\n"))
|
||||
end
|
||||
data_str.gsub!(/.*\r/, '')
|
||||
next if data_str.length == 0
|
||||
if data_str.include?("\n") || outputs.empty?
|
||||
output_lines = data_str.split("\n")
|
||||
first_output = output_lines[0]
|
||||
if first_output
|
||||
if @remove_last_line
|
||||
outputs = outputs[1..-1]
|
||||
outputs = [] if outputs.nil?
|
||||
end
|
||||
if outputs.count != 0
|
||||
outputs[-1] += first_output
|
||||
else
|
||||
outputs << first_output
|
||||
end
|
||||
end
|
||||
new_arr = output_lines[1..-1]
|
||||
new_arr = [] if new_arr.nil?
|
||||
if data_str[-1] == "\n"
|
||||
new_arr << ""
|
||||
end
|
||||
outputs += new_arr
|
||||
if update_outputs
|
||||
if first_output
|
||||
update_infos_for_exec(first_output,true)
|
||||
end
|
||||
update_infos_for_exec(new_arr,false,true)
|
||||
end
|
||||
else
|
||||
if @remove_last_line
|
||||
outputs = outputs[1..-1]
|
||||
outputs = [] if outputs.nil?
|
||||
end
|
||||
if outputs.count == 0
|
||||
outputs.push(data_str)
|
||||
else
|
||||
outputs[-1] += (data_str rescue "")
|
||||
end
|
||||
if update_outputs
|
||||
update_infos_for_exec(data_str,true)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -182,11 +218,23 @@ namespace :create_site do
|
|||
end
|
||||
return tmp
|
||||
end
|
||||
def update_infos_for_exec(info,update_last=false)
|
||||
def update_infos_for_exec(info,update_last=false,update_array=false)
|
||||
return if @site_construct.nil?
|
||||
if update_last && !@site_construct.infos.empty?
|
||||
@site_construct.infos[-1] += info
|
||||
if @remove_last_line
|
||||
@site_construct.infos[-1] = info.to_s
|
||||
else
|
||||
@site_construct.infos[-1] += info.to_s
|
||||
end
|
||||
else
|
||||
@site_construct.infos = @site_construct.infos.push(info)
|
||||
if @remove_last_line
|
||||
@site_construct.infos = @site_construct.infos[0...-1]
|
||||
end
|
||||
if update_array
|
||||
@site_construct.infos += info
|
||||
else
|
||||
@site_construct.infos.push(info.to_s)
|
||||
end
|
||||
end
|
||||
@site_construct.save!
|
||||
return @site_construct.infos
|
||||
|
|
|
@ -108,24 +108,68 @@ namespace :create_site do
|
|||
@thread.save!
|
||||
return @thread.status["infos"]
|
||||
end
|
||||
def exec_ssh_command_for_create(session,command,update=false)
|
||||
def exec_ssh_command_for_create(session,command,update_outputs=false)
|
||||
outputs = []
|
||||
session.open_channel do |channel|
|
||||
channel.request_pty do |channel, success|
|
||||
channel.exec("LANG=en.UTF8 #{command}") do |ch, success|
|
||||
abort "could not execute command: #{command}" unless success
|
||||
channel.on_data do |ch, data|
|
||||
outputs.push(data)
|
||||
print "#{data}"
|
||||
if update
|
||||
if data.include? "\n"
|
||||
update_infos_for_exec(data)
|
||||
else
|
||||
update_infos_for_exec(data,true)
|
||||
end
|
||||
end
|
||||
if data.to_s.include?("sudo password:") || data.to_s.include?("Password:")
|
||||
data_str = data.to_s
|
||||
data_str.encode!("UTF-8", :invalid => :replace, :undef => :replace, :replace => '')
|
||||
if data_str.include?("sudo password:") || data_str.include?("Password:")
|
||||
channel.send_data "#{@password}\n"
|
||||
else
|
||||
print data_str unless @no_stdout
|
||||
data_str.gsub!("\r\n", "\n")
|
||||
rm_idx = data_str.index("\r")
|
||||
if rm_idx.nil?
|
||||
@remove_last_line = false
|
||||
else
|
||||
@remove_last_line = (outputs.count > 0 && data_str[0...rm_idx].exclude?("\n"))
|
||||
end
|
||||
data_str.gsub!(/.*\r/, '')
|
||||
next if data_str.length == 0
|
||||
if data_str.include?("\n") || outputs.empty?
|
||||
output_lines = data_str.split("\n")
|
||||
first_output = output_lines[0]
|
||||
if first_output
|
||||
if @remove_last_line
|
||||
outputs = outputs[1..-1]
|
||||
outputs = [] if outputs.nil?
|
||||
end
|
||||
if outputs.count != 0
|
||||
outputs[-1] += first_output
|
||||
else
|
||||
outputs << first_output
|
||||
end
|
||||
end
|
||||
new_arr = output_lines[1..-1]
|
||||
new_arr = [] if new_arr.nil?
|
||||
if data_str[-1] == "\n"
|
||||
new_arr << ""
|
||||
end
|
||||
outputs += new_arr
|
||||
if update_outputs
|
||||
if first_output
|
||||
update_infos_for_exec(first_output,true)
|
||||
end
|
||||
update_infos_for_exec(new_arr,false,true)
|
||||
end
|
||||
else
|
||||
if @remove_last_line
|
||||
outputs = outputs[1..-1]
|
||||
outputs = [] if outputs.nil?
|
||||
end
|
||||
if outputs.count == 0
|
||||
outputs.push(data_str)
|
||||
else
|
||||
outputs[-1] += (data_str rescue "")
|
||||
end
|
||||
if update_outputs
|
||||
update_infos_for_exec(data_str,true)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -145,10 +189,16 @@ namespace :create_site do
|
|||
end
|
||||
def update_infos_for_exec(info,update_last=false,update_array=false)
|
||||
return if @site_construct.nil?
|
||||
info.encode!("UTF-8", :invalid => :replace, :undef => :replace, :replace => '')
|
||||
if update_last && !@site_construct.infos.empty?
|
||||
@site_construct.infos[-1] += info.to_s
|
||||
if @remove_last_line
|
||||
@site_construct.infos[-1] = info.to_s
|
||||
else
|
||||
@site_construct.infos[-1] += info.to_s
|
||||
end
|
||||
else
|
||||
if @remove_last_line
|
||||
@site_construct.infos = @site_construct.infos[0...-1]
|
||||
end
|
||||
if update_array
|
||||
@site_construct.infos += info
|
||||
else
|
||||
|
|
|
@ -196,8 +196,15 @@ namespace :exec_commands do
|
|||
def update_infos_for_exec(info,update_last=false,update_array=false)
|
||||
return if @site_construct.nil?
|
||||
if update_last && !@site_construct.infos.empty?
|
||||
@site_construct.infos[-1] += info.to_s
|
||||
if @remove_last_line
|
||||
@site_construct.infos[-1] = info.to_s
|
||||
else
|
||||
@site_construct.infos[-1] += info.to_s
|
||||
end
|
||||
else
|
||||
if @remove_last_line
|
||||
@site_construct.infos = @site_construct.infos[0...-1]
|
||||
end
|
||||
if update_array
|
||||
@site_construct.infos += info
|
||||
else
|
||||
|
@ -209,8 +216,15 @@ namespace :exec_commands do
|
|||
end
|
||||
def update_thread_infos_for_exec(info,update_last=false,update_array=false)
|
||||
if update_last && !@thread.status["infos"].empty?
|
||||
@thread.status["infos"][-1] += info.to_s
|
||||
if @remove_last_line
|
||||
@thread.status["infos"][-1] = info.to_s
|
||||
else
|
||||
@thread.status["infos"][-1] += info.to_s
|
||||
end
|
||||
else
|
||||
if @remove_last_line
|
||||
@thread.status["infos"] = @thread.status["infos"][0...-1]
|
||||
end
|
||||
if update_array
|
||||
@thread.status["infos"] += info
|
||||
else
|
||||
|
@ -247,12 +261,22 @@ namespace :exec_commands do
|
|||
else
|
||||
print data_str unless @no_stdout
|
||||
data_str.gsub!("\r\n", "\n")
|
||||
data_str.sub!(/\r$/, '')
|
||||
rm_idx = data_str.index("\r")
|
||||
if rm_idx.nil?
|
||||
@remove_last_line = false
|
||||
else
|
||||
@remove_last_line = (outputs.count > 0 && data_str[0...rm_idx].exclude?("\n"))
|
||||
end
|
||||
data_str.gsub!(/.*\r/, '')
|
||||
next if data_str.length == 0
|
||||
if data_str.include?("\n") || outputs.empty?
|
||||
output_lines = data_str.split("\n")
|
||||
first_output = output_lines[0]
|
||||
if first_output
|
||||
if @remove_last_line
|
||||
outputs = outputs[1..-1]
|
||||
outputs = [] if outputs.nil?
|
||||
end
|
||||
if outputs.count != 0
|
||||
outputs[-1] += first_output
|
||||
else
|
||||
|
@ -274,6 +298,10 @@ namespace :exec_commands do
|
|||
update_infos_for_exec(new_arr,false,true)
|
||||
end
|
||||
else
|
||||
if @remove_last_line
|
||||
outputs = outputs[1..-1]
|
||||
outputs = [] if outputs.nil?
|
||||
end
|
||||
if outputs.count == 0
|
||||
outputs.push(data_str)
|
||||
else
|
||||
|
|
Loading…
Reference in New Issue