Nav apraksta

bigeagle 33611cee8e docs: new desgin 9 gadi atpakaļ
examples 5576efff56 set environment variable for mirror jobs 9 gadi atpakaļ
scripts 3ddbbfda94 docker script: added ubuntu-precise and gpg 9 gadi atpakaļ
systemd 6e667b8a03 update systemd 11 gadi atpakaļ
tests b7d3467346 anaconda mirror script 9 gadi atpakaļ
tunasync 29d4b55bc6 debian-2-stage-rsync: new version of apt checks Contents, now the whole dists/ can be ignored 9 gadi atpakaļ
.gitignore 45b2046dfb bug fix 11 gadi atpakaļ
LICENSE 78f3501e19 Initial commit 11 gadi atpakaļ
README.md 33611cee8e docs: new desgin 9 gadi atpakaļ
requirements.txt 41155a12ad update requirements.txt 9 gadi atpakaļ
tunasync.py 5682d50283 update pidfile and sockfile path 9 gadi atpakaļ
tunasync_snapshot_gc.py 634780937d snapshot GC fix 10 gadi atpakaļ
tunasynctl.py 5682d50283 update pidfile and sockfile path 9 gadi atpakaļ

README.md

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

  • 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)