ufo 6.1.0 → 6.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/lib/ufo/cfn/stack/builder/resources/listener_ssl.rb +2 -2
- data/lib/ufo/cfn/stack/vars.rb +2 -1
- data/lib/ufo/cli/help.rb +0 -3
- data/lib/ufo/config.rb +2 -4
- data/lib/ufo/core.rb +2 -5
- data/lib/ufo/task_definition/helpers/acm.rb +12 -1
- data/lib/ufo/task_definition/helpers/ecr.rb +2 -7
- data/lib/ufo/task_definition/helpers/stack_output.rb +8 -5
- data/lib/ufo/task_definition/helpers/waf.rb +2 -8
- data/lib/ufo/utils/call_line.rb +1 -2
- data/lib/ufo/utils/squeezer.rb +3 -1
- data/lib/ufo/version.rb +1 -1
- data/spec/ufo/utils/squeezer_spec.rb +21 -0
- data/ufo.gemspec +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 881d674019c976e4c8cae9030f69bd2125e59c7af970a1fa2005dcbfb77a4887
|
4
|
+
data.tar.gz: 5c3e8f73e200390396c99aa292f949f5c0a7b0e457bab47e2b88dbc583adc0fa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7eaca7eaa3999ce52dd4087dd2bd7862156f34c59443fcf06140f50356beb50237c4dea35d2dc68a1171576e17529c18144e5c97bc6aa4da4ea1edfa3b9411ef
|
7
|
+
data.tar.gz: 820645713455edf1d3e7fd242c68c21f32267f6eb031c67dd9236578d93c56e0a616750170f202ab27f32c86a0093a673fa5e7321c800b3d82121f38f156b29f
|
data/CHANGELOG.md
CHANGED
@@ -3,6 +3,21 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
This project *tries* to adhere to [Semantic Versioning](http://semver.org/), even before v1.0.
|
5
5
|
|
6
|
+
## [6.1.3] - 2022-03-14
|
7
|
+
- [#149](https://github.com/tongueroo/ufo/pull/149) stack_output helper improve message when stack not found
|
8
|
+
|
9
|
+
## [6.1.2] - 2022-03-14
|
10
|
+
- [#148](https://github.com/tongueroo/ufo/pull/148) Acm cert and user messaging improvements with config
|
11
|
+
- acm_cert helper improvements: warn when not found and only create ssl listener if cert is found
|
12
|
+
- improve squeezer: prevent infinite loop for edge case when data is [nil]
|
13
|
+
- messaging improvements: provide exact line of context of the config with the issue
|
14
|
+
- update dsl_evaluator dependency to at least 0.3.0
|
15
|
+
|
16
|
+
## [6.1.1] - 2022-03-14
|
17
|
+
- [#146](https://github.com/tongueroo/ufo/pull/146) dont set default vpc explicitly, instead use implicit setting
|
18
|
+
- [#147](https://github.com/tongueroo/ufo/pull/147) explicitly set default vpc when not set cloudformation resources expect it
|
19
|
+
- clean up debugging puts in cli help
|
20
|
+
|
6
21
|
## [6.1.0] - 2022-03-11
|
7
22
|
- [#136](https://github.com/tongueroo/ufo/pull/136) ufo central: dont load config
|
8
23
|
- [#137](https://github.com/tongueroo/ufo/pull/137) ufo new boot_hook generator
|
@@ -27,11 +27,11 @@ class Ufo::Cfn::Stack::Builder::Resources
|
|
27
27
|
# nil on purpose
|
28
28
|
def certificates
|
29
29
|
ssl = Ufo.config.elb.ssl
|
30
|
-
normalize(ssl.certificates)
|
30
|
+
normalize(ssl.certificates) if ssl.certificates
|
31
31
|
end
|
32
32
|
|
33
33
|
def normalize(*certs)
|
34
|
-
certs = certs.flatten
|
34
|
+
certs = certs.flatten.compact
|
35
35
|
certs.map do |cert|
|
36
36
|
if cert.is_a?(String)
|
37
37
|
{CertificateArn: cert}
|
data/lib/ufo/cfn/stack/vars.rb
CHANGED
data/lib/ufo/cli/help.rb
CHANGED
@@ -18,13 +18,10 @@ class Ufo::CLI
|
|
18
18
|
list.sort! { |a, b| a[0] <=> b[0] }
|
19
19
|
filter = Proc.new do |command, desc|
|
20
20
|
command = command.sub(/ --.*/,'')
|
21
|
-
puts "command #{command.inspect}".color(:yellow)
|
22
21
|
detected = main_commands.detect do |c|
|
23
22
|
expr = "^ufo #{c}$"
|
24
|
-
puts "expr #{expr}"
|
25
23
|
command =~ Regexp.new(expr)
|
26
24
|
end
|
27
|
-
puts "detected #{detected.inspect}"
|
28
25
|
detected
|
29
26
|
end
|
30
27
|
main = list.select(&filter)
|
data/lib/ufo/config.rb
CHANGED
@@ -187,14 +187,12 @@ module Ufo
|
|
187
187
|
add_ext!(paths)
|
188
188
|
end
|
189
189
|
|
190
|
-
|
191
|
-
ext = "rb"
|
190
|
+
def add_ext!(paths)
|
192
191
|
paths.map! do |path|
|
193
192
|
path = path.sub(/\/$/,'') if path.ends_with?('/')
|
194
193
|
"#{path}.rb"
|
195
194
|
end
|
196
195
|
paths
|
197
196
|
end
|
198
|
-
|
199
|
-
end
|
197
|
+
end
|
200
198
|
end
|
data/lib/ufo/core.rb
CHANGED
@@ -16,7 +16,6 @@ module Ufo
|
|
16
16
|
if @@config_loaded
|
17
17
|
config.app
|
18
18
|
else
|
19
|
-
call_line = caller.find {|l| l.include?('.ufo') }
|
20
19
|
puts "ERROR: Using Ufo.app or :APP expansion very early in the UFO boot process".color(:red)
|
21
20
|
puts <<~EOL.color(:red)
|
22
21
|
The Ufo.app or :APP expansions are not yet available at this point
|
@@ -25,11 +24,9 @@ module Ufo
|
|
25
24
|
1. Use the UFO_APP env var to set it, which allows it to be used.
|
26
25
|
2. Hard code your actual app name.
|
27
26
|
|
28
|
-
Called from:
|
29
|
-
|
30
|
-
#{call_line}
|
31
|
-
|
32
27
|
EOL
|
28
|
+
call_line = caller.find {|l| l.include?('.ufo') }
|
29
|
+
DslEvaluator.print_code(call_line)
|
33
30
|
exit 1
|
34
31
|
end
|
35
32
|
end
|
@@ -1,12 +1,23 @@
|
|
1
1
|
module Ufo::TaskDefinition::Helpers
|
2
2
|
module Acm
|
3
|
+
include Ufo::Utils::CallLine
|
4
|
+
include Ufo::Utils::Pretty
|
5
|
+
|
3
6
|
# returns cert arn
|
4
7
|
def acm_cert(domain)
|
5
8
|
certs = acm_certs
|
6
9
|
cert = certs.find do |c|
|
7
10
|
c.domain_name == domain
|
8
11
|
end
|
9
|
-
|
12
|
+
if cert
|
13
|
+
cert.certificate_arn
|
14
|
+
else
|
15
|
+
# Logger causes infinite loop when waf helper used in .ufo/
|
16
|
+
logger.warn "WARN: ACM cert not found: #{domain}".color(:yellow)
|
17
|
+
call_line = ufo_config_call_line
|
18
|
+
DslEvaluator.print_code(call_line)
|
19
|
+
nil
|
20
|
+
end
|
10
21
|
end
|
11
22
|
|
12
23
|
# TODO: handle when there are lots of certs by paging
|
@@ -11,14 +11,9 @@ module Ufo::TaskDefinition::Helpers
|
|
11
11
|
resp = ecr.describe_repositories(repository_names: [name])
|
12
12
|
resp.repositories.first
|
13
13
|
rescue Aws::ECR::Errors::RepositoryNotFoundException => e
|
14
|
-
call_line = ufo_config_call_line
|
15
14
|
logger.warn "WARN: #{e.class} #{e.message}".color(:yellow)
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
#{call_line}
|
20
|
-
|
21
|
-
EOL
|
15
|
+
call_line = ufo_config_call_line
|
16
|
+
DslEvaluator.print_code(call_line)
|
22
17
|
nil
|
23
18
|
end
|
24
19
|
end
|
@@ -6,16 +6,19 @@ module Ufo::TaskDefinition::Helpers
|
|
6
6
|
def stack_output(name)
|
7
7
|
stack_name, output_key = name.split(".")
|
8
8
|
stack_name = names.expansion(stack_name)
|
9
|
-
|
10
|
-
stack
|
11
|
-
|
12
|
-
|
9
|
+
stack = find_stack(stack_name)
|
10
|
+
unless stack
|
11
|
+
logger.error "ERROR: Stack not found: #{stack_name}".color(:red)
|
12
|
+
call_line = ufo_config_call_line
|
13
|
+
DslEvaluator.print_code(call_line)
|
14
|
+
return
|
13
15
|
end
|
14
16
|
|
17
|
+
o = stack.outputs.detect { |h| h.output_key == output_key }
|
15
18
|
if o
|
16
19
|
o.output_value
|
17
20
|
else
|
18
|
-
logger.
|
21
|
+
logger.warn "WARN: NOT FOUND: output #{output_key} for stack #{stack_name}".color(:yellow)
|
19
22
|
nil
|
20
23
|
end
|
21
24
|
end
|
@@ -19,15 +19,9 @@ module Ufo::TaskDefinition::Helpers
|
|
19
19
|
web_acl.arn
|
20
20
|
else
|
21
21
|
# Logger causes infinite loop when waf helper used in .ufo/
|
22
|
-
call_line = ufo_config_call_line
|
23
22
|
logger.warn "WARN: Web ACL not found: #{name}".color(:yellow)
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
#{call_line}
|
28
|
-
|
29
|
-
Are you sure it's a regional WAF ACL?
|
30
|
-
EOL
|
23
|
+
call_line = ufo_config_call_line
|
24
|
+
DslEvaluator.print_code(call_line)
|
31
25
|
end
|
32
26
|
end
|
33
27
|
end
|
data/lib/ufo/utils/call_line.rb
CHANGED
data/lib/ufo/utils/squeezer.rb
CHANGED
@@ -9,7 +9,9 @@ module Ufo::Utils
|
|
9
9
|
|
10
10
|
case data
|
11
11
|
when Array
|
12
|
-
|
12
|
+
# .compact prevents infinite loop when data = [nil] on accident
|
13
|
+
# IE: config.elb.ssl.certificates = acm_cert("domain.not.found")
|
14
|
+
data.compact.map! { |v| squeeze(v) }
|
13
15
|
when Hash
|
14
16
|
data.each_with_object({}) do |(k,v), squeezed|
|
15
17
|
# only remove nil and empty Array values within Hash structures
|
data/lib/ufo/version.rb
CHANGED
@@ -0,0 +1,21 @@
|
|
1
|
+
describe Ufo::Utils::Squeezer do
|
2
|
+
subject { Ufo::Utils::Squeezer.new(data) }
|
3
|
+
|
4
|
+
context("Array with nil") do
|
5
|
+
let(:data) { [nil] }
|
6
|
+
# Prevents infinite loop
|
7
|
+
it "remove nil" do
|
8
|
+
squeezed = subject.squeeze
|
9
|
+
expect(squeezed).to eq []
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context("Hash with nil value") do
|
14
|
+
let(:data) { {a: 1, b: nil } }
|
15
|
+
# Prevents infinite loop
|
16
|
+
it "remove nil" do
|
17
|
+
squeezed = subject.squeeze
|
18
|
+
expect(squeezed).to eq(a: 1)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
data/ufo.gemspec
CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_dependency "cfn-status"
|
35
35
|
spec.add_dependency "cli-format"
|
36
36
|
spec.add_dependency "deep_merge"
|
37
|
-
spec.add_dependency "dsl_evaluator", ">= 0.
|
37
|
+
spec.add_dependency "dsl_evaluator", ">= 0.3.0" # for DslEvaluator.print_code
|
38
38
|
spec.add_dependency "memoist"
|
39
39
|
spec.add_dependency "plissken"
|
40
40
|
spec.add_dependency "rainbow"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ufo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.1.
|
4
|
+
version: 6.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-03-
|
11
|
+
date: 2022-03-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-logs
|
@@ -240,14 +240,14 @@ dependencies:
|
|
240
240
|
requirements:
|
241
241
|
- - ">="
|
242
242
|
- !ruby/object:Gem::Version
|
243
|
-
version: 0.
|
243
|
+
version: 0.3.0
|
244
244
|
type: :runtime
|
245
245
|
prerelease: false
|
246
246
|
version_requirements: !ruby/object:Gem::Requirement
|
247
247
|
requirements:
|
248
248
|
- - ">="
|
249
249
|
- !ruby/object:Gem::Version
|
250
|
-
version: 0.
|
250
|
+
version: 0.3.0
|
251
251
|
- !ruby/object:Gem::Dependency
|
252
252
|
name: memoist
|
253
253
|
requirement: !ruby/object:Gem::Requirement
|
@@ -653,6 +653,7 @@ files:
|
|
653
653
|
- spec/ufo/iam_role/builder_spec.rb
|
654
654
|
- spec/ufo/iam_role/dsl_spec.rb
|
655
655
|
- spec/ufo/logs_spec.rb
|
656
|
+
- spec/ufo/utils/squeezer_spec.rb
|
656
657
|
- ufo.gemspec
|
657
658
|
homepage: http://ufoships.com
|
658
659
|
licenses:
|
@@ -699,3 +700,4 @@ test_files:
|
|
699
700
|
- spec/ufo/iam_role/builder_spec.rb
|
700
701
|
- spec/ufo/iam_role/dsl_spec.rb
|
701
702
|
- spec/ufo/logs_spec.rb
|
703
|
+
- spec/ufo/utils/squeezer_spec.rb
|