Module: OpsWorks::CLI::Subcommands::Chef
- Included in:
- Agent
- Defined in:
- lib/opsworks/cli/subcommands/chef.rb
Class Method Summary collapse
-
.included(thor) ⇒ Object
rubocop:disable MethodLength rubocop:disable CyclomaticComplexity.
Class Method Details
.included(thor) ⇒ Object
rubocop:disable MethodLength rubocop:disable CyclomaticComplexity
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'lib/opsworks/cli/subcommands/chef.rb', line 10 def self.included(thor) thor.class_eval do desc 'chef:configure [--stack STACK]', 'Configure Chef/Berkshelf' option :stack, type: :array option :version, default: OpsWorks::Stack.latest_chef_version option :manage_berkshelf, type: :boolean, default: false option :berkshelf_version, default: '3.2.0' option :cookbook_git_url option :cookbook_branch option :cookbook_s3_url option :cookbook_username option :cookbook_password define_method 'chef:configure' do fetch_credentials unless env_credentials? stacks = parse_stacks(.merge(active: true)) stacks.each do |stack| say "Configuring Chef #{[:version]} on #{stack.name}..." stack.update_chef() end end desc 'chef:sync [--stack STACK]', 'Sync OpsWorks custom cookbooks' option :stack, type: :array option :timeout, type: :numeric, default: 300 define_method 'chef:sync' do fetch_credentials unless env_credentials? stacks = parse_stacks(.merge(active: true)) deployments = stacks.map do |stack| say "Syncing #{stack.name}..." stack.update_custom_cookbooks end OpsWorks::Deployment.wait(deployments, [:timeout]) unless deployments.all?(&:success?) failures = [] deployments.each_with_index do |deployment, i| failures << stacks[i].name unless deployment.success? end fail "Update failed on #{failures.join(', ')}" end end end end |