class Hula::ServiceBroker::Client

Attributes

api[R]

Public Class Methods

new(args = {}) click to toggle source
# File lib/hula/service_broker/client.rb, line 28
def initialize(args = {})
  api_args = args.reject { |k, _v| k == :api }
  @api = args.fetch(:api) { Api.new(api_args) }
end

Public Instance Methods

bind_instance(service_instance, service_name, plan_name, &block) click to toggle source
# File lib/hula/service_broker/client.rb, line 54
def bind_instance(service_instance, service_name, plan_name, &block)
  plan = catalog.service_plan(service_name, plan_name)

  binding = api.bind_instance(service_instance, plan)
  return binding unless block

  begin
    block.call(binding, service_instance)
  ensure
    api.unbind_instance(binding, plan)
    sleep 1
  end
end
provision_and_bind(service_name, plan_name, &block) click to toggle source
# File lib/hula/service_broker/client.rb, line 33
def provision_and_bind(service_name, plan_name, &block)
  raise Error, 'no block given' unless block_given?
  plan = catalog.service_plan(service_name, plan_name)

  provision_instance(service_name, plan_name) do |service_instance|
    bind_instance(service_instance, service_name, plan_name, &block)
  end
end
provision_instance(service_name, plan_name, &block) click to toggle source
# File lib/hula/service_broker/client.rb, line 42
def provision_instance(service_name, plan_name, &block)
  plan = catalog.service_plan(service_name, plan_name)
  service_instance = api.provision_instance(plan)
  return service_instance unless block

  begin
    block.call(service_instance)
  ensure
    api.deprovision_instance(service_instance, plan)
  end
end