knife-cloudformation 0.2.24 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +10 -0
  3. data/README.md +16 -0
  4. data/knife-cloudformation.gemspec +14 -4
  5. data/lib/knife-cloudformation.rb +0 -28
  6. data/lib/knife-cloudformation/version.rb +1 -1
  7. metadata +18 -80
  8. data/lib/chef/knife/cloudformation_create.rb +0 -147
  9. data/lib/chef/knife/cloudformation_describe.rb +0 -99
  10. data/lib/chef/knife/cloudformation_destroy.rb +0 -84
  11. data/lib/chef/knife/cloudformation_events.rb +0 -117
  12. data/lib/chef/knife/cloudformation_export.rb +0 -162
  13. data/lib/chef/knife/cloudformation_import.rb +0 -141
  14. data/lib/chef/knife/cloudformation_inspect.rb +0 -206
  15. data/lib/chef/knife/cloudformation_list.rb +0 -72
  16. data/lib/chef/knife/cloudformation_promote.rb +0 -40
  17. data/lib/chef/knife/cloudformation_update.rb +0 -137
  18. data/lib/chef/knife/cloudformation_validate.rb +0 -36
  19. data/lib/knife-cloudformation/cache.rb +0 -385
  20. data/lib/knife-cloudformation/knife.rb +0 -9
  21. data/lib/knife-cloudformation/knife/base.rb +0 -195
  22. data/lib/knife-cloudformation/knife/stack.rb +0 -197
  23. data/lib/knife-cloudformation/knife/template.rb +0 -213
  24. data/lib/knife-cloudformation/monkey_patch.rb +0 -8
  25. data/lib/knife-cloudformation/monkey_patch/stack.rb +0 -195
  26. data/lib/knife-cloudformation/provider.rb +0 -225
  27. data/lib/knife-cloudformation/utils.rb +0 -24
  28. data/lib/knife-cloudformation/utils/animal_strings.rb +0 -28
  29. data/lib/knife-cloudformation/utils/debug.rb +0 -31
  30. data/lib/knife-cloudformation/utils/json.rb +0 -64
  31. data/lib/knife-cloudformation/utils/object_storage.rb +0 -28
  32. data/lib/knife-cloudformation/utils/output.rb +0 -79
  33. data/lib/knife-cloudformation/utils/path_selector.rb +0 -99
  34. data/lib/knife-cloudformation/utils/ssher.rb +0 -29
  35. data/lib/knife-cloudformation/utils/stack_exporter.rb +0 -271
  36. data/lib/knife-cloudformation/utils/stack_parameter_scrubber.rb +0 -37
  37. data/lib/knife-cloudformation/utils/stack_parameter_validator.rb +0 -124
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a19f3820b2eb094c8beb9f16765dc2c51621609e
4
- data.tar.gz: 6d24a415612cd940841f75e65d7320755ca6e374
3
+ metadata.gz: 09df8cb94ede3e5f2acb06a24a3d5c1da789d3b8
4
+ data.tar.gz: 8d0f3491417f99d2c00c5cbc65eabf14b0fdd0a9
5
5
  SHA512:
6
- metadata.gz: 102c2600e1fce7dafb556ff01ae74677912262ea4566b03f15638ba172bca2a70d5376f11e9409428288aebda2d76da1433ac5b5a720fc8c82ee5b1f00a8f74d
7
- data.tar.gz: 65795f997fbdc84f39a4003e85bb5adac8d78bd6a84833f4948018dfc801c0e140831ee096e219bd273ed91463f2e057e9fe61aa43e74945d571b559c7c6503f
6
+ metadata.gz: 97475581fca99161a2d90216599cd63bf3aaec50031c6d64bc92fd71334a015613b157efe7c926add09f911b91f2f71f13f964eecaeb5db05ef6cb22a43da42b
7
+ data.tar.gz: 02d540b417b741a783681be85e220976792f645a4100b836872ce887845dcb6b95a267f5bdc07257d6c39104876129a5f303b614fd93a460221f0489447e44b3
@@ -1,3 +1,13 @@
1
+ ## v0.5.0
2
+
3
+ _NOTE: This gem is deprecated and no longer maintained. The knife
4
+ plugin is now distributed via the sfn gem!_
5
+
6
+ * Remove all real content
7
+ * Update gemspec to install sfn automatically
8
+ * Add notes to README and after install notification
9
+
10
+
1
11
  ## v0.2.24
