stephenmcd/mezzanine — pull request #1040 by brendonjohn (2014-05-30 06:56:33+00:00)
Title: Convert the Fabfile into a package

This is my attempt to break the fabfile down into namespaces and classes as per http://docs.fabfile.org/en/latest/usage/tasks.html#new-style-tasks

From calling "fab --list-format=nested --list", the new structure would now be
![screen shot 2014-05-30 at 6 46 45 pm](https://cloud.githubusercontent.com/assets/1642974/3127747/35f59b46-e7c6-11e3-8528-9e26a7deabf4.png)

I've broken tasks down into four main namespaces website, deploy, server and db. Each one represents the domain of responsibility
- server tasks handle the server
- website tasks control the website
- deploy tasks are concerned about the instance of the website
- db tasks handle the database that's being run on the server

Despite how much I would like to, I've made sure not to make changes to how the fabfile deploys or what each command means.

I have tried to make sure that each task behaves as expected. I have not written automated tests as this would be behemoth to include without discussing first. If tests are required, I will need to talk about the best way to put these together.

For testing I used a fresh ubuntu instance via EC2, where I was deploying https://github.com/brendonjohn/dummy_project/