lono 7.4.8 → 7.4.9

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d747ecd65bb8239ac79bebab231572190de2a39d46d4db692cb449e64abc6f77
4
- data.tar.gz: 609e5aa49b41c5b981b5e62075d41195683a75976cf3db99df6f3e664d00e3d0
3
+ metadata.gz: 4e552e98666394b4573d02131de0e2e8e31707b9a2eab4f0d5abee72cc166bb4
4
+ data.tar.gz: d8471da49ad51dfe39698e551d20f43f627d98b8c7661bc41484adeb60f598ed
5
5
  SHA512:
6
- metadata.gz: bb81fa313393a78647e218e5d61d53ea0b36c1c6aee29c39fed24036bdefeba2265f5449ca7d894fae173868437d1c64d24626fbe51282de69208cf57f427ba6
7
- data.tar.gz: 29bf3543f1b61a416c2bbe148c5c60227a8cf5cea3e15455b30fcdc4fe8c2f18dc4b3b88a9ee9b0b4f929ee6b6e251518319470fa0af57ec92843c73cc6de728
6
+ metadata.gz: 383c2617d88b1ffb08dbe6f755616534ae872bf901b59a2a1412fc97161d955cd0ed3ce87679f5a8e4945d056c7b3aa5021684b6ef7dfcc366f67b569b8d2b7a
7
+ data.tar.gz: '09f12a84287cbdcb76ea14d4ed7151bb87947d8503b4ed1f2b1fd26954aa49fd539813ec297ad8dc41fc574b41788195f8cdcb7d648f788ac94b7f083c9b3d53'
@@ -3,6 +3,9 @@
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
+ ## [7.4.9]
7
+ - #69 `stack_output` and `stack_resource` helpers
8
+
6
9
  ## [7.4.8]
7
10
  - #68 squeezer: auto clean empty array values
8
11
  - add version numbers to extension gemspec template to remove deprecations
@@ -21,13 +21,6 @@ class Lono::Registration
21
21
  def prompt
22
22
  return if ENV['LONO_TEST']
23
23
 
24
- # We get the api first before the prompt to check if api is up
25
- resp = get_temp_key
26
- # resp nil means non-200 http response. Failsafe behavior is to continue.
27
- if resp.nil?
28
- return true
29
- end
30
-
31
24
  puts <<~EOL
32
25
 
33
26
  Looks like lono is not registered. Lono registration is optional and free.
@@ -35,12 +28,17 @@ class Lono::Registration
35
28
 
36
29
  https://register.lono.cloud
37
30
 
38
- Registration removes this message. Registered users can also optionally receive
39
- updates and special offers, including discounts to BoltOps Pro:
31
+ This prompt appears every 24 hours when lono is not registered. Registration removes
32
+ this message. Registered users can also optionally receive updates and special offers,
33
+ including discounts to BoltOps Pro:
40
34
 
41
35
  https://lono.cloud/docs/boltops-pro/
42
36
 
43
37
  EOL
38
+
39
+ # resp nil means non-200 http response
40
+ resp = get_temp_key
41
+ save_temp_key(resp) unless resp.nil? # save temp key so prompt only happens periodically
44
42
  end
45
43
 
46
44
  def save_temp_key(info)
@@ -2,12 +2,14 @@
2
2
  class Lono::Template::Strategy::Dsl::Builder
3
3
  module Helpers
4
4
  extend Memoist
5
- include CoreHelper
6
- include Ec2Helper
7
- include FileHelper
8
- include LookupHelper
9
- include S3Helper
10
- include TagsHelper
5
+
6
+ # Auto include all modules in helpers folder
7
+ helpers_dir = File.expand_path("helpers", __dir__)
8
+ Dir.glob("#{helpers_dir}/**/*").each do |path|
9
+ next unless File.file?(path)
10
+ klass = path.gsub(%r{.*/lib/},'').sub(".rb",'').camelize
11
+ include klass.constantize
12
+ end
11
13
 
