lib/opsworks/cli/subcommands/update.rb in opsworks-cli-0.1.2 vs lib/opsworks/cli/subcommands/update.rb in opsworks-cli-0.2.0
- old
+ new
@@ -10,16 +10,24 @@
thor.class_eval do
include Helpers::Keychain
include Helpers::Options
desc 'update [--stack STACK]', 'Update OpsWorks custom cookbooks'
- option :stack
+ option :stack, type: :array
def update
fetch_keychain_credentials unless env_credentials?
stacks = parse_stacks(options)
- stacks.each do |stack|
+ deployments = stacks.map do |stack|
say "Updating #{stack.name}..."
stack.update_custom_cookbooks
+ end
+ Deployment.wait(deployments)
+ unless deployments.all?(&:success?)
+ failures = []
+ deployments.each_with_index do |deployment, i|
+ failures << stacks[i].name if deployment.failed?
+ end
+ fail "Update failed on #{failures.join(', ')}"
end
end
end
end
# rubocop:enable CyclomaticComplexity