* return correct exit code for CLI when deploy;

* add missing field for deploy operation;
* update examples.
This commit is contained in:
Vladmir Sharhsov(warpc) 2013-08-20 16:21:33 +04:00
parent da1ae3bab6
commit 357751197f
6 changed files with 31 additions and 10 deletions

View File

@ -40,6 +40,10 @@ def report_and_exit(exception, verbose)
exit Astute::FAIL
end
def analize_deploy(status)
status.has_value?('error') ? Astute::FAIL : Astute::SUCCESS
end
opts = {}
optparse = OptionParser.new do |o|
o.banner = "Usage: bin/astute -c COMMAND -f FILENAME "
@ -108,13 +112,13 @@ result = Astute::SUCCESS
begin
result = case opts[:command]
when :deploy
orchestrator.deploy(reporter, environment['task_uuid'], environment['nodes'], environment['attributes'])
analize_deploy orchestrator.deploy(reporter, environment['task_uuid'], environment['nodes'], environment['attributes'])
when :provision
console_provision(orchestrator, reporter, environment)
when :provision_and_deploy
res = console_provision(orchestrator, reporter, environment)
if res == Astute::SUCCESS
res = orchestrator.deploy(reporter, environment['task_uuid'], environment['nodes'], environment['attributes'])
res = analize_deploy orchestrator.deploy(reporter, environment['task_uuid'], environment['nodes'], environment['attributes'])
end
res
end

View File

@ -29,7 +29,7 @@ nodes:
#netmask: 255.255.255.0
dns_name: controller-8.domain.tld # fqdn
static: 0
mac_address: 08:00:27:83:80:92 # mac
mac_address: 08:00:27:11:2D:DF # mac
onboot: 'yes'
peerdns: 'no'
use_for_provision: true
@ -114,4 +114,5 @@ attributes:
ntp_servers:
- pool.ntp.org
deployment_mode: multinode
deployment_source: cli
deployment_source: cli
deployment_id: 1

View File

@ -351,4 +351,7 @@ mapping:
"debug":
type: bool
desc: How much information OpenStack provides when performing configuration (debug mode)
"deployment_id":
type: int
required: true
desc: Deployment ID(for CI just set 1)

View File

@ -15,12 +15,24 @@
module Astute
class Context
attr_accessor :task_id, :reporter, :deploy_log_parser
attr_accessor :reporter, :deploy_log_parser
attr_reader :task_id, :status
def initialize(task_id, reporter, deploy_log_parser=nil)
@task_id = task_id
@reporter = reporter
@status = {}
@deploy_log_parser = deploy_log_parser
end
def reporter_report(data)
if data['nodes']
data['nodes'].each do |node|
status.merge! node['uid'] => node['status'] if node['uid'] && node['status']
end
end
reporter.report(data)
end
end
end

View File

@ -47,7 +47,7 @@ module Astute
Astute.logger.warn "Some error occurred when prepare LogParser: #{e.message}, trace: #{e.format_backtrace}"
end
deploy_engine_instance.deploy(nodes, attrs)
return SUCCESS
context.status
end
def fast_provision(reporter, engine_attrs, nodes)

View File

@ -100,7 +100,7 @@ module Astute
Timeout::timeout(Astute.config.PUPPET_TIMEOUT) do
puppetd = MClient.new(ctx, "puppetd", uids)
puppetd.on_respond_timeout do |uids|
ctx.reporter.report('nodes' => uids.map{|uid| {'uid' => uid, 'status' => 'error', 'error_type' => 'deploy'}})
ctx.reporter_report('nodes' => uids.map{|uid| {'uid' => uid, 'status' => 'error', 'error_type' => 'deploy'}})
end if change_node_status
prev_summary = puppetd.last_run_summary
puppetd_runonce(puppetd, uids)
@ -151,7 +151,8 @@ module Astute
"trace: #{e.format_backtrace}"
end
end
ctx.reporter.report('nodes' => nodes_to_report) if nodes_to_report.any?
ctx.reporter_report('nodes' => nodes_to_report) if nodes_to_report.any?
# we will iterate only over running nodes and those that we restart deployment for
nodes_to_check = calc_nodes['running'] + nodes_to_retry