sfn 3.0.28 → 3.0.30
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/CHANGELOG.md +5 -0
- data/docs/callbacks.md +1 -0
- data/lib/chef/knife/knife_plugin_seed.rb +11 -17
- data/lib/sfn.rb +0 -2
- data/lib/sfn/api_provider.rb +0 -2
- data/lib/sfn/api_provider/google.rb +6 -9
- data/lib/sfn/api_provider/terraform.rb +4 -6
- data/lib/sfn/cache.rb +36 -39
- data/lib/sfn/callback.rb +0 -2
- data/lib/sfn/callback/aws_assume_role.rb +7 -8
- data/lib/sfn/callback/aws_mfa.rb +7 -8
- data/lib/sfn/callback/stack_policy.rb +15 -17
- data/lib/sfn/command.rb +9 -11
- data/lib/sfn/command/conf.rb +7 -10
- data/lib/sfn/command/create.rb +8 -12
- data/lib/sfn/command/describe.rb +6 -8
- data/lib/sfn/command/destroy.rb +8 -10
- data/lib/sfn/command/diff.rb +18 -25
- data/lib/sfn/command/events.rb +15 -16
- data/lib/sfn/command/export.rb +13 -17
- data/lib/sfn/command/graph.rb +11 -13
- data/lib/sfn/command/graph/aws.rb +27 -29
- data/lib/sfn/command/graph/terraform.rb +22 -23
- data/lib/sfn/command/import.rb +13 -16
- data/lib/sfn/command/init.rb +5 -7
- data/lib/sfn/command/inspect.rb +26 -29
- data/lib/sfn/command/lint.rb +10 -12
- data/lib/sfn/command/list.rb +5 -8
- data/lib/sfn/command/print.rb +3 -5
- data/lib/sfn/command/promote.rb +0 -2
- data/lib/sfn/command/update.rb +42 -46
- data/lib/sfn/command/validate.rb +4 -6
- data/lib/sfn/command_module/base.rb +17 -25
- data/lib/sfn/command_module/callbacks.rb +12 -8
- data/lib/sfn/command_module/stack.rb +39 -43
- data/lib/sfn/command_module/template.rb +89 -90
- data/lib/sfn/config.rb +30 -31
- data/lib/sfn/config/conf.rb +1 -3
- data/lib/sfn/config/create.rb +5 -7
- data/lib/sfn/config/describe.rb +3 -5
- data/lib/sfn/config/diff.rb +1 -1
- data/lib/sfn/config/events.rb +6 -8
- data/lib/sfn/config/export.rb +4 -7
- data/lib/sfn/config/graph.rb +4 -6
- data/lib/sfn/config/import.rb +3 -5
- data/lib/sfn/config/init.rb +0 -1
- data/lib/sfn/config/inspect.rb +7 -9
- data/lib/sfn/config/lint.rb +4 -4
- data/lib/sfn/config/list.rb +3 -5
- data/lib/sfn/config/print.rb +3 -5
- data/lib/sfn/config/promote.rb +3 -5
- data/lib/sfn/config/update.rb +10 -12
- data/lib/sfn/config/validate.rb +18 -20
- data/lib/sfn/lint.rb +0 -2
- data/lib/sfn/lint/definition.rb +3 -5
- data/lib/sfn/lint/rule.rb +7 -8
- data/lib/sfn/lint/rule_set.rb +11 -20
- data/lib/sfn/monkey_patch/stack.rb +32 -34
- data/lib/sfn/monkey_patch/stack/azure.rb +0 -1
- data/lib/sfn/monkey_patch/stack/google.rb +15 -16
- data/lib/sfn/planner.rb +1 -3
- data/lib/sfn/planner/aws.rb +82 -89
- data/lib/sfn/provider.rb +21 -23
- data/lib/sfn/utils.rb +0 -2
- data/lib/sfn/utils/debug.rb +1 -2
- data/lib/sfn/utils/json.rb +3 -2
- data/lib/sfn/utils/object_storage.rb +1 -2
- data/lib/sfn/utils/output.rb +8 -9
- data/lib/sfn/utils/path_selector.rb +9 -10
- data/lib/sfn/utils/ssher.rb +2 -3
- data/lib/sfn/utils/stack_exporter.rb +20 -21
- data/lib/sfn/utils/stack_parameter_scrubber.rb +6 -7
- data/lib/sfn/utils/stack_parameter_validator.rb +14 -16
- data/lib/sfn/version.rb +1 -1
- data/sfn.gemspec +1 -1
- metadata +8 -8
@@ -6,11 +6,11 @@ module Sfn
|
|
6
6
|
module StackParameterScrubber
|
7
7
|
|
8
8
|
# Validate attributes within Parameter blocks
|
9
|
-
ALLOWED_PARAMETER_ATTRIBUTES =
|
10
|
-
Type Default NoEcho AllowedValues AllowedPattern
|
11
|
-
MaxLength MinLength MaxValue MinValue Description
|
12
|
-
ConstraintDescription
|
13
|
-
|
9
|
+
ALLOWED_PARAMETER_ATTRIBUTES = [
|
10
|
+
'Type', 'Default', 'NoEcho', 'AllowedValues', 'AllowedPattern',
|
11
|
+
'MaxLength', 'MinLength', 'MaxValue', 'MinValue', 'Description',
|
12
|
+
'ConstraintDescription',
|
13
|
+
]
|
14
14
|
|
15
15
|
# Clean the parameters of the template
|
16
16
|
#
|
@@ -18,7 +18,7 @@ module Sfn
|
|
18
18
|
# @return [Hash] template
|
19
19
|
def parameter_scrub!(template)
|
20
20
|
parameters = template['Parameters']
|
21
|
-
if
|
21
|
+
if parameters
|
22
22
|
parameters.each do |name, options|
|
23
23
|
options.delete_if do |attribute, value|
|
24
24
|
!ALLOWED_PARAMETER_ATTRIBUTES.include?(attribute)
|
@@ -28,7 +28,6 @@ module Sfn
|
|
28
28
|
end
|
29
29
|
template
|
30
30
|
end
|
31
|
-
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -5,7 +5,6 @@ module Sfn
|
|
5
5
|
|
6
6
|
# Helper utility for validating stack parameters
|
7
7
|
module StackParameterValidator
|
8
|
-
|
9
8
|
include Bogo::AnimalStrings
|
10
9
|
|
11
10
|
# HOT parameter mapping
|
@@ -15,19 +14,19 @@ module Sfn
|
|
15
14
|
'MaxValue' => [:range, :max],
|
16
15
|
'MinValue' => [:range, :min],
|
17
16
|
'AllowedValues' => [:allowed_values],
|
18
|
-
'AllowedPattern' => [:allowed_pattern]
|
17
|
+
'AllowedPattern' => [:allowed_pattern],
|
19
18
|
}
|
20
19
|
|
21
20
|
# GCDM parameter mapping
|
22
21
|
GOOGLE_CONSTRAINT_MAP = {
|
23
22
|
'AllowedPattern' => [:pattern],
|
24
23
|
'MaxValue' => [:maximum],
|
25
|
-
'MinValue' => [:minimum]
|
24
|
+
'MinValue' => [:minimum],
|
26
25
|
}
|
27
26
|
|
28
27
|
# Parameter mapping identifier and content
|
29
28
|
PARAMETER_DEFINITION_MAP = {
|
30
|
-
'constraints' => HEAT_CONSTRAINT_MAP
|
29
|
+
'constraints' => HEAT_CONSTRAINT_MAP,
|
31
30
|
}
|
32
31
|
|
33
32
|
# Supported parameter validations
|
@@ -37,7 +36,7 @@ module Sfn
|
|
37
36
|
'max_length',
|
38
37
|
'min_length',
|
39
38
|
'max_value',
|
40
|
-
'min_value'
|
39
|
+
'min_value',
|
41
40
|
]
|
42
41
|
|
43
42
|
# Validate a parameters
|
@@ -59,7 +58,7 @@ module Sfn
|
|
59
58
|
valid_key = parameter_definition.keys.detect do |pdef_key|
|
60
59
|
pdef_key.downcase.gsub('_', '') == validator_key.downcase.gsub('_', '')
|
61
60
|
end
|
62
|
-
if
|
61
|
+
if valid_key
|
63
62
|
value_list.map do |value|
|
64
63
|
res = self.send(validator_key, value, parameter_definition[valid_key])
|
65
64
|
res == true ? true : [validator_key, res]
|
@@ -68,7 +67,7 @@ module Sfn
|
|
68
67
|
true
|
69
68
|
end
|
70
69
|
end.flatten(1)
|
71
|
-
result.delete_if{|x| x == true}
|
70
|
+
result.delete_if { |x| x == true }
|
72
71
|
result.empty? ? true : result
|
73
72
|
end
|
74
73
|
|
@@ -81,10 +80,10 @@ module Sfn
|
|
81
80
|
def reformat_definition(pdef)
|
82
81
|
new_def = pdef
|
83
82
|
PARAMETER_DEFINITION_MAP.each do |ident, mapping|
|
84
|
-
if
|
83
|
+
if pdef[ident]
|
85
84
|
new_def = Smash.new
|
86
85
|
mapping.each do |new_key, current_path|
|
87
|
-
if
|
86
|
+
if pdef.get(*current_path)
|
88
87
|
new_def[new_key] = pdef.get(*current_path)
|
89
88
|
end
|
90
89
|
end
|
@@ -100,7 +99,7 @@ module Sfn
|
|
100
99
|
# @option pdef [Array<String>] 'AllowedValues'
|
101
100
|
# @return [TrueClass, String]
|
102
101
|
def allowed_values(value, pdef)
|
103
|
-
if
|
102
|
+
if pdef.include?(value)
|
104
103
|
true
|
105
104
|
else
|
106
105
|
"Not an allowed value: #{pdef.join(', ')}"
|
@@ -114,7 +113,7 @@ module Sfn
|
|
114
113
|
# @option pdef [String] 'AllowedPattern'
|
115
114
|
# @return [TrueClass, String]
|
116
115
|
def allowed_pattern(value, pdef)
|
117
|
-
if
|
116
|
+
if value.match(%r{#{pdef}})
|
118
117
|
true
|
119
118
|
else
|
120
119
|
"Not a valid pattern. Must match: #{pdef}"
|
@@ -128,7 +127,7 @@ module Sfn
|
|
128
127
|
# @option pdef [String] 'MaxLength'
|
129
128
|
# @return [TrueClass, String]
|
130
129
|
def max_length(value, pdef)
|
131
|
-
if
|
130
|
+
if value.length <= pdef.to_i
|
132
131
|
true
|
133
132
|
else
|
134
133
|
"Value must not exceed #{pdef} characters"
|
@@ -142,7 +141,7 @@ module Sfn
|
|
142
141
|
# @option pdef [String] 'MinLength'
|
143
142
|
# @return [TrueClass, String]
|
144
143
|
def min_length(value, pdef)
|
145
|
-
if
|
144
|
+
if value.length >= pdef.to_i
|
146
145
|
true
|
147
146
|
else
|
148
147
|
"Value must be at least #{pdef} characters"
|
@@ -156,7 +155,7 @@ module Sfn
|
|
156
155
|
# @option pdef [String] 'MaxValue'
|
157
156
|
# @return [TrueClass, String]
|
158
157
|
def max_value(value, pdef)
|
159
|
-
if
|
158
|
+
if value.to_i <= pdef.to_i
|
160
159
|
true
|
161
160
|
else
|
162
161
|
"Value must not be greater than #{pdef}"
|
@@ -170,7 +169,7 @@ module Sfn
|
|
170
169
|
# @option pdef [String] 'MinValue'
|
171
170
|
# @return [TrueClass, String]
|
172
171
|
def min_value(value, pdef)
|
173
|
-
if
|
172
|
+
if value.to_i >= pdef.to_i
|
174
173
|
true
|
175
174
|
else
|
176
175
|
"Value must not be less than #{pdef}"
|
@@ -185,7 +184,6 @@ module Sfn
|
|
185
184
|
type = type.downcase
|
186
185
|
type.start_with?('comma') || type.start_with?('list<')
|
187
186
|
end
|
188
|
-
|
189
187
|
end
|
190
188
|
end
|
191
189
|
end
|
data/lib/sfn/version.rb
CHANGED
data/sfn.gemspec
CHANGED
@@ -27,7 +27,7 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_development_dependency 'rake', '~> 10'
|
28
28
|
s.add_development_dependency 'minitest'
|
29
29
|
s.add_development_dependency 'rspec', '~> 3.5'
|
30
|
-
s.add_development_dependency '
|
30
|
+
s.add_development_dependency 'rufo'
|
31
31
|
s.add_development_dependency 'mocha'
|
32
32
|
s.add_development_dependency 'yard'
|
33
33
|
s.executables << 'sfn'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sfn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.30
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Roberts
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-01-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bogo-cli
|
@@ -309,19 +309,19 @@ dependencies:
|
|
309
309
|
- !ruby/object:Gem::Version
|
310
310
|
version: '3.5'
|
311
311
|
- !ruby/object:Gem::Dependency
|
312
|
-
name:
|
312
|
+
name: rufo
|
313
313
|
requirement: !ruby/object:Gem::Requirement
|
314
314
|
requirements:
|
315
|
-
- -
|
315
|
+
- - ">="
|
316
316
|
- !ruby/object:Gem::Version
|
317
|
-
version: 0
|
317
|
+
version: '0'
|
318
318
|
type: :development
|
319
319
|
prerelease: false
|
320
320
|
version_requirements: !ruby/object:Gem::Requirement
|
321
321
|
requirements:
|
322
|
-
- -
|
322
|
+
- - ">="
|
323
323
|
- !ruby/object:Gem::Version
|
324
|
-
version: 0
|
324
|
+
version: '0'
|
325
325
|
- !ruby/object:Gem::Dependency
|
326
326
|
name: mocha
|
327
327
|
requirement: !ruby/object:Gem::Requirement
|
@@ -487,7 +487,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
487
487
|
version: '0'
|
488
488
|
requirements: []
|
489
489
|
rubyforge_project:
|
490
|
-
rubygems_version: 2.
|
490
|
+
rubygems_version: 2.7.3
|
491
491
|
signing_key:
|
492
492
|
specification_version: 4
|
493
493
|
summary: SparkleFormation CLI
|