Environment abandoning support¶
https://blueprints.launchpad.net/murano/+spec/environment-abandon
The purpose is to add an ability to abandon the environment, which hangs during deployment or deleting in order to hide it from the list of other environments.
Problem description¶
There are cases when the process of deleting or deploying environment may hang. Then the user has to release all used resources and manually clean the database in order to get rid of the list of failed environments.
Manual cleaning of the database is unsafe and inconvenient operation. That’s why abandon feature has to be provided. It should improve usability and allows to user to avoid direct database editing. But it is necessary to notify the user that all resources used by abandoned environment must be also released manually as previously.
Proposed change¶
The implementation of this feature consists of three stages:
Modify environment-delete API endopoint to have abandon feature
The method delete must be changed. Depending on the parameter “abandon”, obtained from request data, the method should work differently. This parameter has a boolean type. If it equals True enviroment will be directly removed from the database without object model cleanup.
Provide corresponding changes in the python-muranoclient
Method delete of environment manager should be modified. New boolean parameter abandon with default value False should be added. The value of parameter affects the building of url, which is sent to murano-api.
Add new button Abandon to murano-dashboard
This button should be available with any environment state.
Proposed change doesn’t solve problem of deployment process hanging. Murano-engine may continue to deploy abandoned environment. It is necessary to find a way how to stop murano-engine in this case.
Alternatives¶
None
Data model impact¶
None
REST API impact¶
DELETE /environments/<environment_id>?abandon
Request
Method |
URI |
Description |
---|---|---|
DELETE |
/environments/{id}?abandon |
Remove specified environment. |
Parameters:
abandon - boolean, indicates how to delete environment. False is used if all resources used by environment must be destroyed; True is used when just database must be cleaned
Response
Code |
Description |
---|---|
200 |
OK. Environment deleted successfully |
403 |
User is not allowed to delete this resource |
404 |
Not found. Specified environment doesn`t exist |
Versioning impact¶
Murano dashboard will support only the version of the client, that includes corresponding changes.
Other end user impact¶
None
Deployer impact¶
None
Developer impact¶
None
Murano-dashboard / Horizon impact¶
New action Abandon will be added to murano-dashboard. It will be always available in the row of other action.
Dialog with warning should appear when user executes action
Implementation¶
Assignee(s)¶
Dmytro Dovbii
- Primary assignee:
Work Items¶
Modify method ‘delete’ of environment API to support two delete modes
Implement adding ‘abandon’ parameter to url in ‘delete’ method of environment manager in muranoclient
Add flag ‘–abandon’ to CLI command ‘environment-delete’
Add new class ‘AbandonEnvironment’ which provide new button ‘Abandon’ in murano-dashboard
Implementation is acutally completed.
Dependencies¶
None
Testing¶
Functional tests for murano-dashboard must be updated. Unit tests should cover API call and CLI client Tempest tests are out of the scope of this spec.
Documentation Impact¶
API specification should be updated
References¶
None