knife-cloudformation 0.1.22 → 0.2.0
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 +7 -0
- data/CHANGELOG.md +6 -0
- data/README.md +56 -2
- data/knife-cloudformation.gemspec +4 -7
- data/lib/chef/knife/cloudformation_create.rb +105 -245
- data/lib/chef/knife/cloudformation_describe.rb +50 -26
- data/lib/chef/knife/cloudformation_destroy.rb +17 -18
- data/lib/chef/knife/cloudformation_events.rb +48 -14
- data/lib/chef/knife/cloudformation_export.rb +117 -34
- data/lib/chef/knife/cloudformation_import.rb +124 -18
- data/lib/chef/knife/cloudformation_inspect.rb +159 -71
- data/lib/chef/knife/cloudformation_list.rb +20 -24
- data/lib/chef/knife/cloudformation_promote.rb +40 -0
- data/lib/chef/knife/cloudformation_update.rb +132 -15
- data/lib/chef/knife/cloudformation_validate.rb +35 -0
- data/lib/knife-cloudformation.rb +28 -0
- data/lib/knife-cloudformation/cache.rb +213 -35
- data/lib/knife-cloudformation/knife.rb +9 -0
- data/lib/knife-cloudformation/knife/base.rb +179 -0
- data/lib/knife-cloudformation/knife/stack.rb +94 -0
- data/lib/knife-cloudformation/knife/template.rb +174 -0
- data/lib/knife-cloudformation/monkey_patch.rb +8 -0
- data/lib/knife-cloudformation/monkey_patch/stack.rb +195 -0
- data/lib/knife-cloudformation/provider.rb +225 -0
- data/lib/knife-cloudformation/utils.rb +18 -98
- data/lib/knife-cloudformation/utils/animal_strings.rb +28 -0
- data/lib/knife-cloudformation/utils/debug.rb +31 -0
- data/lib/knife-cloudformation/utils/json.rb +64 -0
- data/lib/knife-cloudformation/utils/object_storage.rb +28 -0
- data/lib/knife-cloudformation/utils/output.rb +79 -0
- data/lib/knife-cloudformation/utils/path_selector.rb +99 -0
- data/lib/knife-cloudformation/utils/ssher.rb +29 -0
- data/lib/knife-cloudformation/utils/stack_exporter.rb +271 -0
- data/lib/knife-cloudformation/utils/stack_parameter_scrubber.rb +35 -0
- data/lib/knife-cloudformation/utils/stack_parameter_validator.rb +124 -0
- data/lib/knife-cloudformation/version.rb +2 -4
- metadata +47 -94
- data/Gemfile +0 -3
- data/Gemfile.lock +0 -90
- data/knife-cloudformation-0.1.20.gem +0 -0
- data/lib/knife-cloudformation/aws_commons.rb +0 -267
- data/lib/knife-cloudformation/aws_commons/stack.rb +0 -435
- data/lib/knife-cloudformation/aws_commons/stack_parameter_validator.rb +0 -79
- data/lib/knife-cloudformation/cloudformation_base.rb +0 -168
- data/lib/knife-cloudformation/export.rb +0 -174
@@ -0,0 +1,35 @@
|
|
1
|
+
require 'knife-cloudformation'
|
2
|
+
|
3
|
+
module KnifeCloudformation
|
4
|
+
module Utils
|
5
|
+
# Helper for scrubbing stack parameters
|
6
|
+
class StackParameterScrubber
|
7
|
+
|
8
|
+
class << self
|
9
|
+
|
10
|
+
# Validate attributes within Parameter blocks
|
11
|
+
ALLOWED_PARAMETER_ATTRIBUTES = %w(
|
12
|
+
Type Default NoEcho AllowedValues AllowedPattern
|
13
|
+
MaxLength MinLength MaxValue MinValue Description
|
14
|
+
ConstraintDescription
|
15
|
+
)
|
16
|
+
|
17
|
+
# Clean the parameters of the template
|
18
|
+
#
|
19
|
+
# @param template [Hash]
|
20
|
+
# @return [Hash] template
|
21
|
+
def scrub!(template)
|
22
|
+
parameters = template.fetch('Parameters', {})
|
23
|
+
parameters.each do |name, options|
|
24
|
+
options.delete_if do |attribute, value|
|
25
|
+
!ALLOWED_PARAMETER_ATTRIBUTES.include?(attribute)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
template['Parameters'] = parameters
|
29
|
+
template
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,124 @@
|
|
1
|
+
require 'knife-cloudformation'
|
2
|
+
|
3
|
+
module KnifeCloudformation
|
4
|
+
module Utils
|
5
|
+
|
6
|
+
# Helper utility for validating stack parameters
|
7
|
+
class StackParameterValidator
|
8
|
+
class << self
|
9
|
+
|
10
|
+
include KnifeCloudformation::Utils::AnimalStrings
|
11
|
+
|
12
|
+
# Validate a parameters
|
13
|
+
#
|
14
|
+
# @param value [Object] value for parameter
|
15
|
+
# @param parameter_definition [Hash]
|
16
|
+
# @option parameter_definition [Array<String>] 'AllowedValues'
|
17
|
+
# @option parameter_definition [String] 'AllowedPattern'
|
18
|
+
# @option parameter_definition [String, Integer] 'MaxLength'
|
19
|
+
# @option parameter_definition [String, Integer] 'MinLength'
|
20
|
+
# @option parameter_definition [String, Integer] 'MaxValue'
|
21
|
+
# @option parameter_definition [String, Integer] 'MinValue'
|
22
|
+
# @return [TrueClass, Array<String>] true if valid. array of string errors if invalid
|
23
|
+
def validate(value, parameter_definition)
|
24
|
+
return [[:blank, 'Value cannot be blank']] if value.to_s.strip.empty?
|
25
|
+
result = %w(AllowedValues AllowedPattern MaxLength MinLength MaxValue MinValue).map do |key|
|
26
|
+
if(parameter_definition[key])
|
27
|
+
res = self.send(snake(key), value, parameter_definition)
|
28
|
+
res == true ? true : [snake(key), res]
|
29
|
+
else
|
30
|
+
true
|
31
|
+
end
|
32
|
+
end
|
33
|
+
result.delete_if{|x| x == true}
|
34
|
+
result.empty? ? true : result
|
35
|
+
end
|
36
|
+
|
37
|
+
# Parameter is within allowed values
|
38
|
+
#
|
39
|
+
# @param value [String]
|
40
|
+
# @param pdef [Hash] parameter definition
|
41
|
+
# @option pdef [Array<String>] 'AllowedValues'
|
42
|
+
# @return [TrueClass, String]
|
43
|
+
def allowed_values(value, pdef)
|
44
|
+
if(pdef['AllowedValues'].include?(value))
|
45
|
+
true
|
46
|
+
else
|
47
|
+
"Not an allowed value: #{pdef['AllowedValues'].join(', ')}"
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
# Parameter matches allowed pattern
|
52
|
+
#
|
53
|
+
# @param value [String]
|
54
|
+
# @param pdef [Hash] parameter definition
|
55
|
+
# @option pdef [String] 'AllowedPattern'
|
56
|
+
# @return [TrueClass, String]
|
57
|
+
def allowed_pattern(value, pdef)
|
58
|
+
if(value.match(/#{pdef['AllowedPattern']}/))
|
59
|
+
true
|
60
|
+
else
|
61
|
+
"Not a valid pattern. Must match: #{pdef['AllowedPattern']}"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
# Parameter length is less than or equal to max length
|
66
|
+
#
|
67
|
+
# @param value [String, Integer]
|
68
|
+
# @param pdef [Hash] parameter definition
|
69
|
+
# @option pdef [String] 'MaxLength'
|
70
|
+
# @return [TrueClass, String]
|
71
|
+
def max_length(value, pdef)
|
72
|
+
if(value.length <= pdef['MaxLength'].to_i)
|
73
|
+
true
|
74
|
+
else
|
75
|
+
"Value must not exceed #{pdef['MaxLength']} characters"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
# Parameter length is greater than or equal to min length
|
80
|
+
#
|
81
|
+
# @param value [String]
|
82
|
+
# @param pdef [Hash] parameter definition
|
83
|
+
# @option pdef [String] 'MinLength'
|
84
|
+
# @return [TrueClass, String]
|
85
|
+
def min_length(value, pdef)
|
86
|
+
if(value.length >= pdef['MinLength'].to_i)
|
87
|
+
true
|
88
|
+
else
|
89
|
+
"Value must be at least #{pdef['MinLength']} characters"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
# Parameter value is less than or equal to max value
|
94
|
+
#
|
95
|
+
# @param value [String]
|
96
|
+
# @param pdef [Hash] parameter definition
|
97
|
+
# @option pdef [String] 'MaxValue'
|
98
|
+
# @return [TrueClass, String]
|
99
|
+
def max_value(value, pdef)
|
100
|
+
if(value.to_i <= pdef['MaxValue'].to_i)
|
101
|
+
true
|
102
|
+
else
|
103
|
+
"Value must not be greater than #{pdef['MaxValue']}"
|
104
|
+
end
|
105
|
+
end
|
106
|
+
|
107
|
+
# Parameter value is greater than or equal to min value
|
108
|
+
#
|
109
|
+
# @param value [String]
|
110
|
+
# @param pdef [Hash] parameter definition
|
111
|
+
# @option pdef [String] 'MinValue'
|
112
|
+
# @return [TrueClass, String]
|
113
|
+
def min_value(value, pdef)
|
114
|
+
if(value.to_i >= pdef['MinValue'].to_i)
|
115
|
+
true
|
116
|
+
else
|
117
|
+
"Value must not be less than #{pdef['MinValue']}"
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
end
|
122
|
+
end
|
123
|
+
end
|
124
|
+
end
|
metadata
CHANGED
@@ -1,181 +1,134 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knife-cloudformation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
5
|
-
prerelease:
|
4
|
+
version: 0.2.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Chris Roberts
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date:
|
11
|
+
date: 2014-11-19 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: chef
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - ">="
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
|
-
name:
|
28
|
+
name: miasma
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
36
|
-
- !ruby/object:Gem::Version
|
37
|
-
version: '1.17'
|
38
|
-
type: :runtime
|
39
|
-
prerelease: false
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version: '1.17'
|
46
|
-
- !ruby/object:Gem::Dependency
|
47
|
-
name: unf
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
|
-
requirements:
|
51
|
-
- - ! '>='
|
31
|
+
- - ">="
|
52
32
|
- !ruby/object:Gem::Version
|
53
33
|
version: '0'
|
54
34
|
type: :runtime
|
55
35
|
prerelease: false
|
56
36
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
37
|
requirements:
|
59
|
-
- -
|
38
|
+
- - ">="
|
60
39
|
- !ruby/object:Gem::Version
|
61
40
|
version: '0'
|
62
41
|
- !ruby/object:Gem::Dependency
|
63
|
-
name: net-
|
42
|
+
name: net-ssh
|
64
43
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
44
|
requirements:
|
67
|
-
- -
|
45
|
+
- - ">="
|
68
46
|
- !ruby/object:Gem::Version
|
69
47
|
version: '0'
|
70
48
|
type: :runtime
|
71
49
|
prerelease: false
|
72
50
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
51
|
requirements:
|
75
|
-
- -
|
52
|
+
- - ">="
|
76
53
|
- !ruby/object:Gem::Version
|
77
54
|
version: '0'
|
78
55
|
- !ruby/object:Gem::Dependency
|
79
56
|
name: sparkle_formation
|
80
57
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
|
-
requirements:
|
83
|
-
- - ~>
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: 0.1.2
|
86
|
-
type: :runtime
|
87
|
-
prerelease: false
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: 0.1.2
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: redis-objects
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
58
|
requirements:
|
99
|
-
- -
|
59
|
+
- - "~>"
|
100
60
|
- !ruby/object:Gem::Version
|
101
|
-
version:
|
61
|
+
version: 0.2.0
|
102
62
|
type: :runtime
|
103
63
|
prerelease: false
|
104
64
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ! '>='
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
version: '0'
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: attribute_struct
|
112
|
-
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
65
|
requirements:
|
115
|
-
- - ~>
|
66
|
+
- - "~>"
|
116
67
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0.
|
118
|
-
type: :runtime
|
119
|
-
prerelease: false
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: 0.1.8
|
68
|
+
version: 0.2.0
|
126
69
|
description: Knife tooling for Cloud Formation
|
127
70
|
email: chrisroberts.code@gmail.com
|
128
71
|
executables: []
|
129
72
|
extensions: []
|
130
73
|
extra_rdoc_files: []
|
131
74
|
files:
|
132
|
-
-
|
133
|
-
-
|
75
|
+
- CHANGELOG.md
|
76
|
+
- README.md
|
77
|
+
- knife-cloudformation.gemspec
|
78
|
+
- lib/chef/knife/cloudformation_create.rb
|
134
79
|
- lib/chef/knife/cloudformation_describe.rb
|
80
|
+
- lib/chef/knife/cloudformation_destroy.rb
|
81
|
+
- lib/chef/knife/cloudformation_events.rb
|
135
82
|
- lib/chef/knife/cloudformation_export.rb
|
83
|
+
- lib/chef/knife/cloudformation_import.rb
|
84
|
+
- lib/chef/knife/cloudformation_inspect.rb
|
136
85
|
- lib/chef/knife/cloudformation_list.rb
|
137
|
-
- lib/chef/knife/
|
86
|
+
- lib/chef/knife/cloudformation_promote.rb
|
138
87
|
- lib/chef/knife/cloudformation_update.rb
|
139
|
-
- lib/chef/knife/
|
140
|
-
- lib/chef/knife/cloudformation_import.rb
|
88
|
+
- lib/chef/knife/cloudformation_validate.rb
|
141
89
|
- lib/knife-cloudformation.rb
|
142
|
-
- lib/knife-cloudformation/cloudformation_base.rb
|
143
|
-
- lib/knife-cloudformation/version.rb
|
144
|
-
- lib/knife-cloudformation/export.rb
|
145
|
-
- lib/knife-cloudformation/aws_commons.rb
|
146
90
|
- lib/knife-cloudformation/cache.rb
|
91
|
+
- lib/knife-cloudformation/knife.rb
|
92
|
+
- lib/knife-cloudformation/knife/base.rb
|
93
|
+
- lib/knife-cloudformation/knife/stack.rb
|
94
|
+
- lib/knife-cloudformation/knife/template.rb
|
95
|
+
- lib/knife-cloudformation/monkey_patch.rb
|
96
|
+
- lib/knife-cloudformation/monkey_patch/stack.rb
|
97
|
+
- lib/knife-cloudformation/provider.rb
|
147
98
|
- lib/knife-cloudformation/utils.rb
|
148
|
-
- lib/knife-cloudformation/
|
149
|
-
- lib/knife-cloudformation/
|
150
|
-
-
|
151
|
-
-
|
152
|
-
- knife-cloudformation.
|
153
|
-
- knife-cloudformation
|
154
|
-
-
|
155
|
-
-
|
99
|
+
- lib/knife-cloudformation/utils/animal_strings.rb
|
100
|
+
- lib/knife-cloudformation/utils/debug.rb
|
101
|
+
- lib/knife-cloudformation/utils/json.rb
|
102
|
+
- lib/knife-cloudformation/utils/object_storage.rb
|
103
|
+
- lib/knife-cloudformation/utils/output.rb
|
104
|
+
- lib/knife-cloudformation/utils/path_selector.rb
|
105
|
+
- lib/knife-cloudformation/utils/ssher.rb
|
106
|
+
- lib/knife-cloudformation/utils/stack_exporter.rb
|
107
|
+
- lib/knife-cloudformation/utils/stack_parameter_scrubber.rb
|
108
|
+
- lib/knife-cloudformation/utils/stack_parameter_validator.rb
|
109
|
+
- lib/knife-cloudformation/version.rb
|
156
110
|
homepage: http://github.com/heavywater/knife-cloudformation
|
157
111
|
licenses: []
|
112
|
+
metadata: {}
|
158
113
|
post_install_message:
|
159
114
|
rdoc_options: []
|
160
115
|
require_paths:
|
161
116
|
- lib
|
162
117
|
required_ruby_version: !ruby/object:Gem::Requirement
|
163
|
-
none: false
|
164
118
|
requirements:
|
165
|
-
- -
|
119
|
+
- - ">="
|
166
120
|
- !ruby/object:Gem::Version
|
167
121
|
version: '0'
|
168
122
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
169
|
-
none: false
|
170
123
|
requirements:
|
171
|
-
- -
|
124
|
+
- - ">="
|
172
125
|
- !ruby/object:Gem::Version
|
173
126
|
version: '0'
|
174
127
|
requirements: []
|
175
128
|
rubyforge_project:
|
176
|
-
rubygems_version:
|
129
|
+
rubygems_version: 2.2.2
|
177
130
|
signing_key:
|
178
|
-
specification_version:
|
131
|
+
specification_version: 4
|
179
132
|
summary: Knife tooling for Cloud Formation
|
180
133
|
test_files: []
|
181
134
|
has_rdoc:
|
data/Gemfile
DELETED
data/Gemfile.lock
DELETED
@@ -1,90 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
knife-cloudformation (0.1.9)
|
5
|
-
attribute_struct (~> 0.1.6)
|
6
|
-
chef
|
7
|
-
fog (~> 1.15)
|
8
|
-
net-sftp
|
9
|
-
redis-objects
|
10
|
-
|
11
|
-
GEM
|
12
|
-
remote: https://rubygems.org/
|
13
|
-
specs:
|
14
|
-
attribute_struct (0.1.6)
|
15
|
-
hashie (>= 2.0.0)
|
16
|
-
builder (3.2.2)
|
17
|
-
chef (11.6.0)
|
18
|
-
erubis
|
19
|
-
highline (>= 1.6.9)
|
20
|
-
json (>= 1.4.4, <= 1.7.7)
|
21
|
-
mixlib-authentication (>= 1.3.0)
|
22
|
-
mixlib-cli (~> 1.3.0)
|
23
|
-
mixlib-config (>= 1.1.2)
|
24
|
-
mixlib-log (>= 1.3.0)
|
25
|
-
mixlib-shellout
|
26
|
-
net-ssh (~> 2.6)
|
27
|
-
net-ssh-multi (~> 1.1.0)
|
28
|
-
ohai (>= 0.6.0)
|
29
|
-
rest-client (>= 1.0.4, < 1.7.0)
|
30
|
-
yajl-ruby (~> 1.1)
|
31
|
-
erubis (2.7.0)
|
32
|
-
excon (0.25.3)
|
33
|
-
fog (1.15.0)
|
34
|
-
builder
|
35
|
-
excon (~> 0.25.0)
|
36
|
-
formatador (~> 0.2.0)
|
37
|
-
mime-types
|
38
|
-
multi_json (~> 1.0)
|
39
|
-
net-scp (~> 1.1)
|
40
|
-
net-ssh (>= 2.1.3)
|
41
|
-
nokogiri (~> 1.5)
|
42
|
-
ruby-hmac
|
43
|
-
formatador (0.2.4)
|
44
|
-
hashie (2.0.5)
|
45
|
-
highline (1.6.19)
|
46
|
-
ipaddress (0.8.0)
|
47
|
-
json (1.7.7)
|
48
|
-
mime-types (1.25)
|
49
|
-
mini_portile (0.5.1)
|
50
|
-
mixlib-authentication (1.3.0)
|
51
|
-
mixlib-log
|
52
|
-
mixlib-cli (1.3.0)
|
53
|
-
mixlib-config (2.0.0)
|
54
|
-
mixlib-log (1.6.0)
|
55
|
-
mixlib-shellout (1.2.0)
|
56
|
-
multi_json (1.8.0)
|
57
|
-
net-scp (1.1.2)
|
58
|
-
net-ssh (>= 2.6.5)
|
59
|
-
net-sftp (2.1.2)
|
60
|
-
net-ssh (>= 2.6.5)
|
61
|
-
net-ssh (2.7.0)
|
62
|
-
net-ssh-gateway (1.2.0)
|
63
|
-
net-ssh (>= 2.6.5)
|
64
|
-
net-ssh-multi (1.1)
|
65
|
-
net-ssh (>= 2.1.4)
|
66
|
-
net-ssh-gateway (>= 0.99.0)
|
67
|
-
nokogiri (1.6.0)
|
68
|
-
mini_portile (~> 0.5.0)
|
69
|
-
ohai (6.18.0)
|
70
|
-
ipaddress
|
71
|
-
mixlib-cli
|
72
|
-
mixlib-config
|
73
|
-
mixlib-log
|
74
|
-
mixlib-shellout
|
75
|
-
systemu
|
76
|
-
yajl-ruby
|
77
|
-
redis (3.0.5)
|
78
|
-
redis-objects (0.7.0)
|
79
|
-
redis (>= 3.0.2)
|
80
|
-
rest-client (1.6.7)
|
81
|
-
mime-types (>= 1.16)
|
82
|
-
ruby-hmac (0.4.0)
|
83
|
-
systemu (2.5.2)
|
84
|
-
yajl-ruby (1.1.0)
|
85
|
-
|
86
|
-
PLATFORMS
|
87
|
-
ruby
|
88
|
-
|
89
|
-
DEPENDENCIES
|
90
|
-
knife-cloudformation!
|