2
12
  * Force parameter value set on defaults
3
13
 
data/README.md CHANGED
@@ -1,3 +1,19 @@
1
+ # DEPRECATION WARNING
2
+
3
+ _NOTE: The `knife-cloudformation` gem is deprecated. Please install
4
+ the `sfn` gem instead_:
5
+
6
+ ```
7
+ $ gem uninstall knife-cloudformation
8
+ $ gem install sfn
9
+ ```
10
+
11
+ or make the appropriate adjustments to your Gemfile. The `sfn` gem
12
+ now provides the `knife cloudformation` plugin.
13
+
14
+ * https://github.com/sparkleformation/sfn
15
+
16
+
1
17
  # Knife CloudFormation
2
18
 
3
19
  This is a plugin for the `knife` command provided by
@@ -10,9 +10,19 @@ Gem::Specification.new do |s|
10
10
  s.description = 'Knife tooling for Cloud Formation'
11
11
  s.license = 'Apache-2.0'
12
12
  s.require_path = 'lib'
13
- s.add_dependency 'chef'
14
- s.add_dependency 'miasma'
15
- s.add_dependency 'net-ssh'
16
- s.add_dependency 'sparkle_formation', '~> 0.2.0'
13
+ s.add_dependency 'sfn', '< 1.0'
17
14
  s.files = Dir['lib/**/*'] + %w(knife-cloudformation.gemspec README.md CHANGELOG.md LICENSE)
15
+ s.post_install_message = <<-EOF
16
+ IMPORTANT NOTE: The knife-cloudformation gem is deprecated!
17
+
18
+ Please uninstall the knife-cloudformation gem as it is no longer maintained. The cloudformation
19
+ knife plugin is distributed via the sfn gem which has been automatically installed as a dependency.
20
+
21
+ ---
22
+ gem uninstall knife-cloudformation
23
+ ---
24
+
25
+ Thanks and happy stacking!
26
+ EOF
27
+
18
28
  end
@@ -1,29 +1 @@
1
1
  require 'knife-cloudformation/version'
2
- require 'miasma'
3
-
4
- module KnifeCloudformation
5
-
6
- autoload :Provider, 'knife-cloudformation/provider'
7
- autoload :Cache, 'knife-cloudformation/cache'
8
- autoload :Export, 'knife-cloudformation/export'
9
- autoload :Utils, 'knife-cloudformation/utils'
10
- autoload :MonkeyPatch, 'knife-cloudformation/monkey_patch'
11
- autoload :Knife, 'knife-cloudformation/knife'
12
-
13
- end
14
-
15
- class Chef
16
- class Knife
17
- autoload :CloudformationCreate, 'chef/knife/cloudformation_create'
18
- autoload :CloudformationDescribe, 'chef/knife/cloudformation_describe'
19
- autoload :CloudformationDestroy, 'chef/knife/cloudformation_destroy'
20
- autoload :CloudformationEvents, 'chef/knife/cloudformation_events'
21
- autoload :CloudformationExport, 'chef/knife/cloudformation_export'
22
- autoload :CloudformationImport, 'chef/knife/cloudformation_import'
23
- autoload :CloudformationInspect, 'chef/knife/cloudformation_inspect'
24
- autoload :CloudformationList, 'chef/knife/cloudformation_list'
25
- autoload :CloudformationPromote, 'chef/knife/cloudformation_promote'
26
- autoload :CloudformationUpdate, 'chef/knife/cloudformation_update'
27
- autoload :CloudformationValidate, 'chef/knife/cloudformation_validate'
28
- end
29
- end
@@ -1,4 +1,4 @@
1
1
  module KnifeCloudformation
2
2
  # Current library version
3
- VERSION = Gem::Version.new('0.2.24')
3
+ VERSION = Gem::Version.new('0.5.0')
4
4
  end
