engineyard 1.4.20 → 1.4.21
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/engineyard/cli.rb +16 -0
- data/lib/engineyard/eyrc.rb +15 -4
- data/lib/engineyard/version.rb +1 -1
- data/spec/engineyard/eyrc_spec.rb +10 -0
- data/spec/ey/login_spec.rb +29 -0
- data/spec/ey/logout_spec.rb +24 -0
- data/spec/ey/whoami_spec.rb +0 -8
- metadata +73 -69
data/lib/engineyard/cli.rb
CHANGED
@@ -357,5 +357,21 @@ module EY
|
|
357
357
|
EY.ui.say "#{user.name} (#{user.email})"
|
358
358
|
end
|
359
359
|
|
360
|
+
desc "login", "Log in and verify access to EY Cloud."
|
361
|
+
def login
|
362
|
+
whoami
|
363
|
+
end
|
364
|
+
|
365
|
+
desc "logout", "Remove the current API key from ~/.eyrc or env $EYRC"
|
366
|
+
def logout
|
367
|
+
eyrc = EYRC.load
|
368
|
+
if eyrc.delete_api_token
|
369
|
+
EY.ui.say "API token removed: #{eyrc.path}"
|
370
|
+
EY.ui.say "Run any other command to login again."
|
371
|
+
else
|
372
|
+
EY.ui.say "Already logged out. Run any other command to login again."
|
373
|
+
end
|
374
|
+
end
|
375
|
+
|
360
376
|
end # CLI
|
361
377
|
end # EY
|
data/lib/engineyard/eyrc.rb
CHANGED
@@ -16,6 +16,10 @@ module EY
|
|
16
16
|
path.exist?
|
17
17
|
end
|
18
18
|
|
19
|
+
def delete_api_token
|
20
|
+
delete('api_token')
|
21
|
+
end
|
22
|
+
|
19
23
|
def api_token
|
20
24
|
self['api_token']
|
21
25
|
end
|
@@ -35,17 +39,24 @@ module EY
|
|
35
39
|
end
|
36
40
|
|
37
41
|
def []=(key,val)
|
38
|
-
|
42
|
+
new_data = read_data.merge(key.to_s => val)
|
43
|
+
write_data new_data
|
39
44
|
val
|
40
45
|
end
|
41
46
|
|
47
|
+
def delete(key)
|
48
|
+
data = read_data.dup
|
49
|
+
res = data.delete(key)
|
50
|
+
write_data data
|
51
|
+
res
|
52
|
+
end
|
53
|
+
|
42
54
|
def read_data
|
43
55
|
exist? && YAML.load(path.read) || {}
|
44
56
|
end
|
45
57
|
|
46
|
-
def
|
47
|
-
|
48
|
-
path.open("w") {|f| YAML.dump(to_write, f) }
|
58
|
+
def write_data(new_data)
|
59
|
+
path.open("w") {|f| YAML.dump(new_data, f) }
|
49
60
|
end
|
50
61
|
|
51
62
|
end
|
data/lib/engineyard/version.rb
CHANGED
@@ -41,6 +41,11 @@ describe EY::EYRC do
|
|
41
41
|
EY::EYRC.load.api_token.should == 'abcd'
|
42
42
|
end
|
43
43
|
|
44
|
+
it "deletes the api_token" do
|
45
|
+
EY::EYRC.load.delete_api_token
|
46
|
+
EY::EYRC.load.api_token.should be_nil
|
47
|
+
end
|
48
|
+
|
44
49
|
it "writes the api_token to api_token: .eyrc" do
|
45
50
|
read_yaml(ENV['EYRC']).should == {"api_token" => "abcd"}
|
46
51
|
end
|
@@ -57,6 +62,11 @@ describe EY::EYRC do
|
|
57
62
|
EY::EYRC.load.api_token.should == 'abcd'
|
58
63
|
end
|
59
64
|
|
65
|
+
it "deletes the api token safely on logout" do
|
66
|
+
EY::EYRC.load.delete_api_token
|
67
|
+
read_yaml(ENV['EYRC']).should == {"http://localhost/" => {"api_token" => "5678"}}
|
68
|
+
end
|
69
|
+
|
60
70
|
it "maintains other random info in the file" do
|
61
71
|
read_yaml(ENV['EYRC']).should == {"api_token" => "abcd", "http://localhost/" => {"api_token" => "5678"}}
|
62
72
|
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "ey login" do
|
4
|
+
context "logged in" do
|
5
|
+
given "integration"
|
6
|
+
|
7
|
+
it "returns the logged in user name" do
|
8
|
+
ey %w[login]
|
9
|
+
@out.should include("User Name (test@test.test)")
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
context "not logged in" do
|
14
|
+
given "integration without an eyrc file"
|
15
|
+
|
16
|
+
it "prompts for authentication before outputting the logged in user" do
|
17
|
+
ey(%w[login], :hide_err => true) do |input|
|
18
|
+
input.puts("test@test.test")
|
19
|
+
input.puts("test")
|
20
|
+
end
|
21
|
+
|
22
|
+
@out.should include("We need to fetch your API token; please log in.")
|
23
|
+
@out.should include("Email:")
|
24
|
+
@out.should include("Password:")
|
25
|
+
|
26
|
+
@out.should include("User Name (test@test.test)")
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "ey logout" do
|
4
|
+
context "logged in" do
|
5
|
+
given "integration"
|
6
|
+
|
7
|
+
it "logs you out" do
|
8
|
+
ey %w[logout]
|
9
|
+
@out.should include("API token removed: #{ENV['EYRC']}")
|
10
|
+
@out.should include("Run any other command to login again.")
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context "not logged in" do
|
15
|
+
given "integration without an eyrc file"
|
16
|
+
|
17
|
+
it "prompts for authentication before outputting the logged in user" do
|
18
|
+
ey %w[logout]
|
19
|
+
@out.should_not include("API token removed:")
|
20
|
+
@out.should include("Already logged out.")
|
21
|
+
@out.should include("Run any other command to login again.")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
data/spec/ey/whoami_spec.rb
CHANGED
@@ -4,10 +4,6 @@ describe "ey whoami" do
|
|
4
4
|
context "logged in" do
|
5
5
|
given "integration"
|
6
6
|
|
7
|
-
before(:all) do
|
8
|
-
api_scenario "empty"
|
9
|
-
end
|
10
|
-
|
11
7
|
it "outputs the currently logged in user" do
|
12
8
|
ey %w[whoami]
|
13
9
|
@out.should include("User Name (test@test.test)")
|
@@ -17,10 +13,6 @@ describe "ey whoami" do
|
|
17
13
|
context "not logged in" do
|
18
14
|
given "integration without an eyrc file"
|
19
15
|
|
20
|
-
before(:each) do
|
21
|
-
api_scenario "empty"
|
22
|
-
end
|
23
|
-
|
24
16
|
it "prompts for authentication before outputting the logged in user" do
|
25
17
|
ey(%w[whoami], :hide_err => true) do |input|
|
26
18
|
input.puts("test@test.test")
|
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:
|
4
|
+
hash: 45
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 4
|
9
|
-
-
|
10
|
-
version: 1.4.
|
9
|
+
- 21
|
10
|
+
version: 1.4.21
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- EY Cloud Team
|
@@ -15,10 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-01-
|
18
|
+
date: 2012-01-19 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
21
|
+
prerelease: false
|
22
|
+
type: :runtime
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
24
|
none: false
|
23
25
|
requirements:
|
24
26
|
- - ~>
|
@@ -29,12 +31,12 @@ dependencies:
|
|
29
31
|
- 14
|
30
32
|
- 6
|
31
33
|
version: 0.14.6
|
32
|
-
requirement: *id001
|
33
|
-
type: :runtime
|
34
|
-
prerelease: false
|
35
34
|
name: thor
|
35
|
+
version_requirements: *id001
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
37
|
+
prerelease: false
|
38
|
+
type: :runtime
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
40
|
none: false
|
39
41
|
requirements:
|
40
42
|
- - ~>
|
@@ -45,12 +47,12 @@ dependencies:
|
|
45
47
|
- 6
|
46
48
|
- 0
|
47
49
|
version: 1.6.0
|
48
|
-
requirement: *id002
|
49
|
-
type: :runtime
|
50
|
-
prerelease: false
|
51
50
|
name: rest-client
|
51
|
+
version_requirements: *id002
|
52
52
|
- !ruby/object:Gem::Dependency
|
53
|
-
|
53
|
+
prerelease: false
|
54
|
+
type: :runtime
|
55
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
54
56
|
none: false
|
55
57
|
requirements:
|
56
58
|
- - ~>
|
@@ -61,12 +63,12 @@ dependencies:
|
|
61
63
|
- 6
|
62
64
|
- 1
|
63
65
|
version: 1.6.1
|
64
|
-
requirement: *id003
|
65
|
-
type: :runtime
|
66
|
-
prerelease: false
|
67
66
|
name: highline
|
67
|
+
version_requirements: *id003
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
|
-
|
69
|
+
prerelease: false
|
70
|
+
type: :runtime
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
70
72
|
none: false
|
71
73
|
requirements:
|
72
74
|
- - ">="
|
@@ -75,12 +77,12 @@ dependencies:
|
|
75
77
|
segments:
|
76
78
|
- 0
|
77
79
|
version: "0"
|
78
|
-
requirement: *id004
|
79
|
-
type: :runtime
|
80
|
-
prerelease: false
|
81
80
|
name: json_pure
|
81
|
+
version_requirements: *id004
|
82
82
|
- !ruby/object:Gem::Dependency
|
83
|
-
|
83
|
+
prerelease: false
|
84
|
+
type: :runtime
|
85
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
84
86
|
none: false
|
85
87
|
requirements:
|
86
88
|
- - ~>
|
@@ -91,12 +93,12 @@ dependencies:
|
|
91
93
|
- 0
|
92
94
|
- 4
|
93
95
|
version: 0.0.4
|
94
|
-
requirement: *id005
|
95
|
-
type: :runtime
|
96
|
-
prerelease: false
|
97
96
|
name: escape
|
97
|
+
version_requirements: *id005
|
98
98
|
- !ruby/object:Gem::Dependency
|
99
|
-
|
99
|
+
prerelease: false
|
100
|
+
type: :runtime
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
100
102
|
none: false
|
101
103
|
requirements:
|
102
104
|
- - "="
|
@@ -107,12 +109,12 @@ dependencies:
|
|
107
109
|
- 5
|
108
110
|
- 25
|
109
111
|
version: 1.5.25
|
110
|
-
requirement: *id006
|
111
|
-
type: :runtime
|
112
|
-
prerelease: false
|
113
112
|
name: engineyard-serverside-adapter
|
113
|
+
version_requirements: *id006
|
114
114
|
- !ruby/object:Gem::Dependency
|
115
|
-
|
115
|
+
prerelease: false
|
116
|
+
type: :runtime
|
117
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
116
118
|
none: false
|
117
119
|
requirements:
|
118
120
|
- - ~>
|
@@ -123,12 +125,12 @@ dependencies:
|
|
123
125
|
- 2
|
124
126
|
- 1
|
125
127
|
version: 2.2.1
|
126
|
-
requirement: *id007
|
127
|
-
type: :runtime
|
128
|
-
prerelease: false
|
129
128
|
name: net-ssh
|
129
|
+
version_requirements: *id007
|
130
130
|
- !ruby/object:Gem::Dependency
|
131
|
-
|
131
|
+
prerelease: false
|
132
|
+
type: :runtime
|
133
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
132
134
|
none: false
|
133
135
|
requirements:
|
134
136
|
- - "="
|
@@ -139,12 +141,12 @@ dependencies:
|
|
139
141
|
- 0
|
140
142
|
- 5
|
141
143
|
version: 2.0.5
|
142
|
-
requirement: *id008
|
143
|
-
type: :runtime
|
144
|
-
prerelease: false
|
145
144
|
name: launchy
|
145
|
+
version_requirements: *id008
|
146
146
|
- !ruby/object:Gem::Dependency
|
147
|
-
|
147
|
+
prerelease: false
|
148
|
+
type: :development
|
149
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
148
150
|
none: false
|
149
151
|
requirements:
|
150
152
|
- - ~>
|
@@ -154,12 +156,12 @@ dependencies:
|
|
154
156
|
- 2
|
155
157
|
- 0
|
156
158
|
version: "2.0"
|
157
|
-
requirement: *id009
|
158
|
-
type: :development
|
159
|
-
prerelease: false
|
160
159
|
name: rspec
|
160
|
+
version_requirements: *id009
|
161
161
|
- !ruby/object:Gem::Dependency
|
162
|
-
|
162
|
+
prerelease: false
|
163
|
+
type: :development
|
164
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
163
165
|
none: false
|
164
166
|
requirements:
|
165
167
|
- - ">="
|
@@ -168,12 +170,12 @@ dependencies:
|
|
168
170
|
segments:
|
169
171
|
- 0
|
170
172
|
version: "0"
|
171
|
-
requirement: *id010
|
172
|
-
type: :development
|
173
|
-
prerelease: false
|
174
173
|
name: rake
|
174
|
+
version_requirements: *id010
|
175
175
|
- !ruby/object:Gem::Dependency
|
176
|
-
|
176
|
+
prerelease: false
|
177
|
+
type: :development
|
178
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
177
179
|
none: false
|
178
180
|
requirements:
|
179
181
|
- - ">="
|
@@ -182,12 +184,12 @@ dependencies:
|
|
182
184
|
segments:
|
183
185
|
- 0
|
184
186
|
version: "0"
|
185
|
-
requirement: *id011
|
186
|
-
type: :development
|
187
|
-
prerelease: false
|
188
187
|
name: rdoc
|
188
|
+
version_requirements: *id011
|
189
189
|
- !ruby/object:Gem::Dependency
|
190
|
-
|
190
|
+
prerelease: false
|
191
|
+
type: :development
|
192
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
191
193
|
none: false
|
192
194
|
requirements:
|
193
195
|
- - ">="
|
@@ -196,12 +198,12 @@ dependencies:
|
|
196
198
|
segments:
|
197
199
|
- 0
|
198
200
|
version: "0"
|
199
|
-
requirement: *id012
|
200
|
-
type: :development
|
201
|
-
prerelease: false
|
202
201
|
name: fakeweb
|
202
|
+
version_requirements: *id012
|
203
203
|
- !ruby/object:Gem::Dependency
|
204
|
-
|
204
|
+
prerelease: false
|
205
|
+
type: :development
|
206
|
+
requirement: &id013 !ruby/object:Gem::Requirement
|
205
207
|
none: false
|
206
208
|
requirements:
|
207
209
|
- - ">="
|
@@ -210,12 +212,12 @@ dependencies:
|
|
210
212
|
segments:
|
211
213
|
- 0
|
212
214
|
version: "0"
|
213
|
-
requirement: *id013
|
214
|
-
type: :development
|
215
|
-
prerelease: false
|
216
215
|
name: fakeweb-matcher
|
216
|
+
version_requirements: *id013
|
217
217
|
- !ruby/object:Gem::Dependency
|
218
|
-
|
218
|
+
prerelease: false
|
219
|
+
type: :development
|
220
|
+
requirement: &id014 !ruby/object:Gem::Requirement
|
219
221
|
none: false
|
220
222
|
requirements:
|
221
223
|
- - ">="
|
@@ -224,12 +226,12 @@ dependencies:
|
|
224
226
|
segments:
|
225
227
|
- 0
|
226
228
|
version: "0"
|
227
|
-
requirement: *id014
|
228
|
-
type: :development
|
229
|
-
prerelease: false
|
230
229
|
name: sinatra
|
230
|
+
version_requirements: *id014
|
231
231
|
- !ruby/object:Gem::Dependency
|
232
|
-
|
232
|
+
prerelease: false
|
233
|
+
type: :development
|
234
|
+
requirement: &id015 !ruby/object:Gem::Requirement
|
233
235
|
none: false
|
234
236
|
requirements:
|
235
237
|
- - ~>
|
@@ -240,12 +242,12 @@ dependencies:
|
|
240
242
|
- 2
|
241
243
|
- 2
|
242
244
|
version: 0.2.2
|
243
|
-
requirement: *id015
|
244
|
-
type: :development
|
245
|
-
prerelease: false
|
246
245
|
name: realweb
|
246
|
+
version_requirements: *id015
|
247
247
|
- !ruby/object:Gem::Dependency
|
248
|
-
|
248
|
+
prerelease: false
|
249
|
+
type: :development
|
250
|
+
requirement: &id016 !ruby/object:Gem::Requirement
|
249
251
|
none: false
|
250
252
|
requirements:
|
251
253
|
- - ~>
|
@@ -256,10 +258,8 @@ dependencies:
|
|
256
258
|
- 0
|
257
259
|
- 1
|
258
260
|
version: 1.0.1
|
259
|
-
requirement: *id016
|
260
|
-
type: :development
|
261
|
-
prerelease: false
|
262
261
|
name: open4
|
262
|
+
version_requirements: *id016
|
263
263
|
description: This gem allows you to deploy your rails application to the Engine Yard cloud directly from the command line.
|
264
264
|
email: cloud@engineyard.com
|
265
265
|
executables:
|
@@ -317,6 +317,8 @@ files:
|
|
317
317
|
- spec/ey/deploy_spec.rb
|
318
318
|
- spec/ey/ey_spec.rb
|
319
319
|
- spec/ey/list_environments_spec.rb
|
320
|
+
- spec/ey/login_spec.rb
|
321
|
+
- spec/ey/logout_spec.rb
|
320
322
|
- spec/ey/logs_spec.rb
|
321
323
|
- spec/ey/rebuild_spec.rb
|
322
324
|
- spec/ey/recipes/apply_spec.rb
|
@@ -379,7 +381,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
379
381
|
requirements: []
|
380
382
|
|
381
383
|
rubyforge_project:
|
382
|
-
rubygems_version: 1.8.
|
384
|
+
rubygems_version: 1.8.15
|
383
385
|
signing_key:
|
384
386
|
specification_version: 3
|
385
387
|
summary: Command-line deployment for the Engine Yard cloud
|
@@ -400,6 +402,8 @@ test_files:
|
|
400
402
|
- spec/ey/deploy_spec.rb
|
401
403
|
- spec/ey/ey_spec.rb
|
402
404
|
- spec/ey/list_environments_spec.rb
|
405
|
+
- spec/ey/login_spec.rb
|
406
|
+
- spec/ey/logout_spec.rb
|
403
407
|
- spec/ey/logs_spec.rb
|
404
408
|
- spec/ey/rebuild_spec.rb
|
405
409
|
- spec/ey/recipes/apply_spec.rb
|