opendevstack / opendevstack/ods-provisioning-app

Redesign project creation rollback strategy implementation

Open
#349 0 comments 0 reactions 1 assignee View on GitHub

@stitakis is already working on this.

Since Feb 28, 2020.

enhancement
Dominant language
Java
Stars
14
Forks
20
Avg merge
3h 35m
Merged PRs (30d)
1

Description

Is your feature request related to a problem? Please describe.
Redesign current the current rollback strategy implementation (ref ProjectAPIController.cleanup()) (used to ensure no resources are left over in case we cannot provision components /e.g. repo across the federated stack) to make it more resilient and operations friendly.

Problem:
Potentially any other exception than ProjectAlreadyExistsException happening in ProjectAPIController.addProject() will lead to the cleanup block. For example, any change/mistake in future implementation of the used dependencies whithin the try/catch block (e.g. mailAdapter, JiraAdatper, etc...) could thrown an exception and trigger the ```cleanup`` method.

Describe the solution you'd like
Reimplement project provision flow to:

  • not remove left over components in case of exception" but mark them for deletion and
  • wrap the project creation flow in a task
  • create a screen that shows list of tasks with its status (error description), so admin do not need to dig into the log file to find the error descriptoin
  • provide posibility(buttons) for retry (complete task) or cleanup

Describe alternatives you've considered
Note: I haven't considered any other alternatives yet

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.