engineyard 1.3.17 → 1.3.18

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.
@@ -0,0 +1,361 @@
1
+ module Scenario
2
+ class Base
3
+ attr_accessor :git_remote
4
+
5
+ def initialize(git_remote)
6
+ self.git_remote = git_remote
7
+ end
8
+
9
+ def starting_accounts() [{"name" => "main"}] end
10
+ def starting_apps() [] end
11
+ def starting_environments() [] end
12
+ def starting_app_joins() [] end
13
+
14
+ end
15
+
16
+ class LinkedApp < Base
17
+ def _instances
18
+ [{
19
+ "id" => 27220,
20
+ "role" => "app_master",
21
+ "name" => nil,
22
+ "status" => "running",
23
+ "amazon_id" => 'i-ddbbdd92',
24
+ "public_hostname" => "app_master_hostname.compute-1.amazonaws.com",
25
+ }, {
26
+ "id" => 22721,
27
+ "name" => nil,
28
+ "role" => "db_master",
29
+ "status" => "running",
30
+ "amazon_id" => "i-d4cdddbf",
31
+ "public_hostname" => "db_master_hostname.compute-1.amazonaws.com",
32
+ }, {
33
+ "id" => 22724,
34
+ "name" => nil,
35
+ "role" => "db_slave",
36
+ "status" => "running",
37
+ "amazon_id" => "i-asdfasdfaj",
38
+ "public_hostname" => "db_slave_1_hostname.compute-1.amazonaws.com",
39
+ }, {
40
+ "id" => 22725,
41
+ "name" => nil,
42
+ "role" => "db_slave",
43
+ "status" => "running",
44
+ "amazon_id" => "i-asdfasdfaj",
45
+ "public_hostname" => "db_slave_2_hostname.compute-1.amazonaws.com",
46
+ }, {
47
+ "id" => 22722,
48
+ "role" => "app",
49
+ "name" => nil,
50
+ "status" => "building",
51
+ "amazon_id" => "i-d2e3f1b9",
52
+ "public_hostname" => "app_hostname.compute-1.amazonaws.com",
53
+ }, {
54
+ "id" => 22723,
55
+ "role" => "util",
56
+ "name" => "fluffy",
57
+ "status" => "running",
58
+ "amazon_id" => "i-80e3f1eb",
59
+ "public_hostname" => "util_fluffy_hostname.compute-1.amazonaws.com",
60
+ }, {
61
+ "id" => 22727,
62
+ "role" => "util",
63
+ "name" => "rocky",
64
+ "status" => "running",
65
+ "amazon_id" => "i-80etf1eb",
66
+ "public_hostname" => "util_rocky_hostname.compute-1.amazonaws.com",
67
+ }]
68
+ end
69
+ private :_instances
70
+
71
+ def starting_apps
72
+ [{
73
+ "id" => 1001,
74
+ "name" => "rails232app",
75
+ "repository_uri" => git_remote}]
76
+ end
77
+
78
+ def starting_environments
79
+ [{
80
+ "id" => 200,
81
+ "ssh_username" => "turkey",
82
+ "instances" => _instances,
83
+ "name" => "giblets",
84
+ "instances_count" => 4,
85
+ "stack_name" => "nginx_mongrel",
86
+ "framework_env" => "production"}]
87
+ end
88
+
89
+ def starting_app_joins
90
+ [[1001, 200]]
91
+ end
92
+
93
+ end # LinkedApp
94
+
95
+ class MultipleAmbiguousAccounts < LinkedApp
96
+ def starting_accounts
97
+ super + [{"name" => "account_2", "id" => 256}]
98
+ end
99
+
100
+ def starting_apps
101
+ apps = super
102
+ new_app = apps.first.dup
103
+ new_app["id"] += 1000
104
+ new_app["account"] = starting_accounts.last
105
+ apps + [new_app]
106
+ end
107
+
108
+ def starting_environments
109
+ envs = super
110
+ new_env = envs.first.dup
111
+ new_env["id"] += 1000
112
+ new_env["account"] = starting_accounts.last
113
+ envs + [new_env]
114
+ end
115
+
116
+ def starting_app_joins
117
+ joins = super
118
+ new_join = [joins.first[0] + 1000,
119
+ joins.first[1] + 1000]
120
+ joins + [new_join]
121
+ end
122
+ end
123
+
124
+ class UnlinkedApp < Base
125
+ def starting_apps
126
+ [{
127
+ "id" => 1001,
128
+ "name" => "rails232app",
129
+ "repository_uri" => git_remote}]
130
+ end
131
+
132
+ def starting_environments
133
+ [{
134
+ "ssh_username" => "turkey",
135
+ "instances" => [{
136
+ "status" => "running",
137
+ "id" => 27220,
138
+ "amazon_id" => 'i-ddbbdd92',
139
+ "role" => "solo",
140
+ "public_hostname" => "ec2-174-129-198-124.compute-1.amazonaws.com"}],
141
+ "name" => "giblets",
142
+ "instances_count" => 1,
143
+ "stack_name" => "nginx_mongrel",
144
+ "id" => 200,
145
+ "framework_env" => "production"}]
146
+ end
147
+ end # UnlinkedApp
148
+
149
+ class LinkedAppNotRunning < Base
150
+ def starting_apps
151
+ [{
152
+ "id" => 1001,
153
+ "name" => "rails232app",
154
+ "repository_uri" => git_remote}]
155
+ end
156
+
157
+ def starting_environments
158
+ [{
159
+ "ssh_username" => "turkey",
160
+ "instances" => [],
161
+ "name" => "giblets",
162
+ "instances_count" => 0,
163
+ "stack_name" => "nginx_mongrel",
164
+ "id" => 200,
165
+ "framework_env" => "production"}]
166
+ end
167
+
168
+ def starting_app_joins
169
+ [[1001, 200]]
170
+ end
171
+ end # LinkedAppNotRunning
172
+
173
+ class LinkedAppRedMaster < LinkedApp
174
+ def starting_environments
175
+ envs = super
176
+ envs[0]["instances"][0]["status"] = "error"
177
+ envs
178
+ end
179
+ end
180
+
181
+ class OneAppManyEnvs < Base
182
+ def starting_apps
183
+ [{
184
+ "id" => 1001,
185
+ "name" => "rails232app",
186
+ "repository_uri" => git_remote}]
187
+ end
188
+
189
+ def starting_app_joins
190
+ [
191
+ [1001, 200],
192
+ [1001, 202],
193
+ ]
194
+ end
195
+
196
+ def starting_environments
197
+ [{
198
+ "ssh_username" => "turkey",
199
+ "instances" => [{
200
+ "status" => "running",
201
+ "id" => 27220,
202
+ "amazon_id" => 'i-ddbbdd92',
203
+ "role" => "solo",
204
+ "public_hostname" => "app_master_hostname.compute-1.amazonaws.com"}],
205
+ "name" => "giblets",
206
+ "instances_count" => 1,
207
+ "stack_name" => "nginx_mongrel",
208
+ "id" => 200,
209
+ "framework_env" => "production",
210
+ }, {
211
+ "ssh_username" => "ham",
212
+ "instances" => [],
213
+ "name" => "bakon",
214
+ "instances_count" => 0,
215
+ "stack_name" => "nginx_passenger",
216
+ "id" => 202,
217
+ }, {
218
+ "ssh_username" => "hamburger",
219
+ "instances" => [],
220
+ "name" => "beef",
221
+ "instances_count" => 0,
222
+ "stack_name" => "nginx_passenger",
223
+ "id" => 206,
224
+ }]
225
+ end
226
+ end # OneAppTwoEnvs
227
+
228
+ class TwoApps < Base
229
+ def railsapp_master
230
+ {
231
+ "status" => "running",
232
+ "name" => nil,
233
+ "role" => "solo",
234
+ "public_hostname" => "ec2-174-129-7-113.compute-1.amazonaws.com",
235
+ "id" => 35707,
236
+ "amazon_id" => "i-0911f063",
237
+ }
238
+ end
239
+ private :railsapp_master
240
+
241
+ def keycollector_master
242
+ {
243
+ "status" => "running",
244
+ "name" => nil,
245
+ "role" => "solo",
246
+ "public_hostname" => "app_master_hostname.compute-1.amazonaws.com",
247
+ "id" => 75428,
248
+ "amazon_id" => "i-051195b9",
249
+ }
250
+ end
251
+ private :keycollector_master
252
+
253
+ def starting_apps
254
+ [{
255
+ "id" => 3202,
256
+ "name" => "keycollector",
257
+ "repository_uri" => "git@github.com:smerritt/keycollector.git",
258
+ }, {
259
+ "id" => 6125,
260
+ "name" => "rails232app",
261
+ "repository_uri" => "git://github.com/smerritt/rails232app.git"}]
262
+ end
263
+
264
+ def starting_app_joins
265
+ [
266
+ [6125, 200],
267
+ [3202, 439],
268
+ ]
269
+ end
270
+
271
+ def starting_environments
272
+ [{
273
+ "id" => 200,
274
+ "name" => "giblets",
275
+ "framework_env" => "staging",
276
+ "ssh_username" => "turkey",
277
+ "instances_count" => 1,
278
+ "instances" => [railsapp_master],
279
+ "stack_name" => "nginx_unicorn",
280
+ }, {
281
+ "id" => 439,
282
+ "framework_env" => "production",
283
+ "name" => "keycollector_production",
284
+ "ssh_username" => "deploy",
285
+ "stack_name" => "nginx_mongrel",
286
+ "instances_count" => 1,
287
+ "instances" => [keycollector_master],
288
+ }]
289
+ end
290
+ end # TwoApps
291
+
292
+ class TwoAppsSameGitUri < TwoApps
293
+ def starting_apps
294
+ apps = super
295
+ apps.each do |app|
296
+ app["repository_uri"] = "git://github.com/engineyard/dup.git"
297
+ end
298
+ apps
299
+ end
300
+ end # TwoAppsSameGitUri
301
+
302
+ class OneAppManySimilarlyNamedEnvs < Base
303
+ def starting_apps
304
+ [{
305
+ "id" => 1001,
306
+ "name" => "rails232app",
307
+ "repository_uri" => git_remote}]
308
+ end
309
+
310
+ def starting_environments
311
+ [{
312
+ "id" => 200,
313
+ "ssh_username" => "turkey",
314
+ "instances" => [{
315
+ "status" => "running",
316
+ "id" => 27220,
317
+ "amazon_id" => 'i-ddbbdd92',
318
+ "role" => "solo",
319
+ "public_hostname" => "app_master_hostname.compute-1.amazonaws.com"}],
320
+ "name" => "railsapp_production",
321
+ "instances_count" => 1,
322
+ "stack_name" => "nginx_mongrel",
323
+ "framework_env" => "production",
324
+ }, {
325
+ "id" => 202,
326
+ "ssh_username" => "ham",
327
+ "instances" => [{
328
+ "public_hostname" => '127.3.2.1',
329
+ "status" => "running",
330
+ "id" => 63066,
331
+ "role" => "solo",
332
+ }],
333
+ "name" => "railsapp_staging",
334
+ "instances_count" => 1,
335
+ "stack_name" => "nginx_passenger",
336
+ "framework_env" => "production",
337
+ }, {
338
+ "ssh_username" => "ham",
339
+ "instances" => [{
340
+ "status" => "running",
341
+ "id" => 59395,
342
+ "role" => "solo",
343
+ "public_hostname" => "ec2-174-129-198-124.compute-1.amazonaws.com",
344
+ }],
345
+ "name" => "railsapp_staging_2",
346
+ "instances_count" => 1,
347
+ "stack_name" => "nginx_passenger",
348
+ "id" => 204,
349
+ "framework_env" => "production",
350
+ }]
351
+ end
352
+
353
+ def starting_app_joins
354
+ [
355
+ [1001, 200],
356
+ [1001, 202],
357
+ [1001, 204],
358
+ ]
359
+ end
360
+ end # OneAppManySimilarlyNamedEnvs
361
+ end
@@ -139,11 +139,13 @@ shared_examples_for "it takes an environment name" do
139
139
  end
