Commit Graph

58 Commits

Author SHA1 Message Date
c3352a3b6c Fix stdin handling in engine.Sender and engine.Receiver
This introduces a superficial change to the Beam API:

* `beam.SendPipe` is renamed to the more accurate `beam.SendRPipe`
* `beam.SendWPipe` is introduced as a mirror to `SendRPipe`

There is no other change in the beam API.

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 0aeff69e5900a15e3872494ac0009600f6c1c372
Component: engine
2014-05-09 15:39:55 -07:00
fba1cacd59 Fix Go formatting in beam and dockerscript
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: bf51f36d8f07d0c53f7b7b3c21ae372f7ca3be33
Component: engine
2014-04-22 16:16:29 -07:00
bed3b0cf53 beam/examples/beamsh: 'chdir' changes the current directory
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: bc6303f15d9ac4f2f281bbf4e4d76f7517e10117
Component: engine
2014-04-22 15:50:24 -07:00
0d5fc83e93 beam/examples/beamsh: 'exec' can communicate with its child via beam.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 6ce4d2c8424e029237b4ad0c615a4ff6204a1064
Component: engine
2014-04-22 15:50:24 -07:00
81a0f67a86 beam/examples/beamsh: use beam.Router to simplify 'multiprint' and fix job passthrough
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 271ba1804349217d8cc22cfdd412a1741dbbcfea
Component: engine
2014-04-22 15:50:23 -07:00
262cbf977c beam/examples/beamsh: use beam.Router to simplify 'trace'
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 30424f4e3a40ec21ac25e5c3f9ef45c3109c9f06
Component: engine
2014-04-22 15:50:23 -07:00
752ad4f822 beam/examples/beamsh: move builtins to a separate file for readability
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: d3df4b5baf0d3707dd8bbf700c5836dfdfac8752
Component: engine
2014-04-22 15:50:23 -07:00
6bbf98f17b beam/examples/beamsh: simplify commands by always creating and sending stdout and stderr for them
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 0822d67b2dc05dc2500e3b898dc3604be47fcd84
Component: engine
2014-04-22 15:50:23 -07:00
d0489babdf beam/examples/beamsh: use beam.Router to simplify 'logger'
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 63fd2ec0f7ec091912435cedc081b132e66ae658
Component: engine
2014-04-22 15:50:23 -07:00
679c521f8a beam/examples/beamsh: use beam.Router to simplify the 'stdio' command
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 9206b18818db988621f60cbf869eb20acd1a49e9
Component: engine
2014-04-22 15:50:23 -07:00
2a384a9a0b beam: Router can route beam messages with a convenient set of rules and handlers
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 8f5435e80c3dbaa27429bbb7cadf2c735caa76de
Component: engine
2014-04-22 15:50:23 -07:00
66816b58ac beam/examples/beamsh: move example scripts to scripts/
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 40b4f86eab7b5bf7ca7d85eb8cc7b715fd03feab
Component: engine
2014-04-22 15:50:22 -07:00
2b6efd6fe0 beam/examples/beamsh: add scripts to reproduce various bugs
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 06df94d55b6a1ec10faf4672ebe7fcaf7fb62ab7
Component: engine
2014-04-22 15:50:22 -07:00
a7e559b7d2 beam/examples/beamsh: fix 'print' to be pass-through
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: d0ca66dded29c3e5e2f78d99e9cc9205484c3b5f
Component: engine
2014-04-22 15:50:22 -07:00
df4d4ec486 beam/examples/beamsh: rename 'log' to 'logger' to avoid conflict with stdout/stderr
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: b97375fc29a88f896e14f45a34c263a4948c9ad9
Component: engine
2014-04-22 15:50:22 -07:00
05ff9d4c14 beam/examples/beamsh: 'prompt' asks the user for a value and sends it.
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: a2b88b4915acf7b1c1a165dd9193f416e5b99e3c
Component: engine
2014-04-22 15:50:22 -07:00
efaa77908b beam/examples/beamsh: commands are messages.
Commands in the pipeline should either implement or pass-through command messages.

