cf 0.6.0.rc4 → 0.6.0.rc5
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/cf/cli/app/push/create.rb +1 -10
- data/lib/cf/cli/service/bind.rb +0 -2
- data/lib/cf/cli/service/unbind.rb +0 -2
- data/lib/cf/version.rb +1 -1
- data/spec/cf/cli/app/push/create_spec.rb +0 -5
- data/spec/features/account_lifecycle_spec.rb +1 -1
- data/spec/features/push_flow_spec.rb +4 -8
- metadata +23 -41
- data/lib/cf/detect.rb +0 -129
- data/spec/cf/detect_spec.rb +0 -34
@@ -1,5 +1,3 @@
|
|
1
|
-
require "cf/detect"
|
2
|
-
|
3
1
|
module CF::App
|
4
2
|
module Create
|
5
3
|
attr_accessor :input
|
@@ -16,10 +14,7 @@ module CF::App
|
|
16
14
|
inputs[:buildpack] = input[:buildpack]
|
17
15
|
inputs[:command] = input[:command] if input.has?(:command) || !has_procfile?
|
18
16
|
|
19
|
-
|
20
|
-
human_mb = human_mb((detected && detected.memory_suggestion) || 64)
|
21
|
-
inputs[:memory] = megabytes(input[:memory, human_mb])
|
22
|
-
|
17
|
+
inputs[:memory] = megabytes(input[:memory, human_mb(256)])
|
23
18
|
inputs[:stack] = input[:stack]
|
24
19
|
|
25
20
|
inputs
|
@@ -105,10 +100,6 @@ module CF::App
|
|
105
100
|
@all_instances ||= client.service_instances
|
106
101
|
end
|
107
102
|
|
108
|
-
def detector
|
109
|
-
@detector ||= CF::Detector.new(client, @path)
|
110
|
-
end
|
111
|
-
|
112
103
|
def target_base
|
113
104
|
client.target.sub(/^https?:\/\/([^\.]+\.)?(.+)\/?/, '\2')
|
114
105
|
end
|
data/lib/cf/cli/service/bind.rb
CHANGED
data/lib/cf/version.rb
CHANGED
@@ -151,11 +151,6 @@ describe CF::App::Create do
|
|
151
151
|
memory_choices = %w(64M 128M 256M 512M 1G)
|
152
152
|
stub(create).memory_choices { memory_choices }
|
153
153
|
|
154
|
-
detector = mock
|
155
|
-
stub(create).detector { detector }
|
156
|
-
|
157
|
-
stub(detector).detected { Clouseau::Rails }
|
158
|
-
|
159
154
|
mock_ask('Memory Limit', anything) do |_, options|
|
160
155
|
expect(options[:choices]).to eq memory_choices
|
161
156
|
expect(options[:default]).to eq "256M"
|
@@ -31,7 +31,7 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
|
|
31
31
|
end
|
32
32
|
|
33
33
|
it "registers a new account and deletes it" do
|
34
|
-
pending "until we get some v2 admin credentials somewhere to actually run this with"
|
34
|
+
pending "until we get some v2 admin credentials somewhere to actually run this with"
|
35
35
|
|
36
36
|
email = Faker::Internet.email
|
37
37
|
run("#{cf_bin} target #{target}") do |runner|
|
@@ -22,7 +22,7 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
|
|
22
22
|
end
|
23
23
|
|
24
24
|
after do
|
25
|
-
|
25
|
+
`#{cf_bin} delete #{app} -f --no-script`
|
26
26
|
Interact::Progress::Dots.stop!
|
27
27
|
end
|
28
28
|
|
@@ -100,13 +100,9 @@ if ENV['CF_V2_TEST_USER'] && ENV['CF_V2_TEST_PASSWORD'] && ENV['CF_V2_TEST_TARGE
|
|
100
100
|
expect(runner).to say "Save configuration?> n", 10
|
101
101
|
runner.send_keys ""
|
102
102
|
|
103
|
-
expect(runner).to say "Uploading #{app}... OK"
|
104
|
-
expect(runner).to say "Starting #{app}... OK"
|
105
|
-
|
106
|
-
expect(runner).to say /(Using|Installing) Ruby/i, 60
|
107
|
-
expect(runner).to say "Your bundle is complete!", 30
|
108
|
-
|
109
|
-
expect(runner).to say "Checking #{app}..."
|
103
|
+
expect(runner).to say "Uploading #{app}... OK"
|
104
|
+
expect(runner).to say "Starting #{app}... OK"
|
105
|
+
expect(runner).to say "Checking #{app}...", 180
|
110
106
|
expect(runner).to say "1/1 instances"
|
111
107
|
expect(runner).to say "OK", 30
|
112
108
|
end
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 505000847
|
5
5
|
prerelease: 6
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 6
|
9
9
|
- 0
|
10
10
|
- rc
|
11
|
-
-
|
12
|
-
version: 0.6.0.
|
11
|
+
- 5
|
12
|
+
version: 0.6.0.rc5
|
13
13
|
platform: ruby
|
14
14
|
authors:
|
15
15
|
- Cloud Foundry Team
|
@@ -18,7 +18,7 @@ autorequire:
|
|
18
18
|
bindir: bin
|
19
19
|
cert_chain: []
|
20
20
|
|
21
|
-
date: 2013-03-
|
21
|
+
date: 2013-03-22 00:00:00 Z
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
24
|
name: json_pure
|
@@ -73,14 +73,14 @@ dependencies:
|
|
73
73
|
requirements:
|
74
74
|
- - ">="
|
75
75
|
- !ruby/object:Gem::Version
|
76
|
-
hash:
|
76
|
+
hash: 505000847
|
77
77
|
segments:
|
78
78
|
- 0
|
79
79
|
- 6
|
80
80
|
- 0
|
81
81
|
- rc
|
82
|
-
-
|
83
|
-
version: 0.6.0.
|
82
|
+
- 5
|
83
|
+
version: 0.6.0.rc5
|
84
84
|
- - <
|
85
85
|
- !ruby/object:Gem::Version
|
86
86
|
hash: 5
|
@@ -90,25 +90,10 @@ dependencies:
|
|
90
90
|
version: "0.7"
|
91
91
|
type: :runtime
|
92
92
|
version_requirements: *id004
|
93
|
-
- !ruby/object:Gem::Dependency
|
94
|
-
name: clouseau
|
95
|
-
prerelease: false
|
96
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
|
-
requirements:
|
99
|
-
- - ~>
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
hash: 11
|
102
|
-
segments:
|
103
|
-
- 0
|
104
|
-
- 0
|
105
|
-
version: "0.0"
|
106
|
-
type: :runtime
|
107
|
-
version_requirements: *id005
|
108
93
|
- !ruby/object:Gem::Dependency
|
109
94
|
name: mothership
|
110
95
|
prerelease: false
|
111
|
-
requirement: &
|
96
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
112
97
|
none: false
|
113
98
|
requirements:
|
114
99
|
- - ">="
|
@@ -127,16 +112,16 @@ dependencies:
|
|
127
112
|
- 0
|
128
113
|
version: "1.0"
|
129
114
|
type: :runtime
|
130
|
-
version_requirements: *
|
115
|
+
version_requirements: *id005
|
131
116
|
- !ruby/object:Gem::Dependency
|
132
117
|
name: manifests-cf-plugin
|
133
118
|
prerelease: false
|
134
|
-
requirement: &
|
119
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
135
120
|
none: false
|
136
121
|
requirements:
|
137
122
|
- - ">="
|
138
123
|
- !ruby/object:Gem::Version
|
139
|
-
hash:
|
124
|
+
hash: 505000849
|
140
125
|
segments:
|
141
126
|
- 0
|
142
127
|
- 7
|
@@ -152,16 +137,16 @@ dependencies:
|
|
152
137
|
- 8
|
153
138
|
version: "0.8"
|
154
139
|
type: :runtime
|
155
|
-
version_requirements: *
|
140
|
+
version_requirements: *id006
|
156
141
|
- !ruby/object:Gem::Dependency
|
157
142
|
name: tunnel-cf-plugin
|
158
143
|
prerelease: false
|
159
|
-
requirement: &
|
144
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
160
145
|
none: false
|
161
146
|
requirements:
|
162
147
|
- - ">="
|
163
148
|
- !ruby/object:Gem::Version
|
164
|
-
hash:
|
149
|
+
hash: 505000913
|
165
150
|
segments:
|
166
151
|
- 0
|
167
152
|
- 3
|
@@ -177,11 +162,11 @@ dependencies:
|
|
177
162
|
- 4
|
178
163
|
version: "0.4"
|
179
164
|
type: :runtime
|
180
|
-
version_requirements: *
|
165
|
+
version_requirements: *id007
|
181
166
|
- !ruby/object:Gem::Dependency
|
182
167
|
name: rake
|
183
168
|
prerelease: false
|
184
|
-
requirement: &
|
169
|
+
requirement: &id008 !ruby/object:Gem::Requirement
|
185
170
|
none: false
|
186
171
|
requirements:
|
187
172
|
- - ~>
|
@@ -192,11 +177,11 @@ dependencies:
|
|
192
177
|
- 9
|
193
178
|
version: "0.9"
|
194
179
|
type: :development
|
195
|
-
version_requirements: *
|
180
|
+
version_requirements: *id008
|
196
181
|
- !ruby/object:Gem::Dependency
|
197
182
|
name: rspec
|
198
183
|
prerelease: false
|
199
|
-
requirement: &
|
184
|
+
requirement: &id009 !ruby/object:Gem::Requirement
|
200
185
|
none: false
|
201
186
|
requirements:
|
202
187
|
- - ~>
|
@@ -207,11 +192,11 @@ dependencies:
|
|
207
192
|
- 11
|
208
193
|
version: "2.11"
|
209
194
|
type: :development
|
210
|
-
version_requirements: *
|
195
|
+
version_requirements: *id009
|
211
196
|
- !ruby/object:Gem::Dependency
|
212
197
|
name: webmock
|
213
198
|
prerelease: false
|
214
|
-
requirement: &
|
199
|
+
requirement: &id010 !ruby/object:Gem::Requirement
|
215
200
|
none: false
|
216
201
|
requirements:
|
217
202
|
- - ~>
|
@@ -222,11 +207,11 @@ dependencies:
|
|
222
207
|
- 9
|
223
208
|
version: "1.9"
|
224
209
|
type: :development
|
225
|
-
version_requirements: *
|
210
|
+
version_requirements: *id010
|
226
211
|
- !ruby/object:Gem::Dependency
|
227
212
|
name: rr
|
228
213
|
prerelease: false
|
229
|
-
requirement: &
|
214
|
+
requirement: &id011 !ruby/object:Gem::Requirement
|
230
215
|
none: false
|
231
216
|
requirements:
|
232
217
|
- - ~>
|
@@ -237,7 +222,7 @@ dependencies:
|
|
237
222
|
- 0
|
238
223
|
version: "1.0"
|
239
224
|
type: :development
|
240
|
-
version_requirements: *
|
225
|
+
version_requirements: *id011
|
241
226
|
description:
|
242
227
|
email:
|
243
228
|
- vcap-dev@googlegroups.com
|
@@ -317,7 +302,6 @@ files:
|
|
317
302
|
- lib/cf/cli/user/users.rb
|
318
303
|
- lib/cf/cli.rb
|
319
304
|
- lib/cf/constants.rb
|
320
|
-
- lib/cf/detect.rb
|
321
305
|
- lib/cf/errors.rb
|
322
306
|
- lib/cf/plugin.rb
|
323
307
|
- lib/cf/spacing.rb
|
@@ -364,7 +348,6 @@ files:
|
|
364
348
|
- spec/cf/cli/user/passwd_spec.rb
|
365
349
|
- spec/cf/cli/user/register_spec.rb
|
366
350
|
- spec/cf/cli_spec.rb
|
367
|
-
- spec/cf/detect_spec.rb
|
368
351
|
- spec/console_app_specker/console_app_specker_matchers_spec.rb
|
369
352
|
- spec/console_app_specker/specker_runner_spec.rb
|
370
353
|
- spec/features/account_lifecycle_spec.rb
|
@@ -457,7 +440,6 @@ test_files:
|
|
457
440
|
- spec/cf/cli/user/passwd_spec.rb
|
458
441
|
- spec/cf/cli/user/register_spec.rb
|
459
442
|
- spec/cf/cli_spec.rb
|
460
|
-
- spec/cf/detect_spec.rb
|
461
443
|
- spec/console_app_specker/console_app_specker_matchers_spec.rb
|
462
444
|
- spec/console_app_specker/specker_runner_spec.rb
|
463
445
|
- spec/features/account_lifecycle_spec.rb
|
data/lib/cf/detect.rb
DELETED
@@ -1,129 +0,0 @@
|
|
1
|
-
require "set"
|
2
|
-
|
3
|
-
require "clouseau"
|
4
|
-
|
5
|
-
module CF
|
6
|
-
class Detector
|
7
|
-
# "Basic" framework names for a detected language
|
8
|
-
PSEUDO_FRAMEWORKS = {
|
9
|
-
:node => "node",
|
10
|
-
:python => "wsgi",
|
11
|
-
:java => "java_web",
|
12
|
-
:php => "php",
|
13
|
-
:erlang => "otp_rebar",
|
14
|
-
:dotnet => "dotNet"
|
15
|
-
}
|
16
|
-
|
17
|
-
# Mismatched framework names
|
18
|
-
FRAMEWORK_NAMES = {
|
19
|
-
:rails => "rails3"
|
20
|
-
}
|
21
|
-
|
22
|
-
# Clouseau language symbol => matching runtime names
|
23
|
-
LANGUAGE_RUNTIMES = {
|
24
|
-
:ruby => /^ruby.*/,
|
25
|
-
:java => /^java.*/,
|
26
|
-
:node => /^node.*/,
|
27
|
-
:erlang => /^erlang.*/,
|
28
|
-
:dotnet => /^dotNet.*/,
|
29
|
-
:python => /^python.*/,
|
30
|
-
:php => /^php.*/
|
31
|
-
}
|
32
|
-
|
33
|
-
def initialize(client, path)
|
34
|
-
@client = client
|
35
|
-
@path = path
|
36
|
-
end
|
37
|
-
|
38
|
-
# detect the framework
|
39
|
-
def detect_framework
|
40
|
-
detected && frameworks[detected]
|
41
|
-
end
|
42
|
-
|
43
|
-
# detect the language and return the appropriate runtimes
|
44
|
-
def detect_runtimes
|
45
|
-
if detected && lang = detected.language_name
|
46
|
-
runtimes_for(lang)
|
47
|
-
else
|
48
|
-
[]
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
# determine runtimes for a given framework based on the language its
|
53
|
-
# detector reports itself as
|
54
|
-
def runtimes(framework)
|
55
|
-
if detector = detectors[framework]
|
56
|
-
runtimes_for(detector.language_name)
|
57
|
-
else
|
58
|
-
[]
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
# determine suitable memory allocation via the framework's detector
|
63
|
-
def suggested_memory(framework)
|
64
|
-
if detector = detectors[framework]
|
65
|
-
detector.memory_suggestion
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
# helper so that this is cached somewhere
|
70
|
-
def all_runtimes
|
71
|
-
@all_runtimes ||= @client.runtimes
|
72
|
-
end
|
73
|
-
|
74
|
-
# helper so that this is cached somewhere
|
75
|
-
def all_frameworks
|
76
|
-
@all_frameworks ||= @client.frameworks
|
77
|
-
end
|
78
|
-
|
79
|
-
def detected
|
80
|
-
@detected ||= Clouseau.detect(@path)
|
81
|
-
end
|
82
|
-
|
83
|
-
private
|
84
|
-
|
85
|
-
def map_detectors!
|
86
|
-
@framework_detectors = {}
|
87
|
-
@detector_frameworks = {}
|
88
|
-
|
89
|
-
Clouseau.detectors.each do |d|
|
90
|
-
name = d.framework_name
|
91
|
-
lang = d.language_name
|
92
|
-
|
93
|
-
framework = all_frameworks.find { |f|
|
94
|
-
f.name == name.to_s ||
|
95
|
-
f.name == FRAMEWORK_NAMES[name]
|
96
|
-
}
|
97
|
-
|
98
|
-
framework ||= all_frameworks.find { |f|
|
99
|
-
f.name == PSEUDO_FRAMEWORKS[lang]
|
100
|
-
}
|
101
|
-
|
102
|
-
next unless framework
|
103
|
-
|
104
|
-
@framework_detectors[framework] = d
|
105
|
-
@detector_frameworks[d] = framework
|
106
|
-
end
|
107
|
-
|
108
|
-
nil
|
109
|
-
end
|
110
|
-
|
111
|
-
# Framework -> Detector
|
112
|
-
def detectors
|
113
|
-
map_detectors! unless @framework_detectors
|
114
|
-
@framework_detectors
|
115
|
-
end
|
116
|
-
|
117
|
-
# Detector -> Framework
|
118
|
-
def frameworks
|
119
|
-
map_detectors! unless @detector_frameworks
|
120
|
-
@detector_frameworks
|
121
|
-
end
|
122
|
-
|
123
|
-
def runtimes_for(language)
|
124
|
-
all_runtimes.select do |r|
|
125
|
-
LANGUAGE_RUNTIMES[language] === r.name
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
data/spec/cf/detect_spec.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe CF::Detector do
|
4
|
-
let(:client) { fake_client :frameworks => [framework] }
|
5
|
-
let(:detector) { CF::Detector.new client, nil }
|
6
|
-
|
7
|
-
describe '#detect_framework' do
|
8
|
-
subject { detector.detect_framework }
|
9
|
-
|
10
|
-
{ Clouseau::Django => "django",
|
11
|
-
Clouseau::DotNet => "dotNet",
|
12
|
-
Clouseau::Grails => "grails",
|
13
|
-
Clouseau::Java => "java_web",
|
14
|
-
Clouseau::Lift => "lift",
|
15
|
-
Clouseau::Node => "node",
|
16
|
-
Clouseau::PHP => "php",
|
17
|
-
Clouseau::Play => "play",
|
18
|
-
Clouseau::Python => "wsgi",
|
19
|
-
Clouseau::Rack => "rack",
|
20
|
-
Clouseau::Rails => "rails3",
|
21
|
-
Clouseau::Sinatra => "sinatra",
|
22
|
-
Clouseau::Spring => "spring"
|
23
|
-
}.each do |clouseau_detective, cf_name|
|
24
|
-
context "when we detected #{clouseau_detective}" do
|
25
|
-
let(:framework) { fake(:framework, :name => cf_name) }
|
26
|
-
|
27
|
-
it "maps to CF name #{cf_name}" do
|
28
|
-
stub(Clouseau).detect(anything) { clouseau_detective }
|
29
|
-
should eq framework
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|