Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Get all required deployment data from provided Storage in xOpera API #194

Open
alexmaslenn opened this issue Mar 25, 2021 · 2 comments
Open
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested

Comments

@alexmaslenn
Copy link
Contributor

Description

Currently xOpera relies heavily on reading files required for deployment (service templates, playbooks, artefacts) from filesystem, while at the same time using Storage instance for storing data produced during deployment. Using filesystem for obtaining data can be problematic when using xOpera API and deploying a sequence of blueprints from different locations, as one has to carefully maintain proper working directory along with rollback procedures in case of errors. Encapsulating all filesystem I/O into single instance would simplify usage of xOpera API.

Additionally current usage of xOpera API is tied to a filesystem, but implementing Storage I/O can expand our possibilities for getting templates and artefacts from any kind of source: SQL DB, web, in-memory storage.

It can be also beneficial from security perspective as Storage can also implement data protection.

Steps

Eliminate all usages of workdir and tie all filesystem I/O operations to Storage entity

@alexmaslenn alexmaslenn added enhancement New feature or request help wanted Extra attention is needed question Further information is requested labels Mar 25, 2021
@anzoman
Copy link
Contributor

anzoman commented Mar 26, 2021

@alexmaslenn good point. There certainly are limits with the current implementation that relies solely on reading files from filesystem. By extending and using only Storage class this operations would be generalized (and as you mentioned security could be applied like stated in #143). Being able to get files from any source (like SQL database or web) would be a great feature to have and is to be considered after we tie all filesystem operations to Storage objects. We should also look up if TOSCA has any guidelines for all this.

And also - I believe that @sstanovnik might have some good ideas about all this.

@sstanovnik
Copy link
Member

This is something I've already implemented a year and a half ago in https://github.com/sstanovnik/xopera-opera/tree/csar-structure, but it was never merged. It's definitely a major source of problems. I'm all for this being fixed, but we definitely need many, many more tests so we ensire we don't break anything.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants