Skip to main content

GetProjectDeletionImpact

GET 

/admin/v1/customers/:customer_id/projects/:project_id/deletion-impact

Report what deleting a project takes off the fleet, and how far that has got (fraser#9424). One call answers both halves of the operation: before the delete it names every data plane carrying the project's label, which is the blast radius an operator confirms; after it, the same data planes say whether each has cleared the project's configuration or is still serving what it last pulled.

The reading is per data plane rather than per gateway (fraser#8587). A data plane hosting several of the project's gateways is one line, and it reads CLEARED only once every one of them has acknowledged the zeroized revision.

What puts a data plane in the receipt is a membership this delete unwound, or a gateway still joined to the project. A gateway joined with no membership behind it is a stranded re-attach and holds its data plane at CLEARING, because it serves the project and has acknowledged nothing for it.

What this RPC cannot see after the delete is a data plane that carried the label with neither of those left on it. Nothing sent it a zeroized revision, so there is no acknowledgement to wait for, and it leaves the receipt with the project. The membership ledger is what records the unwind, and a label is not a substitute for one.

The receipt covers THIS delete and no earlier one. A gateway that left the project before it was deleted took the project off its data plane then, and the delete found nothing there to remove, so that data plane is absent from the receipt exactly as it was absent from the confirmation.

A data plane is named by where its gateway sits when the receipt is read, not by where the membership was when it detached, because the ledger records the gateway and the gateway records the data plane (fraser#8587 re-keys that). Moving a gateway between data planes after the delete therefore moves its line with it. Moving a gateway also tears down its configuration on the data plane it leaves, so the one that ends up named is never a data plane still serving the project; what is lost is which data plane acknowledged.

A slug deleted and then recreated reports the NEW project: this reads the live incarnation whenever one exists, so a receipt has to be read before the slug is reused.

Request​

Responses​

Success