- Create a tool to generate Python classes from the json spec
- Drop install, run modules, prepare operations module
load
- loads Nulecule and creates objects from generated classes, if a component is external, pull and process thesource
(i.e. whole Nulecule graph tree should be available as objects afterload
finishes)create_transaction
- traverse the graph and generate a list of components representing a serialized graphinstall
- unpack files to diskrun
- deploy to provider(s) (i.e. loop through component list generated bycreate_transaction
and run provider plugin)stop
- stop/undeploy appget_providers
- get all available providers for the appget_params
- get params with defaults for appget_values
- get params values with answers applied
As run
will be just a cycle through the list of ordered components, we can gather some information from one component and pass it to next one. This solves the problem for docker-compose
provider - we can add prepare
function which will parse and return content of compose artifact and that will be appended to a global compose content. Once the run reaches last component, it can generate the compose.yaml
file and pass it to docker compose
binary.
We can easily implement automatic naming and linking of containers for Docker provider.
Implementation of REST API will be simpler because Atomic App will know and recognize whole application without weird recursions and losing context and so on.
Other applications (DA) can reuse generated Python classes, or by calling load
only it can work with whole Nulecule application at once (like validation, suggesting params name changes to match external components params names..)
Big portion of code base will need to be rewritten (not sure if this belongs to pros or cons :), which will enable us to add proper unit testing
Application workflow will be much simpler and easier to understand, thus will make it more digestable to wider audience
We need to make sure that everything works as it does now, but we already have some tests, so it shouldn't be that hard