140
140
 
141
141
  context "outside a git repo" do
142
+
142
143
  define_git_repo("not actually a git repo") do |git_dir|
143
144
  # in case we screw up and are not in a freshly-generated test
144
145
  # git repository, don't blow away the thing we're developing
145
146
  system("rm -rf .git") if `git remote -v`.include?("path/to/repo.git")
146
147
  git_dir.join("cookbooks").mkdir
148
+ link_recipes_tgz(git_dir)
147
149
  end
148
150
 
149
151
  use_git_repo("not actually a git repo")
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: engineyard
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 63
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 17
10
- version: 1.3.17
9
+ - 18
10
+ version: 1.3.18
11
11
  platform: ruby
12
12
  authors:
13
13
  - EY Cloud Team
@@ -15,10 +15,13 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-02-17 00:00:00 -08:00
18
+ date: 2011-05-08 00:00:00 -07:00
19
19
  default_executable: ey
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
+ name: thor
23
+ prerelease: false
24
+ type: :runtime
22
25
  version_requirements: &id001 !ruby/object:Gem::Requirement
23
26
  none: false
24
27
  requirements:
@@ -30,11 +33,11 @@ dependencies:
30
33
  - 14
31
34
  - 6
32
35
  version: 0.14.6
33
- type: :runtime
34
36
  requirement: *id001
