opsworks-cli 0.2.2 → 0.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 85301da60371b32e479e3b0c3abd91386e876ead
4
- data.tar.gz: 0a07cd8ab46d60e96a647173d3020532d66fd17b
3
+ metadata.gz: bcc4c1284a99afeda1c929e55f80643e5a2aad36
4
+ data.tar.gz: 028437c8044bb146a5ecbfe8febbd125682cdc82
5
5
  SHA512:
6
- metadata.gz: 8c07bc9aa8f89556fae70ba033e52bb43fd72fd7ec9f171c584c96a2c3a09115a791b5e00f7f31539b415610aac2cd802ba4b2f8519289980d861a7bf8c7e7b6
7
- data.tar.gz: 97e160e494f5a2ecc9a5045a0f76097bf6cb83eab694ca05e3a6e7a6eb7203e8de4ffdde8f6410f95102977fd04ebf855e809344f25991d85bbd984c7fca76cc
6
+ metadata.gz: 16b3ff5a4ceb89c025944ec12ad119e6303bdd763d8a3634ed9d1aca51ff259382f1e61aa062eeba70f01f82c5bec6dcfd2f819a144b1f57646ef9edc032db7f
7
+ data.tar.gz: cb5f4440c3428f3773747386fdbed8ca4049a38816e895ac0d78816542299f2ea711441f9f3f4fd798065d72eede476ffbb9045859bf573914fad1cb4f80b387
@@ -10,6 +10,7 @@ require_relative 'subcommands/deploy'
10
10
  require_relative 'subcommands/status'
11
11
  require_relative 'subcommands/allow'
12
12
  require_relative 'subcommands/lockdown'
13
+ require_relative 'subcommands/upgrade_chef'
13
14
 
14
15
  module OpsWorks
15
16
  module CLI
@@ -22,6 +23,7 @@ module OpsWorks
22
23
  include Subcommands::Status
23
24
  include Subcommands::Allow
24
25
  include Subcommands::Lockdown
26
+ include Subcommands::UpgradeChef
25
27
 
26
28
  desc 'version', 'Print OpsWorks CLI version'
27
29
  def version
@@ -0,0 +1,35 @@
1
+ require 'aws'
2
+ require 'opsworks/deployment'
3
+
4
+ module OpsWorks
5
+ module CLI
6
+ module Subcommands
7
+ module UpgradeChef
8
+ # rubocop:disable MethodLength
9
+ # rubocop:disable CyclomaticComplexity
10
+ def self.included(thor)
11
+ thor.class_eval do
12
+ include Helpers::Keychain
13
+ include Helpers::Options
14
+
15
+ desc 'upgrade-chef [--stack STACK]', 'Upgrade Chef version'
16
+ option :stack, type: :array
17
+ option :version
18
+ option :manage_berkshelf, type: :boolean, default: false
19
+ def upgrade_chef
20
+ fetch_keychain_credentials unless env_credentials?
21
+ stacks = parse_stacks(options.merge(active: true))
22
+ version = OpsWorks::Stack.latest_chef_version
23
+ stacks.each do |stack|
24
+ say "Upgrading #{stack.name} to #{version}..."
25
+ stack.upgrade_chef(version, options)
26
+ end
27
+ end
28
+ end
29
+ end
30
+ # rubocop:enable CyclomaticComplexity
31
+ # rubocop:enable MethodLength
32
+ end
33
+ end
34
+ end
35
+ end
@@ -1,5 +1,5 @@
1
1
  module OpsWorks
2
2
  module CLI
3
- VERSION = '0.2.2'
3
+ VERSION = '0.2.3'
4
4
  end
5
5
  end
@@ -7,6 +7,8 @@ module OpsWorks
7
7
  class Stack < Resource
8
8
  attr_accessor :id, :name
9
9
 
10
+ AVAILABLE_CHEF_VERSIONS = %w(0.9 11.4 11.10)
11
+
10
12
  def self.all
11
13
  client.describe_stacks.data[:stacks].map do |hash|
12
14
  new(id: hash[:stack_id], name: hash[:name])
@@ -21,6 +23,10 @@ module OpsWorks
21
23
  all.find { |stack| stack.name == name }
22
24
  end
23
25
 
26
+ def self.latest_chef_version
27
+ AVAILABLE_CHEF_VERSIONS.last
28
+ end
29
+
24
30
  def apps
25
31
  @apps ||= initialize_apps
26
32
  end
@@ -41,6 +47,14 @@ module OpsWorks
41
47
  @instances ||= initialize_instances
42
48
  end
43
49
 
50
+ def upgrade_chef(version, options = {})
51
+ self.class.client.update_stack(
52
+ stack_id: id,
53
+ configuration_manager: { name: 'Chef', version: version },
54
+ chef_configuration: { manage_berkshelf: options[:manage_berkshelf] }
55
+ )
56
+ end
57
+
44
58
  def update_custom_cookbooks
45
59
  create_deployment(command: { name: 'update_custom_cookbooks' })
46
60
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: opsworks-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.2
4
+ version: 0.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Frank Macreery
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-11-12 00:00:00.000000000 Z
11
+ date: 2014-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -163,6 +163,7 @@ files:
163
163
  - lib/opsworks/cli/subcommands/lockdown.rb
164
164
  - lib/opsworks/cli/subcommands/status.rb
165
165
  - lib/opsworks/cli/subcommands/update.rb
166
+ - lib/opsworks/cli/subcommands/upgrade_chef.rb
166
167
  - lib/opsworks/cli/version.rb
167
168
  - lib/opsworks/deployment.rb
168
169
  - lib/opsworks/instance.rb