This amounts to a proof-of-concept implementation of the "pipeline"
design of Docker plugins.

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: ed62ca5b2f673fde54c2ffc5edaf0e5bcbd1b721
Component: engine
2014-04-22 15:50:22 -07:00
4c6e97a76f beam/examples/beamsh: cosmetic fix in Fatalf
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 2f4b8b7e8dbdc1861ee83b63d92ab0921045861f
Component: engine
2014-04-22 15:50:22 -07:00
d1f6c39cc9 beam/examples/beamsh: miniserver.ds demo
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 5833e7888725dcb7d0bfd3f23087deed73a75328
Component: engine
2014-04-22 15:50:21 -07:00
4b5530e072 beam: improve the API with Sender/Receiver interfaces and utilities: Copy/SendPipe/SendPair
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 70d32621615506b6622380ed6021f63be67e6e23
Component: engine
2014-04-22 15:50:21 -07:00
1695eb64ac beam/examples/beamsh: add a few example dockerscripts
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 207e604bad1bf5d69c139cb17568cfc473a391ba
Component: engine
2014-04-22 15:50:21 -07:00
dd65dea1c6 beam/examples/beamsh: simplify code by using sendWPipe utility
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 29ddf2be1e9b9349865e3d0f34b1d4fc0b960ee3
Component: engine
2014-04-22 15:50:21 -07:00
aed648b82b beam/examples/beamsh: move code around for readability
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 1dc449e11dfaf9b376b953322b4bab19e88f7d94
Component: engine
2014-04-22 15:50:21 -07:00
609fa308ff beam/examples/beamsh: 'exec' adds 'fromcmd' field to its output
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 3a2b31a30b49f02f6043be5790fd2a123c2c5eae
Component: engine
2014-04-22 15:50:21 -07:00
ab1a9fa4e1 beam/examples/beamsh: simple 'log' command tees streams to a local directory
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 7534f7a34b2f0d5eac5e59c1a686adc6f4410d26
Component: engine
2014-04-22 15:50:21 -07:00
0fd013996b beam/examples/beamsh: 'render' and 'beamsh -x'
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 4f5b94d3690e3ccdcc23b68d9635dfa37b6dd0e4
Component: engine
2014-04-22 15:50:20 -07:00
75bca8866b beam/examples/beamsh: run commands in an implicit context of pre-loaded 'plugins'
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 4ebe7aab91b67048ea0d2bbec13bfb1d79787f11
Component: engine
2014-04-22 15:50:20 -07:00
1875fe5b4e beam/examples/beamsh: convenience commands 'devnull', 'echo' and 'stdio'
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: cd85af06fe693d849766348e505607f3bd4ff3fc
Component: engine
2014-04-22 15:50:20 -07:00
6679196850 beam/examples/beamsh: 'emit' supports key=value syntax to compose arbitrary objects
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 6d9cdbf24f1f99dd42788afcadc300128175f42f
Component: engine
2014-04-22 15:50:20 -07:00
e69a2729d2 beam/examples/beamsh: support for background commands with '&' terminator
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 6e0a156d9086300a34b0e1f441dd5150dde57be1
Component: engine
2014-04-22 15:50:20 -07:00
9b009b457a beam/examples/beamsh: scripts can be passed as filenames
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: e1c8dbba97212381874c297ba07270436ea595cc
Component: engine
2014-04-22 15:50:20 -07:00
f1d3513c36 beam/examples/beamsh: remote communication over beam (experimental).
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 222fc87ade3ed83623a3dae867f50d193b48b2a9
Component: engine
2014-04-22 15:50:20 -07:00
ea79e30c93 beam/examples/beamsh: 'in' chdirs to a directory. 'pass' does simple passthrough
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 371f6fc63d864711ee546220116f31ddb151fcce
Component: engine
2014-04-22 15:50:19 -07:00
70bbf6d2b3 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)
Upstream-commit: 6d5c75a2242d14fda250759371fdedbcd519654a
Component: engine
2014-04-22 15:50:19 -07:00
85628de2fe 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)
Upstream-commit: 5ddf67385164f76a2dbe1ed30442dd99c7911827
Component: engine
2014-04-22 15:50:19 -07:00
45c6418e21 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)
Upstream-commit: e512fef42505b3d276936a563a3ea4a44a52b19c
Component: engine
2014-04-22 15:50:19 -07:00
90f7f3b975 beam/examples/beamsh: more useful debugging
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 34c5724b899ad8ceca4963ad527f246f06cb65b9
Component: engine
2014-04-22 15:50:19 -07:00
bbc54cabb7 beam/examples/beamsh: utility function 'fileToConn'
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: fb1af1f0bc87712a41a47829e12a2f273b2c8a55
Component: engine
2014-04-22 15:50:19 -07:00
9067ea4162 beam/examples/beamsh: 'connect' command
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 74b90c25d99217a2f8214960d5856a060038b58b
Component: engine
2014-04-22 15:50:19 -07:00
9230710b3f beam/examples/beamsh: 'exec' and 'listen' commands
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: dff98543054fbccf8b6cd2b9999bdddeace951d9
Component: engine
2014-04-22 15:50:19 -07:00
6b526d5950 beam/examples/beamsh: prettier devnull
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 3686d50429db11a709bb480e29b769e808c207e7
Component: engine
2014-04-22 15:50:18 -07:00
9b9f5c5948 beam/examples/beamsh: prettier 'trace' command
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: d7a2ae8e13f2d830688091c072878c145ac07f17
Component: engine
2014-04-22 15:50:18 -07:00
67a797ee49 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)
Upstream-commit: d4920b3fffb5458e8d5368f50cedea8e45b21cee
Component: engine
2014-04-22 15:50:18 -07:00
97fa55bc83 beam/examples/beamsh: better debugging messages
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: ec288895e53da11dc28a87d70fc1dd19c63433b8
Component: engine
2014-04-22 15:50:18 -07:00
a143455085 beam/examples/beamsh: simple 'exec' command
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: ab2010cfd32b50bb2ff0e4ef9449c0464253b83b
Component: engine
2014-04-22 15:50:18 -07:00
4fa458b774 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)
Upstream-commit: 5689792171bc6cd5f6d5c2e574d6b976c5f3557c
Component: engine
2014-04-22 15:50:18 -07:00
86299552de 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)
Upstream-commit: 6072dec9e774f1012faa73713c404603f4a09a14
Component: engine
2014-04-22 15:50:17 -07:00
3f7c1ec59c beam/examples/beamsh: fix a bug in the log command
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 8697490740ca3b3ae87c30e71a8baf49dddb7789
Component: engine
2014-04-22 15:50:17 -07:00
65cd70beaa beam/examples/beamsh: use beam/data
Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
Upstream-commit: 460c98d92d6195f7833c19a5a955576842871638
Component: engine
2014-04-22 15:50:17 -07:00
8fdd535d5f 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)
Upstream-commit: cb66e8c1366ed5aae9df1bf59b71aed5a83590f4
Component: engine
2014-04-22 15:50:17 -07:00