35
- name: thor
36
- prerelease: false
37
37
  - !ruby/object:Gem::Dependency
38
+ name: rest-client
39
+ prerelease: false
40
+ type: :runtime
38
41
  version_requirements: &id002 !ruby/object:Gem::Requirement
39
42
  none: false
40
43
  requirements:
@@ -46,11 +49,11 @@ dependencies:
46
49
  - 6
47
50
  - 0
48
51
  version: 1.6.0
49
- type: :runtime
50
52
  requirement: *id002
51
- name: rest-client
52
- prerelease: false
53
53
  - !ruby/object:Gem::Dependency
54
+ name: highline
55
+ prerelease: false
56
+ type: :runtime
54
57
  version_requirements: &id003 !ruby/object:Gem::Requirement
55
58
  none: false
56
59
  requirements:
@@ -62,11 +65,11 @@ dependencies:
62
65
  - 6
63
66
  - 1
64
67
  version: 1.6.1
65
- type: :runtime
66
68
  requirement: *id003
67
- name: highline
68
- prerelease: false
69
69
  - !ruby/object:Gem::Dependency
70
+ name: json_pure
71
+ prerelease: false
72
+ type: :runtime
70
73
  version_requirements: &id004 !ruby/object:Gem::Requirement
71
74
  none: false
