Commit Graph

2308 Commits

Author SHA1 Message Date
Dietmar Maurer
9136f857cc add global var to indicate server shutdown requests 2019-04-01 12:05:11 +02:00
Dietmar Maurer
3e6a7deeaa src/api2/admin/datastore.rs: start GC in a separate thread 2019-04-01 12:02:46 +02:00
Dietmar Maurer
ad281d1bd9 www/DataStoreConfig.js: add button to start GC 2019-04-01 08:08:34 +02:00
Dietmar Maurer
49d123ee3a src/server/rest.rs: use formatter to encode errors 2019-04-01 08:04:12 +02:00
Dietmar Maurer
7d4ef127cb src/server/rest.rs: generate csrf token if we have a valid ticket
This is important if the user reloads the browser page.
2019-04-01 07:52:30 +02:00
Dietmar Maurer
11861a482d src/backup/chunk_store.rs: fix GC
Added option to get oldest_writer timestamp from ProcessLocker.
2019-03-31 17:21:36 +02:00
Dietmar Maurer
d85987aeeb fix last commit: the filename var was not ment to be removed, sorry 2019-03-31 16:16:14 +02:00
Dietmar Maurer
15a77c4c2e src/backup/chunk_store.rs: avoid create/unlink race 2019-03-31 10:03:01 +02:00
Dietmar Maurer
c374f05499 src/backup.rs: improve GC problem description 2019-03-31 09:44:35 +02:00
Dietmar Maurer
c8ec450e37 src/backup.rs: start explaining different GC algorithm 2019-03-30 17:21:40 +01:00
Dietmar Maurer
8a4757342c src/backup.rs: describe the garbage collection problem 2019-03-30 16:26:52 +01:00
Dietmar Maurer
10eea49d81 src/backup/fixed_index.rs: store reference to file
Keep it open and locked while index is in use.
2019-03-27 10:17:03 +01:00
Dietmar Maurer
c597a92c81 index file readers: aquire shared lock 2019-03-27 10:11:14 +01:00
Dietmar Maurer
0465218953 src/backup.rs: add documentation about ChunkStore locking 2019-03-22 10:14:50 +01:00
Dietmar Maurer
43b1303398 datastore: use new ProcessLocker
To make sure only one process runs garbage collection while having active writers.
2019-03-22 09:42:15 +01:00
Dietmar Maurer
abfc001f25 src/tools/process_locker.rs: new() - use generic path parameter 2019-03-22 09:41:32 +01:00
Dietmar Maurer
a650f50301 src/tools/process_locker.rs: implement inter-process reader-writer locks 2019-03-22 08:05:51 +01:00
Wolfgang Bumiller
eb90c9e372 tools: style fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-20 09:57:13 +01:00
Christian Ebner
e04d1bfadc Cleanup of if statement with unwraps by a more compact match statement
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2019-03-20 09:49:18 +01:00
Dietmar Maurer
8346f0d59b src/server/rest.rs: correctly extract content type 2019-03-19 12:50:15 +01:00
Dietmar Maurer
164d961729 docs/index.rst: cleanup 2019-03-19 12:22:57 +01:00
Wolfgang Bumiller
a690ecacf0 daemon: simplify daemon creation
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-19 12:12:54 +01:00
Wolfgang Bumiller
e4311382d9 tools: daemon: rename some structs
Reloadable resources are now 'Reloadable' instead of
'ReexecContinue'.

