vmc 0.5.1.rc4 → 0.5.1.rc5
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/vmc/cli.rb +2 -0
- data/lib/vmc/cli/app/push/create.rb +7 -3
- data/lib/vmc/detect.rb +2 -2
- data/lib/vmc/errors.rb +3 -1
- data/lib/vmc/version.rb +1 -1
- data/spec/features/v2/account_lifecycle_spec.rb +15 -4
- data/spec/features/v2/login_spec.rb +2 -0
- data/spec/spec_helper.rb +9 -0
- data/spec/vmc/cli/app/push/create_spec.rb +15 -5
- data/spec/vmc/cli_spec.rb +7 -0
- metadata +56 -56
data/lib/vmc/cli.rb
CHANGED
@@ -14,8 +14,6 @@ module VMC::App
|
|
14
14
|
if v2?
|
15
15
|
inputs[:production] = !!(input[:plan] =~ /^p/i)
|
16
16
|
inputs[:command] = input[:command] if input.has?(:command) || !has_procfile?
|
17
|
-
|
18
|
-
framework = detector.detect_framework
|
19
17
|
else
|
20
18
|
framework = inputs[:framework] = determine_framework
|
21
19
|
inputs[:runtime] = determine_runtime(framework)
|
@@ -24,7 +22,13 @@ module VMC::App
|
|
24
22
|
|
25
23
|
inputs[:buildpack] = input[:buildpack] if v2?
|
26
24
|
|
27
|
-
|
25
|
+
if v2?
|
26
|
+
detected = detector.detected
|
27
|
+
human_mb = human_mb((detected && detected.memory_suggestion) || 64)
|
28
|
+
else
|
29
|
+
human_mb = human_mb(detector.suggested_memory(framework) || 64)
|
30
|
+
end
|
31
|
+
|
28
32
|
inputs[:memory] = megabytes(input[:memory, human_mb])
|
29
33
|
|
30
34
|
inputs[:stack] = input[:stack] if v2?
|
data/lib/vmc/detect.rb
CHANGED
data/lib/vmc/errors.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
module VMC
|
2
|
-
class
|
2
|
+
class UserFriendlyError < RuntimeError
|
3
3
|
def initialize(msg)
|
4
4
|
@message = msg
|
5
5
|
end
|
@@ -9,6 +9,8 @@ module VMC
|
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
12
|
+
class UserError < UserFriendlyError; end
|
13
|
+
|
12
14
|
class NotAuthorized < UserError
|
13
15
|
def initialize
|
14
16
|
@message = "Not authorized."
|
data/lib/vmc/version.rb
CHANGED
@@ -39,10 +39,21 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
|
|
39
39
|
end
|
40
40
|
|
41
41
|
run("#{vmc_bin} login #{username} --password #{password}") do |runner|
|
42
|
-
expect(runner).to say
|
43
|
-
|
44
|
-
|
45
|
-
|
42
|
+
expect(runner).to say(
|
43
|
+
"Organization>" => proc {
|
44
|
+
runner.send_keys "1"
|
45
|
+
expect(runner).to say /Switching to organization .*\.\.\. OK/
|
46
|
+
},
|
47
|
+
"Switching to organization" => proc {}
|
48
|
+
)
|
49
|
+
|
50
|
+
expect(runner).to say(
|
51
|
+
"Space>" => proc {
|
52
|
+
runner.send_keys "1"
|
53
|
+
expect(runner).to say /Switching to space .*\.\.\. OK/
|
54
|
+
},
|
55
|
+
"Switching to space" => proc {}
|
56
|
+
)
|
46
57
|
end
|
47
58
|
|
48
59
|
puts "registering #{email}"
|
@@ -35,6 +35,8 @@ if ENV['VMC_V2_TEST_USER'] && ENV['VMC_V2_TEST_PASSWORD'] && ENV['VMC_V2_TEST_TA
|
|
35
35
|
before do
|
36
36
|
run("#{vmc_bin} login #{username} --password #{password}") do |runner|
|
37
37
|
expect(runner).to say "Authenticating... OK"
|
38
|
+
expect(runner).to say "Organization>"
|
39
|
+
runner.send_keys("pivotal")
|
38
40
|
|
39
41
|
expect(runner).to say "Switching to organization"
|
40
42
|
expect(runner).to say "OK"
|
data/spec/spec_helper.rb
CHANGED
@@ -7,10 +7,19 @@ require "vmc"
|
|
7
7
|
require "vmc/test_support"
|
8
8
|
require "webmock"
|
9
9
|
require "ostruct"
|
10
|
+
require "fakefs/safe"
|
10
11
|
|
11
12
|
INTEGRATE_WITH = ENV["INTEGRATE_WITH"] || "default"
|
12
13
|
TRAVIS_BUILD_ID = ENV["TRAVIS_BUILD_ID"]
|
13
14
|
|
15
|
+
OriginalFile = File
|
16
|
+
|
17
|
+
class FakeFS::File
|
18
|
+
def self.fnmatch(*args, &blk)
|
19
|
+
OriginalFile.fnmatch(*args, &blk)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
14
23
|
def vmc_bin
|
15
24
|
vmc = File.expand_path("#{SPEC_ROOT}/../bin/vmc.dev")
|
16
25
|
if INTEGRATE_WITH != 'default'
|
@@ -76,8 +76,6 @@ describe VMC::App::Create do
|
|
76
76
|
FakeFS.activate!
|
77
77
|
Dir.mkdir(path)
|
78
78
|
|
79
|
-
# fakefs removes fnmatch :'(
|
80
|
-
stub(create.send(:detector)).detect_framework
|
81
79
|
File.open("#{path}/Procfile", "w") do |file|
|
82
80
|
file.write("this is a procfile")
|
83
81
|
end
|
@@ -152,9 +150,6 @@ describe VMC::App::Create do
|
|
152
150
|
before do
|
153
151
|
FakeFS.activate!
|
154
152
|
Dir.mkdir(path)
|
155
|
-
|
156
|
-
# fakefs removes fnmatch :'(
|
157
|
-
stub(create.send(:detector)).detect_framework
|
158
153
|
end
|
159
154
|
|
160
155
|
after do
|
@@ -192,14 +187,29 @@ describe VMC::App::Create do
|
|
192
187
|
subject
|
193
188
|
end
|
194
189
|
|
190
|
+
# this is hacky, but will get better once we remove all the v1-specific
|
191
|
+
# logic, as we won't have to worry about this anyway as the code will be gone
|
192
|
+
#
|
193
|
+
# we wanted to spec for this because frameworks/runtimes will be gone on
|
194
|
+
# v2, and if we don't fix it now, vmc push will blow up
|
195
195
|
it 'asks for the memory' do
|
196
196
|
given.delete(:memory)
|
197
197
|
|
198
198
|
memory_choices = %w(64M 128M 256M 512M 1G)
|
199
199
|
stub(create).memory_choices { memory_choices }
|
200
200
|
|
201
|
+
detector = mock
|
202
|
+
detected = mock
|
203
|
+
dont_allow(detector).detect_framework
|
204
|
+
|
205
|
+
stub(detected).memory_suggestion { 128 }
|
206
|
+
|
207
|
+
stub(create).detector { detector }
|
208
|
+
stub(detector).detected { detected }
|
209
|
+
|
201
210
|
mock_ask('Memory Limit', anything) do |_, options|
|
202
211
|
expect(options[:choices]).to eq memory_choices
|
212
|
+
expect(options[:default]).to eq "128M"
|
203
213
|
"1G"
|
204
214
|
end
|
205
215
|
|
data/spec/vmc/cli_spec.rb
CHANGED
@@ -36,6 +36,13 @@ describe VMC::CLI do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
context "with a UserFriendlyError" do
|
40
|
+
let(:action) { proc { raise VMC::UserFriendlyError.new("user friendly") } }
|
41
|
+
|
42
|
+
it_behaves_like "an error that's obvious to the user",
|
43
|
+
:with_message => "user friendly"
|
44
|
+
end
|
45
|
+
|
39
46
|
context "with a SystemExit" do
|
40
47
|
let(:action) { proc { exit 1 } }
|
41
48
|
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vmc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: -1558593090
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 5
|
9
9
|
- 1
|
10
10
|
- rc
|
11
|
-
-
|
12
|
-
version: 0.5.1.
|
11
|
+
- 5
|
12
|
+
version: 0.5.1.rc5
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Cloud Foundry Team
|
@@ -18,10 +18,12 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2013-03-
|
21
|
+
date: 2013-03-21 00:00:00 Z
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
|
-
|
24
|
+
name: json_pure
|
25
|
+
prerelease: false
|
26
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
27
|
none: false
|
26
28
|
requirements:
|
27
29
|
- - ~>
|
@@ -31,12 +33,12 @@ dependencies:
|
|
31
33
|
- 1
|
32
34
|
- 6
|
33
35
|
version: "1.6"
|
34
|
-
prerelease: false
|
35
36
|
type: :runtime
|
36
|
-
|
37
|
-
requirement: *id001
|
37
|
+
version_requirements: *id001
|
38
38
|
- !ruby/object:Gem::Dependency
|
39
|
-
|
39
|
+
name: multi_json
|
40
|
+
prerelease: false
|
41
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
40
42
|
none: false
|
41
43
|
requirements:
|
42
44
|
- - ~>
|
@@ -46,12 +48,12 @@ dependencies:
|
|
46
48
|
- 1
|
47
49
|
- 3
|
48
50
|
version: "1.3"
|
49
|
-
prerelease: false
|
50
51
|
type: :runtime
|
51
|
-
|
52
|
-
requirement: *id002
|
52
|
+
version_requirements: *id002
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
|
-
|
54
|
+
name: interact
|
55
|
+
prerelease: false
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
55
57
|
none: false
|
56
58
|
requirements:
|
57
59
|
- - ~>
|
@@ -61,24 +63,24 @@ dependencies:
|
|
61
63
|
- 0
|
62
64
|
- 5
|
63
65
|
version: "0.5"
|
64
|
-
prerelease: false
|
65
66
|
type: :runtime
|
66
|
-
|
67
|
-
requirement: *id003
|
67
|
+
version_requirements: *id003
|
68
68
|
- !ruby/object:Gem::Dependency
|
69
|
-
|
69
|
+
name: cfoundry
|
70
|
+
prerelease: false
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
70
72
|
none: false
|
71
73
|
requirements:
|
72
74
|
- - ">="
|
73
75
|
- !ruby/object:Gem::Version
|
74
|
-
hash:
|
76
|
+
hash: -1558593112
|
75
77
|
segments:
|
76
78
|
- 0
|
77
79
|
- 5
|
78
80
|
- 3
|
79
81
|
- rc
|
80
|
-
-
|
81
|
-
version: 0.5.3.
|
82
|
+
- 6
|
83
|
+
version: 0.5.3.rc6
|
82
84
|
- - <
|
83
85
|
- !ruby/object:Gem::Version
|
84
86
|
hash: 7
|
@@ -86,12 +88,12 @@ dependencies:
|
|
86
88
|
- 0
|
87
89
|
- 6
|
88
90
|
version: "0.6"
|
89
|
-
prerelease: false
|
90
91
|
type: :runtime
|
91
|
-
|
92
|
-
requirement: *id004
|
92
|
+
version_requirements: *id004
|
93
93
|
- !ruby/object:Gem::Dependency
|
94
|
-
|
94
|
+
name: clouseau
|
95
|
+
prerelease: false
|
96
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
95
97
|
none: false
|
96
98
|
requirements:
|
97
99
|
- - ~>
|
@@ -101,12 +103,12 @@ dependencies:
|
|
101
103
|
- 0
|
102
104
|
- 0
|
103
105
|
version: "0.0"
|
104
|
-
prerelease: false
|
105
106
|
type: :runtime
|
106
|
-
|
107
|
-
requirement: *id005
|
107
|
+
version_requirements: *id005
|
108
108
|
- !ruby/object:Gem::Dependency
|
109
|
-
|
109
|
+
name: mothership
|
110
|
+
prerelease: false
|
111
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
110
112
|
none: false
|
111
113
|
requirements:
|
112
114
|
- - ">="
|
@@ -124,17 +126,17 @@ dependencies:
|
|
124
126
|
- 1
|
125
127
|
- 0
|
126
128
|
version: "1.0"
|
127
|
-
prerelease: false
|
128
129
|
type: :runtime
|
129
|
-
|
130
|
-
requirement: *id006
|
130
|
+
version_requirements: *id006
|
131
131
|
- !ruby/object:Gem::Dependency
|
132
|
-
|
132
|
+
name: manifests-vmc-plugin
|
133
|
+
prerelease: false
|
134
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
133
135
|
none: false
|
134
136
|
requirements:
|
135
137
|
- - ">="
|
136
138
|
- !ruby/object:Gem::Version
|
137
|
-
hash:
|
139
|
+
hash: -1558593136
|
138
140
|
segments:
|
139
141
|
- 0
|
140
142
|
- 6
|
@@ -149,12 +151,12 @@ dependencies:
|
|
149
151
|
- 0
|
150
152
|
- 7
|
151
153
|
version: "0.7"
|
152
|
-
prerelease: false
|
153
154
|
type: :runtime
|
154
|
-
|
155
|
-
requirement: *id007
|
155
|
+
version_requirements: *id007
|
156
156
|
- !ruby/object:Gem::Dependency
|
157
|
-
|
157
|
+
name: tunnel-vmc-plugin
|
158
|
+
prerelease: false
|
159
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
158
160
|
none: false
|
159
161
|
requirements:
|
160
162
|
- - ~>
|
@@ -165,12 +167,12 @@ dependencies:
|
|
165
167
|
- 2
|
166
168
|
- 2
|
167
169
|
version: 0.2.2
|
168
|
-
prerelease: false
|
169
170
|
type: :runtime
|
170
|
-
|
171
|
-
requirement: *id008
|
171
|
+
version_requirements: *id008
|
172
172
|
- !ruby/object:Gem::Dependency
|
173
|
-
|
173
|
+
name: rake
|
174
|
+
prerelease: false
|
175
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
174
176
|
none: false
|
175
177
|
requirements:
|
176
178
|
- - ~>
|
@@ -180,12 +182,12 @@ dependencies:
|
|
180
182
|
- 0
|
181
183
|
- 9
|
182
184
|
version: "0.9"
|
183
|
-
prerelease: false
|
184
185
|
type: :development
|
185
|
-
|
186
|
-
requirement: *id009
|
186
|
+
version_requirements: *id009
|
187
187
|
- !ruby/object:Gem::Dependency
|
188
|
-
|
188
|
+
name: rspec
|
189
|
+
prerelease: false
|
190
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
189
191
|
none: false
|
190
192
|
requirements:
|
191
193
|
- - ~>
|
@@ -195,12 +197,12 @@ dependencies:
|
|
195
197
|
- 2
|
196
198
|
- 11
|
197
199
|
version: "2.11"
|
198
|
-
prerelease: false
|
199
200
|
type: :development
|
200
|
-
|
201
|
-
requirement: *id010
|
201
|
+
version_requirements: *id010
|
202
202
|
- !ruby/object:Gem::Dependency
|
203
|
-
|
203
|
+
name: webmock
|
204
|
+
prerelease: false
|
205
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
204
206
|
none: false
|
205
207
|
requirements:
|
206
208
|
- - ~>
|
@@ -210,12 +212,12 @@ dependencies:
|
|
210
212
|
- 1
|
211
213
|
- 9
|
212
214
|
version: "1.9"
|
213
|
-
prerelease: false
|
214
215
|
type: :development
|
215
|
-
|
216
|
-
requirement: *id011
|
216
|
+
version_requirements: *id011
|
217
217
|
- !ruby/object:Gem::Dependency
|
218
|
-
|
218
|
+
name: rr
|
219
|
+
prerelease: false
|
220
|
+
requirement: &id012 !ruby/object:Gem::Requirement
|
219
221
|
none: false
|
220
222
|
requirements:
|
221
223
|
- - ~>
|
@@ -225,10 +227,8 @@ dependencies:
|
|
225
227
|
- 1
|
226
228
|
- 0
|
227
229
|
version: "1.0"
|
228
|
-
prerelease: false
|
229
230
|
type: :development
|
230
|
-
|
231
|
-
requirement: *id012
|
231
|
+
version_requirements: *id012
|
232
232
|
description:
|
233
233
|
email:
|
234
234
|
- vcap-dev@googlegroups.com
|