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.
- data/CHANGELOG.md +4 -0
- data/lib/stackster/instance/instance_reader.rb +7 -2
- data/lib/stackster/version.rb +1 -1
- data/spec/instance/instance_reader_spec.rb +49 -39
- metadata +22 -57
data/CHANGELOG.md
CHANGED
@@ -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
|
-
|
11
|
-
return [] unless
|
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
|
|
data/lib/stackster/version.rb
CHANGED
@@ -5,61 +5,71 @@ describe Stackster::InstanceReader do
|
|
5
5
|
describe "list_stack_instances" do
|
6
6
|
|
7
7
|
before do
|
8
|
-
@config_mock
|
9
|
-
@cloud_formation_mock
|
10
|
-
@auto_scaling_groups_mock
|
11
|
-
@ec2_mock
|
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
|
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
|
-
|
20
|
-
|
21
|
-
|
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
|
-
|
24
|
-
|
25
|
-
|
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
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
32
|
-
|
33
|
-
|
34
|
-
end
|
39
|
+
@cloud_formation_mock.should_receive(:stack_resources).
|
40
|
+
with('stack').
|
41
|
+
and_return stack_resource_results
|
35
42
|
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
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
|
-
|
42
|
-
|
43
|
-
|
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
|
-
|
46
|
-
|
47
|
-
|
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
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
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
|
-
|
57
|
-
|
58
|
-
|
63
|
+
@ec2_mock.should_receive(:describe_instance).
|
64
|
+
with(['instance1', 'instance2']).
|
65
|
+
and_return @instance_reservation_set_mock
|
59
66
|
|
60
|
-
|
61
|
-
|
62
|
-
|
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.
|
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-
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
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:
|
175
|
+
hash: 3945755026545543091
|
211
176
|
requirements: []
|
212
177
|
rubyforge_project: stackster
|
213
|
-
rubygems_version: 1.8.
|
178
|
+
rubygems_version: 1.8.16
|
214
179
|
signing_key:
|
215
180
|
specification_version: 3
|
216
181
|
summary: I make deployments easier
|