Jump to: navigation, search

Difference between revisions of "Trove/IncrementalBackupSequenceForceDelete"

(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 ==
Describe the purpose of the enhancement
+
[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 ==
* What is the driving force behind this change? 
+
 
* Does it allow for great flexibility? Stability? Security?
+
=== 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 ===  
* Does this impact any configuration files? If so, which ones?
+
None
  
 
=== Database ===
 
=== Database ===
* Does this impact any existing tables?  If so, which ones?
+
None
* Are the changes forward and backward compatible?
 
* Be sure to include the expected migration process
 
  
 
=== Public API ===
 
=== Public API ===
* Does this change any API that an end-user has access to?
+
None
* Are there any exceptions in terms of consistency with other APIs?
 
  
 
==== CLI interface====
 
==== CLI interface====
* How the command will look like?
+
Changes backup-delete shell call:
* Does it extends the already existed command interfaces ?
+
 
 +
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 ====
* Which HTTP methods added ?
+
Changes backup-delete API:
* Which routes were added/modified/extended?
+
 
* How does the Request body look like?
+
HTTP method: Delete
* How does the Response object look like?
+
 
 +
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====
* Method name.
+
None
* Method parameters.
 
* Message type (cast/call).
 
  
 
=== 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

Description

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

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.