Solomon Hykes
d955d77dc8
beam/examples/beamsh: 'beamsend' command serializes all messages and sends them over a network connection
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:19 -07:00
Solomon Hykes
f49734592c
beam/examples/beamsh: 'exec' command correctly closes stdout and stderr when the process exists
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:19 -07:00
Solomon Hykes
7e73a97a41
beam/examples/beamsh: don't print discarded messages in Devnull
...
This avoids false alarms when process exits without printing. Devnull
doesn't require synchronization.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:19 -07:00
Solomon Hykes
0f36b222f3
beam/examples/beamsh: more useful debugging
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:19 -07:00
Solomon Hykes
ca0aacdb6b
beam/data: expose EncodeString for convenience access to the underlying netstring primitive
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:19 -07:00
Solomon Hykes
251353380e
beam/examples/beamsh: utility function 'fileToConn'
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:19 -07:00
Solomon Hykes
23dd017763
beam/examples/beamsh: 'connect' command
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:19 -07:00
Solomon Hykes
7c4e5e60e8
beam/examples/beamsh: 'exec' and 'listen' commands
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:19 -07:00
Solomon Hykes
0dfc004450
beam/examples/beamsh: prettier devnull
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
bfb13651fa
beam/data: prettier Message.Pretty()
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
f636d3fcec
beam/examples/beamsh: prettier 'trace' command
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
4841bc9226
beam/data: convenience Message.Pretty() function
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
f295ccc72a
beam/examples/beamsh: basic implementation of the pipeline design, with static handlers for now.
...
In the pipeline design, several beam commands can be run concurrently,
with their respective inputs and outputs connected in such a way that
beam messages flow from the first to last. This is similar to the way
a unix shell executes commands in a pipeline: instead of STDIN and
STDOUT, each beam command has a "BEAMIN" and "BEAMOUT".
Since beam allows for richer communication than plain byte streams, beam
pipelines can express more powerful computation, while retaining the
fundamental elegance and ease of use of unix-style composition.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
9f4bcf010a
beam/examples/beamsh: better debugging messages
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
5efb90b0cd
beam/examples/beamsh: simple 'exec' command
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
8b8e477ede
beam/examples/beamsh: catch introspection calls from jobs for proper nesting
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
5df3aaeda2
beam: fix FD leaks in SendPipe
...
This fixes file descriptor leaks in the SendPipe function.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:18 -07:00
Solomon Hykes
3b5c1c4203
beam: more hooks for interactive debugging
...
This inserts low-level hooks for interactive step-by-step debugging.
Hooks are triggered by setting the *TEST* environment variable.
This is particularly useful for tracking down file descriptor leaks,
double-closing, or other issues which are difficult to debug with
the usual toolbox.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
a14c83eca3
beam/examples/beamsh: first try at nested execution
...
The "wiring" is broken because engine does not keep a reference for handling introspection calls.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
438caf6e06
beam/examples/beamsh: fix a bug in the log command
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
cd44538901
beam/data: convenience Message.Get
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
b78465fc2a
beam/examples/beamsh: use beam/data
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
dd23e21313
beam/data: Message.Bytes() convenience method
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
53602b2464
beam/data: fix a bug in encoding of multi-value maps
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
dbbde543b1
beam/data: convenience Message type for chained manipulation
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
ccdcd9ff0c
Beam: remove leftover debugging messages
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
0d1d823d2f
beam/examples/beamsh: hide debug messages in examples/beamsh by default
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:17 -07:00
Solomon Hykes
132a2bf929
beam/data: a simple format for sending structured data over beam
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:16 -07:00
Solomon Hykes
572952d6ce
beam/examples/beamsh: more bells and whistles for demos
...
* Automatically switch to interactive mode when stdin is a terminal
* Basic implementation of "responses"
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:16 -07:00
Solomon Hykes
b1090576ae
Beam: fix bug in beamsh which 'swapped' FDs because of underlying implementation of net.FileConn
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:16 -07:00
Solomon Hykes
43331921b0
Beam: don't close the attachment FD when closing superfluous FDs
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:16 -07:00
Solomon Hykes
24c09d0029
Beam: debugging hooks for easy step-by-step inspection of the FD table
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:16 -07:00
Solomon Hykes
83adf99565
beam/examples/beamsh: use 'log' command to pass stdout
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:16 -07:00
Solomon Hykes
0248bb8152
beam/examples/beamsh: basic execution of commands, with in-process beam and dummy handlers
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:16 -07:00
Solomon Hykes
bccd390ead
Beam: Send: pass the underlying error unchanged to allow io.EOF detection
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:15 -07:00
Solomon Hykes
f4c6f14d0a
pkg/dockerscript: expose a simple, clean API with a single Parse method
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:15 -07:00
Solomon Hykes
d1f2f389ff
beam/examples/beamsh: correctly parse nested commands
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:15 -07:00
Solomon Hykes
d188c734e9
pkg/dockerscript: a simple shell-like syntax to express docker operations
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:15 -07:00
Solomon Hykes
358c2f3ca4
Beam: beamsh is a mini-shell which runs processes and communicates with them over beam
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:15 -07:00
Solomon Hykes
f3671ea62d
Beam: basic test harness for the unix socket implementation.
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:15 -07:00
Solomon Hykes
968d5bb08f
Beam: USocketPair returns a *net.UnixConn socket pair for convenience.
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:15 -07:00
Solomon Hykes
be03962d64
Beam: fix file descriptor leaks
...
* Close all file descriptors successfully sent as attachment
* Close duplicate file descriptors created by net.FileCon and net.UnixConn.File
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:15 -07:00
Solomon Hykes
95b759ad16
Beam: change the prototype of SendPipe() to return a *net.UnixSocket
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:14 -07:00
Solomon Hykes
0a187f629a
Beam: allow sending messages without attachments.
...
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:14 -07:00
Solomon Hykes
c008283f8d
Beam: convenience functions Listen and Connect
...
These convenience functions expose a familiar face to the unknown and bizarre world of beam networking.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:14 -07:00
Solomon Hykes
932149b2a7
Beam: a simple stream-oriented communication protocol for distributed systems.
...
This patch includes a stripped down implementation with a bare minimum
unix socket transport. It relies on fd passing for stream multiplexing.
The purpose of this first patch is to allow implementation of dynamic
linking, which will allow advanced service discovery.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
2014-04-22 15:50:14 -07:00