Class: Hula::ServiceBroker::Api
- Inherits:
-
Object
- Object
- Hula::ServiceBroker::Api
- Extended by:
- Forwardable
- Defined in:
- lib/hula/service_broker/api.rb
Instance Attribute Summary collapse
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
- #bind_instance(service_instance, plan, binding_id: SecureRandom.uuid) ⇒ Object
- #catalog ⇒ Object
- #debug ⇒ Object
- #deprovision_instance(service_instance, plan) ⇒ Object
-
#initialize(url:, username:, password:, http_client: HttpJsonClient.new, broker_api_version:) ⇒ Api
constructor
A new instance of Api.
- #provision_instance(plan, service_instance_id: SecureRandom.uuid) ⇒ Object
- #unbind_instance(instance_binding, plan) ⇒ Object
Constructor Details
#initialize(url:, username:, password:, http_client: HttpJsonClient.new, broker_api_version:) ⇒ Api
Returns a new instance of Api.
25 26 27 28 29 30 31 32 |
# File 'lib/hula/service_broker/api.rb', line 25 def initialize(url:, username:, password:, http_client: HttpJsonClient.new, broker_api_version:) @http_client = http_client @url = URI(url) @username = username @password = password @broker_api_version = broker_api_version end |
Instance Attribute Details
#url ⇒ Object (readonly)
Returns the value of attribute url.
34 35 36 |
# File 'lib/hula/service_broker/api.rb', line 34 def url @url end |
Instance Method Details
#bind_instance(service_instance, plan, binding_id: SecureRandom.uuid) ⇒ Object
55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/hula/service_broker/api.rb', line 55 def bind_instance(service_instance, plan, binding_id: SecureRandom.uuid) result = http_bind_instance( service_instance_id: service_instance.id, binding_id: binding_id, service_id: plan.service_id, plan_id: plan.id ) InstanceBinding.new( id: binding_id, credentials: result.fetch(:credentials), service_instance: service_instance ) end |
#catalog ⇒ Object
36 37 38 39 |
# File 'lib/hula/service_broker/api.rb', line 36 def catalog json = http_client.get(url_for('/v2/catalog'), auth: { username: username, password: password }, headers: { 'X-Broker-Api-Version': @broker_api_version }) Catalog.new(json) end |
#debug ⇒ Object
79 80 81 |
# File 'lib/hula/service_broker/api.rb', line 79 def debug http_client.get(url_for('/debug'), auth: { username: username, password: password }, headers: { 'X-Broker-Api-Version': @broker_api_version }) end |
#deprovision_instance(service_instance, plan) ⇒ Object
51 52 53 |
# File 'lib/hula/service_broker/api.rb', line 51 def deprovision_instance(service_instance, plan) http_deprovision_service(service_instance_id: service_instance.id, plan_id: plan.id, service_id: plan.service_id) end |
#provision_instance(plan, service_instance_id: SecureRandom.uuid) ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/hula/service_broker/api.rb', line 41 def provision_instance(plan, service_instance_id: SecureRandom.uuid) http_provision_instance( service_id: plan.service_id, plan_id: plan.id, service_instance_id: service_instance_id ) ServiceInstance.new(id: service_instance_id) end |
#unbind_instance(instance_binding, plan) ⇒ Object
70 71 72 73 74 75 76 77 |
# File 'lib/hula/service_broker/api.rb', line 70 def unbind_instance(instance_binding, plan) http_unbind_instance( service_instance_id: instance_binding.service_instance.id, binding_id: instance_binding.id, service_id: plan.service_id, plan_id: plan.id ) end |