cfoundry 4.0.4.rc1 → 4.0.4.rc2

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 CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTViOTk3MTEyZDlhOTYwNmY1MjI1MjRmMzVmMTQ1ODk3Nzc3ZDk4Nw==
4
+ MzcyYjhmZjYxNzg5Yzg5NDFhZDJiZThlZmQzMjdiOGE4ZTg3ODEzMQ==
5
5
  data.tar.gz: !binary |-
6
- ZWUxOWMwNWQ2ZGQyZTk5MWJmNmU2OThjMGQ0YTBjZGExOTBiMWM0Zg==
6
+ MTFlMTk5ODQ5YTQxMTM2NmJkYjQ2YmFkZDRkOTM5ZDhmNmE1N2JjYQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZTkxOTMyZjYyYTBiOWY4NTgyMTU4ZTJkNzY3YmNiNzljZTRhY2ZlOWZjZDRj
10
- ZWIyOGVmN2YwMzhjMDlmMDc3MzMyYjM0MjBhOWFhMDY2OWE2ZWEwZDdlNzlh
11
- MTkzZTExMWVmNzg1YTUwNTNhZjAyZTUzYTQxZThjZWE5MjhkYWY=
9
+ NTUwNTA2ZmRiN2JhM2MzNjIxZWQ5MzJlMzAwMTRmNGFmN2I4OWQ0MmU0MWFl
10
+ Y2YwOWMxMTk1NGUzOWQ3NjJhODgwOTA5ZjY2Y2E5YjRlODJmMjY2ODQ4MDI5
11
+ YWYzYjM0MzUwZTkwY2U2NTVjZDNmYjdlNjI1NGY2YTEyZGMxMDQ=
12
12
  data.tar.gz: !binary |-
13
- MDcyMjA5ZDA0MzYzY2NiNGFmN2MxNzNhN2JjNmE4NGQxMjg4Y2MzZDE1NDcy
14
- M2RmZTE4NGYyNTdiMGNmMjM3Mjc2MmQ4ZTI0YzE0YzE2MmYwMTE0MzkzNmU4
15
- MzFmZDdmN2RmZDIxNGI5ODFhZjMzZmJmYWJhMzRlYTYwNjdiMjM=
13
+ ZmMyYTBjMDM0MmNmY2ZjMzVlMzQwY2JmMWY4NDlmMzRjMjlhMzllMzI4N2Uy
14
+ MWRjNGEyOGM3ZjM4NjZkOGE0NGRkOTFlODkxZWIwMGExYzcyZTU0NTZhMjU4
15
+ MTRmNWE0NjBlMmZkNDQ1ZWIyMzM2NTlkZmIxMzYxNzIxMmY3M2Q=
@@ -5,7 +5,7 @@ require "cfoundry/auth_token"
5
5
  require "cfoundry/v2/app"
6
6
  require "cfoundry/v2/service"
7
7
  require "cfoundry/v2/service_binding"
8
- require "cfoundry/v2/service_instance"
8
+ require "cfoundry/v2/managed_service_instance"
9
9
  require "cfoundry/v2/user_provided_service_instance"
10
10
  require "cfoundry/v2/service_plan"
11
11
  require "cfoundry/v2/service_auth_token"
@@ -92,5 +92,13 @@ module CFoundry::V2
92
92
  opts[:user_provided] = true
93
93
  super(path, opts, *args)
94
94
  end
95
+
96
+ def make_service_instance(json)
97
+ klass = "CFoundry::V2::#{json[:entity][:type].camelize}".constantize
98
+ klass.new(
99
+ json[:metadata][:guid],
100
+ self,
101
+ json)
102
+ end
95
103
  end
96
104
  end