72
75
  requirements:
@@ -76,11 +79,11 @@ dependencies:
76
79
  segments:
77
80
  - 0
78
81
  version: "0"
79
- type: :runtime
80
82
  requirement: *id004
81
- name: json_pure
82
- prerelease: false
83
83
  - !ruby/object:Gem::Dependency
84
+ name: escape
85
+ prerelease: false
86
+ type: :runtime
84
87
  version_requirements: &id005 !ruby/object:Gem::Requirement
85
88
  none: false
86
89
  requirements:
@@ -92,11 +95,11 @@ dependencies:
92
95
  - 0
93
96
  - 4
94
97
  version: 0.0.4
95
- type: :runtime
96
98
  requirement: *id005
97
- name: escape
98
- prerelease: false
99
99
  - !ruby/object:Gem::Dependency
100
+ name: engineyard-serverside-adapter
101
+ prerelease: false
102
+ type: :runtime
100
103
  version_requirements: &id006 !ruby/object:Gem::Requirement
101
104
  none: false
102
105
  requirements:
@@ -108,11 +111,11 @@ dependencies:
108
111
  - 4
109
112
  - 1
110
113
  version: 1.4.1
111
- type: :runtime
112
114
  requirement: *id006
113
- name: engineyard-serverside-adapter
114
- prerelease: false
115
115
  - !ruby/object:Gem::Dependency
116
+ name: net-ssh
117
+ prerelease: false
118
+ type: :runtime
116
119
  version_requirements: &id007 !ruby/object:Gem::Requirement
117
120
  none: false
118
121
  requirements:
@@ -124,11 +127,11 @@ dependencies:
124
127
  - 1
125
128
  - 0
126
129
  version: 2.1.0
127
- type: :runtime
128
130
  requirement: *id007
129
- name: net-ssh
130
- prerelease: false
131
131
  - !ruby/object:Gem::Dependency
132
+ name: rspec
133
+ prerelease: false
134
+ type: :development
132
135
  version_requirements: &id008 !ruby/object:Gem::Requirement
133
136
  none: false
134
137
  requirements:
@@ -140,11 +143,11 @@ dependencies:
140
143
  - 3
141
144
  - 0
142
145
  version: 1.3.0
143
- type: :development
144
146
  requirement: *id008
145
- name: rspec
146
- prerelease: false
147
147
  - !ruby/object:Gem::Dependency
148
+ name: rake
149
+ prerelease: false
150
+ type: :development
148
151
  version_requirements: &id009 !ruby/object:Gem::Requirement
149
152
  none: false
150
153
  requirements:
@@ -154,11 +157,11 @@ dependencies:
154
157
  segments:
155
158
  - 0
156
159
  version: "0"
157
- type: :development
158
160
  requirement: *id009
159
- name: rake
160
- prerelease: false
161
161
  - !ruby/object:Gem::Dependency
162
+ name: fakeweb
163
+ prerelease: false
164
+ type: :development
162
165
  version_requirements: &id010 !ruby/object:Gem::Requirement
163
166
  none: false
164
167
  requirements:
@@ -168,11 +171,11 @@ dependencies:
168
171
  segments:
169
172
  - 0
170
173
  version: "0"
171
- type: :development
172
174
  requirement: *id010
