cloudformer 0.0.7 → 0.0.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 54a97187f9569ff0c9151731dfaa2940b3fda528
4
- data.tar.gz: 28e3801c1c731b9b77b953c965a85a6f91b991ff
3
+ metadata.gz: ed4bc831b5b95315110a8674510d4f4952cc6d44
4
+ data.tar.gz: df144baf972cc3cbd6b954ec7262d648ce36b3fd
5
5
  SHA512:
6
- metadata.gz: 844622f459138b36ad04dfb10eba5ebbf42ce7d6ce911c1d553ef118958dcb2d09ee65c7b30ee0c484847fdb8a7534c4542386d8f7d2d53399dce309b2f6bb90
7
- data.tar.gz: aedbf93029a6aa2e559929d213042c3ddca6dd6a856071b9ee5bfb30890883566bfe9af071b8d3cf020881b93280dc3eb06cb585af87978f4cdd0ef2ca91f84b
6
+ metadata.gz: d1e3d2008848a5da60cfeb1b8836b5f040e88368582ea036420acc7ca36f3390ea3db92d24c93a3de48ea7e0f6cefd68bafa634e9ae9e3e8f989f48d052713c7
7
+ data.tar.gz: 516e9d35bc3885f79ccc74e729294a21761f814dc8b940d483dd1c6a0e2ed423863f36c2494d1351e12d126600e5cf308ad8f6e1c344933c15093dc118d8d4ca
@@ -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
@@ -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
- @stack.apply(template, parameters, disable_rollback)
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
@@ -1,3 +1,3 @@
1
1
  module Cloudformer
2
- VERSION = "0.0.7"
2
+ VERSION = "0.0.8"
3
3
  end
@@ -5,4 +5,5 @@ Cloudformer::Tasks.new("arvind-test") do |t|
5
5
  #AMI Works in Sydney region only, ensure you supply the right AMI.
6
6
  t.parameters = {"AmiId" => "ami-8da439b7"}
7
7
  t.disable_rollback = true
8
+ t.capabilities=[]
8
9
  end
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.7
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-12 00:00:00.000000000 Z
11
+ date: 2013-11-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler