Class: Hula::ServiceBroker::Client
- Inherits:
-
Object
- Object
- Hula::ServiceBroker::Client
- Extended by:
- Forwardable
- Defined in:
- lib/hula/service_broker/client.rb
Instance Method Summary collapse
- #bind_instance(service_instance, &block) ⇒ Object
-
#initialize(args = {}) ⇒ Client
constructor
A new instance of Client.
- #provision_and_bind(service_name, plan_name, &block) ⇒ Object
- #provision_instance(service_name, plan_name, &block) ⇒ Object
Constructor Details
#initialize(args = {}) ⇒ Client
Returns a new instance of Client.
28 29 30 31 |
# 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 |
Instance Method Details
#bind_instance(service_instance, &block) ⇒ Object
52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/hula/service_broker/client.rb', line 52 def bind_instance(service_instance, &block) binding = api.bind_instance(service_instance) return binding unless block begin block.call(binding, service_instance) ensure api.unbind_instance(binding) sleep 1 end end |
#provision_and_bind(service_name, plan_name, &block) ⇒ Object
33 34 35 36 37 38 |
# 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? provision_instance(service_name, plan_name) do |service_instance| bind_instance(service_instance, &block) end end |
#provision_instance(service_name, plan_name, &block) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/hula/service_broker/client.rb', line 40 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) end end |