173
- name: fakeweb
174
- prerelease: false
175
175
  - !ruby/object:Gem::Dependency
176
+ name: fakeweb-matcher
177
+ prerelease: false
178
+ type: :development
176
179
  version_requirements: &id011 !ruby/object:Gem::Requirement
177
180
  none: false
178
181
  requirements:
@@ -182,11 +185,11 @@ dependencies:
182
185
  segments:
183
186
  - 0
184
187
  version: "0"
185
- type: :development
186
188
  requirement: *id011
187
- name: fakeweb-matcher
188
- prerelease: false
189
189
  - !ruby/object:Gem::Dependency
190
+ name: fakefs
191
+ prerelease: false
192
+ type: :development
190
193
  version_requirements: &id012 !ruby/object:Gem::Requirement
191
194
  none: false
192
195
  requirements:
@@ -196,11 +199,11 @@ dependencies:
196
199
  segments:
197
200
  - 0
198
201
  version: "0"
199
- type: :development
200
202
  requirement: *id012
201
- name: fakefs
202
- prerelease: false
203
203
  - !ruby/object:Gem::Dependency
204
+ name: bundler
205
+ prerelease: false
206
+ type: :development
204
207
  version_requirements: &id013 !ruby/object:Gem::Requirement
205
208
  none: false
206
209
  requirements:
@@ -212,11 +215,11 @@ dependencies:
212
215
  - 0
213
216
  - 0
214
217
  version: 1.0.0
215
- type: :development
216
218
  requirement: *id013
217
- name: bundler
218
- prerelease: false
219
219
  - !ruby/object:Gem::Dependency
220
+ name: sinatra
221
+ prerelease: false
222
+ type: :development
220
223
  version_requirements: &id014 !ruby/object:Gem::Requirement
221
224
  none: false
222
225
  requirements:
@@ -226,11 +229,11 @@ dependencies:
226
229
  segments:
227
230
  - 0
228
231
  version: "0"
229
- type: :development
230
232
  requirement: *id014
231
- name: sinatra
232
- prerelease: false
233
233
  - !ruby/object:Gem::Dependency
234
+ name: realweb
235
+ prerelease: false
236
+ type: :development
234
237
  version_requirements: &id015 !ruby/object:Gem::Requirement
235
238
  none: false
236
239
  requirements:
@@ -242,11 +245,11 @@ dependencies:
242
245
  - 1
243
246
  - 6
244
247
  version: 0.1.6
245
- type: :development
246
248
  requirement: *id015
247
- name: realweb
248
- prerelease: false
249
249
  - !ruby/object:Gem::Dependency
250
+ name: open4
251
+ prerelease: false
252
+ type: :development
250
253
  version_requirements: &id016 !ruby/object:Gem::Requirement
251
254
  none: false
252
255
  requirements:
@@ -258,10 +261,7 @@ dependencies:
258
261
  - 0
259
262
  - 1
260
263
  version: 1.0.1
261
- type: :development
262
264
  requirement: *id016
263
- name: open4
264
- prerelease: false
265
265
  description: This gem allows you to deploy your rails application to the Engine Yard cloud directly from the command line.
266
266
  email: cloud@engineyard.com
267
267
  executables:
@@ -327,9 +327,11 @@ files:
327
327
  - spec/spec_helper.rb
328
328
  - spec/support/bundled_ey
329
329
  - spec/support/fake_awsm.ru
330
+ - spec/support/fixture_recipes.tgz
330
331
  - spec/support/git_repo.rb
331
332
  - spec/support/helpers.rb
332
333
  - spec/support/ruby_ext.rb
334
+ - spec/support/scenarios.rb
333
335
  - spec/support/shared_behavior.rb
334
336
  has_rdoc: true
335
337
  homepage: http://github.com/engineyard/engineyard
@@ -373,7 +375,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
373
375
  requirements: []
374
376
 
375
377
  rubyforge_project:
376
- rubygems_version: 1.4.2
378
+ rubygems_version: 1.5.0
377
379
  signing_key:
378
380
  specification_version: 3
379
381
  summary: Command-line deployment for the Engine Yard cloud
@@ -405,7 +407,9 @@ test_files:
405
407
  - spec/spec_helper.rb
406
408
  - spec/support/bundled_ey
407
409
  - spec/support/fake_awsm.ru
410
+ - spec/support/fixture_recipes.tgz
408
411
  - spec/support/git_repo.rb
409
412
  - spec/support/helpers.rb
410
413
  - spec/support/ruby_ext.rb
414
+ - spec/support/scenarios.rb
411
415
  - spec/support/shared_behavior.rb