diff --git a/bin/astute b/bin/astute index bd923be4..daba2efa 100755 --- a/bin/astute +++ b/bin/astute @@ -43,9 +43,9 @@ optparse = OptionParser.new do |o| o.on("-h") { puts o; exit } - o.on("-c", "--command [COMMAND]", [:deploy, :fast_provision, :provision], - "Select operation (deploy, fast_provision, provision)") do |c| - opts[:command] = c || :deploy + o.on("-c", "--command COMMAND", [:deploy, :fast_provision, :provision], + "Select operation (deploy, fast_provision or provision)") do |c| + opts[:command] = c end end @@ -77,11 +77,18 @@ if [:deploy, :fast_provision, :provision].include? opts[:command] orchestrator = Astute::Orchestrator.new(deploy_engine, log_parsing=false) end -case opts[:command] - when :deploy - orchestrator.deploy(reporter, environment['task_uuid'], environment['nodes'], environment['attributes']) - when :fast_provision - orchestrator.fast_provision(reporter, environment['engine'], environment['nodes']) - when :provision - orchestrator.provision(reporter, environment['task_uuid'], environment['nodes']) -end \ No newline at end of file +result = Astute::SUCCESS + +begin + result = case opts[:command] + when :deploy + orchestrator.deploy(reporter, environment['task_uuid'], environment['nodes'], environment['attributes']) + when :fast_provision + orchestrator.fast_provision(reporter, environment['engine'], environment['nodes']) + when :provision + orchestrator.provision(reporter, environment['task_uuid'], environment['nodes']) + end +rescue + result = Astute::FAIL +end +exit result \ No newline at end of file diff --git a/lib/astute.rb b/lib/astute.rb index 8cd9e65e..08aabdf5 100644 --- a/lib/astute.rb +++ b/lib/astute.rb @@ -39,6 +39,9 @@ module Astute LogParser.autoload :ParseDeployLogs, 'astute/logparser/deployment' LogParser.autoload :ParseProvisionLogs, 'astute/logparser/provision' LogParser.autoload :Patterns, 'astute/logparser/parser_patterns' + + SUCCESS = 0 + FAIL = 1 def self.logger unless @logger diff --git a/lib/astute/orchestrator.rb b/lib/astute/orchestrator.rb index 35a911df..564354f2 100644 --- a/lib/astute/orchestrator.rb +++ b/lib/astute/orchestrator.rb @@ -46,6 +46,7 @@ module Astute Astute.logger.warn "Some error occurred when prepare LogParser: #{e.message}, trace: #{e.backtrace.inspect}" end deploy_engine_instance.deploy(nodes, attrs) + return SUCCESS end def fast_provision(reporter, engine_attrs, nodes) @@ -71,6 +72,7 @@ module Astute if failed_nodes.empty? report_result({}, proxy_reporter) + return SUCCESS else Astute.logger.error("Nodes failed to reboot: #{failed_nodes.inspect}") proxy_reporter.report({ @@ -136,12 +138,14 @@ module Astute 'progress' => 100, 'error_type' => 'provision'} } proxy_reporter.report({'status' => 'error', 'error' => msg, 'nodes' => error_nodes}) + return FAIL end nodes_progress = nodes.map do |n| {'uid' => n['uid'], 'progress' => 100, 'status' => 'provisioned'} end proxy_reporter.report({'nodes' => nodes_progress}) + return SUCCESS end