Twopence is (will be) a remote execution engine for tests, able to run tests in virtual machines and real hardware through various means of communication : virtio for KVM / QEmu, ssh on top of libssh, serial lines. This library can be called from shell and ruby wrappers.
While it is already functional (and used), it still needs polishing, stabilizing, and extending. It is also planned to integrate it with Pennyworth (project Machinery) and let it go fully Open Source.
All crazy ideas and good will are welcome. It could be Python wrappers, support for multiple simultaneous tests, support for Linux containers, tests through a firewire cable, or whatever crosses your mind.
What was achieved
- - GitHub: The project moved to GitHub and is willing to play the rules of OpenSource;
- - Ctrl-C and other aborts: now it is possible to interrupt a remote execution with Ctrl-C, both from shell and from Ruby interface;
- - Pennyworth integration: now Pennyworth (project Machinery) calls Twopence to execute remote commands, inject or extract files.
What was not achieved
- - Bug: running the Twopence server for virtio or serial lines with output redirected to a file results in the whole output being repeated with each new message (probably some buffer not flushed).</li>
- - Better packaging: we would need at very least separate packages for client and server parts;</li>
- - Run over firewire: this item is a bit crazy - the idea is to use firewire to run tests and transfer files without using the network stack, by using either raw libraries or raw devices. I bought the necessary hardware but had no time to play with it :-( ;</li>
- - Multiplexing: enable simultaneous and independent tests running on the same machine;</li>
- - Ruby documentation: the Ruby API is currently undocumented.</li>
What could be done better
- - Ctrl-C and other aborts: enable aborting a file transfer, not only remote execution of commands;
- - Pennyworth integration: transferring recursively a whole directory's contents is still done with Cheetah.
Looking for mad skills in:
c packaging ruby
This project is part of:
Hack Week 11
This project is one of its kind!