This repository contains the prototype for the bachelor thesis
"Constraint-Based Automated Updating of Application Deployment Models"
The motivating scenario in the thesis is included in the edmm/ folder and will be run by default.
The approach converts an Essential Deployment Meta Model to a PDDL problem which is then solved by a planner. The domain ensures that the model is deploy able and the goal state tells the planner which components to update. Many deployment models can be converted to EDMM by using a converter. However, this prototype can easily be changed to import different deployment models in the future.
This project uses a planner to update deployment models. As of right now,
Fast Downward and Marvin are supported. The path to the executables has to be specified in the config.ini file.
The prototype can not be run without a planner!
can be found in requirements.txt
pip3 install -r requirement.txt
installes all necessary requirements for python3
python3 main.py
runs the prototype
The script analyzer/commandline_wrapper.py
is able to analyze outputs of the following planners: Jasper and Fast Downward. Support for Marvin might be added in the future.
The analyzer can be used by piping the output to the script. Example: cat output_file | python3 commandline_wrapper.py
. Multiple outputs of different planners can be merged in a single file. But above each output a line has to be added which tells the analyzer what kind of planner has produced the output.
Example for a single Fast Downward output:
<<<<FD>>>>
INFO Running translator.
INFO translator stdin: None
...
Example for a single Jasper output:
<<<<JASPER>>>>
1. Running translator
Parsing... [0.000s CPU, 0.003s wall-clock]
...