The struct handling the reload is a 'Reloader', not a
'ReexecStore'.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-19 11:09:46 +01:00
Wolfgang Bumiller
5e7bc50af1 add reload support to api daemon
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-18 12:29:18 +01:00
Wolfgang Bumiller
a2ca713701 add reload support to proxy
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-18 12:29:18 +01:00
Wolfgang Bumiller
af70c1811b tools: implement ReexecContinue for tokio's TcpListener
This is the only thing we currently need to keep alive for
reloads.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-18 12:29:18 +01:00
Wolfgang Bumiller
4422ba2c7f tools: daemon: add a default signalfd helper
Proxy and daemon for now just want to handle reload via
`SIGHUP`, so provide a helper creating the signalfd stream
doing that - this is simply a filtered stream which passes
the remaining signals through, so it can be used exactly
like the signalfd stream could before to add more signals.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-18 12:29:18 +01:00
Wolfgang Bumiller
dce94d0e09 tools: add daemon helpers
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-18 12:29:18 +01:00
Wolfgang Bumiller
ff7049d481 tools: add fd_change_cloexec helper
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-18 12:29:18 +01:00
Wolfgang Bumiller
1c042cdc6c proxy: listener error handling fixup
If the listening socket goes into some error state we'll get
std::io::Errors rather than higher level errors from the
native_tls::TlsAcceptor, those are usually fatal. (Ran into
this after performing a shutdown() on the file descriptor,
after which the future just endlessly loops in accept().)

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-18 12:29:18 +01:00
Dietmar Maurer
60864b1b56 src/pxar.rs: improve docu 2019-03-18 12:27:30 +01:00
Dietmar Maurer
515688d1f1 avoid compiler warnings 2019-03-18 10:00:58 +01:00
Dietmar Maurer
998b827a5d start file format docu 2019-03-16 16:44:45 +01:00
Dietmar Maurer
ba10f2b0d4 src/bin/dynamic-files.rs: test case for file shrink during backup 2019-03-16 14:22:14 +01:00
Dietmar Maurer
af572aaa4c pxar: implement hardlinks
So we are no longer compatible with catar ...
2019-03-16 11:02:12 +01:00
Wolfgang Bumiller
c238e4d4b3 protocol: c-api: add proxmox_backup_finish_backup to .h
this was missing

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-15 14:28:28 +01:00
Wolfgang Bumiller
7b7a42b467 protocol: use Option<fn()> for nullable function
This should have the same memory layoutas a simple `fn()`
with NULL function pointers mapping to None.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-15 14:21:52 +01:00
Wolfgang Bumiller
33b1767d05 protocol: add C header work in progress and test client
The test client simply (optionally) requests a list of
hashes of an existing file.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-15 12:40:47 +01:00
Wolfgang Bumiller
7f497b2e68 protocol: add C bindings for Connector
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-15 12:40:47 +01:00
Wolfgang Bumiller
4457adb28c protocol: C-API improvements
- make Client creation reusable
- add helper to create a CApiSocket for any Read + Write
  streams
- add drop callback (required for the above)

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-15 12:40:47 +01:00
Wolfgang Bumiller
41310cb96e protocol: add connector
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-03-15 12:40:47 +01:00
Dietmar Maurer
812dd935ce src/pxar/encoder.rs: detect hardlinks 2019-03-15 12:19:51 +01:00
Dietmar Maurer
896e803feb src/pxar/sequential_decoder.rs: dump_entry - fix FIFO/SOCKET handling 2019-03-15 12:15:38 +01:00
Dietmar Maurer
7dfa17c7cc src/pxar/binary_search_tree.rs: fix test 2019-03-15 11:34:31 +01:00
Dietmar Maurer
9307279faf cleanup: remove dead code 2019-03-15 10:18:28 +01:00
Dietmar Maurer
46cfe7ab7e src/pxar/decoder.rs: implement seekable decoder 2019-03-15 09:36:05 +01:00
Dietmar Maurer
0e21b87be3 renamed: src/pxar/decoder.rs -> src/pxar/sequential_decoder.rs 2019-03-15 08:36:02 +01:00
Dietmar Maurer
3dbfe5b142 simplify pxar module structure 2019-03-15 08:24:32 +01:00
Dietmar Maurer
1ef46b81d3 src/bin/pxar.rs: implement extract 2019-03-15 08:03:44 +01:00
Dietmar Maurer
02c93163cf src/pxar/decoder.rs: correctly call callback() 2019-03-15 08:02:04 +01:00