Welcome to Ockle’s documentation!
Ockle is a tool which lets you control a group of power distribution units (PDUs) and the servers which connected to them.
Servers can be dependent on each other, and Ockle can then determine which servers should be turned on according to those dependencies. After server is turned on Ockle can run automated tests to make sure they indeed provide the services that are required by the servers.
Design principles in Ockle
- Extensibility – I tried to implement the method “everything is a plugin”, by this I mean that every new form of logic or functionally could be added and removed from the configuration without changing the code itself. Every new feature would go in to its own module and process thread.
- Lightweight – Ockle is split to a control daemon and a webserver, so the device controlling the servers could be put on a embedded device on a separate power supply.
- Easy to use – The webserver aims to give an intuitive user experience, with helpful information about the server’s health and power usage status.
Where to get Ockle
Ockle is available at GitHub.
You can download it by cloning it:
git clone https://github.com/guysoft/Ockle.git
Developer Manual
Libraries used (learned?)
- pyGraph – python graph data structure
- PyDot library / xDot format
- SQLAlchemy – cross-platform databas
- Pyramid – Webserver framework
- Chameleon template engine
- Graphviz / Canviz – Graph visualization libraries
- JqPlot - a plotting and charting plugin for the jQuery Javascript framework
- PySNMP – Communication with the Raritan Dominion PX Remote Power Control
- straight.plugin – A plugin loading facility
- Socket (python standard library class) - Low-level networking interface
- prototype.js - The main page requires prototype for Canvoiz to work
- sphinx - Documentation