ufo 6.1.0 → 6.1.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 +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
|