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