Class: Hula::ServiceBroker::Api

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/hula/service_broker/api.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

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

#urlObject (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

#catalogObject



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

#debugObject



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