@@ -0,0 +1,13 @@
1
+ require "cfoundry/v2/service_instance"
2
+
3
+ module CFoundry::V2
4
+ class ManagedServiceInstance < ServiceInstance
5
+ attribute :dashboard_url, :string
6
+ attribute :credentials, :hash
7
+ to_one :service_plan
8
+
9
+ def self.object_name
10
+ 'service_instance'
11
+ end
12
+ end
13
+ end
@@ -3,10 +3,7 @@ require "cfoundry/v2/model"
3
3
  module CFoundry::V2
4
4
  class ServiceInstance < Model
5
5
  attribute :name, :string
6
- attribute :dashboard_url, :string
7
- attribute :credentials, :hash
8
6
  to_one :space
9
- to_one :service_plan
10
7
  to_many :service_bindings
11
8
 
12
9
  scoped_to_space
@@ -1,11 +1,7 @@
1
- require "cfoundry/v2/model"
1
+ require "cfoundry/v2/service_instance"
2
2
 
3
3
  module CFoundry::V2
4
- class UserProvidedServiceInstance < Model
5
- attribute :name, :string
4
+ class UserProvidedServiceInstance < ServiceInstance
6
5
  attribute :credentials, :hash
7
- to_one :space
8
-
9
- scoped_to_space
10
6
  end
11
7
  end
@@ -1,4 +1,4 @@
1
1
  module CFoundry # :nodoc:
2
2
  # CFoundry library version number.
3
- VERSION = "4.0.4.rc1".freeze
3
+ VERSION = "4.0.4.rc2".freeze
4
4
  end
@@ -10,13 +10,4 @@ describe CFoundry::Client do
10
10
  it "returns a v2 client" do
11
11
  subject.should be_a(CFoundry::V2::Client)
12
12
  end
13
-
14
- describe "#service_instances" do
15
- let(:client) { build(:client) }
16
-
17
- it "includes user-provided instances" do
18
- client.base.should_receive(:service_instances).with(hash_including(user_provided: true)).and_return([])
19
- client.service_instances
20
- end
21
- end
22
13
  end
@@ -84,6 +84,27 @@ module CFoundry
84
84
  expect{client.target = new_target}.to change{client.base.target}.from("http://api.example.com").to(new_target)
85
85
  end
86
86
  end
87
+
88
+ describe "#service_instances" do
89
+ let(:client) { build(:client) }
90
+
91
+ it "includes user-provided instances" do
92
+ expect(client.base).to receive(:service_instances).with(hash_including(user_provided: true)).and_return([])
93
+ client.service_instances
94
+ end
95
+ end
96
+
97
+ describe "#make_service_instance" do
98
+ it "returns a UserProvidedServiceInstance when json[:type] is user_provided_service_instance" do
99
+ json = MultiJson.load(CcApiStub::Helper.load_fixtures(:fake_cc_user_provided_service_instance).to_json, :symbolize_keys => true)
100
+ instance = client.make_service_instance(json)
101
+ expect(instance).to be_a(CFoundry::V2::UserProvidedServiceInstance)
102
+
103
+ json = MultiJson.load(CcApiStub::Helper.load_fixtures(:fake_cc_managed_service_instance).to_json, :symbolize_keys => true)
104
+ instance = client.make_service_instance(json)
105
+ expect(instance).to be_a(CFoundry::V2::ManagedServiceInstance)
106
+ end
107
+ end
87
108
  end
88
109
  end
89
110
  end
@@ -2,7 +2,7 @@ require "spec_helper"
2
2
 
3
3
  module CFoundry
4
4
  module V2
5
- describe ServiceInstance do
5
+ describe ManagedServiceInstance do
6
6
  let(:client) { build(:client) }
7
7
  subject { build(:service_instance, :client => client) }
8
8
 
@@ -56,6 +56,7 @@ module CFoundry
56
56
  "updated_at": null
57
57
  },
