Skip to content

FlxB2/Constraint-Based-Automated-Updating-of-Application-Deployment-Models

Repository files navigation

Constraint-Based Automated Updating of Application Deployment Models

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.

Overview

Overview

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.

Setup

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!

Requirements

can be found in requirements.txt

pip3 install -r requirement.txt

installes all necessary requirements for python3

python3 main.py

runs the prototype

Analyzer

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.

Usage

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]
...