Configure Broker Callback URL

It is possible to configure the anynines Service Broker with an URL which will be called when different events occour. For all events the same URL will be called with a HTTP POST request. The HTTP body of the POST request differs for each event. The following table shows the different events and the HTTP body that will be send to the callback URL for the corresponding event.

Configure Callback URL

To configure a callback URL, insert the following value in your iaas-config file:

broker_callback_url: <your-url>

Once you have configured the broker_callback_url value in the iaas-config deploy all services (e.g. postgresql-service/postgresql-service.yml) with the ops/broker_callback.yml ops file.

Note: Some values depend on the cloud config of the BOSH director. The examples below used a BOSH lite cloud config. This is why you see "not defined in BOSH cloud config" in some fields.

Request Tracing

When creating, updating or deleting a service instance via Broker API, it is possible to pass a request id. This id will then be present in the callbacks.

curl -X PUT <broker-url>/v2/service_instances/0f47392f-5874-40cc-a399-7f9616a82b49 -d '{"tracing_id":"12345678", "service_id": "7ee52a02-8839-43c2-a550-728ad736bbda", "plan_id":"eb79b44b-90ec-4bd1-9cb5-3d1e52f1a6ab"}'

Events and their HTTP Post Body

Service Instance creation started

{
  "service_instance_guid":"35307a08-a377-11e7-abc4-cec278b6b50a",
  "service_plan_guid":"eb79b44b-90ec-4bd1-9cb5-3d1e52f1a6ab",
  "last_operation":"CREATED",
  "status":"CREATION_IN_PROGRESS",
  "created_at":"2017-09-27T14:37:25.238Z",
  "nodes":[
    {
      "vm_identifier":"pg-0",
      "cpu":"not defined in BOSH cloud config",
      "ephemeral_disk":"not defined in BOSH cloud config",
      "persistent_disk":2048,
      "memory":"not defined in BOSH cloud config",
      "instance_type":"not defined in BOSH cloud config",
      "hostname":"d448b93.pg-0.node.a9svs"
    }
  ]
}

Service Instance creation finished successful

{
  "service_instance_guid":"35307a08-a377-11e7-abc4-cec278b6b50a",
  "service_plan_guid":"eb79b44b-90ec-4bd1-9cb5-3d1e52f1a6ab",
  "last_operation":"STATE_UPDATE",
  "status":"SUCCEEDED",
  "created_at":"2017-09-27T14:41:06.193Z",
  "nodes":[
    {
      "vm_identifier":"pg-0",
      "cpu":"not defined in BOSH cloud config",
      "ephemeral_disk":"not defined in BOSH cloud config",
      "persistent_disk":2048,
      "memory":"not defined in BOSH cloud config",
      "instance_type":"not defined in BOSH cloud config",
      "hostname":"d448b93.pg-0.node.a9svs"
    }
  ]
}

Service Instance update started

{
  "service_instance_guid":"35307a08-a377-11e7-abc4-cec278b6b50a",
  "service_plan_guid":"6b1973db-e057-4a71-9832-a4b3f27a0d8f",
  "last_operation":"UPDATED",
  "status":"UPDATE_IN_PROGRESS",
  "created_at":"2017-09-27T15:01:16.302Z",
  "nodes":[
    {
      "vm_identifier":"pg-0",
      "cpu":"not defined in BOSH cloud config",
      "ephemeral_disk":4096,
      "persistent_disk":6144,
      "memory":"not defined in BOSH cloud config",
      "instance_type":"not defined in BOSH cloud config",
      "hostname":"d448b93.pg-0.node.a9svs"
    }
  ]
}

Service Instance update finished successful

{
  "service_instance_guid":"35307a08-a377-11e7-abc4-cec278b6b50a",
  "service_plan_guid":"6b1973db-e057-4a71-9832-a4b3f27a0d8f",
  "last_operation":"STATE_UPDATE",
  "status":"SUCCEEDED",
  "created_at":"2017-09-27T15:04:02.996Z",
  "nodes":[
    {
      "vm_identifier":"pg-0",
      "cpu":"not defined in BOSH cloud config",
      "ephemeral_disk":4096,
      "persistent_disk":6144,
      "memory":"not defined in BOSH cloud config",
      "instance_type":"not defined in BOSH cloud config",
      "hostname":"d448b93.pg-0.node.a9svs"
    }
  ]
}