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) ⇒ Api

Returns a new instance of Api.



25
26
27
28
29
30
31
# File 'lib/hula/service_broker/api.rb', line 25

def initialize(url:, username:, password:, http_client: HttpJsonClient.new)
  @http_client = http_client

  @url = URI(url)
  @username = username
  @password = password
end

Instance Attribute Details

#urlObject (readonly)

Returns the value of attribute url.



33
34
35
# File 'lib/hula/service_broker/api.rb', line 33

def url
  @url
end

Instance Method Details

#bind_instance(service_instance, binding_id: SecureRandom.uuid) ⇒ Object



54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/hula/service_broker/api.rb', line 54

def bind_instance(service_instance, binding_id: SecureRandom.uuid)
  result = http_bind_instance(
    service_instance_id: service_instance.id,
    binding_id: binding_id
  )

  InstanceBinding.new(
    id: binding_id,
    credentials: result.fetch(:credentials),
    service_instance: service_instance
  )
end

#catalogObject



35
36
37
38
# File 'lib/hula/service_broker/api.rb', line 35

def catalog
  json = http_client.get(url_for('/v2/catalog'), auth: { username: username, password: password })
  Catalog.new(json)
end

#debugObject



74
75
76
# File 'lib/hula/service_broker/api.rb', line 74

def debug
  http_client.get(url_for('/debug'), auth: { username: username, password: password })
end

#deprovision_instance(service_instance) ⇒ Object



50
51
52
# File 'lib/hula/service_broker/api.rb', line 50

def deprovision_instance(service_instance)
  http_deprovision_service(service_instance_id: service_instance.id)
end

#provision_instance(plan, service_instance_id: SecureRandom.uuid) ⇒ Object



40
41
42
43
44
45
46
47
48
# File 'lib/hula/service_broker/api.rb', line 40

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) ⇒ Object



67
68
69
70
71
72
# File 'lib/hula/service_broker/api.rb', line 67

def unbind_instance(instance_binding)
  http_unbind_instance(
    service_instance_id: instance_binding.service_instance.id,
    binding_id: instance_binding.id
  )
end