58
58
  "entity": {
59
+ "type": "user_provided_service_instance",
59
60
  "name": "user-provided-6a19d",
60
61
  "credentials": {
61
62
  "thing": "a"
@@ -73,6 +74,7 @@ module CFoundry
73
74
  "updated_at": null
74
75
  },
75
76
  "entity": {
77
+ "type": "managed_service_instance",
76
78
  "name": "rds-mysql-3991f",
77
79
  "credentials": {
78
80
  "name": "da2f110d519d848a1a677f8df77890cc3",
@@ -1,5 +1,5 @@
1
1
  FactoryGirl.define do
2
- factory :service_instance, :class => CFoundry::V2::ServiceInstance do
2
+ factory :service_instance, :class => CFoundry::V2::ManagedServiceInstance do
3
3
  sequence(:guid) { |n| "service-instance-guid-#{n}" }
4
4
  ignore do
5
5
  client { FactoryGirl.build(:client) }
@@ -0,0 +1,83 @@
1
+ {
2
+ "metadata": {
3
+ "guid": "managed-service-instance-id-1",
4
+ "url": "/v2/service_instances/managed-service-instance-id-1",
5
+ "created_at": "2012-10-23 00:00:00 +0000",
6
+ "updated_at": null
7
+ },
8
+ "entity": {
9
+ "type": "managed_service_instance",
10
+ "name": "service-instance-name-1",
11
+ "service_plan_guid": "service-plan-id-1",
12
+ "space_guid": "space-id-1",
13
+ "gateway_data": {
14
+ "plan": "100",
15
+ "version": "9.0"
16
+ },
17
+ "dashboard_url": "https://dev3cloudfoundry.appdirect.com/api/custom/cloudfoundry/v1/services/managed-service-instance-id-1/sso",
18
+ "service_bindings_url": "/v2/service_instances/managed-service-instance-id-1/service_bindings",
19
+ "service_bindings": [
20
+ {
21
+ "metadata": {
22
+ "guid": "service-binding-id-1",
23
+ "url": "/v2/service_bindings/service-binding-id-1",
24
+ "created_at": "2012-10-23 00:34:18 +0000",
25
+ "updated_at": null
26
+ },
27
+ "entity": {
28
+ "app_guid": "application-id-1",
29
+ "service_instance_guid": "managed-service-instance-id-1",
30
+ "binding_options": null,
31
+ "gateway_data": {
32
+ "plan": "100",
33
+ "version": "9.0",
34
+ "data": {
35
+ "binding_options": {}
36
+ }
37
+ },
38
+ "app_url": "/v2/apps/application-id-1",
39
+ "service_instance_url": "/v2/service_instances/managed-service-instance-id-1"
40
+ }
41
+ }
42
+ ],
43
+ "space_url": "/v2/spaces/space-id-1",
44
+ "space": {
45
+ "metadata": {
46
+ "guid": "space-id-1",
47
+ "url": "/v2/spaces/space-id-1",
48
+ "created_at": "2012-09-26 00:00:00 +0000",
49
+ "updated_at": null
50
+ },
51
+ "entity": {
52
+ "name": "organization-name-1",
53
+ "organization_guid": "organization-id-1",
54
+ "developers_url": "/v2/spaces/space-id-1/developers",
55
+ "managers_url": "/v2/spaces/space-id-1/managers",
56
+ "auditors_url": "/v2/spaces/space-id-1/auditors",
57
+ "apps_url": "/v2/spaces/space-id-1/apps",
58
+ "domains_url": "/v2/spaces/space-id-1/domains",
59
+ "service_instances_url": "/v2/spaces/space-id-1/service_instances",
60
+ "organization_url": "/v2/organizations/organization-id-1"
61
+ }
62
+ },
63
+ "service_plan_url": "/v2/service_plans/service-plan-id-1",
64
+ "service_plan": {
65
+ "metadata": {
66
+ "guid": "service-plan-id-1",
67
+ "url": "/v2/service_plans/service-plan-id-1",
68
+ "created_at": "2012-09-19 21:00:00 +0000",
69
+ "updated_at": "2012-10-23 00:00:00 +0000"
70
+ },
71
+ "entity": {
72
+ "name": "100",
73
+ "description": "dummy description",
74
+ "service_guid": "service-id-1",
75
+ "service_instance_guids": [
76
+ "managed-service-instance-id-1"
77
+ ],
78
+ "service_instances_url": "/v2/service_plans/service-plan-id-1/service_instances",
79
+ "service_url": "/v2/services/service-id-1"
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,51 @@
1
+ {
2
+ "metadata": {
3
+ "guid": "user-provided-service-instance-id-1",
4
+ "url": "/v2/service_instances/user-provided-service-instance-id-1",
5
+ "created_at": "2012-10-23 00:00:00 +0000",
6
+ "updated_at": null
7
+ },
8
+ "entity": {
9
+ "type": "user_provided_service_instance",
10
+ "name": "service-instance-name-1",
11
+ "space_guid": "space-id-1",
12
+ "service_bindings_url": "/v2/service_instances/user-provided-service-instance-id-1/service_bindings",
13
+ "service_bindings": [
14
+ {
15
+ "metadata": {
16
+ "guid": "service-binding-id-1",
17
+ "url": "/v2/service_bindings/service-binding-id-1",
18
+ "created_at": "2012-10-23 00:34:18 +0000",
19
+ "updated_at": null
20
+ },
21
+ "entity": {
22
+ "app_guid": "application-id-1",
23
+ "service_instance_guid": "user-provided-service-instance-id-1",
24
+ "binding_options": null,
25
+ "app_url": "/v2/apps/application-id-1",
26
+ "service_instance_url": "/v2/service_instances/user-provided-service-instance-id-1"
27
+ }
28
+ }
29
+ ],
30
+ "space_url": "/v2/spaces/space-id-1",
31
+ "space": {
32
+ "metadata": {
33
+ "guid": "space-id-1",
34
+ "url": "/v2/spaces/space-id-1",
35
+ "created_at": "2012-09-26 00:00:00 +0000",
36
+ "updated_at": null
37
+ },
38
+ "entity": {
39
+ "name": "organization-name-1",
40
+ "organization_guid": "organization-id-1",
41
+ "developers_url": "/v2/spaces/space-id-1/developers",
42
+ "managers_url": "/v2/spaces/space-id-1/managers",
43
+ "auditors_url": "/v2/spaces/space-id-1/auditors",
44
+ "apps_url": "/v2/spaces/space-id-1/apps",
45
+ "domains_url": "/v2/spaces/space-id-1/domains",
46
+ "service_instances_url": "/v2/spaces/space-id-1/service_instances",
47
+ "organization_url": "/v2/organizations/organization-id-1"
48
+ }
49
+ }
50
+ }
51
+ }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cfoundry
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.4.rc1
4
+ version: 4.0.4.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cloud Foundry Team
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-30 00:00:00.000000000 Z
12
+ date: 2013-08-01 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activemodel
@@ -247,6 +247,7 @@ files:
247
247
  - lib/cfoundry/v2/base.rb
248
248
  - lib/cfoundry/v2/client.rb
249
249
  - lib/cfoundry/v2/domain.rb
250
+ - lib/cfoundry/v2/managed_service_instance.rb
250
251
  - lib/cfoundry/v2/model.rb
251
252
  - lib/cfoundry/v2/model_magic/attribute.rb
252
253
  - lib/cfoundry/v2/model_magic/client_extensions.rb
@@ -301,6 +302,7 @@ files:
301
302
  - spec/cfoundry/v2/base_spec.rb
302
303
  - spec/cfoundry/v2/client_spec.rb
303
304
  - spec/cfoundry/v2/domain_spec.rb
305
+ - spec/cfoundry/v2/managed_service_instance_spec.rb
304
306
  - spec/cfoundry/v2/model_magic/model_magic/attribute_spec.rb
305
307
  - spec/cfoundry/v2/model_magic/model_magic/has_summary_spec.rb
306
308
  - spec/cfoundry/v2/model_magic/model_magic/to_many_spec.rb
@@ -310,7 +312,6 @@ files:
310
312
  - spec/cfoundry/v2/organization_spec.rb
311
313
  - spec/cfoundry/v2/quota_definition_spec.rb
312
314
  - spec/cfoundry/v2/route_spec.rb
313
- - spec/cfoundry/v2/service_instance_spec.rb
314
315
  - spec/cfoundry/v2/space_spec.rb
315
316
  - spec/cfoundry/v2/user_spec.rb
316
317
  - spec/cfoundry/validator_spec.rb
@@ -353,6 +354,7 @@ files:
353
354
  - spec/fixtures/fake_cc_domain_spaces.json
354
355
  - spec/fixtures/fake_cc_empty_search.json
355
356
  - spec/fixtures/fake_cc_frameworks.json
357
+ - spec/fixtures/fake_cc_managed_service_instance.json
356
358
  - spec/fixtures/fake_cc_organization.json
357
359
  - spec/fixtures/fake_cc_organization_domains.json
358
360
  - spec/fixtures/fake_cc_organization_search.json
@@ -371,6 +373,7 @@ files:
371
373
  - spec/fixtures/fake_cc_stats.json
372
374
  - spec/fixtures/fake_cc_user.json
373
375
  - spec/fixtures/fake_cc_user_organizations.json
376
+ - spec/fixtures/fake_cc_user_provided_service_instance.json
374
377
  - spec/fixtures/fake_cc_user_with_managers.json
375
378
  - spec/integration/client_spec.rb
376
379
  - spec/spec_helper.rb
@@ -429,6 +432,7 @@ test_files:
429
432
  - spec/cfoundry/v2/base_spec.rb
430
433
  - spec/cfoundry/v2/client_spec.rb
431
434
  - spec/cfoundry/v2/domain_spec.rb
435
+ - spec/cfoundry/v2/managed_service_instance_spec.rb
432
436
  - spec/cfoundry/v2/model_magic/model_magic/attribute_spec.rb
433
437
  - spec/cfoundry/v2/model_magic/model_magic/has_summary_spec.rb
434
438
  - spec/cfoundry/v2/model_magic/model_magic/to_many_spec.rb
@@ -438,7 +442,6 @@ test_files:
438
442
  - spec/cfoundry/v2/organization_spec.rb
439
443
  - spec/cfoundry/v2/quota_definition_spec.rb
440
444
  - spec/cfoundry/v2/route_spec.rb
441
- - spec/cfoundry/v2/service_instance_spec.rb
442
445
  - spec/cfoundry/v2/space_spec.rb
443
446
  - spec/cfoundry/v2/user_spec.rb
444
447
  - spec/cfoundry/validator_spec.rb
@@ -481,6 +484,7 @@ test_files:
481
484
  - spec/fixtures/fake_cc_domain_spaces.json
482
485
  - spec/fixtures/fake_cc_empty_search.json
483
486
  - spec/fixtures/fake_cc_frameworks.json
487
+ - spec/fixtures/fake_cc_managed_service_instance.json
484
488
  - spec/fixtures/fake_cc_organization.json
485
489
  - spec/fixtures/fake_cc_organization_domains.json
486
490
  - spec/fixtures/fake_cc_organization_search.json
@@ -499,6 +503,7 @@ test_files:
499
503
  - spec/fixtures/fake_cc_stats.json
500
504
  - spec/fixtures/fake_cc_user.json
501
505
  - spec/fixtures/fake_cc_user_organizations.json
506
+ - spec/fixtures/fake_cc_user_provided_service_instance.json
502
507
  - spec/fixtures/fake_cc_user_with_managers.json
503
508
  - spec/integration/client_spec.rb
504
509
  - spec/spec_helper.rb