12
14
  include Lono::Template::Strategy::Common::Helpers
13
15
  end
@@ -0,0 +1,50 @@
1
+ module Lono::Template::Strategy::Dsl::Builder::Helpers
2
+ module StackHelper
3
+ extend Memoist
4
+ include Lono::AwsServices
5
+
6
+ def stack_output(name)
7
+ stack_name, key = name.split(".")
8
+ resp = describe_stacks(stack_name: stack_name)
9
+ stack = resp.stacks.first
10
+ if stack
11
+ o = stack.outputs.detect { |h| h.output_key == key }
12
+ end
13
+
14
+ if o
15
+ o.output_value
16
+ else
17
+ "NOT FOUND: output #{key} for stack #{stack_name}"
18
+ end
19
+ end
20
+
21
+ def stack_resource(name)
22
+ stack_name, logical_id = name.split(".")
23
+ resp = describe_stack_resources(stack_name: stack_name)
24
+ resources = resp.stack_resources
25
+ resource = resources.find { |r| r.logical_resource_id == logical_id }
26
+ if resource
27
+ resource.physical_resource_id
28
+ else
29
+ "NOT FOUND: logical_id #{logical_id} for stack #{stack_name}"
30
+ end
31
+ end
32
+
33
+ def lookup_output(name)
34
+ stack_output(name)
35
+ return unless ENV['LONO_DEPRECATION_SOFT']
36
+ puts "DEPRECATION WARNING: lookup_output is deprecated. Please use stack_output instead".color(:yellow)
37
+ end
38
+
39
+ private
40
+ def describe_stacks(options={})
41
+ cfn.describe_stacks(options)
42
+ end
43
+ memoize :describe_stacks
44
+
45
+ def describe_stack_resources(options={})
46
+ cfn.describe_stack_resources(options)
47
+ end
48
+ memoize :describe_stack_resources
49
+ end
50
+ end
@@ -1,3 +1,3 @@
1
1
  module Lono
2
- VERSION = "7.4.8"
2
+ VERSION = "7.4.9"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lono
3
3
  version: !ruby/object:Gem::Version
4
- version: 7.4.8
4
+ version: 7.4.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tung Nguyen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-04-11 00:00:00.000000000 Z
11
+ date: 2020-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -688,8 +688,8 @@ files:
688
688
  - lib/lono/template/strategy/dsl/builder/helpers/core_helper.rb
689
689
  - lib/lono/template/strategy/dsl/builder/helpers/ec2_helper.rb
690
690
  - lib/lono/template/strategy/dsl/builder/helpers/file_helper.rb
691
- - lib/lono/template/strategy/dsl/builder/helpers/lookup_helper.rb
692
691
  - lib/lono/template/strategy/dsl/builder/helpers/s3_helper.rb
692
+ - lib/lono/template/strategy/dsl/builder/helpers/stack_helper.rb
693
693
  - lib/lono/template/strategy/dsl/builder/helpers/tags_helper.rb
694
694
  - lib/lono/template/strategy/dsl/builder/section/base.rb
695
695
  - lib/lono/template/strategy/dsl/builder/section/condition.rb
@@ -1,27 +0,0 @@
1
- module Lono::Template::Strategy::Dsl::Builder::Helpers
2
- module LookupHelper
3
- extend Memoist
4
- include Lono::AwsServices
5
-
6
- def lookup_output(name)
7
- stack_name, key = name.split(".")
8
- resp = describe_stacks(stack_name: stack_name)
9
- stack = resp.stacks.first
10
- if stack
11
- o = stack.outputs.detect { |h| h.output_key == key }
12
- end
13
-
14
- if o
15
- o.output_value
16
- else
17
- "NOT FOUND: Did not lookup_output #{name} for stack #{stack}"
18
- end
19
- end
20
-
21
- private
22
- def describe_stacks(options={})
23
- cfn.describe_stacks(options)
24
- end
25
- memoize :describe_stacks
26
- end
27
- end