Require command option, add exit codes.

This commit is contained in:
Vladmir Sharhsov(warpc) 2013-07-16 10:26:58 +04:00
parent 81a945f203
commit 17dbb57206
3 changed files with 25 additions and 11 deletions

View File

@ -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
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

View File

@ -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

View File

@ -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