make report url from job ids in console client

This commit is contained in:
Anton Chuchkalov 2016-02-04 21:22:05 +07:00
parent 775c9758ca
commit ac0a81831c
6 changed files with 30 additions and 29 deletions

View File

@ -26,7 +26,8 @@ class Deploy < Handler
@options_parser.invalid_deploy_command
abort()
end
post_chunk("/deploy", :names => names, :tags => tags)
job_ids = post("/deploy", :names => names, :tags => tags)
reports_urls(job_ids)
end
end

View File

@ -13,6 +13,17 @@ module Outputtable
outputter.output(options)
end
def report_url(job_id)
create_url "report/#{job_id}"
end
def reports_urls(job_ids)
raise "Parameter should be an array of strings" unless job_ids.is_a?(Array)
job_ids.map do |job_id|
report_url(job_id)
end.join("\n")
end
def self.included(base)
base.extend(ClassMethods)

View File

@ -87,7 +87,6 @@ class Project < Handler
when "delete_servers"
self.options = @options_parser.delete_servers_options
delete_servers_handler @options_parser.args
output(output_type: :delete_servers)
else
@options_parser.invalid_command
end
@ -279,7 +278,8 @@ class Project < Handler
q = {}
q[:servers] = options[:servers] unless options[:servers].nil?
q[:deploy_env] = args[3] unless args[3].nil?
post_chunk "/project/#{args[2]}/deploy", q
job_ids = post "/project/#{args[2]}/deploy", q
reports_urls(job_ids)
end
def test_handler args
@ -288,8 +288,8 @@ class Project < Handler
@options_parser.invalid_test_command
abort(r)
end
response = post "/project/test/#{args[2]}/#{args[3]}"
puts response.inspect
job_ids = post "/project/test/#{args[2]}/#{args[3]}"
reports_urls(job_ids)
end
protected
@ -456,7 +456,8 @@ protected
deploy_env: env,
dry_run: false
}
@list = delete("/project/#{project}/servers", body)
response = delete("/project/#{project}/servers", body)
reports_urls(response['reports'])
end
private

View File

@ -75,7 +75,8 @@ class Server < Handler
q[k] = self.options[k] unless self.options[k].nil?
end
post_chunk "/server", q
job_ids = post "/server", q
reports_urls(job_ids)
end
def delete_handler
@ -86,11 +87,11 @@ class Server < Handler
abort(r)
end
if question(I18n.t("handler.server.question.delete", :name => name))
puts "Server '#{name}', deleting..."
puts delete("/server/#{name}", options)
jobs_ids = delete("/server/#{name}", options) # returns array with one job id, actually
puts reports_urls(jobs_ids)
end
end
""
nil
end
def show_handler
@ -117,7 +118,8 @@ class Server < Handler
if q.has_key?(:run_list)
abort unless Project.validate_run_list(q[:run_list])
end
post_chunk "/server/bootstrap", q
job_ids = post "/server/bootstrap", q
reports_urls(job_ids)
end
def add_static_handler # add <project> <env> <private_ip> <ssh_username> --public-ip <public_ip> -k <keyname>

View File

@ -63,7 +63,8 @@ class Stack < Handler
json = JSON.pretty_generate(q)
if question(I18n.t("handler.stack.question.create")) {puts json}
post_body "/stack", json
job_ids = post_body "/stack", json
reports_urls(job_ids)
end
end
@ -123,8 +124,8 @@ class Stack < Handler
def deploy_handler
stack_id = @args[2]
response = post "/stack/#{stack_id}/deploy"
puts response.inspect
job_ids = post "/stack/#{stack_id}/deploy"
reports_urls(job_ids)
end
def reserve_handler

View File

@ -27,8 +27,6 @@ module Output
when :test
title = I18n.t("output.title.project.test", :project => ARGV[2], :env => ARGV[3])
create_test(@data)
when :delete_servers
return delete_servers_output
else
title = I18n.t("output.title.project.list")
create_list(@data)
@ -151,18 +149,5 @@ module Output
headers_and_rows(stacks, fields_to_output)
end
def delete_servers_output
output = ''
if @data['reports'].empty?
output << 'There are no deleted servers.'
else
output << "Reports for servers deleting:\n----\n"
output << @data['reports'].join("\n")
end
output
end
end
end