cf 5.2.1.rc7 → 5.2.1.rc8
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.
- checksums.yaml +15 -0
- data/lib/admin/service_broker/update.rb +10 -10
- data/lib/cf/cli.rb +16 -10
- data/lib/cf/cli/service/service_helper.rb +25 -0
- data/lib/cf/cli/service/service_instance_helper.rb +4 -3
- data/lib/cf/cli/service/services.rb +6 -5
- data/lib/cf/constants.rb +0 -1
- data/lib/cf/version.rb +1 -1
- data/lib/tasks/gem_release.rake +14 -7
- data/spec/admin/service_broker/update_spec.rb +10 -6
- data/spec/cf/cli/service/service_helper_spec.rb +66 -0
- data/spec/cf/cli/service/service_instance_helper_spec.rb +1 -1
- data/spec/cf/cli/service/services_spec.rb +8 -0
- data/spec/cf/cli/start/target_prettifier_spec.rb +18 -0
- data/spec/cf/cli_spec.rb +73 -2
- data/spec/factories/cfoundry/v2/managed_service_instances_factory.rb +1 -0
- data/spec/factories/cfoundry/v2/service_plans_factory.rb +5 -1
- data/spec/features/switching_targets_spec.rb +4 -0
- metadata +22 -68
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
YThiM2I0YjhiZjFkYWFmNmZhYWU2ZmU2MDUzODYyZGU0OThhNDhkMw==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
MTdhZGNhNDA2YTBmMTBhMzBkNzBjZmJiY2IwYjVhMjI5NzJkOGZlYg==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZGY3N2JkY2U5YWVmMzc5NDRhZjY5YTQ4YWU2YTI5YWI5MjQ3YzM3Y2Q0ZTY0
|
10
|
+
MTQyM2VjNGExNzEzYjgzOGIxNDJkMjkxNWJmY2FkMTYyYjkzNDg2M2U0OWMw
|
11
|
+
MzVmZDc3YzNjNjAxNmU1ZGY0ZGIxMWQwZTNjMWFhYWZiNzAxODI=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZmY2ZWFjYzA1YWQ1MDc3Y2Y4YjUyMjhkZGFmYzFmY2Y3YThlZTlhMGU3NTIy
|
14
|
+
MWRhZWVhN2U5MGQ5NjVlYjZhN2M4NTJhOGIwZmVhNTFkMzdmODFhZDU2ZGRi
|
15
|
+
MTk4YzQxN2RkZDE3YmUzY2YyODk5NGFiMGU3MmYxMmFjMzA0YzY=
|
@@ -10,7 +10,7 @@ module CFAdmin::ServiceBroker
|
|
10
10
|
group :admin
|
11
11
|
input :broker, :argument => :required,
|
12
12
|
:desc => "Service broker to update",
|
13
|
-
:from_given => by_name(:service_broker)
|
13
|
+
:from_given => by_name(:service_broker, 'service broker')
|
14
14
|
input :name, :argument => :optional,
|
15
15
|
:desc => "New name"
|
16
16
|
input :url,
|
@@ -19,34 +19,34 @@ module CFAdmin::ServiceBroker
|
|
19
19
|
:desc => "New token"
|
20
20
|
|
21
21
|
def update_service_broker
|
22
|
-
broker = input[:broker]
|
22
|
+
@broker = input[:broker]
|
23
23
|
|
24
|
-
old_name = broker.name
|
24
|
+
old_name = @broker.name
|
25
25
|
|
26
|
-
broker.name = input[:name]
|
26
|
+
@broker.name = input[:name]
|
27
27
|
finalize
|
28
|
-
broker.broker_url = input[:url]
|
28
|
+
@broker.broker_url = input[:url]
|
29
29
|
finalize
|
30
|
-
broker.token = input[:token]
|
30
|
+
@broker.token = input[:token]
|
31
31
|
finalize
|
32
32
|
|
33
33
|
with_progress("Updating service broker #{old_name}") do
|
34
|
-
broker.update!
|
34
|
+
@broker.update!
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
38
|
private
|
39
39
|
|
40
40
|
def ask_name
|
41
|
-
ask("Name")
|
41
|
+
ask("Name", :default => @broker.name)
|
42
42
|
end
|
43
43
|
|
44
44
|
def ask_url
|
45
|
-
ask("URL")
|
45
|
+
ask("URL", :default => @broker.broker_url)
|
46
46
|
end
|
47
47
|
|
48
48
|
def ask_token
|
49
|
-
ask("Token")
|
49
|
+
ask("Token", :default => @broker.token)
|
50
50
|
end
|
51
51
|
end
|
52
52
|
end
|
data/lib/cf/cli.rb
CHANGED
@@ -27,10 +27,10 @@ module CF
|
|
27
27
|
option :help, :desc => "Show command usage", :alias => "-h",
|
28
28
|
:default => false
|
29
29
|
|
30
|
-
option :http_proxy, :desc => "Connect
|
30
|
+
option :http_proxy, :desc => "Connect with an http proxy server", :alias => "--http-proxy",
|
31
31
|
:value => :http_proxy
|
32
32
|
|
33
|
-
option :https_proxy, :desc => "Connect
|
33
|
+
option :https_proxy, :desc => "Connect with an https proxy server", :alias => "--https-proxy",
|
34
34
|
:value => :https_proxy
|
35
35
|
|
36
36
|
option :version, :desc => "Print version number", :alias => "-v",
|
@@ -322,12 +322,8 @@ EOS
|
|
322
322
|
|
323
323
|
def sane_target_url(url)
|
324
324
|
unless url =~ /^https?:\/\//
|
325
|
-
|
326
|
-
|
327
|
-
url = "https://#{url}"
|
328
|
-
rescue Errno::ECONNREFUSED, SocketError, Timeout::Error
|
329
|
-
url = "http://#{url}"
|
330
|
-
end
|
325
|
+
prefix = can_connect_on_https?(url) ? "https://" : "http://"
|
326
|
+
url = prefix + url
|
331
327
|
end
|
332
328
|
|
333
329
|
url.gsub(/\/$/, "")
|
@@ -344,7 +340,6 @@ EOS
|
|
344
340
|
|
345
341
|
def client_target
|
346
342
|
return File.read(target_file).chomp if File.exists?(target_file)
|
347
|
-
sane_target_url(CF::DEFAULT_API_URL)
|
348
343
|
end
|
349
344
|
|
350
345
|
def ensure_config_dir
|
@@ -356,7 +351,7 @@ EOS
|
|
356
351
|
ensure_config_dir
|
357
352
|
|
358
353
|
File.open(File.expand_path(CF::TARGET_FILE), "w") do |f|
|
359
|
-
f.write(
|
354
|
+
f.write(url)
|
360
355
|
end
|
361
356
|
|
362
357
|
invalidate_client
|
@@ -492,6 +487,17 @@ EOS
|
|
492
487
|
|
493
488
|
private
|
494
489
|
|
490
|
+
def can_connect_on_https?(unqualified_url)
|
491
|
+
begin
|
492
|
+
Timeout.timeout(1) do
|
493
|
+
TCPSocket.new(unqualified_url, Net::HTTP.https_default_port)
|
494
|
+
end
|
495
|
+
true
|
496
|
+
rescue Errno::ECONNREFUSED, SocketError, Timeout::Error, Errno::ETIMEDOUT
|
497
|
+
false
|
498
|
+
end
|
499
|
+
end
|
500
|
+
|
495
501
|
def target_file
|
496
502
|
File.expand_path(CF::TARGET_FILE)
|
497
503
|
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
class ServiceHelper
|
2
|
+
def initialize(service)
|
3
|
+
@service = service
|
4
|
+
end
|
5
|
+
|
6
|
+
def label
|
7
|
+
@service.label
|
8
|
+
end
|
9
|
+
|
10
|
+
def provider
|
11
|
+
@service.provider || 'n/a'
|
12
|
+
end
|
13
|
+
|
14
|
+
def version
|
15
|
+
@service.version || 'n/a'
|
16
|
+
end
|
17
|
+
|
18
|
+
def service_plans
|
19
|
+
@service.service_plans.map(&:name).join(', ')
|
20
|
+
end
|
21
|
+
|
22
|
+
def description
|
23
|
+
@service.description
|
24
|
+
end
|
25
|
+
end
|
@@ -46,18 +46,19 @@ end
|
|
46
46
|
class ManagedServiceInstanceHelper
|
47
47
|
def initialize(service_instance)
|
48
48
|
@instance = service_instance
|
49
|
+
@service_helper = ServiceHelper.new(service_instance.service_plan.service)
|
49
50
|
end
|
50
51
|
|
51
52
|
def service_label
|
52
|
-
@
|
53
|
+
@service_helper.label
|
53
54
|
end
|
54
55
|
|
55
56
|
def service_provider
|
56
|
-
@
|
57
|
+
@service_helper.provider
|
57
58
|
end
|
58
59
|
|
59
60
|
def version
|
60
|
-
@
|
61
|
+
@service_helper.version
|
61
62
|
end
|
62
63
|
|
63
64
|
def plan_name
|
@@ -53,11 +53,12 @@ module CF::Service
|
|
53
53
|
table(
|
54
54
|
["service", "version", "provider", "plans", "description"],
|
55
55
|
services.sort_by(&:label).collect { |s|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
56
|
+
presenter = ServiceHelper.new(s)
|
57
|
+
[c(presenter.label, :name),
|
58
|
+
presenter.version,
|
59
|
+
presenter.provider,
|
60
|
+
presenter.service_plans,
|
61
|
+
presenter.description
|
61
62
|
]
|
62
63
|
})
|
63
64
|
end
|
data/lib/cf/constants.rb
CHANGED
data/lib/cf/version.rb
CHANGED
data/lib/tasks/gem_release.rake
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'active_support/time'
|
1
2
|
require 'active_support/core_ext'
|
2
3
|
|
3
4
|
namespace :gem do
|
@@ -7,22 +8,28 @@ namespace :gem do
|
|
7
8
|
old_version = gem_version
|
8
9
|
|
9
10
|
sh! "gem bump --version #{version} --no-commit"
|
11
|
+
|
12
|
+
print "About to bump version to #{gem_version}, continue? (Y): "
|
13
|
+
answer = STDIN.gets.strip
|
14
|
+
exit unless answer.length == 0 || answer.upcase.start_with?("Y")
|
15
|
+
|
10
16
|
sh! "git add lib/cf/version.rb"
|
11
17
|
|
12
18
|
print_with_purpose "Bumping to version #{gem_version}"
|
13
|
-
|
19
|
+
generate_release_notes(old_version)
|
14
20
|
sh!("git commit -m 'Bumping to version #{gem_version}.'")
|
15
21
|
sh!("git push")
|
16
22
|
sh!("gem release --tag")
|
17
23
|
end
|
18
24
|
|
19
25
|
private
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
+
|
27
|
+
def generate_release_notes(old_version)
|
28
|
+
print_with_purpose "Generating release notes..."
|
29
|
+
file_name = "release_#{gem_version}"
|
30
|
+
sh!("anchorman notes --name=#{file_name} --from=v#{old_version}")
|
31
|
+
sh!("git add release_notes")
|
32
|
+
end
|
26
33
|
|
27
34
|
def sh!(cmd)
|
28
35
|
`#{cmd}`
|
@@ -9,14 +9,18 @@ describe CFAdmin::ServiceBroker::Update do
|
|
9
9
|
let(:service_broker) { CFoundry::V2::ServiceBroker.new(nil, client) }
|
10
10
|
|
11
11
|
before do
|
12
|
+
service_broker.name = 'formername'
|
13
|
+
service_broker.broker_url = 'http://former.example.com'
|
14
|
+
service_broker.token = 'formertoken'
|
15
|
+
|
12
16
|
CFAdmin::ServiceBroker::Update.client = client
|
13
|
-
client.stub(:service_broker_by_name).with('
|
17
|
+
client.stub(:service_broker_by_name).with('formername').and_return(service_broker)
|
14
18
|
end
|
15
19
|
|
16
20
|
it "updates a service broker when arguments are provided on the command line" do
|
17
21
|
service_broker.stub(:update!)
|
18
22
|
|
19
|
-
cf %W[update-service-broker --broker
|
23
|
+
cf %W[update-service-broker --broker formername --name cf-othersql --url http://other.cfapp.io --token secret2]
|
20
24
|
|
21
25
|
service_broker.name.should == 'cf-othersql'
|
22
26
|
service_broker.broker_url.should == 'http://other.cfapp.io'
|
@@ -28,11 +32,11 @@ describe CFAdmin::ServiceBroker::Update do
|
|
28
32
|
it "updates a service broker when no change arguments are provided" do
|
29
33
|
service_broker.stub(:update!)
|
30
34
|
|
31
|
-
stub_ask("Name").and_return("cf-othersql")
|
32
|
-
stub_ask("URL").and_return("http://other.example.com")
|
33
|
-
stub_ask("Token").and_return("token2")
|
35
|
+
stub_ask("Name", :default => 'formername').and_return("cf-othersql")
|
36
|
+
stub_ask("URL", :default => 'http://former.example.com').and_return("http://other.example.com")
|
37
|
+
stub_ask("Token", :default => 'formertoken').and_return("token2")
|
34
38
|
|
35
|
-
cf %W[update-service-broker
|
39
|
+
cf %W[update-service-broker formername]
|
36
40
|
|
37
41
|
service_broker.name.should == 'cf-othersql'
|
38
42
|
service_broker.broker_url.should == 'http://other.example.com'
|
@@ -0,0 +1,66 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe ServiceHelper do
|
4
|
+
describe "#label" do
|
5
|
+
it "returns the label for the service" do
|
6
|
+
service = build(:service, label: 'mysql')
|
7
|
+
helper = ServiceHelper.new(service)
|
8
|
+
|
9
|
+
expect(helper.label).to eq('mysql')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
describe "#provider" do
|
14
|
+
it "returns the provider for the service if it has one" do
|
15
|
+
service = build(:service, provider: 'aws')
|
16
|
+
helper = ServiceHelper.new(service)
|
17
|
+
|
18
|
+
expect(helper.provider).to eq('aws')
|
19
|
+
end
|
20
|
+
|
21
|
+
it "returns n/a if it does not have a provider" do
|
22
|
+
service = build(:service, provider: nil)
|
23
|
+
helper = ServiceHelper.new(service)
|
24
|
+
|
25
|
+
expect(helper.provider).to eq('n/a')
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "#version" do
|
30
|
+
it "returns the version for the service if it has one" do
|
31
|
+
service = build(:service, version: '3.11')
|
32
|
+
helper = ServiceHelper.new(service)
|
33
|
+
|
34
|
+
expect(helper.version).to eq('3.11')
|
35
|
+
end
|
36
|
+
|
37
|
+
it "returns n/a if it does not have a version" do
|
38
|
+
service = build(:service, version: nil)
|
39
|
+
helper = ServiceHelper.new(service)
|
40
|
+
|
41
|
+
expect(helper.version).to eq('n/a')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe "#service_plans" do
|
46
|
+
it "returns the plans for the service if it has one" do
|
47
|
+
plans = [
|
48
|
+
build(:service_plan, name: 'small'),
|
49
|
+
build(:service_plan, name: 'large')
|
50
|
+
]
|
51
|
+
service = build(:service, :service_plans => plans)
|
52
|
+
helper = ServiceHelper.new(service)
|
53
|
+
|
54
|
+
expect(helper.service_plans).to eq('small, large')
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
describe "#description" do
|
59
|
+
it "returns the plans for the service if it has one" do
|
60
|
+
service = build(:service, :description => 'super awesome NoSQL NO DOWNTIME')
|
61
|
+
helper = ServiceHelper.new(service)
|
62
|
+
|
63
|
+
expect(helper.description).to eq('super awesome NoSQL NO DOWNTIME')
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
@@ -5,7 +5,7 @@ describe ServiceInstanceHelper do
|
|
5
5
|
let(:provided_instance) { build(:user_provided_service_instance) }
|
6
6
|
let(:managed_instance) { build(:managed_service_instance) }
|
7
7
|
|
8
|
-
it "returns a
|
8
|
+
it "returns a ManagedServiceInstanceHelper when the argument is a ManagedServiceInstance" do
|
9
9
|
expect(ServiceInstanceHelper.new(managed_instance)).to be_a ManagedServiceInstanceHelper
|
10
10
|
end
|
11
11
|
|
@@ -117,6 +117,14 @@ module CF
|
|
117
117
|
expect(output).to say("Getting services... OK")
|
118
118
|
expect(output).to say(/service\s+version\s+provider\s+plans\s+description/)
|
119
119
|
end
|
120
|
+
|
121
|
+
context "when one of the services does not have a version or provider" do
|
122
|
+
it 'replaces those fields with n/a' do
|
123
|
+
client.stub(:services => [build(:service, :version => nil, :provider => nil)])
|
124
|
+
cf %W[services --marketplace]
|
125
|
+
expect(output).to say(/n\/a\s+n\/a/)
|
126
|
+
end
|
127
|
+
end
|
120
128
|
end
|
121
129
|
end
|
122
130
|
|
@@ -37,6 +37,24 @@ Target Information (where will apps be pushed):
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
context "when there is no target" do
|
41
|
+
let(:target) { nil }
|
42
|
+
it "displays 'N/A' as the value of the target" do
|
43
|
+
desired_result = <<-STR
|
44
|
+
Target Information (where will apps be pushed):
|
45
|
+
CF instance: N/A (API version: 2)
|
46
|
+
user: #{user.email}
|
47
|
+
target app space: #{space.name} (org: #{organization.name})
|
48
|
+
STR
|
49
|
+
|
50
|
+
desired_result.each_line do |line|
|
51
|
+
outputter.should_receive(:line).with(line.chomp)
|
52
|
+
end
|
53
|
+
|
54
|
+
TargetPrettifier.prettify(client, outputter)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
40
58
|
context "when nothing is specified" do
|
41
59
|
let(:user) { nil }
|
42
60
|
let(:space) { nil }
|
data/spec/cf/cli_spec.rb
CHANGED
@@ -316,8 +316,8 @@ module CF
|
|
316
316
|
context "when no target file exists" do
|
317
317
|
let(:fake_home_dir) { "#{SPEC_ROOT}/fixtures/fake_home_dirs/no_config" }
|
318
318
|
|
319
|
-
it "returns
|
320
|
-
expect(subject).to eq
|
319
|
+
it "returns nil" do
|
320
|
+
expect(subject).to eq nil
|
321
321
|
end
|
322
322
|
end
|
323
323
|
end
|
@@ -459,5 +459,76 @@ module CF
|
|
459
459
|
end
|
460
460
|
end
|
461
461
|
end
|
462
|
+
|
463
|
+
describe "#sane_target_url" do
|
464
|
+
subject(:sane_target_url) { context.sane_target_url(input_url)}
|
465
|
+
context "when the given url has an http(s) scheme as a prefix" do
|
466
|
+
let(:input_url) { "http://example.com" }
|
467
|
+
it "removes any trailing slashes" do
|
468
|
+
expect(sane_target_url).to eq "http://example.com"
|
469
|
+
end
|
470
|
+
end
|
471
|
+
|
472
|
+
context "when the given url has no http(s) scheme" do
|
473
|
+
let(:input_url) { "example.com" }
|
474
|
+
context "when the url can be reached via https" do
|
475
|
+
before do
|
476
|
+
TCPSocket.stub(:new).with(input_url, Net::HTTP.https_default_port)
|
477
|
+
end
|
478
|
+
|
479
|
+
it "prepends 'https' to the url" do
|
480
|
+
expect(sane_target_url).to eq "https://example.com"
|
481
|
+
end
|
482
|
+
end
|
483
|
+
|
484
|
+
context "when the url cannot be reached via https" do
|
485
|
+
before do
|
486
|
+
TCPSocket.stub(:new).with(input_url, Net::HTTP.https_default_port).and_raise error
|
487
|
+
end
|
488
|
+
|
489
|
+
context "due to ECONNREFUSED" do
|
490
|
+
let(:error) { Errno::ECONNREFUSED }
|
491
|
+
it "prepends 'http' to the url" do
|
492
|
+
expect(sane_target_url).to eq "http://example.com"
|
493
|
+
end
|
494
|
+
end
|
495
|
+
|
496
|
+
context "due to a SocketError" do
|
497
|
+
let(:error) { SocketError }
|
498
|
+
it "prepends 'http' to the url" do
|
499
|
+
expect(sane_target_url).to eq "http://example.com"
|
500
|
+
end
|
501
|
+
end
|
502
|
+
|
503
|
+
context "due to ETIMEDOUT" do
|
504
|
+
let(:error) { Errno::ETIMEDOUT }
|
505
|
+
it "prepends 'http' to the url" do
|
506
|
+
expect(sane_target_url).to eq "http://example.com"
|
507
|
+
end
|
508
|
+
end
|
509
|
+
end
|
510
|
+
|
511
|
+
context "when the TCP connection times out" do
|
512
|
+
let(:current_time) { Time.now }
|
513
|
+
|
514
|
+
before do
|
515
|
+
TCPSocket.stub(:new).with(input_url, Net::HTTP.https_default_port) {
|
516
|
+
sleep 10
|
517
|
+
}
|
518
|
+
end
|
519
|
+
|
520
|
+
it "prepends 'http' to the url" do
|
521
|
+
expect(sane_target_url).to eq "http://example.com"
|
522
|
+
end
|
523
|
+
|
524
|
+
it "times out after one second" do
|
525
|
+
start_time = Time.now
|
526
|
+
sane_target_url
|
527
|
+
end_time = Time.now
|
528
|
+
expect(end_time).to be_within(0.5).of(start_time + 1)
|
529
|
+
end
|
530
|
+
end
|
531
|
+
end
|
532
|
+
end
|
462
533
|
end
|
463
534
|
end
|
@@ -2,6 +2,7 @@ FactoryGirl.define do
|
|
2
2
|
factory :managed_service_instance, :class => CFoundry::V2::ManagedServiceInstance do
|
3
3
|
sequence(:guid) { |n| "service-instance-guid-#{n}" }
|
4
4
|
sequence(:name) { |n| "service-instance-name-#{n}" }
|
5
|
+
service_plan { build(:service_plan) }
|
5
6
|
|
6
7
|
ignore do
|
7
8
|
client { FactoryGirl.build(:client) }
|
@@ -4,10 +4,14 @@ FactoryGirl.define do
|
|
4
4
|
sequence(:name) { |n| "service-plan-name-#{n}" }
|
5
5
|
extra { "{}" }
|
6
6
|
|
7
|
+
after(:build) do |service_plan|
|
8
|
+
service_plan.service ||= FactoryGirl.build(:service, service_plans: [service_plan])
|
9
|
+
end
|
10
|
+
|
7
11
|
ignore do
|
8
12
|
client { FactoryGirl.build(:client) }
|
9
13
|
end
|
10
14
|
|
11
15
|
initialize_with { new(guid, client) }
|
12
16
|
end
|
13
|
-
end
|
17
|
+
end
|
@@ -21,6 +21,10 @@ if ENV['CF_V2_RUN_INTEGRATION']
|
|
21
21
|
end
|
22
22
|
|
23
23
|
it "can switch targets, even if a target is invalid" do
|
24
|
+
BlueShell::Runner.run("#{cf_bin} target") do |runner|
|
25
|
+
expect(runner).to say " CF instance: N/A"
|
26
|
+
end
|
27
|
+
|
24
28
|
BlueShell::Runner.run("#{cf_bin} target invalid-target") do |runner|
|
25
29
|
expect(runner).to say "Target refused"
|
26
30
|
runner.wait_for_exit
|
metadata
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.2.1.
|
5
|
-
prerelease: 6
|
4
|
+
version: 5.2.1.rc8
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Cloud Foundry Team
|
@@ -10,28 +9,25 @@ authors:
|
|
10
9
|
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date: 2013-08-
|
12
|
+
date: 2013-08-27 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: addressable
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
17
|
requirements:
|
20
|
-
- -
|
18
|
+
- - ! '>='
|
21
19
|
- !ruby/object:Gem::Version
|
22
|
-
version: '
|
20
|
+
version: '0'
|
23
21
|
type: :runtime
|
24
22
|
prerelease: false
|
25
23
|
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
none: false
|
27
24
|
requirements:
|
28
|
-
- -
|
25
|
+
- - ! '>='
|
29
26
|
- !ruby/object:Gem::Version
|
30
|
-
version: '
|
27
|
+
version: '0'
|
31
28
|
- !ruby/object:Gem::Dependency
|
32
29
|
name: caldecott-client
|
33
30
|
requirement: !ruby/object:Gem::Requirement
|
34
|
-
none: false
|
35
31
|
requirements:
|
36
32
|
- - ~>
|
37
33
|
- !ruby/object:Gem::Version
|
@@ -39,7 +35,6 @@ dependencies:
|
|
39
35
|
type: :runtime
|
40
36
|
prerelease: false
|
41
37
|
version_requirements: !ruby/object:Gem::Requirement
|
42
|
-
none: false
|
43
38
|
requirements:
|
44
39
|
- - ~>
|
45
40
|
- !ruby/object:Gem::Version
|
@@ -47,7 +42,6 @@ dependencies:
|
|
47
42
|
- !ruby/object:Gem::Dependency
|
48
43
|
name: cfoundry
|
49
44
|
requirement: !ruby/object:Gem::Requirement
|
50
|
-
none: false
|
51
45
|
requirements:
|
52
46
|
- - ~>
|
53
47
|
- !ruby/object:Gem::Version
|
@@ -55,7 +49,6 @@ dependencies:
|
|
55
49
|
type: :runtime
|
56
50
|
prerelease: false
|
57
51
|
version_requirements: !ruby/object:Gem::Requirement
|
58
|
-
none: false
|
59
52
|
requirements:
|
60
53
|
- - ~>
|
61
54
|
- !ruby/object:Gem::Version
|
@@ -63,61 +56,48 @@ dependencies:
|
|
63
56
|
- !ruby/object:Gem::Dependency
|
64
57
|
name: interact
|
65
58
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
none: false
|
67
59
|
requirements:
|
68
|
-
- -
|
60
|
+
- - ! '>='
|
69
61
|
- !ruby/object:Gem::Version
|
70
62
|
version: '0.5'
|
71
63
|
type: :runtime
|
72
64
|
prerelease: false
|
73
65
|
version_requirements: !ruby/object:Gem::Requirement
|
74
|
-
none: false
|
75
66
|
requirements:
|
76
|
-
- -
|
67
|
+
- - ! '>='
|
77
68
|
- !ruby/object:Gem::Version
|
78
69
|
version: '0.5'
|
79
70
|
- !ruby/object:Gem::Dependency
|
80
71
|
name: json_pure
|
81
72
|
requirement: !ruby/object:Gem::Requirement
|
82
|
-
none: false
|
83
73
|
requirements:
|
84
|
-
- -
|
74
|
+
- - ! '>='
|
85
75
|
- !ruby/object:Gem::Version
|
86
|
-
version: '
|
76
|
+
version: '0'
|
87
77
|
type: :runtime
|
88
78
|
prerelease: false
|
89
79
|
version_requirements: !ruby/object:Gem::Requirement
|
90
|
-
none: false
|
91
80
|
requirements:
|
92
|
-
- -
|
81
|
+
- - ! '>='
|
93
82
|
- !ruby/object:Gem::Version
|
94
|
-
version: '
|
83
|
+
version: '0'
|
95
84
|
- !ruby/object:Gem::Dependency
|
96
85
|
name: mothership
|
97
86
|
requirement: !ruby/object:Gem::Requirement
|
98
|
-
none: false
|
99
87
|
requirements:
|
100
88
|
- - ! '>='
|
101
89
|
- !ruby/object:Gem::Version
|
102
90
|
version: 0.5.1
|
103
|
-
- - <
|
104
|
-
- !ruby/object:Gem::Version
|
105
|
-
version: '1.0'
|
106
91
|
type: :runtime
|
107
92
|
prerelease: false
|
108
93
|
version_requirements: !ruby/object:Gem::Requirement
|
109
|
-
none: false
|
110
94
|
requirements:
|
111
95
|
- - ! '>='
|
112
96
|
- !ruby/object:Gem::Version
|
113
97
|
version: 0.5.1
|
114
|
-
- - <
|
115
|
-
- !ruby/object:Gem::Version
|
116
|
-
version: '1.0'
|
117
98
|
- !ruby/object:Gem::Dependency
|
118
99
|
name: multi_json
|
119
100
|
requirement: !ruby/object:Gem::Requirement
|
120
|
-
none: false
|
121
101
|
requirements:
|
122
102
|
- - ~>
|
123
103
|
- !ruby/object:Gem::Version
|
@@ -125,7 +105,6 @@ dependencies:
|
|
125
105
|
type: :runtime
|
126
106
|
prerelease: false
|
127
107
|
version_requirements: !ruby/object:Gem::Requirement
|
128
|
-
none: false
|
129
108
|
requirements:
|
130
109
|
- - ~>
|
131
110
|
- !ruby/object:Gem::Version
|
@@ -133,7 +112,6 @@ dependencies:
|
|
133
112
|
- !ruby/object:Gem::Dependency
|
134
113
|
name: rest-client
|
135
114
|
requirement: !ruby/object:Gem::Requirement
|
136
|
-
none: false
|
137
115
|
requirements:
|
138
116
|
- - ~>
|
139
117
|
- !ruby/object:Gem::Version
|
@@ -141,7 +119,6 @@ dependencies:
|
|
141
119
|
type: :runtime
|
142
120
|
prerelease: false
|
143
121
|
version_requirements: !ruby/object:Gem::Requirement
|
144
|
-
none: false
|
145
122
|
requirements:
|
146
123
|
- - ~>
|
147
124
|
- !ruby/object:Gem::Version
|
@@ -149,7 +126,6 @@ dependencies:
|
|
149
126
|
- !ruby/object:Gem::Dependency
|
150
127
|
name: uuidtools
|
151
128
|
requirement: !ruby/object:Gem::Requirement
|
152
|
-
none: false
|
153
129
|
requirements:
|
154
130
|
- - ~>
|
155
131
|
- !ruby/object:Gem::Version
|
@@ -157,7 +133,6 @@ dependencies:
|
|
157
133
|
type: :runtime
|
158
134
|
prerelease: false
|
159
135
|
version_requirements: !ruby/object:Gem::Requirement
|
160
|
-
none: false
|
161
136
|
requirements:
|
162
137
|
- - ~>
|
163
138
|
- !ruby/object:Gem::Version
|
@@ -165,7 +140,6 @@ dependencies:
|
|
165
140
|
- !ruby/object:Gem::Dependency
|
166
141
|
name: blue-shell
|
167
142
|
requirement: !ruby/object:Gem::Requirement
|
168
|
-
none: false
|
169
143
|
requirements:
|
170
144
|
- - ! '>='
|
171
145
|
- !ruby/object:Gem::Version
|
@@ -173,7 +147,6 @@ dependencies:
|
|
173
147
|
type: :development
|
174
148
|
prerelease: false
|
175
149
|
version_requirements: !ruby/object:Gem::Requirement
|
176
|
-
none: false
|
177
150
|
requirements:
|
178
151
|
- - ! '>='
|
179
152
|
- !ruby/object:Gem::Version
|
@@ -181,7 +154,6 @@ dependencies:
|
|
181
154
|
- !ruby/object:Gem::Dependency
|
182
155
|
name: factory_girl
|
183
156
|
requirement: !ruby/object:Gem::Requirement
|
184
|
-
none: false
|
185
157
|
requirements:
|
186
158
|
- - ! '>='
|
187
159
|
- !ruby/object:Gem::Version
|
@@ -189,7 +161,6 @@ dependencies:
|
|
189
161
|
type: :development
|
190
162
|
prerelease: false
|
191
163
|
version_requirements: !ruby/object:Gem::Requirement
|
192
|
-
none: false
|
193
164
|
requirements:
|
194
165
|
- - ! '>='
|
195
166
|
- !ruby/object:Gem::Version
|
@@ -197,7 +168,6 @@ dependencies:
|
|
197
168
|
- !ruby/object:Gem::Dependency
|
198
169
|
name: fakefs
|
199
170
|
requirement: !ruby/object:Gem::Requirement
|
200
|
-
none: false
|
201
171
|
requirements:
|
202
172
|
- - ~>
|
203
173
|
- !ruby/object:Gem::Version
|
@@ -205,7 +175,6 @@ dependencies:
|
|
205
175
|
type: :development
|
206
176
|
prerelease: false
|
207
177
|
version_requirements: !ruby/object:Gem::Requirement
|
208
|
-
none: false
|
209
178
|
requirements:
|
210
179
|
- - ~>
|
211
180
|
- !ruby/object:Gem::Version
|
@@ -213,7 +182,6 @@ dependencies:
|
|
213
182
|
- !ruby/object:Gem::Dependency
|
214
183
|
name: ffaker
|
215
184
|
requirement: !ruby/object:Gem::Requirement
|
216
|
-
none: false
|
217
185
|
requirements:
|
218
186
|
- - '='
|
219
187
|
- !ruby/object:Gem::Version
|
@@ -221,7 +189,6 @@ dependencies:
|
|
221
189
|
type: :development
|
222
190
|
prerelease: false
|
223
191
|
version_requirements: !ruby/object:Gem::Requirement
|
224
|
-
none: false
|
225
192
|
requirements:
|
226
193
|
- - '='
|
227
194
|
- !ruby/object:Gem::Version
|
@@ -229,7 +196,6 @@ dependencies:
|
|
229
196
|
- !ruby/object:Gem::Dependency
|
230
197
|
name: gem-release
|
231
198
|
requirement: !ruby/object:Gem::Requirement
|
232
|
-
none: false
|
233
199
|
requirements:
|
234
200
|
- - ! '>='
|
235
201
|
- !ruby/object:Gem::Version
|
@@ -237,7 +203,6 @@ dependencies:
|
|
237
203
|
type: :development
|
238
204
|
prerelease: false
|
239
205
|
version_requirements: !ruby/object:Gem::Requirement
|
240
|
-
none: false
|
241
206
|
requirements:
|
242
207
|
- - ! '>='
|
243
208
|
- !ruby/object:Gem::Version
|
@@ -245,7 +210,6 @@ dependencies:
|
|
245
210
|
- !ruby/object:Gem::Dependency
|
246
211
|
name: rake
|
247
212
|
requirement: !ruby/object:Gem::Requirement
|
248
|
-
none: false
|
249
213
|
requirements:
|
250
214
|
- - ~>
|
251
215
|
- !ruby/object:Gem::Version
|
@@ -253,7 +217,6 @@ dependencies:
|
|
253
217
|
type: :development
|
254
218
|
prerelease: false
|
255
219
|
version_requirements: !ruby/object:Gem::Requirement
|
256
|
-
none: false
|
257
220
|
requirements:
|
258
221
|
- - ~>
|
259
222
|
- !ruby/object:Gem::Version
|
@@ -261,7 +224,6 @@ dependencies:
|
|
261
224
|
- !ruby/object:Gem::Dependency
|
262
225
|
name: rspec
|
263
226
|
requirement: !ruby/object:Gem::Requirement
|
264
|
-
none: false
|
265
227
|
requirements:
|
266
228
|
- - ~>
|
267
229
|
- !ruby/object:Gem::Version
|
@@ -269,7 +231,6 @@ dependencies:
|
|
269
231
|
type: :development
|
270
232
|
prerelease: false
|
271
233
|
version_requirements: !ruby/object:Gem::Requirement
|
272
|
-
none: false
|
273
234
|
requirements:
|
274
235
|
- - ~>
|
275
236
|
- !ruby/object:Gem::Version
|
@@ -277,7 +238,6 @@ dependencies:
|
|
277
238
|
- !ruby/object:Gem::Dependency
|
278
239
|
name: rspec-instafail
|
279
240
|
requirement: !ruby/object:Gem::Requirement
|
280
|
-
none: false
|
281
241
|
requirements:
|
282
242
|
- - ~>
|
283
243
|
- !ruby/object:Gem::Version
|
@@ -285,7 +245,6 @@ dependencies:
|
|
285
245
|
type: :development
|
286
246
|
prerelease: false
|
287
247
|
version_requirements: !ruby/object:Gem::Requirement
|
288
|
-
none: false
|
289
248
|
requirements:
|
290
249
|
- - ~>
|
291
250
|
- !ruby/object:Gem::Version
|
@@ -293,7 +252,6 @@ dependencies:
|
|
293
252
|
- !ruby/object:Gem::Dependency
|
294
253
|
name: sinatra
|
295
254
|
requirement: !ruby/object:Gem::Requirement
|
296
|
-
none: false
|
297
255
|
requirements:
|
298
256
|
- - ! '>='
|
299
257
|
- !ruby/object:Gem::Version
|
@@ -301,7 +259,6 @@ dependencies:
|
|
301
259
|
type: :development
|
302
260
|
prerelease: false
|
303
261
|
version_requirements: !ruby/object:Gem::Requirement
|
304
|
-
none: false
|
305
262
|
requirements:
|
306
263
|
- - ! '>='
|
307
264
|
- !ruby/object:Gem::Version
|
@@ -309,19 +266,17 @@ dependencies:
|
|
309
266
|
- !ruby/object:Gem::Dependency
|
310
267
|
name: webmock
|
311
268
|
requirement: !ruby/object:Gem::Requirement
|
312
|
-
none: false
|
313
269
|
requirements:
|
314
|
-
- -
|
270
|
+
- - ! '>='
|
315
271
|
- !ruby/object:Gem::Version
|
316
|
-
version: '
|
272
|
+
version: '0'
|
317
273
|
type: :development
|
318
274
|
prerelease: false
|
319
275
|
version_requirements: !ruby/object:Gem::Requirement
|
320
|
-
none: false
|
321
276
|
requirements:
|
322
|
-
- -
|
277
|
+
- - ! '>='
|
323
278
|
- !ruby/object:Gem::Version
|
324
|
-
version: '
|
279
|
+
version: '0'
|
325
280
|
description:
|
326
281
|
email:
|
327
282
|
- vcap-dev@googlegroups.com
|
@@ -392,6 +347,7 @@ files:
|
|
392
347
|
- lib/cf/cli/service/delete.rb
|
393
348
|
- lib/cf/cli/service/rename.rb
|
394
349
|
- lib/cf/cli/service/service.rb
|
350
|
+
- lib/cf/cli/service/service_helper.rb
|
395
351
|
- lib/cf/cli/service/service_instance_helper.rb
|
396
352
|
- lib/cf/cli/service/services.rb
|
397
353
|
- lib/cf/cli/service/unbind.rb
|
@@ -549,6 +505,7 @@ files:
|
|
549
505
|
- spec/cf/cli/service/delete_spec.rb
|
550
506
|
- spec/cf/cli/service/help_spec.rb
|
551
507
|
- spec/cf/cli/service/rename_spec.rb
|
508
|
+
- spec/cf/cli/service/service_helper_spec.rb
|
552
509
|
- spec/cf/cli/service/service_instance_helper_spec.rb
|
553
510
|
- spec/cf/cli/service/service_spec.rb
|
554
511
|
- spec/cf/cli/service/services_spec.rb
|
@@ -622,30 +579,26 @@ files:
|
|
622
579
|
homepage: http://github.com/cloudfoundry/cf
|
623
580
|
licenses:
|
624
581
|
- Apache 2.0
|
582
|
+
metadata: {}
|
625
583
|
post_install_message:
|
626
584
|
rdoc_options: []
|
627
585
|
require_paths:
|
628
586
|
- lib
|
629
587
|
required_ruby_version: !ruby/object:Gem::Requirement
|
630
|
-
none: false
|
631
588
|
requirements:
|
632
589
|
- - ! '>='
|
633
590
|
- !ruby/object:Gem::Version
|
634
591
|
version: '0'
|
635
|
-
segments:
|
636
|
-
- 0
|
637
|
-
hash: -3330496737720499293
|
638
592
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
639
|
-
none: false
|
640
593
|
requirements:
|
641
594
|
- - ! '>'
|
642
595
|
- !ruby/object:Gem::Version
|
643
596
|
version: 1.3.1
|
644
597
|
requirements: []
|
645
598
|
rubyforge_project: cf
|
646
|
-
rubygems_version:
|
599
|
+
rubygems_version: 2.0.7
|
647
600
|
signing_key:
|
648
|
-
specification_version:
|
601
|
+
specification_version: 4
|
649
602
|
summary: Friendly command-line interface for Cloud Foundry.
|
650
603
|
test_files:
|
651
604
|
- spec/admin/curl_spec.rb
|
@@ -746,6 +699,7 @@ test_files:
|
|
746
699
|
- spec/cf/cli/service/delete_spec.rb
|
747
700
|
- spec/cf/cli/service/help_spec.rb
|
748
701
|
- spec/cf/cli/service/rename_spec.rb
|
702
|
+
- spec/cf/cli/service/service_helper_spec.rb
|
749
703
|
- spec/cf/cli/service/service_instance_helper_spec.rb
|
750
704
|
- spec/cf/cli/service/service_spec.rb
|
751
705
|
- spec/cf/cli/service/services_spec.rb
|