cloudformer 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/cloudformer/stack.rb +13 -5
- data/lib/cloudformer/tasks.rb +13 -2
- data/lib/cloudformer/version.rb +1 -1
- data/samples/Rakefile +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ed4bc831b5b95315110a8674510d4f4952cc6d44
|
4
|
+
data.tar.gz: df144baf972cc3cbd6b954ec7262d648ce36b3fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1e3d2008848a5da60cfeb1b8836b5f040e88368582ea036420acc7ca36f3390ea3db92d24c93a3de48ea7e0f6cefd68bafa634e9ae9e3e8f989f48d052713c7
|
7
|
+
data.tar.gz: 516e9d35bc3885f79ccc74e729294a21761f814dc8b940d483dd1c6a0e2ed423863f36c2494d1351e12d126600e5cf308ad8f6e1c344933c15093dc118d8d4ca
|
data/lib/cloudformer/stack.rb
CHANGED
@@ -13,7 +13,7 @@ class Stack
|
|
13
13
|
return stack.exists?
|
14
14
|
end
|
15
15
|
|
16
|
-
def apply(template_file, parameters, disable_rollback=false)
|
16
|
+
def apply(template_file, parameters, disable_rollback=false, capabilities=[])
|
17
17
|
template = File.read(template_file)
|
18
18
|
validation = validate(template)
|
19
19
|
unless validation["valid"]
|
@@ -24,7 +24,7 @@ class Stack
|
|
24
24
|
if deployed
|
25
25
|
pending_operations = update(template, parameters)
|
26
26
|
else
|
27
|
-
pending_operations = create(template, parameters, disable_rollback)
|
27
|
+
pending_operations = create(template, parameters, disable_rollback, capabilities)
|
28
28
|
end
|
29
29
|
wait_until_end if pending_operations
|
30
30
|
if stack.status == "ROLLBACK_COMPLETE"
|
@@ -86,6 +86,14 @@ class Stack
|
|
86
86
|
return 0
|
87
87
|
end
|
88
88
|
|
89
|
+
def validate(template)
|
90
|
+
response = @cf.validate_template(template)
|
91
|
+
return {
|
92
|
+
"valid" => response[:code].nil?,
|
93
|
+
"response" => response
|
94
|
+
}
|
95
|
+
end
|
96
|
+
|
89
97
|
private
|
90
98
|
def wait_until_end
|
91
99
|
printed = []
|
@@ -104,7 +112,7 @@ class Stack
|
|
104
112
|
end
|
105
113
|
end
|
106
114
|
printed.concat(printable_events.map(&:event_id))
|
107
|
-
break if !stack.status.match(/_COMPLETE$/).nil?
|
115
|
+
break if !stack.status.match(/_COMPLETE$/).nil? || !stack.status.match(/DELETE_FAILED$/).nil? || !stack.status.match(/CREATE_FAILED$/).nil?
|
108
116
|
sleep(30)
|
109
117
|
end
|
110
118
|
end
|
@@ -136,9 +144,9 @@ class Stack
|
|
136
144
|
return false
|
137
145
|
end
|
138
146
|
|
139
|
-
def create(template, parameters, disable_rollback)
|
147
|
+
def create(template, parameters, disable_rollback, capabilities)
|
140
148
|
puts "Initializing stack creation..."
|
141
|
-
@cf.stacks.create(name, template, :parameters => parameters, :disable_rollback => disable_rollback)
|
149
|
+
@cf.stacks.create(name, template, :parameters => parameters, :disable_rollback => disable_rollback, :capabilities => capabilities)
|
142
150
|
sleep 10
|
143
151
|
return true
|
144
152
|
rescue ::AWS::CloudFormation::Errors::ValidationError => e
|
data/lib/cloudformer/tasks.rb
CHANGED
@@ -13,11 +13,12 @@ module Cloudformer
|
|
13
13
|
end
|
14
14
|
end
|
15
15
|
|
16
|
-
attr_accessor :template, :parameters, :disable_rollback
|
16
|
+
attr_accessor :template, :parameters, :disable_rollback, :retry_delete, :capabilities
|
17
17
|
|
18
18
|
private
|
19
19
|
def define_tasks
|
20
20
|
define_create_task
|
21
|
+
define_validate_task
|
21
22
|
define_delete_task
|
22
23
|
define_events_task
|
23
24
|
define_status_task
|
@@ -30,7 +31,10 @@ module Cloudformer
|
|
30
31
|
def define_create_task
|
31
32
|
desc "Apply Stack with Cloudformation script and parameters."
|
32
33
|
task :apply do
|
33
|
-
|
34
|
+
if retry_delete
|
35
|
+
@stack.delete
|
36
|
+
end
|
37
|
+
@stack.apply(template, parameters, disable_rollback, capabilities)
|
34
38
|
end
|
35
39
|
end
|
36
40
|
def define_delete_task
|
@@ -79,5 +83,12 @@ module Cloudformer
|
|
79
83
|
@stack.start_instances
|
80
84
|
end
|
81
85
|
end
|
86
|
+
|
87
|
+
def define_validate_task
|
88
|
+
desc "Validate the Stack."
|
89
|
+
task :validate do
|
90
|
+
@stack.validate(template)
|
91
|
+
end
|
92
|
+
end
|
82
93
|
end
|
83
94
|
end
|
data/lib/cloudformer/version.rb
CHANGED
data/samples/Rakefile
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cloudformer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Arvind Kunday
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-11-
|
11
|
+
date: 2013-11-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|