metadata CHANGED
@@ -1,71 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife-cloudformation
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.24
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chris Roberts
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-02-26 00:00:00.000000000 Z
11
+ date: 2015-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: chef
14
+ name: sfn
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "<"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "<"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
27
- - !ruby/object:Gem::Dependency
28
- name: miasma
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
41
- - !ruby/object:Gem::Dependency
42
- name: net-ssh
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - ">="
46
- - !ruby/object:Gem::Version
47
- version: '0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - ">="
53
- - !ruby/object:Gem::Version
54
- version: '0'
55
- - !ruby/object:Gem::Dependency
56
- name: sparkle_formation
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 0.2.0
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 0.2.0
26
+ version: '1.0'
69
27
  description: Knife tooling for Cloud Formation
70
28
  email: code@chrisroberts.org
71
29
  executables: []
@@ -76,43 +34,23 @@ files:
76
34
  - LICENSE
77
35
  - README.md
78
36
  - knife-cloudformation.gemspec
79
- - lib/chef/knife/cloudformation_create.rb
80
- - lib/chef/knife/cloudformation_describe.rb
81
- - lib/chef/knife/cloudformation_destroy.rb
82
- - lib/chef/knife/cloudformation_events.rb
83
- - lib/chef/knife/cloudformation_export.rb
84
- - lib/chef/knife/cloudformation_import.rb
85
- - lib/chef/knife/cloudformation_inspect.rb
86
- - lib/chef/knife/cloudformation_list.rb
87
- - lib/chef/knife/cloudformation_promote.rb
88
- - lib/chef/knife/cloudformation_update.rb
89
- - lib/chef/knife/cloudformation_validate.rb
90
37
  - lib/knife-cloudformation.rb
91
- - lib/knife-cloudformation/cache.rb
92
- - lib/knife-cloudformation/knife.rb
93
- - lib/knife-cloudformation/knife/base.rb
94
- - lib/knife-cloudformation/knife/stack.rb
95
- - lib/knife-cloudformation/knife/template.rb
96
- - lib/knife-cloudformation/monkey_patch.rb
97
- - lib/knife-cloudformation/monkey_patch/stack.rb
98
- - lib/knife-cloudformation/provider.rb
99
- - lib/knife-cloudformation/utils.rb
100
- - lib/knife-cloudformation/utils/animal_strings.rb
101
- - lib/knife-cloudformation/utils/debug.rb
102
- - lib/knife-cloudformation/utils/json.rb
103
- - lib/knife-cloudformation/utils/object_storage.rb
104
- - lib/knife-cloudformation/utils/output.rb
105
- - lib/knife-cloudformation/utils/path_selector.rb
106
- - lib/knife-cloudformation/utils/ssher.rb
107
- - lib/knife-cloudformation/utils/stack_exporter.rb
108
- - lib/knife-cloudformation/utils/stack_parameter_scrubber.rb
109
- - lib/knife-cloudformation/utils/stack_parameter_validator.rb
110
38
  - lib/knife-cloudformation/version.rb
111
39
  homepage: http://github.com/hw-labs/knife-cloudformation
112
40
  licenses:
113
41
  - Apache-2.0
114
42
  metadata: {}
115
- post_install_message:
43
+ post_install_message: |
44
+ IMPORTANT NOTE: The knife-cloudformation gem is deprecated!
45
+
46
+ Please uninstall the knife-cloudformation gem as it is no longer maintained. The cloudformation
47
+ knife plugin is distributed via the sfn gem which has been automatically installed as a dependency.
48
+
49
+ ---
50
+ gem uninstall knife-cloudformation
51
+ ---
52
+
53
+ Thanks and happy stacking!
116
54
  rdoc_options: []
117
55
  require_paths:
118
56
  - lib
