Commit Graph

332 Commits

Author SHA1 Message Date
d8adce6110 zfs: Support foo/bar/* globs 2017-05-20 19:50:24 +02:00
5f84d30972 util/ReadWriteCloserLogger: handle unset readlog | writelog 2017-05-20 19:39:32 +02:00
3b1cac1ea2 cmd: make --logfile global parameter 2017-05-20 18:17:08 +02:00
35dcfc234e Implement push support.
Pushing is achieved by inverting the roles on the established
connection, i.e. the client tells the server what data it should pull
from the client (PullMeRequest).

Role inversion is achieved by moving the server loop to the serverLoop
function of ByteStreamRPC, which can be called from both the Listen()
function (server-side) and the PullMeRequest() client-side function.

A donwside of this PullMe approach is that the replication policies
become part of the rpc, because the puller must follow the policy.
2017-05-20 18:17:08 +02:00
c7161cf8e6 handler: remove PushMapping, rename PullMapping to PullACL 2017-05-20 17:43:49 +02:00
3c7f782dac rpc: remove FilesystemRequest.Direction (unused) 2017-05-20 17:43:49 +02:00
40fe7e643d cmd: Move replication logic to separate file. 2017-05-20 17:29:37 +02:00
7ad2ed5956 Rename sink -> stdinserver subcommand. 2017-05-16 16:43:39 +02:00
f36ef41c39 scratchpad/chunker: fix api breakage 2017-05-14 15:58:33 +02:00
defe134c8b sshbytestream: default ServerAliveInterval 2017-05-14 14:16:12 +02:00
b1a3a57623 cmd close RPC with timeout 2017-05-14 14:11:19 +02:00
48a4e8033a rpc: close outgoing SSH connection on exit. 2017-05-14 14:11:19 +02:00
04206ebd8b util.IOCommand: Close() gracefully via SIGTERM 2017-05-14 14:11:19 +02:00
ee570bb060 refactor: consolidate ForkReader-like implementations to IOCommand 2017-05-14 12:27:15 +02:00
ee8b0d3781 cmd: dup2(logfile, stderr) if logfile set 2017-05-13 15:35:19 +02:00
6f84bf665d cmd: support logging reads & writes from sshbytestream to a file. 2017-05-13 15:34:28 +02:00
74719ad846 rpc: chunk JSON parts of communication + refactoring
JSONDecoder was buffering more of connection data than just the JSON.
=> Unchunker didn't bother and just started unchunking.

While chaining JSONDecoder.Buffered() and the connection using
ChainedReader works, it's still not a clean architecture.

=> Every JSON message is now wrapped in a chunked stream
   (chunked and unchunked)
   => no special-cases
=> Keep ChainedReader, might be useful later on...
2017-05-13 15:33:46 +02:00
feabf1abcd rpc: logging for bytestream listener 2017-05-13 15:25:09 +02:00
53b3a940ec WIP: main: tree traversal 2017-05-13 15:25:09 +02:00
5bc6d460cf WIP: sink & pull implementation 2017-05-13 15:25:09 +02:00
b2de658270 util: fix package name of chunking 2017-05-13 15:25:09 +02:00
6524cfce0c create file if it doesn't exist 2017-05-13 15:25:09 +02:00
dd6dd60e98 Simplify "fork then io.Reader" abstractions 2017-05-13 15:23:37 +02:00
54778c0374 zfs: remove erronous output from ForkReader 2017-05-13 15:23:28 +02:00
c762502f6e zfs: implement DatasetPath top down walk 2017-05-13 15:23:28 +02:00
2407556f15 main: implement request handler. 2017-05-07 12:28:03 +02:00
996be3704d zfs: implement ZFSListFilesystemExists() 2017-05-07 12:26:41 +02:00
6a420e872e zfs: implement ZFSSet 2017-05-07 12:23:12 +02:00
d37bdc3d7a zfs: implement ZFSRecv 2017-05-07 12:22:57 +02:00
030bd7affe zfs: implement ZFSSend 2017-05-07 12:20:56 +02:00
1a92717894 zfs: FilesytemDiff: len(IncrementalPath) < 2 means same most recent version
bonus: style + typo fixes
2017-05-07 12:20:56 +02:00
d0c0e2510b zfs: FilesystemDiff: support empty left list = no common ancestor 2017-05-07 12:20:56 +02:00
cd8796aed4 rpc: Initial|IncrementalTransferRequest transfer zfs data structures 2017-05-07 12:20:56 +02:00
fa97d3d98a config: parse InitialReplPolicy with default to most_recent 2017-05-07 12:00:34 +02:00
c71be910f9 rpc: fix incremental transfer request handling 2017-05-07 11:53:47 +02:00
44d20ac256 zfs: ZFSListMapping fix broken logic 2017-05-06 23:45:33 +02:00
cb37470010 sshbytestream: exited command always returns io.EOF 2017-05-06 23:44:59 +02:00
82beea94d5 rpc: missing response header for InitialTransferRequest 2017-05-06 23:43:55 +02:00
61c263b91d chunking: rewrite to handle EOF events correctly
bonus: some tests asserting the chunking protocol is adhered to
2017-05-06 23:41:51 +02:00
9b871fb7c0 rpc: more detailed errors 2017-05-06 10:58:23 +02:00
aa696dd0ce zfs: use createtxg and guid properties for FilesystemVersion 2017-05-06 10:58:01 +02:00
22454738af application-wide logging through Logger interface 2017-05-03 18:32:11 +02:00
1e7b29bdc5 license: change attribution 2017-05-03 18:28:04 +02:00
55463e5f26 jobrun: per-job logger 2017-05-03 18:28:04 +02:00
3b6d79ec67 jobrun: log through abstract logger interface instead of stderr 2017-05-03 18:27:55 +02:00
77f749112c main: remove global handler and unused structs 2017-05-03 18:27:23 +02:00
f005ce318d Purge model package, not really used anyways. 2017-05-03 17:26:45 +02:00
514f9aa123 rpc: hex-ints for RequestType definitions 2017-05-03 17:13:08 +02:00
b8e7ddd61f rpc fixup msising directions filesystemrequest 2017-05-03 17:12:31 +02:00
43f67d2b7c rpc: add FilesystemVersionsRequest 2017-05-03 17:12:15 +02:00