How a python,a penguin and a dog became best friends

31 Oct 2012

We at goibibo are big fans of doing things the pythonic way. In the foots of this theme, we were facing a very meager issue but quite a pain in the rear. The testing phase of our django based application required changes in the settings file repeatedly.  The changes are followed by a series of commands - restarting the web-server, restarting celery tasks, etc. When the testing is done purely on front-end, then repeated logins into the server and changing the settings file and running scripts is a tedious task, and definitely counter-intuitive. The whole process gets a sense of unnecessary repetitiveness and hence the testing time and mood suffers. Definitely not the best workflow for a tester.

We waited for a savior.

And then the clouds thundered, oceans parted and out came the dog.

Okay,this is getting a bit dramatic,lets get some stuff cleared up.

Question

But why is it called a dog ?

Answer  :

This work mentioned above was so much analogous to a behavior of a dog and the project dog acts a watch dog for the django settings file and related services impacting it.

How did we develop it ?

Writing things is important but writing things using the most appropriate or minimalist architecture is also important. To cater to our needs we used the amazing pico ( single threaded web server written in python that allows writing callbacks to HTML).

Features of Dog:

Its a web interface to the settings file of the django application.

–Key value pairs are changed.
–Series of command can be set.
–Status of the command can be monitored.
–Changes get roll backed if the command fails.
–Integrity of the settings fie is maintained.
–Raw mode is available to check if the changes made reflect in the original file.
–Permission wise key value pairs are editable for security purpose.
–Authentication.

Source code:

dog  : : https://github.com/goibibo/dog

pico : https://github.com/fergalwalsh/pico

Please feel free to contribute and/or fork.