stackster 0.2.4 → 0.2.5

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ ## v0.2.5
2
+
3
+ * Bug fix with stack lister on non existent domain
4
+
1
5
  ## v0.2.3
2
6
 
3
7
  * Added addition log messages
@@ -16,57 +16,45 @@ module Stackster
16
16
  parameters = { 'Parameters' => args[:parameters] }
17
17
  data = { 'Capabilities' => ['CAPABILITY_IAM'],
18
18
  'TemplateBody' => args[:template] }.merge parameters
19
- begin
20
- @connect.create_stack(args[:name], data)
21
- rescue Exception => e
22
- Error.new(:config => @config, :exception => e).process
23
- end
19
+ @connect.create_stack(args[:name], data)
24
20
  @logger.info "Cloud Formation stack creation completed."
21
+ rescue Exception => e
22
+ Error.new(:config => @config, :exception => e).process
25
23
  end
26
24
 
27
25
  def update(args)
28
26
  parameters = { 'Parameters' => args[:parameters] }
29
27
  data = { 'Capabilities' => ['CAPABILITY_IAM'],
30
28
  'TemplateBody' => args[:template] }.merge parameters
31
- begin
32
- @connect.update_stack(args[:name], data)
33
- rescue Exception => e
34
- Error.new(:config => @config, :exception => e).process
35
- end
29
+ @connect.update_stack(args[:name], data)
36
30
  @logger.info "Cloud Formation stack update completed."
31
+ rescue Exception => e
32
+ Error.new(:config => @config, :exception => e).process
37
33
  end
38
34
 
39
35
  def destroy(name)
40
- begin
41
- @connect.delete_stack name
42
- rescue Exception => e
43
- Error.new(:config => @config, :exception => e).process
44
- end
36
+ @connect.delete_stack name
45
37
  @logger.info "Cloud Formation stack destroy completed."
38
+ rescue Exception => e
39
+ Error.new(:config => @config, :exception => e).process
46
40
  end
47
41
 
48
42
  def describe_stack(name)
49
- begin
50
- @connect.describe_stacks('StackName' => name).body['Stacks']
51
- rescue Exception => e
52
- Error.new(:config => @config, :exception => e).process
53
- end
43
+ @connect.describe_stacks('StackName' => name).body['Stacks']
44
+ rescue Exception => e
45
+ Error.new(:config => @config, :exception => e).process
54
46
  end
55
47
 
56
48
  def stack_resources(name)
57
- begin
58
- @connect.describe_stack_resources('StackName' => name).body['StackResources']
59
- rescue Exception => e
60
- Error.new(:config => @config, :exception => e).process
61
- end
49
+ @connect.describe_stack_resources('StackName' => name).body['StackResources']
50
+ rescue Exception => e
51
+ Error.new(:config => @config, :exception => e).process
62
52
  end
63
53
 
64
54
  def stack_events(name, limit)
65
- begin
66
- @connect.describe_stack_events(name).body['StackEvents'] [0..limit-1]
67
- rescue Exception => e
68
- Error.new(:config => @config, :exception => e).process
69
- end
55
+ @connect.describe_stack_events(name).body['StackEvents'] [0..limit-1]
56
+ rescue Exception => e
57
+ Error.new(:config => @config, :exception => e).process
70
58
  end
71
59
 
72
60
  def stack_status(name)
@@ -78,11 +66,9 @@ module Stackster
78
66
  end
79
67
 
80
68
  def template(name)
81
- begin
82
- @connect.get_template(name).body['TemplateBody']
83
- rescue Exception => e
84
- Error.new(:config => @config, :exception => e).process
85
- end
69
+ @connect.get_template(name).body['TemplateBody']
70
+ rescue Exception => e
71
+ Error.new(:config => @config, :exception => e).process
86
72
  end
87
73
 
88
74
  end
@@ -12,7 +12,7 @@ module Stackster
12
12
  end
13
13
 
14
14
  def process
15
- message = XmlSimple.xml_in(@exception.response.body)
15
+ message = XmlSimple.xml_in @exception.response.body
16
16
  message['Error'].first['Message'].each do |msg|
17
17
  case msg
18
18
  when 'No updates are to be performed.'
@@ -15,8 +15,12 @@ module Stackster
15
15
  @connect.list_domains.body['Domains']
16
16
  end
17
17
 
18
+ def domain_exists?(domain)
19
+ domains.include? domain
20
+ end
21
+
18
22
  def create_domain(domain)
19
- @connect.create_domain(domain) unless domains.include? domain
23
+ @connect.create_domain(domain) unless domains.exists?
20
24
  end
21
25
 
