diff --git a/docs/howitworks.rst b/docs/howitworks.rst index 56584d3e..0ae233e7 100644 --- a/docs/howitworks.rst +++ b/docs/howitworks.rst @@ -1,7 +1,87 @@ How econtext Works ------------------- +================== -blah blah +To accomplish the seemingly magical feat of bootstrapping a remote Python +process without any software installed on the remote machine requires a little +effort. The steps involved are not likely to be immediately obvious to the +casual reader, and required several iterations of research to discover, so we +document them thoroughly below. + + +The First Stage +--------------- + +, and with a custom *argv[0]* + + +Python Command Line +################### + + +Configuring argv[0] +################### + + +Source Minimization +################### + + +Signalling Success +################## + + +ExternalContext main() +---------------------- + + +Reaping The First Stage +####################### + + +Generating A Synthetic `econtext` Package +######################################### + + +Setup The Broker And Master Context +################################### + + +Setup Logging +############# + + +The Module Importer +################### + + +Standard IO Redirection +####################### + + +Function Call Dispatch +###################### + + + +The Broker +---------- + + +Differences Between Master And Slave Brokers +############################################ + +* Self destruct. + + +The Module Importer +------------------- + +Child Package Enumeration +######################### + + +Negative Cache Hits +################### diff --git a/docs/index.rst b/docs/index.rst index 83a0f941..a98bf4f4 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -26,7 +26,7 @@ to the remote machine**. Due to the origins of econtext for use in managing potentially damaged infrastructure, the remote machine need not even have a writeable filesystem. -It is not intended as a generic RPC framework, the goal is to provide a robust +It is not intended as a generic RPC framework; the goal is to provide a robust and efficient low-level API on which tools like **Salt** or **Ansible** can be built, and while the API is quite friendly and similar in scope to **Fabric**, ultimately it should not be used directly by consumer software.