Difference between revisions of "Trove/IncrementalBackupSequenceForceDelete"
< Trove
(Created page with "== Description == Describe the purpose of the enhancement == Justification/Benefits == * What is the driving force behind this change? * Does it allow for great flexibility...") |
|||
Line 1: | Line 1: | ||
== Description == | == Description == | ||
− | + | [https://wiki.openstack.org/wiki/Trove/incremental-backups Incremental backups Wiki page] | |
+ | |||
+ | Use case: | ||
+ | * I can create N chained incremental backups in a row. | ||
+ | * I can delete any backup i want by its ID. | ||
+ | * I can't successfuly restore instance if one(or more) backup(from incremental sequence) is missing. | ||
== Justification/Benefits == | == Justification/Benefits == | ||
− | + | ||
− | + | === Justification === | |
+ | :If one(or more) of the incremental sequence item missing user wouldn't be able to successfuly restore an instance because certain deltas are missing and there would be no guaranteed consistency. | ||
+ | |||
+ | === Benefits === | ||
+ | :Guaranteed consistency while restoring instance from incremental backup sequence. | ||
== Impacts == | == Impacts == | ||
+ | |||
+ | :From user perspective behaviour would be slightly changed: | ||
+ | * user '''would not be able''' to delete single backup if given backup is a parent of any tenant-owned backup (see [https://bugs.launchpad.net/trove/+bug/1340203 bug-report]) | ||
+ | * user '''would be able to''' to delete incremental backup sequence of any lenght from starting from given backup | ||
+ | * user '''would still be able''' to delete single backup if it doesn't have any childs | ||
+ | * Trove API will ignore 'force_delete' flag if given backup has no childs | ||
+ | * Trove API will recursively delete all backups (dependent on given) starting from given. | ||
=== Configuration === | === Configuration === | ||
− | + | None | |
=== Database === | === Database === | ||
− | + | None | |
− | |||
− | |||
=== Public API === | === Public API === | ||
− | + | None | |
− | |||
==== CLI interface==== | ==== CLI interface==== | ||
− | + | Changes backup-delete shell call: | |
− | + | ||
+ | trove backup-delete <BACKUP-UUID> ''--force-delete True'' | ||
+ | |||
+ | where: | ||
+ | --force-delete - allows Trove-API to delete all incremental backups sequence starting from given backup. | ||
==== ReST Part ==== | ==== ReST Part ==== | ||
− | + | Changes backup-delete API: | |
− | + | ||
− | + | HTTP method: Delete | |
− | + | ||
+ | Route /{tenant_id}/backups/{backup_id} | ||
+ | |||
+ | Body: | ||
+ | { | ||
+ | 'force_delete': ''True'' | ||
+ | } | ||
=== Internal API === | === Internal API === | ||
− | * Does this change any internal messages between API and Task Manager or Task Manager to Guest | + | * Does this change any internal messages between API and Task Manager or Task Manager to Guest? |
+ | - No. Implementation will reuse existing internal API. | ||
==== RPC API description==== | ==== RPC API description==== | ||
− | + | None | |
− | |||
− | |||
=== Guest Agent === | === Guest Agent === | ||
* Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager? | * Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager? | ||
+ | - No. Task will be executed within Trove API and Taskamanger services. |
Latest revision as of 12:40, 14 July 2014
Contents
Description
Use case:
- I can create N chained incremental backups in a row.
- I can delete any backup i want by its ID.
- I can't successfuly restore instance if one(or more) backup(from incremental sequence) is missing.
Justification/Benefits
Justification
- If one(or more) of the incremental sequence item missing user wouldn't be able to successfuly restore an instance because certain deltas are missing and there would be no guaranteed consistency.
Benefits
- Guaranteed consistency while restoring instance from incremental backup sequence.
Impacts
- From user perspective behaviour would be slightly changed:
- user would not be able to delete single backup if given backup is a parent of any tenant-owned backup (see bug-report)
- user would be able to to delete incremental backup sequence of any lenght from starting from given backup
- user would still be able to delete single backup if it doesn't have any childs
- Trove API will ignore 'force_delete' flag if given backup has no childs
- Trove API will recursively delete all backups (dependent on given) starting from given.
Configuration
None
Database
None
Public API
None
CLI interface
Changes backup-delete shell call:
trove backup-delete <BACKUP-UUID> --force-delete True
where: --force-delete - allows Trove-API to delete all incremental backups sequence starting from given backup.
ReST Part
Changes backup-delete API:
HTTP method: Delete
Route /{tenant_id}/backups/{backup_id}
Body:
{ 'force_delete': True }
Internal API
- Does this change any internal messages between API and Task Manager or Task Manager to Guest?
- No. Implementation will reuse existing internal API.
RPC API description
None
Guest Agent
- Does this change behavior on the Guest Agent? If so, is it backwards compatible with API and Task Manager?
- No. Task will be executed within Trove API and Taskamanger services.