Simple, Pythonic remote execution and deployment
Pull request Compare This branch is 48 commits ahead, 1663 commits behind fabric:master.


Fabric is a Python (2.5 or higher) library and command-line tool for
streamlining the use of SSH for application deployment or systems
administration tasks.

This branch adds in a few more features to basic Fabric. It will create one 
process per host given for parallel execution on commands, unless one sets the
pool size with the connad flag. I have leveraged the multiprocessing module to 
do this. 

There are new command flags for fab:
  -P, --parallel        use the multiprocessing module to fork by hosts
  -z FORKS, --pool-size=FORKS
                          Set the number of forks to use in the pool.

I have also added two decorators:

These will allow a fab file command to be set to be run either in parallel or
sequentially regardless of the fab command flag. Without these commands switch 
when the flag is set.

If you are interested in the guts, the implementation is in the file,
and uses the Job_Queue class in the file. Note that this is only
implemented in the fab command, as there is no way to determine how one will 
execute functions if they are using Fabric as a helper library.

One other thing to note being that if you set a pool size larger than the
number of hosts, it'll set the pool size to the number of hosts. Otherwise an
error about poping from an empty list will crop up.