-
Notifications
You must be signed in to change notification settings - Fork 3
vdemo and TMuLE assessment
vdemo is a program used to easily start complex demos with many components on different machines. vdemo uses screen and a shared key environment to start the components.
vdemo is currently used to start, monitor and stop components on our robot platform setups. Hyperion is intended to replace vdemo, picking up it's useful features, getting rid of it's current negative aspects.
Negative aspects of vdemo:
- xterm is required to be installed on the host running vdemo and on any machine vdemo connects to (meaning any involved party needs to have an xserver installed too)
- It is written in tcl/tk
- Only a single thread is used for the GUI and starting/checking/stopping components, resulting in the GUI freezing, when one of the mentioned processes takes more than a few milliseconds
- No dependency checks for running processes
Positive aspects of vdemo:
- It provides a simple way of starting and monitoring programs as components of a demo setup
- Writing new components is easy
- Interchangeability of components in a setup
- Usage of screen ensures non-network reliant components will continue running on a remote host, after connection is lost
- Easy to use GUI
TMuLE is a launch engine written in python that controls tmux sessions to deploy pre-configured software systems using YAML configurations.
TMuLE does not provide all features planned for this project, but gives a good working base to build on, because it already works similar to what this project is aimed to achieve (and its code is uncluttered compared to Vdemo).
TMuLE uses a single configuration file, describing which commands will be run in specific panes inside specific windows of a session. This is a smart way of combining component groups, but assumes the user knows how to use tmux and the components being run on the host TMuLE is executed on.
These assumptions don't fit the goals that are set for the Hyperion project.
The webinterface provided by TMuLE is good feature that Hyperion could also use.