@@ -1,147 +0,0 @@
1
- require 'sparkle_formation'
2
- require 'pathname'
3
- require 'knife-cloudformation'
4
-
5
- class Chef
6
- class Knife
7
- # Cloudformation create command
8
- class CloudformationCreate < Knife
9
-
10
- include KnifeCloudformation::Knife::Base
11
- include KnifeCloudformation::Knife::Template
12
- include KnifeCloudformation::Knife::Stack
13
-
14
- banner 'knife cloudformation create NAME'
15
-
16
- option(:timeout,
17
- :short => '-t MIN',
18
- :long => '--timeout MIN',
19
- :description => 'Set timeout for stack creation',
20
- :proc => lambda {|val|
21
- Chef::Config[:knife][:cloudformation][:options][:timeout_in_minutes] = val
22
- }
23
- )
24
- option(:rollback,
25
- :short => '-R',
26
- :long => '--[no]-rollback',
27
- :description => 'Rollback on stack creation failure',
28
- :boolean => true,
29
- :default => true,
30
- :proc => lambda {|val| Chef::Config[:knife][:cloudformation][:options][:disable_rollback] = !val }
31
- )
32
- option(:capability,
33
- :short => '-C CAPABILITY',
34
- :long => '--capability CAPABILITY',
35
- :description => 'Specify allowed capabilities. Can be used multiple times.',
36
- :proc => lambda {|val|
37
- Chef::Config[:knife][:cloudformation][:options][:capabilities] ||= []
38
- Chef::Config[:knife][:cloudformation][:options][:capabilities].push(val).uniq!
39
- }
40
- )
41
- option(:notifications,
42
- :long => '--notification ARN',
43
- :description => 'Add notification ARN. Can be used multiple times.',
44
- :proc => lambda {|val|
45
- Chef::Config[:knife][:cloudformation][:options][:notification_ARNs] ||= []
46
- Chef::Config[:knife][:cloudformation][:options][:notification_ARNs].push(val).uniq!
47
- }
48
- )
49
- option(:print_only,
50
- :long => '--print-only',
51
- :description => 'Print template and exit'
52
- )
53
- option(:apply_stacks,
54
- :long => '--apply-stack NAME_OR_ID',
55
- :description => 'Autofill parameters using existing stack outputs. Can be used multiple times',
56
- :proc => lambda {|val|
57
- Chef::Config[:knife][:cloudformation][:create] ||= Mash.new
58
- Chef::Config[:knife][:cloudformation][:create][:apply_stacks] ||= []
59
- Chef::Config[:knife][:cloudformation][:create][:apply_stacks].push(val).uniq!
60
- }
61
- )
62
-
63
- # Run the stack creation command
64
- def _run
65
- name = name_args.first
66
- unless(name)
67
- ui.fatal "Formation name must be specified!"
68
- exit 1
69
- end
70
- if(Chef::Config[:knife][:cloudformation][:template])
71
- file = Chef::Config[:knife][:cloudformation][:template]
72
- else
73
- file = load_template_file
74
- nested_stacks_unpack = file.delete('sfn_nested_stack')
75
- end
76
- ui.info "#{ui.color('Cloud Formation:', :bold)} #{ui.color('create', :green)}"
77
- stack_info = "#{ui.color('Name:', :bold)} #{name}"
78
- if(Chef::Config[:knife][:cloudformation][:path])
79
- stack_info << " #{ui.color('Path:', :bold)} #{Chef::Config[:knife][:cloudformation][:file]}"
80
- if(Chef::Config[:knife][:cloudformation][:disable_processing])
81
- stack_info << " #{ui.color('(not pre-processed)', :yellow)}"
82
- end
83
- end
84
-
85
- unless(config[:print_only])
86
- ui.info " -> #{stack_info}"
87
- end
88
-
89
- if(nested_stacks_unpack)
90
-
91
- unpack_nesting(name, file, :create)
92
-
93
- else
94
-
95
- stack = provider.connection.stacks.build(
96
- Chef::Config[:knife][:cloudformation][:options].dup.merge(
97
- :name => name,
98
- :template => file
99
- )
100
- )
101
-
102
- apply_stacks!(stack)
103
- stack.template = KnifeCloudformation::Utils::StackParameterScrubber.scrub!(stack.template)
104
-
105
- if(config[:print_only])
106
- ui.info _format_json(translate_template(stack.template))
107
- return
108
- end
109
-
110
- populate_parameters!(stack.template)
111
- stack.parameters = Chef::Config[:knife][:cloudformation][:options][:parameters]
112
-
113
- stack.template = translate_template(stack.template)
114
- stack.save
115
-
116
- end
117
-
118
- if(stack)
119
- if(Chef::Config[:knife][:cloudformation][:poll])
120
- poll_stack(stack.name)
121
- stack = provider.connection.stacks.get(name)
122
-
123
- if(stack.reload.success?)
124
- ui.info "Stack create complete: #{ui.color('SUCCESS', :green)}"
125
- knife_output = Chef::Knife::CloudformationDescribe.new
126
- knife_output.name_args.push(name)
127
- knife_output.config[:outputs] = true
128
- knife_output.run
129
- else
130
- ui.fatal "Create of new stack #{ui.color(name, :bold)}: #{ui.color('FAILED', :red, :bold)}"
131
- ui.info ""
132
- knife_inspect = Chef::Knife::CloudformationInspect.new
133
- knife_inspect.name_args.push(name)
134
- knife_inspect.config[:instance_failure] = true
135
- knife_inspect.run
136
- exit 1
137
- end
138
- else
139
- ui.warn 'Stack state polling has been disabled.'
140
- ui.info "Stack creation initialized for #{ui.color(name, :green)}"
141
- end
142
- end
143
- end
144
-
145
- end
146
- end
147
- end
@@ -1,99 +0,0 @@
1
- require 'knife-cloudformation'
2
-
3
- class Chef
4
- class Knife
5
- # Cloudformation describe command
6
- class CloudformationDescribe < Knife
7
-
8
- include KnifeCloudformation::Knife::Base
9
-
10
- banner 'knife cloudformation describe NAME'
11
-
12
- option(:resources,
13
- :short => '-r',
14
- :long => '--resources',
15
- :description => 'Display resources for stack'
16
- )
17
- option(:outputs,
18
- :short => '-o',
19
- :long => '--outputs',
20
- :description => 'Display output for stack'
21
- )
22
- option(:attribute,
23
- :short => '-a ATTR',
24
- :long => '--attribute ATTR',
25
- :description => 'Attribute to print. Can be used multiple times.',
26
- :proc => lambda {|val|
27
- Chef::Config[:knife][:cloudformation][:attributes] ||= []
28
- Chef::Config[:knife][:cloudformation][:attributes].push(val).uniq!
29
- }
30
- )
31
- option(:all,
32
- :long => '--all-attributes',
33
- :description => 'Print all attributes'
34
- )
35
-
36
- # information available
37
- unless(defined?(AVAILABLE_DISPLAYS))
38
- AVAILABLE_DISPLAYS = [:resources, :outputs]
39
- end
40
-
41
- # Run the stack describe action
42
- def _run
43
- stack_name = name_args.last
44
- stack = provider.connection.stacks.get(stack_name)
45
- if(stack)
46
- display = [].tap do |to_display|
47
- AVAILABLE_DISPLAYS.each do |display_option|
48
- if(config[display_option])
49
- to_display << display_option
50
- end
51
- end
52
- end
53
- display = AVAILABLE_DISPLAYS.dup if display.empty?
54
- display.each do |display_method|
55
- self.send(display_method, stack)
56
- ui.info ''
57
- end
58
- else
59
- ui.fatal "Failed to find requested stack: #{ui.color(stack_name, :bold, :red)}"
60
- exit -1
61
- end
62
- end
63
-
64
- # Display resources
65
- #
66
- # @param stack [Miasma::Models::Orchestration::Stack]
67
- def resources(stack)
68
- stack_resources = stack.resources.all.sort do |x, y|
69
- y.updated <=> x.updated
70
- end.map do |resource|
71
- Mash.new(resource.attributes)
72
- end
73
- things_output(stack.name, stack_resources, :resources)
74
- end
75
-
76
- # Display outputs
77
- #
78
- # @param stack [Miasma::Models::Orchestration::Stack]
79
- def outputs(stack)
80
- ui.info "Outputs for stack: #{ui.color(stack.name, :bold)}"
81
- unless(stack.outputs.empty?)
82
- stack.outputs.each do |output|
83
- key, value = output.key, output.value
84
- key = snake(key).to_s.split('_').map(&:capitalize).join(' ')
85
- ui.info [' ', ui.color("#{key}:", :bold), value].join(' ')
86
- end
87
- else
88
- ui.info " #{ui.color('No outputs found')}"
89
- end
90
- end
91
-
92
- # @return [Array<String>] default attributes
93
- def default_attributes
94
- %w(updated logical_id type status status_reason)
95
- end
96
-
97
- end
98
- end
99
- end