lono-cfn 0.0.3 → 0.0.4
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/lib/lono_cfn/base.rb +19 -4
- data/lib/lono_cfn/cli.rb +1 -0
- data/lib/lono_cfn/create.rb +0 -6
- data/lib/lono_cfn/update.rb +5 -0
- data/lib/lono_cfn/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c6dad389b3fefe174cc4e2b1e5e2f400e1cfe7a
|
4
|
+
data.tar.gz: 551b23221bb7208f57ace0517a7b4b1e01e02b4c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 62cc0595fac727b77bc1152aaab946899b5d057fad75d314d16d4440c9425193d172a47c12c3aaa325071a3796f27e009e00c53766ea5c29504ad8a24514c023
|
7
|
+
data.tar.gz: 6d776ab590dbc1aad9bc5ca6419726c434daffcf58ba53133a7d20ba51c2aa6d24eb960651c2e5974075268a4d6636ff388484336964f59c6687f9076c58c847
|
data/lib/lono_cfn/base.rb
CHANGED
@@ -15,8 +15,6 @@ module LonoCfn
|
|
15
15
|
@params_path = get_source_path(params_name, :params)
|
16
16
|
puts "Using template: #{@template_path}"
|
17
17
|
puts "Using parameters: #{@params_path}"
|
18
|
-
|
19
|
-
@region = options[:region] || 'us-east-1'
|
20
18
|
end
|
21
19
|
|
22
20
|
def run
|
@@ -37,13 +35,13 @@ module LonoCfn
|
|
37
35
|
generator = LonoParams::Generator.new(@stack_name,
|
38
36
|
project_root: @project_root,
|
39
37
|
path: @params_path,
|
40
|
-
allow_no_file:
|
38
|
+
allow_no_file: false)
|
41
39
|
generator.generate # Writes the json file in CamelCase keys format
|
42
40
|
generator.params # Returns Array in underscore keys format
|
43
41
|
end
|
44
42
|
|
45
43
|
def cfn
|
46
|
-
@cfn ||= Aws::CloudFormation::Client.new
|
44
|
+
@cfn ||= Aws::CloudFormation::Client.new
|
47
45
|
end
|
48
46
|
|
49
47
|
def check_for_errors
|
@@ -66,6 +64,23 @@ module LonoCfn
|
|
66
64
|
errors
|
67
65
|
end
|
68
66
|
|
67
|
+
def stack_exists?
|
68
|
+
return if @options[:noop]
|
69
|
+
|
70
|
+
exist = true
|
71
|
+
begin
|
72
|
+
# When the stack does not exist an exception is raised. Example:
|
73
|
+
# Aws::CloudFormation::Errors::ValidationError: Stack with id blah does not exist
|
74
|
+
response = cfn.describe_stacks(stack_name: @stack_name)
|
75
|
+
rescue Aws::CloudFormation::Errors::ValidationError => e
|
76
|
+
e.message
|
77
|
+
if e.message =~ /Stack with/ || e.message =~ /does not exist/
|
78
|
+
exist = false
|
79
|
+
end
|
80
|
+
end
|
81
|
+
exist
|
82
|
+
end
|
83
|
+
|
69
84
|
# if existing in params path then use that
|
70
85
|
# if it doesnt assume it is a full path and check that
|
71
86
|
# else fall back to convention, which also eventually gets checked in check_for_errors
|
data/lib/lono_cfn/cli.rb
CHANGED
@@ -7,6 +7,7 @@ module LonoCfn
|
|
7
7
|
class_option :verbose, type: :boolean
|
8
8
|
class_option :noop, type: :boolean
|
9
9
|
class_option :project_root, desc: "Project folder. Defaults to current directory", default: '.'
|
10
|
+
class_option :region, desc: "AWS region"
|
10
11
|
|
11
12
|
# common to create and update
|
12
13
|
class_option :template, desc: 'override convention and specify the template file to use'
|
data/lib/lono_cfn/create.rb
CHANGED
data/lib/lono_cfn/update.rb
CHANGED
@@ -7,6 +7,11 @@ module LonoCfn
|
|
7
7
|
|
8
8
|
# aws cloudformation update-stack --stack-name prod-hi-123456789 --parameters file://output/params/prod-hi-123456789.json --template-body file://output/prod-hi.json
|
9
9
|
def update_stack(params)
|
10
|
+
unless stack_exists?
|
11
|
+
puts "Cannot update a stack because the #{@stack_name} does not exists."
|
12
|
+
return
|
13
|
+
end
|
14
|
+
|
10
15
|
template_body = IO.read(@template_path)
|
11
16
|
message = "#{@stack_name} stack updating."
|
12
17
|
if @options[:noop]
|
data/lib/lono_cfn/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lono-cfn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tung Nguyen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-04-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -217,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
217
|
version: '0'
|
218
218
|
requirements: []
|
219
219
|
rubyforge_project:
|
220
|
-
rubygems_version: 2.6.
|
220
|
+
rubygems_version: 2.6.8
|
221
221
|
signing_key:
|
222
222
|
specification_version: 4
|
223
223
|
summary: Wrapper cfn tool to quickly create CloudFormation stacks from lono templates
|