stackster 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.
- data/lib/stackster/aws/cloud_formation.rb +9 -1
- data/lib/stackster/stack/stack_creater.rb +2 -2
- data/lib/stackster/stack/stack_updater.rb +34 -0
- data/lib/stackster/stack.rb +17 -7
- data/lib/stackster/version.rb +1 -1
- data/script/ci_setup +14 -0
- metadata +12 -10
@@ -12,11 +12,19 @@ module Stackster
|
|
12
12
|
end
|
13
13
|
|
14
14
|
def create(args)
|
15
|
+
parameters = { 'Parameters' => args[:parameters] }
|
15
16
|
data = { 'Capabilities' => ['CAPABILITY_IAM'],
|
16
|
-
'TemplateBody' => args[:template] }.merge
|
17
|
+
'TemplateBody' => args[:template] }.merge parameters
|
17
18
|
@connect.create_stack(args[:name], data)
|
18
19
|
end
|
19
20
|
|
21
|
+
def update(args)
|
22
|
+
parameters = { 'Parameters' => args[:parameters] }
|
23
|
+
data = { 'Capabilities' => ['CAPABILITY_IAM'],
|
24
|
+
'TemplateBody' => args[:template] }.merge parameters
|
25
|
+
@connect.update_stack(args[:name], data)
|
26
|
+
end
|
27
|
+
|
20
28
|
def destroy(name)
|
21
29
|
@connect.delete_stack name
|
22
30
|
end
|
@@ -7,7 +7,7 @@ module Stackster
|
|
7
7
|
@config = args[:config]
|
8
8
|
@entry = args[:entry]
|
9
9
|
@name = args[:name]
|
10
|
-
@template = read_template_from_file args[:
|
10
|
+
@template = read_template_from_file args[:template_file]
|
11
11
|
@cf = AWS::CloudFormation.new :config => @config
|
12
12
|
end
|
13
13
|
|
@@ -17,7 +17,7 @@ module Stackster
|
|
17
17
|
end
|
18
18
|
|
19
19
|
def read_parameters_from_template
|
20
|
-
t = JSON.parse
|
20
|
+
t = JSON.parse @template
|
21
21
|
t['Paramaters'].nil? ? t['Parameters'].keys : []
|
22
22
|
end
|
23
23
|
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'json'
|
2
|
+
|
3
|
+
module Stackster
|
4
|
+
class StackUpdater
|
5
|
+
|
6
|
+
def initialize(args)
|
7
|
+
@config = args[:config]
|
8
|
+
@entry = args[:entry]
|
9
|
+
@name = args[:name]
|
10
|
+
@template_body = args[:template_body]
|
11
|
+
@cf = AWS::CloudFormation.new :config => @config
|
12
|
+
end
|
13
|
+
|
14
|
+
def update
|
15
|
+
@cf.update :name => @name,
|
16
|
+
:parameters => read_parameters_from_entry,
|
17
|
+
:template => @template_body
|
18
|
+
end
|
19
|
+
|
20
|
+
def read_parameters_from_entry
|
21
|
+
h = {}
|
22
|
+
read_parameters_from_template.each do |p|
|
23
|
+
h[p] = @entry.attributes[p] if @entry.attributes[p]
|
24
|
+
end
|
25
|
+
h
|
26
|
+
end
|
27
|
+
|
28
|
+
def read_parameters_from_template
|
29
|
+
t = JSON.parse @template_body
|
30
|
+
t['Paramaters'].nil? ? t['Parameters'].keys : []
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
data/lib/stackster/stack.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'stackster/stack/stack_creater'
|
2
|
+
require 'stackster/stack/stack_updater'
|
2
3
|
require 'stackster/stack/stack_destroyer'
|
3
4
|
require 'stackster/stack/stack_reader'
|
4
5
|
require 'stackster/stack/stack_formater'
|
@@ -20,15 +21,17 @@ module Stackster
|
|
20
21
|
end
|
21
22
|
|
22
23
|
def create(args)
|
23
|
-
@
|
24
|
+
@template_file = args[:template]
|
24
25
|
@entry.set_attributes args[:attributes]
|
25
26
|
@entry.save
|
26
27
|
stack_creater.create
|
27
28
|
end
|
28
29
|
|
29
30
|
def update(args)
|
31
|
+
@template_body = template
|
30
32
|
@entry.set_attributes args[:attributes]
|
31
33
|
@entry.save
|
34
|
+
stack_updater.update
|
32
35
|
end
|
33
36
|
|
34
37
|
def destroy
|
@@ -79,19 +82,26 @@ module Stackster
|
|
79
82
|
private
|
80
83
|
|
81
84
|
def stack_creater
|
82
|
-
@stack_creater ||= StackCreater.new :name
|
83
|
-
:entry
|
84
|
-
:
|
85
|
-
:config
|
85
|
+
@stack_creater ||= StackCreater.new :name => @name,
|
86
|
+
:entry => @entry,
|
87
|
+
:template_file => @template_file,
|
88
|
+
:config => @config
|
89
|
+
end
|
90
|
+
|
91
|
+
def stack_updater
|
92
|
+
@stack_updater ||= StackUpdater.new :name => @name,
|
93
|
+
:entry => @entry,
|
94
|
+
:template_body => @template_body,
|
95
|
+
:config => @config
|
86
96
|
end
|
87
97
|
|
88
98
|
def stack_destroyer
|
89
|
-
@stack_destroyer ||= StackDestroyer.new :name
|
99
|
+
@stack_destroyer ||= StackDestroyer.new :name => @name,
|
90
100
|
:config => @config
|
91
101
|
end
|
92
102
|
|
93
103
|
def stack_reader
|
94
|
-
@stack_reader ||= StackReader.new :name
|
104
|
+
@stack_reader ||= StackReader.new :name => @name,
|
95
105
|
:config => @config
|
96
106
|
end
|
97
107
|
|
data/lib/stackster/version.rb
CHANGED
data/script/ci_setup
ADDED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stackster
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-06-
|
12
|
+
date: 2012-06-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rspec
|
16
|
-
requirement: &
|
16
|
+
requirement: &70167959294400 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :development
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70167959294400
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: fog
|
27
|
-
requirement: &
|
27
|
+
requirement: &70167959293840 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70167959293840
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: trollop
|
38
|
-
requirement: &
|
38
|
+
requirement: &70167959293260 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,7 +43,7 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :runtime
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70167959293260
|
47
47
|
description: Thats what I do
|
48
48
|
email:
|
49
49
|
- brett@weav.net
|
@@ -73,7 +73,9 @@ files:
|
|
73
73
|
- lib/stackster/stack/stack_formater.rb
|
74
74
|
- lib/stackster/stack/stack_lister.rb
|
75
75
|
- lib/stackster/stack/stack_reader.rb
|
76
|
+
- lib/stackster/stack/stack_updater.rb
|
76
77
|
- lib/stackster/version.rb
|
78
|
+
- script/ci_setup
|
77
79
|
- spec/config_spec.rb
|
78
80
|
- spec/spec_helper.rb
|
79
81
|
- stackster.gemspec
|
@@ -91,7 +93,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
93
|
version: '0'
|
92
94
|
segments:
|
93
95
|
- 0
|
94
|
-
hash: -
|
96
|
+
hash: -636613462525383174
|
95
97
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
98
|
none: false
|
97
99
|
requirements:
|
@@ -100,7 +102,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
100
102
|
version: '0'
|
101
103
|
segments:
|
102
104
|
- 0
|
103
|
-
hash: -
|
105
|
+
hash: -636613462525383174
|
104
106
|
requirements: []
|
105
107
|
rubyforge_project: stackster
|
106
108
|
rubygems_version: 1.8.16
|