Please sign in to comment.
issue #199: ansible: stop writing temp files for new style modules
While adding support for non-new style module types, NewStyleRunner began writing modules to a temporary file, and sys.argv was patched to actually include the script filename. The argv change was never required to fix any particular bug, and a search of the standard modules reveals no argv users. Update argv to be '', like an interactive interpreter would have. While fixing #210, new style runner began setting __file__ to the temporary file path in order to allow apt.py to discover the Ansiballz temporary directory. 5 out of 1,516 standard modules follow this pattern, but in each case, none actually attempt to access __file__, they just call dirname on it. Therefore do not write the contents of file, simply set it to the path as it would exist, within a real temporary directory. Finally move temporary directory creation out of runner and into target. Now a single directory exists for the duration of a run, and is emptied by runner.py as necessary after each task invocation. This could be further extended to stop rewriting non-new-style modules in a with_items loop, but that's another step. Finally the last bullet point in the documentation almost isn't a lie again.
- Loading branch information...
Showing with 115 additions and 25 deletions.