xwavex / hyperion-graph-visualisation

Extension for graph visualisation

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Maintenance GPLv3 license

Hyperion graph visualisation extension

What is Hyperion

Hyperion is an engine designed to launch and monitor user defined components using YAML configuration files.
Inspired by vdemo and TMuLE (see vdemo and TMuLE assessment)

How does it work

Hyperion (like TMuLE) is written in Python and utilizes the tmux library for python to start components in detached sessions. For each host defined in the components a master session is created, in which each component will be started in a window. Components are managed by a main server that delegates commands to slave server instances on remote machines and forwards information to subscribed user interfaces.

Installation

Run pip install . in the main directory to install the graph visualisation extension.

Quick reference

This library unlocks the graph drawing extension for the hyperion application. It enables using the visual mode when validating a configuration.

Validation mode

hyperion validate --config systems/demo.yaml [-h] [--visual]

optional arguments:
  -h, --help  show this help message and exit
  --visual    Generate and show a graph image

The validation mode parses the dependencies specified in the component configuration files and checks whether they are all met makes sure the directed dependency graph is acyclic (no circular dependencies) to check if starting all components with their dependencies is possible. Errors (unmet and circular dependencies) are displayed on the cli. If the configuration is valid, a list showing the order for a full system start is printed on the cli.

By specifying the visual argument, the command will generate an image of the the dependency graph (highlighting errors). Please note: if a circular dependency error is detected, the graph will be incomplete because the algorithm won't be able to iterate through the remaining nodes!

Graph generated with the sample components with missing dependency error (December 2018)

Image: Graph generated with the sample components with missing dependency error (December 2018)

Graph generated from intermediate scale robotic simulation system (December 2018)

Image: Graph generated from intermediate scale robotic simulation system (December 2018)

About

Extension for graph visualisation

License:GNU General Public License v3.0


Languages

Language:Python 65.3%Language:CMake 34.7%