stackster 0.4.3 → 0.4.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.
@@ -1,5 +1,9 @@
1
1
  ## head:
2
2
 
3
+ ## 0.4.4 (03/18/2013)
4
+
5
+ * Refactor instance_reader logic and specs
6
+
3
7
  ## 0.4.3 (03/14/2013)
4
8
 
5
9
  * Properly return instances in an auto scaling group
@@ -7,8 +7,13 @@ module Stackster
7
7
 
8
8
  def list_stack_instances(stack_name)
9
9
  @asg_id = auto_scaling_group_id(stack_name)
10
- asg_instances = auto_scaling.list_instances if @asg_id
11
- return [] unless asg_instances
10
+
11
+ return [] unless @asg_id
12
+
13
+ asg_instances = auto_scaling.list_instances
14
+
15
+ return [] unless asg_instances.any?
16
+
12
17
  ec2.describe_instance asg_instances
13
18
  end
14
19
 
@@ -1,3 +1,3 @@
1
1
  module Stackster
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.4"
3
3
  end
@@ -5,61 +5,71 @@ describe Stackster::InstanceReader do
5
5
  describe "list_stack_instances" do
6
6
 
7
7
  before do
8
- @config_mock = mock 'config'
9
- @cloud_formation_mock = mock 'cloud formation'
10
- @auto_scaling_groups_mock = mock 'auto scaling'
11
- @ec2_mock = mock 'ec2'
8
+ @config_mock = mock 'config'
9
+ @cloud_formation_mock = mock 'cloud formation'
10
+ @auto_scaling_groups_mock = mock 'auto scaling'
11
+ @ec2_mock = mock 'ec2'
12
12
  @instance_reservation_set_mock = mock 'reservation'
13
- @instance_data_mock = mock 'instance data mock'
13
+ @instance_data_mock = mock 'instance data mock'
14
14
 
15
15
  Stackster::AWS::CloudFormation.should_receive(:new).
16
16
  with(:config => @config_mock).
17
17
  and_return @cloud_formation_mock
18
+ end
18
19
 
19
- stack_resource_results = [{'StackName' => 'stack',
20
- 'ResourceType' => 'AWS::AutoScaling::AutoScalingGroup',
21
- 'PhysicalResourceId' => 'asg1'}]
20
+ context "with no ASGs" do
21
+ before do
22
+ @cloud_formation_mock.should_receive(:stack_resources).
23
+ with('stack').
24
+ and_return []
25
+ end
22
26
 
23
- @cloud_formation_mock.should_receive(:stack_resources).
24
- with('stack').
25
- and_return stack_resource_results
27
+ it "should return an empty array" do
28
+ instance_reader = Stackster::InstanceReader.new :config => @config_mock
29
+ instance_reader.list_stack_instances('stack').should == []
30
+ end
31
+ end
26
32
 
27
- Stackster::AWS::AutoScalingGroups.should_receive(:new).
28
- with(:config => @config_mock, :asg_id => "asg1").
29
- and_return @auto_scaling_groups_mock
33
+ context "with an ASG" do
34
+ before do
35
+ stack_resource_results = [{'StackName' => 'stack',
36
+ 'ResourceType' => 'AWS::AutoScaling::AutoScalingGroup',
37
+ 'PhysicalResourceId' => 'asg1'}]
30
38
 
31
- Stackster::AWS::EC2.should_receive(:new).
32
- with(:config => @config_mock).
33
- and_return @ec2_mock
34
- end
39
+ @cloud_formation_mock.should_receive(:stack_resources).
40
+ with('stack').
41
+ and_return stack_resource_results
35
42
 
36
- context "with no running instances" do
37
- it "should return empty array" do
38
- @auto_scaling_groups_mock.should_receive(:list_instances).
39
- and_return []
43
+ Stackster::AWS::AutoScalingGroups.should_receive(:new).
44
+ with(:config => @config_mock, :asg_id => "asg1").
45
+ and_return @auto_scaling_groups_mock
46
+ end
40
47
 
41
- @ec2_mock.should_receive(:describe_instance).
42
- with([]).
43
- and_return @instance_reservation_set_mock
48
+ context "with no running instances" do
49
+ it "should return empty array" do
50
+ @auto_scaling_groups_mock.should_receive(:list_instances).
51
+ and_return []
44
52
 
45
- @instance_reservation_set_mock.stub :any? => true
46
- instance_reader = Stackster::InstanceReader.new :config => @config_mock
47
- instance_reader.list_stack_instances('stack').should == @instance_reservation_set_mock
53
+ instance_reader = Stackster::InstanceReader.new :config => @config_mock
54
+ instance_reader.list_stack_instances('stack').should == []
55
+ end
48
56
  end
49
- end
50
57
 
51
- context "with running instances" do
52
- it "should return the reservation set for each running instance" do
53
- @auto_scaling_groups_mock.should_receive(:list_instances).
54
- and_return ['instance1']
58
+ context "with running instances" do
59
+ it "should return the reservation set for each running instance" do
60
+ @auto_scaling_groups_mock.should_receive(:list_instances).
61
+ and_return ['instance1', 'instance2']
55
62
 
56
- @ec2_mock.should_receive(:describe_instance).
57
- with(['instance1']).
58
- and_return @instance_reservation_set_mock
63
+ @ec2_mock.should_receive(:describe_instance).
64
+ with(['instance1', 'instance2']).
65
+ and_return @instance_reservation_set_mock
59
66
 
