From ac0a81831cd713a1291a74894468364603636fbf Mon Sep 17 00:00:00 2001 From: Anton Chuchkalov Date: Thu, 4 Feb 2016 21:22:05 +0700 Subject: [PATCH] make report url from job ids in console client --- devops-client/lib/devops-client/handler/deploy.rb | 3 ++- .../devops-client/handler/helpers/outputtable.rb | 11 +++++++++++ .../lib/devops-client/handler/project.rb | 11 ++++++----- devops-client/lib/devops-client/handler/server.rb | 12 +++++++----- devops-client/lib/devops-client/handler/stack.rb | 7 ++++--- devops-client/lib/devops-client/output/project.rb | 15 --------------- 6 files changed, 30 insertions(+), 29 deletions(-) diff --git a/devops-client/lib/devops-client/handler/deploy.rb b/devops-client/lib/devops-client/handler/deploy.rb index f5c06ed..7ab707c 100644 --- a/devops-client/lib/devops-client/handler/deploy.rb +++ b/devops-client/lib/devops-client/handler/deploy.rb @@ -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 diff --git a/devops-client/lib/devops-client/handler/helpers/outputtable.rb b/devops-client/lib/devops-client/handler/helpers/outputtable.rb index 1f78db3..aed1478 100644 --- a/devops-client/lib/devops-client/handler/helpers/outputtable.rb +++ b/devops-client/lib/devops-client/handler/helpers/outputtable.rb @@ -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) diff --git a/devops-client/lib/devops-client/handler/project.rb b/devops-client/lib/devops-client/handler/project.rb index dd261d3..f1657a4 100644 --- a/devops-client/lib/devops-client/handler/project.rb +++ b/devops-client/lib/devops-client/handler/project.rb @@ -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 diff --git a/devops-client/lib/devops-client/handler/server.rb b/devops-client/lib/devops-client/handler/server.rb index 55fbdcf..e50a76d 100644 --- a/devops-client/lib/devops-client/handler/server.rb +++ b/devops-client/lib/devops-client/handler/server.rb @@ -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 --public-ip -k diff --git a/devops-client/lib/devops-client/handler/stack.rb b/devops-client/lib/devops-client/handler/stack.rb index 7385024..5bf0642 100644 --- a/devops-client/lib/devops-client/handler/stack.rb +++ b/devops-client/lib/devops-client/handler/stack.rb @@ -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 diff --git a/devops-client/lib/devops-client/output/project.rb b/devops-client/lib/devops-client/output/project.rb index c080e45..256fd59 100644 --- a/devops-client/lib/devops-client/output/project.rb +++ b/devops-client/lib/devops-client/output/project.rb @@ -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