cf 5.2.1.rc7 → 5.2.1.rc8

Sign up to get free protection for your applications and to get access to all the features.
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 though an http proxy server", :alias => "--http-proxy",
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 though an https proxy server", :alias => "--https-proxy",
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
- begin
326
- TCPSocket.new(url, Net::HTTP.https_default_port)
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(sane_target_url(url))
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
- @instance.service_plan.service.label
53
+ @service_helper.label
53
54
  end
54
55
 
55
56
  def service_provider
56
- @instance.service_plan.service.provider
57
+ @service_helper.provider
57
58
  end
58
59
 
59
60
  def version
60
- @instance.service_plan.service.version
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
- [c(s.label, :name),
57
- s.version,
58
- s.provider,
59
- s.service_plans.collect(&:name).join(", "),
60
- s.description
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
@@ -7,5 +7,4 @@ module CF
7
7
  TOKENS_FILE = "#{CONFIG_DIR}/tokens.yml".freeze
8
8
  COLORS_FILE = "#{CONFIG_DIR}/colors.yml".freeze
9
9
  CRASH_FILE = "#{CONFIG_DIR}/crash".freeze
10
- DEFAULT_API_URL = "api.run.pivotal.io".freeze
11
10
  end
data/lib/cf/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module CF
2
- VERSION = "5.2.1.rc7".freeze
2
+ VERSION = "5.2.1.rc8".freeze
3
3
  end
@@ -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
- #generate_release_notes(old_version)
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
- #def generate_release_notes(old_version)
21
- # print_with_purpose "Generating release notes..."
22
- # file_name = "release_#{gem_version}"
23
- # sh!("anchorman notes --name=#{file_name} --from=v#{old_version}")
24
- # sh!("git add release_notes")
25
- #end
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('cf-mysql').and_return(service_broker)
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 cf-mysql --name cf-othersql --url http://other.cfapp.io --token secret2]
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 cf-mysql]
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 ManagedSerivceInstanceHelper when the argument is a ManagedServiceInstance" do
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 the default production API url" do
320
- expect(subject).to eq "https://api.run.pivotal.io"
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.rc7
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-23 00:00:00.000000000 Z
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: '2.2'
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: '2.2'
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: '1.6'
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: '1.6'
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: '1.9'
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: '1.9'
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: 1.8.25
599
+ rubygems_version: 2.0.7
647
600
  signing_key:
648
- specification_version: 3
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