bigeagle пре 9 година
родитељ
комит
33611cee8e
1 измењених фајлова са 40 додато и 9 уклоњено
  1. 40 9
      README.md

+ 40 - 9
README.md

@@ -1,14 +1,45 @@
 tunasync
 ========
 
+## Design
+
+```
+# Architecture
+
+- Manager: Centural instance on status and job management
+- Worker: Runs mirror jobs
+
+
++----------+  +---+   worker configs   +---+    +----------+     +----------+
+|  Status  |  |   |+-----------------> | w +--->|  mirror  +---->|  mirror  |
+|  Manager |  |   |                    | o |    |  config  |     | provider |
++----------+  | W |  start/stop job    | r |    +----------+     +----+-----+
+              | E |+-----------------> | k |                          |
++----------+  | B |                    | e |       +------------+     |
+|   Job    |  |   |   update status    | r |<------+ mirror job |<----+
+|Controller|  |   | <-----------------+|   |       +------------+
++----------+  +---+                    +---+
+
+
+# Job Run Process
+
++-----------+     +-----------+    +-------------+     +--------------+
+|  pre-job  +--+->|  job run  +--->|   post-job  +-+-->| post-success |
++-----------+  ^  +-----------+    +-------------+ |   +--------------+
+			   |                                   |
+			   |      +-----------------+          |
+			   +------+    post-fail    |<---------+
+					  +-----------------+
+```
+
 ## TODO
 
-- [ ] use context manager to handle job contexts
-- [x] Hooks need "before_exec", "after_exec"
-- [x] implement `tunasynctl tail` and `tunasynctl log` or equivalent feature
-- [x] status file
-    - [ ] mirror size
-    - [x] upstream
-- [x] btrfs backend (create snapshot before syncing)
-- [x] add mirror job online
-- [x] use toml as configuration
+- [ ] split to `tunasync-manager` and `tunasync-worker` instances
+	- use HTTP as communication protocol
+- Web frontend for `tunasync-manager`
+	- [ ] start/stop/restart job
+	- [ ] enable/disable mirror
+	- [ ] view log
+- [ ] config file structure
+	- [ ] support multi-file configuration (`/etc/tunasync.d/mirror-enabled/*.conf`)
+