Description
Fabric currently uses the simplest approach to the most common use case, but as a result is quite naive and not threadsafe, and cannot easily be run in parallel even by an outside agent.
Rework the execution model and state sharing to be thread-safe (whether by using threadlocals or something else), and if possible go further and actually implement a parallel execution mode users can choose to activate, with threading or multiprocessing or similar.
Morgan Goose has been the lead on this feature and has a in-working-shape branch in his Github fork (link goes to the multiprocessing branch, which is the one you want to use). We hope to merge this into core Fabric for 1.1.
Current TODO:
Anal retentive renaming, e.g. s/runs_parallel/parallel/
Code formatting cleanup/rearranging
Mechanics/behavior/implementation double-check
Linewise output added back in (may make sub-ticket)
Paramiko situation examined re: dependency on 1.7.7.1+ and thus PyCrypto 2.1+
Including documenting the change in the install docs if necessary
Pull in anything useful that Morgan hadn't pushed at time of my merge
(if not included in previous) Examine logging support and decide if it's worth bumping to next release
Test, test, test
Originally submitted by Jeff Forcier (bitprophet) on 2009-07-21 at 02:52pm EDT
Attachments
Relations
Description
Fabric currently uses the simplest approach to the most common use case, but as a result is quite naive and not threadsafe, and cannot easily be run in parallel even by an outside agent.
Rework the execution model and state sharing to be thread-safe (whether by using threadlocals or something else), and if possible go further and actually implement a parallel execution mode users can choose to activate, with threading or multiprocessing or similar.
Morgan Goose has been the lead on this feature and has a in-working-shape branch in his Github fork (link goes to the
multiprocessingbranch, which is the one you want to use). We hope to merge this into core Fabric for 1.1.Current TODO:
Anal retentive renaming, e.g.s/runs_parallel/parallel/Code formatting cleanup/rearrangingMechanics/behavior/implementation double-checkLinewise output added back in (may make sub-ticket)Paramiko situation examined re: dependency on 1.7.7.1+ and thus PyCrypto 2.1+Including documenting the change in the install docs if necessaryPull in anything useful that Morgan hadn't pushed at time of my merge(if not included in previous) Examine logging support and decide if it's worth bumping to next releaseTest, test, testOriginally submitted by Jeff Forcier (bitprophet) on 2009-07-21 at 02:52pm EDT
Attachments
Relations