Commit Graph

77 Commits

Author SHA1 Message Date
Christian Schwarz 3c7f782dac rpc: remove FilesystemRequest.Direction (unused) 2017-05-20 17:43:49 +02:00
Christian Schwarz 40fe7e643d cmd: Move replication logic to separate file. 2017-05-20 17:29:37 +02:00
Christian Schwarz 7ad2ed5956 Rename sink -> stdinserver subcommand. 2017-05-16 16:43:39 +02:00
Christian Schwarz f36ef41c39 scratchpad/chunker: fix api breakage 2017-05-14 15:58:33 +02:00
Christian Schwarz defe134c8b sshbytestream: default ServerAliveInterval 2017-05-14 14:16:12 +02:00
Christian Schwarz b1a3a57623 cmd close RPC with timeout 2017-05-14 14:11:19 +02:00
Christian Schwarz 48a4e8033a rpc: close outgoing SSH connection on exit. 2017-05-14 14:11:19 +02:00
Christian Schwarz 04206ebd8b util.IOCommand: Close() gracefully via SIGTERM 2017-05-14 14:11:19 +02:00
Christian Schwarz ee570bb060 refactor: consolidate ForkReader-like implementations to IOCommand 2017-05-14 12:27:15 +02:00
Christian Schwarz ee8b0d3781 cmd: dup2(logfile, stderr) if logfile set 2017-05-13 15:35:19 +02:00
Christian Schwarz 6f84bf665d cmd: support logging reads & writes from sshbytestream to a file. 2017-05-13 15:34:28 +02:00
Christian Schwarz 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
Christian Schwarz feabf1abcd rpc: logging for bytestream listener 2017-05-13 15:25:09 +02:00
Christian Schwarz 53b3a940ec WIP: main: tree traversal 2017-05-13 15:25:09 +02:00
Christian Schwarz 5bc6d460cf WIP: sink & pull implementation 2017-05-13 15:25:09 +02:00
Christian Schwarz b2de658270 util: fix package name of chunking 2017-05-13 15:25:09 +02:00
Christian Schwarz 6524cfce0c create file if it doesn't exist 2017-05-13 15:25:09 +02:00
Christian Schwarz dd6dd60e98 Simplify "fork then io.Reader" abstractions 2017-05-13 15:23:37 +02:00
Christian Schwarz 54778c0374 zfs: remove erronous output from ForkReader 2017-05-13 15:23:28 +02:00
Christian Schwarz c762502f6e zfs: implement DatasetPath top down walk 2017-05-13 15:23:28 +02:00
Christian Schwarz 2407556f15 main: implement request handler. 2017-05-07 12:28:03 +02:00
Christian Schwarz 996be3704d zfs: implement ZFSListFilesystemExists() 2017-05-07 12:26:41 +02:00
Christian Schwarz 6a420e872e zfs: implement ZFSSet 2017-05-07 12:23:12 +02:00
Christian Schwarz d37bdc3d7a zfs: implement ZFSRecv 2017-05-07 12:22:57 +02:00
Christian Schwarz 030bd7affe zfs: implement ZFSSend 2017-05-07 12:20:56 +02:00
Christian Schwarz 1a92717894 zfs: FilesytemDiff: len(IncrementalPath) < 2 means same most recent version
bonus: style + typo fixes
2017-05-07 12:20:56 +02:00
Christian Schwarz d0c0e2510b zfs: FilesystemDiff: support empty left list = no common ancestor 2017-05-07 12:20:56 +02:00
Christian Schwarz cd8796aed4 rpc: Initial|IncrementalTransferRequest transfer zfs data structures 2017-05-07 12:20:56 +02:00
Christian Schwarz fa97d3d98a config: parse InitialReplPolicy with default to most_recent 2017-05-07 12:00:34 +02:00
Christian Schwarz c71be910f9 rpc: fix incremental transfer request handling 2017-05-07 11:53:47 +02:00
Christian Schwarz 44d20ac256 zfs: ZFSListMapping fix broken logic 2017-05-06 23:45:33 +02:00
Christian Schwarz cb37470010 sshbytestream: exited command always returns io.EOF 2017-05-06 23:44:59 +02:00
Christian Schwarz 82beea94d5 rpc: missing response header for InitialTransferRequest 2017-05-06 23:43:55 +02:00
Christian Schwarz 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
Christian Schwarz 9b871fb7c0 rpc: more detailed errors 2017-05-06 10:58:23 +02:00
Christian Schwarz aa696dd0ce zfs: use createtxg and guid properties for FilesystemVersion 2017-05-06 10:58:01 +02:00
Christian Schwarz 22454738af application-wide logging through Logger interface 2017-05-03 18:32:11 +02:00
Christian Schwarz 1e7b29bdc5 license: change attribution 2017-05-03 18:28:04 +02:00
Christian Schwarz 55463e5f26 jobrun: per-job logger 2017-05-03 18:28:04 +02:00
Christian Schwarz 3b6d79ec67 jobrun: log through abstract logger interface instead of stderr 2017-05-03 18:27:55 +02:00
Christian Schwarz 77f749112c main: remove global handler and unused structs 2017-05-03 18:27:23 +02:00
Christian Schwarz f005ce318d Purge model package, not really used anyways. 2017-05-03 17:26:45 +02:00
Christian Schwarz 514f9aa123 rpc: hex-ints for RequestType definitions 2017-05-03 17:13:08 +02:00
Christian Schwarz b8e7ddd61f rpc fixup msising directions filesystemrequest 2017-05-03 17:12:31 +02:00
Christian Schwarz 43f67d2b7c rpc: add FilesystemVersionsRequest 2017-05-03 17:12:15 +02:00
Christian Schwarz f46fb2f34f zfs: filesystem versioning and diffing 2017-05-01 20:35:49 +02:00
Christian Schwarz 644d3dd06b zfs: public ZFSList() function + consolidation of mapping code 2017-05-01 20:35:04 +02:00
Christian Schwarz 28f0b90c25 zfs: check for forbidden dataset path characters 2017-05-01 20:09:35 +02:00
Christian Schwarz 301be177ea config: fix broken parsing of direct mapping
Would only parse wildcard ('|') DirectMapping but no specific direct
mappings.
2017-05-01 20:08:20 +02:00
Christian Schwarz b87829817a rpc: bytestream: listen: filesystems request: reply with header 2017-04-30 23:47:12 +02:00