cf 1.0.1.rc1 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/cf/cli/service/create.rb +3 -7
- data/lib/cf/version.rb +1 -1
- data/spec/cf/cli/service/create_spec.rb +67 -0
- metadata +13 -11
@@ -44,17 +44,13 @@ module CF::Service
|
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
|
-
|
48
|
-
# cast to Array since it might be given as a Service with #invoke
|
49
|
-
offerings = Array(input[:offering, offerings.sort_by(&:label)])
|
50
|
-
input.forget(:offering)
|
51
|
-
end
|
47
|
+
selected_offerings = offerings.any? ? Array(input[:offering, offerings.sort_by(&:label)]) : []
|
52
48
|
|
53
|
-
if
|
49
|
+
if selected_offerings.empty?
|
54
50
|
fail "Cannot find services matching the given criteria."
|
55
51
|
end
|
56
52
|
|
57
|
-
offering =
|
53
|
+
offering = selected_offerings.first
|
58
54
|
|
59
55
|
service = client.service_instance
|
60
56
|
service.name = input[:name, offering]
|
data/lib/cf/version.rb
CHANGED
@@ -0,0 +1,67 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module CF::Service
|
4
|
+
describe Create do
|
5
|
+
before do
|
6
|
+
any_instance_of(CF::CLI) do |cli|
|
7
|
+
stub(cli).client { client }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "metadata" do
|
12
|
+
let(:command) { Mothership.commands[:create_service] }
|
13
|
+
|
14
|
+
describe "command" do
|
15
|
+
subject { command }
|
16
|
+
its(:description) { should eq "Create a service" }
|
17
|
+
it { expect(Mothership::Help.group(:services, :manage)).to include(subject) }
|
18
|
+
end
|
19
|
+
|
20
|
+
include_examples "inputs must have descriptions"
|
21
|
+
|
22
|
+
describe "arguments" do
|
23
|
+
subject { command.arguments }
|
24
|
+
it "has the correct argument order" do
|
25
|
+
should eq([{:type => :optional, :value => nil, :name => :offering}, {:type => :optional, :value => nil, :name => :name}])
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
context "when there are services" do
|
31
|
+
let(:service_plan) { fake(:service_plan, :name => "F20") }
|
32
|
+
let(:selected_service) { fake(:service, :label => "Foo Service", :service_plans => [service_plan]) }
|
33
|
+
let(:command) { Mothership.new.invoke(:create_service, {}, {}) }
|
34
|
+
let(:client) { fake_client(:services => services) }
|
35
|
+
|
36
|
+
describe "when there is at least one service" do
|
37
|
+
let(:services) { [selected_service] }
|
38
|
+
|
39
|
+
it "asks for the service" do
|
40
|
+
mock_ask("What kind?", anything) { selected_service }
|
41
|
+
mock_ask("Name?", anything) { selected_service.label }
|
42
|
+
mock_ask("Which plan?", anything) { service_plan }
|
43
|
+
any_instance_of(CFoundry::V2::ServiceInstance) do |service_instance|
|
44
|
+
stub(service_instance).create!
|
45
|
+
end
|
46
|
+
|
47
|
+
capture_output { command }
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "when there are more than one services" do
|
52
|
+
let(:services) { [selected_service, fake(:service), fake(:service)] }
|
53
|
+
|
54
|
+
it "asks for the service" do
|
55
|
+
mock_ask("What kind?", anything) { selected_service }
|
56
|
+
mock_ask("Name?", anything) { selected_service.label }
|
57
|
+
mock_ask("Which plan?", anything) { service_plan }
|
58
|
+
any_instance_of(CFoundry::V2::ServiceInstance) do |service_instance|
|
59
|
+
stub(service_instance).create!
|
60
|
+
end
|
61
|
+
|
62
|
+
capture_output { command }
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
metadata
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
5
|
-
prerelease:
|
4
|
+
version: 1.1.0
|
5
|
+
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Cloud Foundry Team
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2013-05-
|
13
|
+
date: 2013-05-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: addressable
|
@@ -51,10 +51,10 @@ dependencies:
|
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.
|
54
|
+
version: 1.2.0
|
55
55
|
- - <
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: '1.
|
57
|
+
version: '1.3'
|
58
58
|
type: :runtime
|
59
59
|
prerelease: false
|
60
60
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -62,10 +62,10 @@ dependencies:
|
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
64
64
|
- !ruby/object:Gem::Version
|
65
|
-
version: 1.
|
65
|
+
version: 1.2.0
|
66
66
|
- - <
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
68
|
+
version: '1.3'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: interact
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -477,6 +477,7 @@ files:
|
|
477
477
|
- spec/cf/cli/route/map_spec.rb
|
478
478
|
- spec/cf/cli/route/unmap_spec.rb
|
479
479
|
- spec/cf/cli/service/bind_spec.rb
|
480
|
+
- spec/cf/cli/service/create_spec.rb
|
480
481
|
- spec/cf/cli/service/delete_spec.rb
|
481
482
|
- spec/cf/cli/service/rename_spec.rb
|
482
483
|
- spec/cf/cli/service/service_spec.rb
|
@@ -534,16 +535,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
534
535
|
version: '0'
|
535
536
|
segments:
|
536
537
|
- 0
|
537
|
-
hash:
|
538
|
+
hash: -4141716087622851168
|
538
539
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
539
540
|
none: false
|
540
541
|
requirements:
|
541
|
-
- - ! '
|
542
|
+
- - ! '>='
|
542
543
|
- !ruby/object:Gem::Version
|
543
|
-
version:
|
544
|
+
version: '0'
|
544
545
|
requirements: []
|
545
546
|
rubyforge_project: cf
|
546
|
-
rubygems_version: 1.8.
|
547
|
+
rubygems_version: 1.8.25
|
547
548
|
signing_key:
|
548
549
|
specification_version: 3
|
549
550
|
summary: Friendly command-line interface for Cloud Foundry.
|
@@ -622,6 +623,7 @@ test_files:
|
|
622
623
|
- spec/cf/cli/route/map_spec.rb
|
623
624
|
- spec/cf/cli/route/unmap_spec.rb
|
624
625
|
- spec/cf/cli/service/bind_spec.rb
|
626
|
+
- spec/cf/cli/service/create_spec.rb
|
625
627
|
- spec/cf/cli/service/delete_spec.rb
|
626
628
|
- spec/cf/cli/service/rename_spec.rb
|
627
629
|
- spec/cf/cli/service/service_spec.rb
|