22
26
  def put_attributes(domain, key, attributes, options)
@@ -7,10 +7,13 @@ module Stackster
7
7
  end
8
8
 
9
9
  def all
10
- entries = sdb_connect.select "select * from #{@domain}"
11
- entries.keys.map do |name|
12
- remove_region_from_entry(name)
10
+ if sdb_connect.domain_exists? @domain
11
+ e = sdb_connect.select "select * from #{@domain}"
12
+ entries = e.keys.map do |name|
13
+ remove_region_from_entry(name)
14
+ end
13
15
  end
16
+ entries ? entries : []
14
17
  end
15
18
 
16
19
  private
@@ -1,3 +1,3 @@
1
1
  module Stackster
2
- VERSION = "0.2.4"
2
+ VERSION = "0.2.5"
3
3
  end
@@ -6,6 +6,9 @@ describe Stackster do
6
6
  @simple_db_mock = mock 'simple db'
7
7
  config = mock 'config mock'
8
8
  Stackster::AWS::SimpleDB.should_receive(:new).and_return @simple_db_mock
9
+ @simple_db_mock.should_receive(:domain_exists?).
10
+ with("stacks").
11
+ and_return true
9
12
  @simple_db_mock.should_receive(:select).
10
13
  with("select * from stacks").
11
14
  and_return('stack-to-find-us-west-1' => { 'attr1' => 'value1' })
@@ -13,4 +16,17 @@ describe Stackster do
13
16
  entry_lister.all.should == ['stack-to-find']
14
17
  end
15
18
 
19
+ it "should return a blank array if the domain does not exist" do
20
+ @simple_db_mock = mock 'simple db'
21
+ config = mock 'config mock'
22
+ Stackster::AWS::SimpleDB.should_receive(:new).and_return @simple_db_mock
23
+ @simple_db_mock.should_receive(:domain_exists?).
24
+ with("stacks").
25
+ and_return false
26
+ @simple_db_mock.should_receive(:select).
27
+ with("select * from stacks").exactly(0).times
28
+ entry_lister = Stackster::EntryLister.new :config => config
29
+ entry_lister.all.should == []
30
+ end
31
+
16
32
  end
data/spec/entry_spec.rb CHANGED
@@ -61,7 +61,10 @@ describe Stackster do
61
61
 
62
62
  it "should set the attributes in simple db" do
63
63
  @simple_db_mock.should_receive(:put_attributes).
64
- with("stacks", "test-stack-us-west-1", {"key"=>"value", "Name"=>"test-stack-us-west-1"}, {:replace=>["key", "Name"]})
64
+ with("stacks",
65
+ "test-stack-us-west-1",
66
+ { "key" => "value", "Name" => "test-stack-us-west-1" },
67
+ { :replace => ["key", "Name"] } )
65
68
  @entry.attributes = {"key"=>"value"}
66
69
 
67
70
  @entry.save
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.2.4
4
+ version: 0.2.5
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-07-10 00:00:00.000000000 Z
12
+ date: 2012-07-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
16
- requirement: &70297430198300 !ruby/object:Gem::Requirement
16
+ requirement: &70305096775860 !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: *70297430198300
24
+ version_requirements: *70305096775860
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: fog
27
- requirement: &70297430197820 !ruby/object:Gem::Requirement
27
+ requirement: &70305096775400 !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: *70297430197820
35
+ version_requirements: *70305096775400
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: logger
38
- requirement: &70297430197380 !ruby/object:Gem::Requirement
38
+ requirement: &70305096774920 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *70297430197380
46
+ version_requirements: *70305096774920
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: trollop
49
- requirement: &70297430196960 !ruby/object:Gem::Requirement
49
+ requirement: &70305096774500 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *70297430196960
57
+ version_requirements: *70305096774500
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: xml-simple
60
- requirement: &70297430196520 !ruby/object:Gem::Requirement
60
+ requirement: &70305096774040 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,7 +65,7 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *70297430196520
68
+ version_requirements: *70305096774040
69
69
  description: Thats what I do
70
70
  email:
71
71
  - brett@weav.net
@@ -135,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
135
  version: '0'
136
136
  segments:
137
137
  - 0
138
- hash: 1300407250190885825
138
+ hash: -4091889771990582798
139
139
  required_rubygems_version: !ruby/object:Gem::Requirement
140
140
  none: false
141
141
  requirements:
@@ -144,7 +144,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
144
  version: '0'
145
145
  segments:
146
146
  - 0
147
- hash: 1300407250190885825
147
+ hash: -4091889771990582798
148
148
  requirements: []
149
149
  rubyforge_project: stackster
150
150
  rubygems_version: 1.8.16