Skip to content

Should the platform clean up resources when an async provision/bind returns state failed? #573

@Samze

Description

@Samze

This PR clarified clean up scenarios when the broker return unexpected error codes. However in addition it added a new MUST:

If the successful response includes a `state` of `failed` then the Platform
MUST send a deprovision request to the Service Broker to prevent an orphan
being created on the Service Broker.

I see this type of cleanup as different to orphan mitigation. Orphan mitigation ensures the platform and broker have a common understanding of what resources exist (to avoid the broker having a resource that the platform is unaware of that a user is being charged for). In this case both the platform and broker knows about the failure. However the spec is dictating that the platform cleanup the resource rather it being triggered by a user - this is beyond orphan mitigation.

Since this MUST was added in 2.14, in CF we simply report the failure back to the user and then allow them to call deprovision in their own time. This for example opens up the ability to investigate the failure before the resources are cleaned up.

I guess this comes down to how much the platform "manages" the lifecycle of instances and what it does on behalf of the user. I wonder if this should be loosened to a MAY to allow platforms to have an opinion on this.

Additionally, technically this was breaking change in the last release as a new MUST was introduced and fixing it would be another breaking change.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions