Add a “delete” method to the v2 storage interface

https://storyboard.openstack.org/#!/story/2005395

Problem Description

Note

This spec is the detailed implementation of one part of a larger spec. If you haven’t read it yet, please see https://specs.openstack.org/openstack/cloudkitty-specs/specs/train/reset_scope_state.html

Currently, there is no way to delete data from a v2 storage backend via cloudkitty. However, this is required in order to reset the state of a scope (see note above).

Proposed Change

A delete method will be added to the v2 storage interface and implemented in the v2 storage drivers. It will take three parameters:

  • begin (datetime object, optional): The start of the period for which data should be deleted.

  • end (datetime object, optional): The end of the period for which data should be deleted.

  • filters (dict, optional): A dict of optional filters allowing to select data marked for deletion.

Alternatives

None.

Data model impact

No changes will be made to the data model. However, it will be possible to delete data from the storage backend through cloudkitty now.

REST API impact

None. Described in another spec.

Security impact

None. API security impact is described in other specs.

Notifications Impact

None. Described in another spec.

Other end user impact

None.

Performance Impact

Data deletion may slow down and put some load on the storage backend.

Other deployer impact

None.

Developer impact

Changes related to scope state reset will need to be rebased on this change.

Implementation

Assignee(s)

Primary assignee:

peschk_l

Work Items

Add the delete method to the v2 storage interface and implement it in the InfluxDB storage driver.

Dependencies

Spec: allowing to get/reset the state of a scope. https://specs.openstack.org/openstack/cloudkitty-specs/specs/train/reset_scope_state.html

Testing

In addition to unit tests, Tempest scenarios testing the whole scope state reset action will be added.

Documentation Impact

The delete method will be added to the autogenerated documentation.

References

Spec: allowing to get/reset the state of a scope. https://specs.openstack.org/openstack/cloudkitty-specs/specs/train/reset_scope_state.html