class Hula::ServiceBroker::Api
Attributes
http_client[R]
password[R]
url[R]
username[R]
Public Class Methods
new(url:, username:, password:, http_client: HttpJsonClient.new, broker_api_version:)
click to toggle source
# 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
Public Instance Methods
bind_instance(service_instance, plan, binding_id: SecureRandom.uuid)
click to toggle source
# 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()
click to toggle source
# 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()
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# 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
Private Instance Methods
http_bind_instance(service_instance_id:, binding_id:, service_id:, plan_id:)
click to toggle source
# File lib/hula/service_broker/api.rb, line 112 def http_bind_instance(service_instance_id:, binding_id:, service_id:, plan_id:) http_client.put( url_for("/v2/service_instances/#{service_instance_id}/service_bindings/#{binding_id}"), body: { service_id: service_id, plan_id: plan_id, }, auth: { username: username, password: password }, headers: { 'X-Broker-Api-Version': @broker_api_version } ) end
http_deprovision_service(service_instance_id:, plan_id:, service_id:)
click to toggle source
# File lib/hula/service_broker/api.rb, line 97 def http_deprovision_service(service_instance_id:, plan_id:, service_id:) uri = url.dup uri.path = uri.path += "/v2/service_instances/#{service_instance_id}" params = { :'plan_id' => plan_id, :'service_id' => service_id} uri.query = URI.encode_www_form(params) http_client.delete( uri, auth: { username: username, password: password }, headers: { 'X-Broker-Api-Version': @broker_api_version } ) end
http_provision_instance(service_instance_id:, service_id:, plan_id:)
click to toggle source
# File lib/hula/service_broker/api.rb, line 85 def http_provision_instance(service_instance_id:, service_id:, plan_id:) http_client.put( url_for("/v2/service_instances/#{service_instance_id}"), body: { service_id: service_id, plan_id: plan_id, }, auth: { username: username, password: password }, headers: { 'X-Broker-Api-Version': @broker_api_version } ) end
http_unbind_instance(service_instance_id:, binding_id:, service_id:, plan_id:)
click to toggle source
# File lib/hula/service_broker/api.rb, line 124 def http_unbind_instance(service_instance_id:, binding_id:, service_id:, plan_id:) uri = url.dup uri.path = uri.path += "/v2/service_instances/#{service_instance_id}/service_bindings/#{binding_id}" params = { :'plan_id' => plan_id, :'service_id' => service_id} uri.query = URI.encode_www_form(params) http_client.delete( uri, auth: { username: username, password: password }, headers: { 'X-Broker-Api-Version': @broker_api_version } ) end
url_for(path)
click to toggle source
# File lib/hula/service_broker/api.rb, line 137 def url_for(path) url.dup.tap { |uri| uri.path += path } end