60
- @instance_reservation_set_mock.stub :any? => true
61
- instance_reader = Stackster::InstanceReader.new :config => @config_mock
62
- instance_reader.list_stack_instances('stack').should == @instance_reservation_set_mock
67
+ Stackster::AWS::EC2.should_receive(:new).
68
+ with(:config => @config_mock).
69
+ and_return @ec2_mock
70
+ instance_reader = Stackster::InstanceReader.new :config => @config_mock
71
+ instance_reader.list_stack_instances('stack').should == @instance_reservation_set_mock
72
+ end
63
73
  end
64
74
  end
65
75
  end
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.4.3
4
+ version: 0.4.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: 2013-03-14 00:00:00.000000000 Z
12
+ date: 2013-03-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rake
16
- requirement: !ruby/object:Gem::Requirement
16
+ requirement: &70158035968220 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,15 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
- requirements:
27
- - - ! '>='
28
- - !ruby/object:Gem::Version
29
- version: '0'
24
+ version_requirements: *70158035968220
30
25
  - !ruby/object:Gem::Dependency
31
26
  name: rspec
32
- requirement: !ruby/object:Gem::Requirement
27
+ requirement: &70158035966920 !ruby/object:Gem::Requirement
33
28
  none: false
34
29
  requirements:
35
30
  - - ~>
@@ -37,15 +32,10 @@ dependencies:
37
32
  version: 2.11.0
38
33
  type: :development
39
34
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: 2.11.0
35
+ version_requirements: *70158035966920
46
36
  - !ruby/object:Gem::Dependency
47
37
  name: simplecov
48
- requirement: !ruby/object:Gem::Requirement
38
+ requirement: &70158035965200 !ruby/object:Gem::Requirement
49
39
  none: false
50
40
  requirements:
51
41
  - - ~>
@@ -53,15 +43,10 @@ dependencies:
53
43
  version: 0.6.4
54
44
  type: :development
55
45
  prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
- none: false
58
- requirements:
59
- - - ~>
60
- - !ruby/object:Gem::Version
61
- version: 0.6.4
46
+ version_requirements: *70158035965200
62
47
  - !ruby/object:Gem::Dependency
63
48
  name: timecop
64
- requirement: !ruby/object:Gem::Requirement
49
+ requirement: &70158035964000 !ruby/object:Gem::Requirement
65
50
  none: false
66
51
  requirements:
67
52
  - - ~>
@@ -69,60 +54,40 @@ dependencies:
69
54
  version: 0.5.3
70
55
  type: :development
71
56
  prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
- none: false
74
- requirements:
75
- - - ~>
76
- - !ruby/object:Gem::Version
77
- version: 0.5.3
57
+ version_requirements: *70158035964000
78
58
  - !ruby/object:Gem::Dependency
79
59
  name: fog
80
- requirement: !ruby/object:Gem::Requirement
60
+ requirement: &70158035979700 !ruby/object:Gem::Requirement
81
61
  none: false
82
62
  requirements:
83
- - - '='
63
+ - - =
84
64
  - !ruby/object:Gem::Version
85
65
  version: 1.10.0
86
66
  type: :runtime
87
67
  prerelease: false
88
- version_requirements: !ruby/object:Gem::Requirement
89
- none: false
90
- requirements:
91
- - - '='
92
- - !ruby/object:Gem::Version
93
- version: 1.10.0
68
+ version_requirements: *70158035979700
94
69
  - !ruby/object:Gem::Dependency
95
70
  name: trollop
96
- requirement: !ruby/object:Gem::Requirement
71
+ requirement: &70158035979180 !ruby/object:Gem::Requirement
97
72
  none: false
98
73
  requirements:
99
- - - '='
74
+ - - =
100
75
  - !ruby/object:Gem::Version
101
76
  version: '2.0'
102
77
  type: :runtime
103
78
  prerelease: false
104
- version_requirements: !ruby/object:Gem::Requirement
105
- none: false
106
- requirements:
107
- - - '='
108
- - !ruby/object:Gem::Version
109
- version: '2.0'
79
+ version_requirements: *70158035979180
110
80
  - !ruby/object:Gem::Dependency
111
81
  name: xml-simple
112
- requirement: !ruby/object:Gem::Requirement
82
+ requirement: &70158035978340 !ruby/object:Gem::Requirement
113
83
  none: false
114
84
  requirements:
115
- - - '='
85
+ - - =
116
86
  - !ruby/object:Gem::Version
117
87
  version: 1.1.2
118
88
  type: :runtime
119
89
  prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- none: false
122
- requirements:
123
- - - '='
124
- - !ruby/object:Gem::Version
125
- version: 1.1.2
90
+ version_requirements: *70158035978340
126
91
  description: Thats what I do
127
92
  email:
128
93
  - brett@weav.net
@@ -198,7 +163,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
198
163
  version: '0'
199
164
  segments:
200
165
  - 0
201
- hash: -3513599222543714350
166
+ hash: 3945755026545543091
202
167
  required_rubygems_version: !ruby/object:Gem::Requirement
203
168
  none: false
204
169
  requirements:
@@ -207,10 +172,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
207
172
  version: '0'
208
173
  segments:
209
174
  - 0
210
- hash: -3513599222543714350
175
+ hash: 3945755026545543091
211
176
  requirements: []
212
177
  rubyforge_project: stackster
213
- rubygems_version: 1.8.24
178
+ rubygems_version: 1.8.16
214
179
  signing_key:
215
180
  specification_version: 3
216
181
  summary: I make deployments easier