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 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