Dietmar Maurer
576e3bf252
rename api3 back to api2
...
There is no real need to change the path, so using api2 we can reuse
all helpers (like tools from proxmox widget toolkit).
2019-01-22 12:10:38 +01:00
Dietmar Maurer
1adb353d6f
lient/http_client.rs: simplify code
2019-01-22 10:36:04 +01:00
Dietmar Maurer
41c039e143
bin/proxmox-backup-client.rs: implement list command
2019-01-21 18:58:14 +01:00
Dietmar Maurer
1fdb4c6ffa
client/http_client.rs: implement get, share common code
2019-01-21 18:56:48 +01:00
Dietmar Maurer
83dbd80bd8
api3/admin/datastore.rs: implement list backups
2019-01-21 11:22:55 +01:00
Dietmar Maurer
7ca80246ea
backup/datastore.rs: use DateTime<Utc> to store backup time
2019-01-21 10:51:52 +01:00
Dietmar Maurer
be0084b001
white space fix
2019-01-21 10:32:07 +01:00
Dietmar Maurer
e25736b4c3
backup/datastore.rs: implement list_backups
2019-01-20 18:02:27 +01:00
Dietmar Maurer
cce1676a9e
tools.rs: use FnMut for scandir callback
2019-01-20 17:49:11 +01:00
Dietmar Maurer
443f3743bb
tools.rs: new scandir() helper
2019-01-20 17:31:43 +01:00
Dietmar Maurer
68469eebb4
backup/chunk_store.rs: verify base path is absolute
2019-01-20 16:49:22 +01:00
Dietmar Maurer
059ca7c3a1
remove crate tokio-codec (seems to be part of tokio now)
2019-01-20 14:28:06 +01:00
Dietmar Maurer
8eeef8492a
tools/wrapped_reader_stream.rs: allocate Vec<u8> for buffer
2019-01-20 11:01:18 +01:00
Dietmar Maurer
ff8bdf3b64
tools/wrapped_reader_stream.rs: only implement Stream (without AsyncRead)
...
Looks more efficent ...
2019-01-20 10:41:21 +01:00
Dietmar Maurer
8e89d9cafe
tools/wrapped_reader_stream.rs: use tokio_threadpool::blocking
2019-01-20 10:28:51 +01:00
Dietmar Maurer
ce7ba139f1
catar: improve bash completion
2019-01-20 09:55:20 +01:00
Dietmar Maurer
29f34b8e1a
/api3/admin/datastore.rs: add missing subdir to directory index
2019-01-20 09:47:32 +01:00
Dietmar Maurer
0b05fd5830
api3/admin/datastore/catar.rs: implement download
2019-01-20 09:39:32 +01:00
Dietmar Maurer
7f0d67cf79
tools/wrapped_reader_stream.rs: new helper class
...
Will use that to download catar files.
2019-01-20 09:38:28 +01:00
Dietmar Maurer
6a4c091616
api3/admin/datastore/catar.rs: start impl. download
2019-01-19 17:27:02 +01:00
Dietmar Maurer
50cfb695ae
api/router.rs: rename ApiUploadMethod to ApiAsyncMethod
...
We can use this for uploads and downloads ...
2019-01-19 16:42:43 +01:00
Dietmar Maurer
379ea0edb6
Revert "/api/schema.rs: implement Schema::Option"
...
This reverts commit 0a35462c1e
.
I am not sure this add much value, and the old approach needs
less memory. If we really need single optional values, we can still
implement such Option while keeping the hash based approach...
2019-01-19 12:53:32 +01:00
Dietmar Maurer
80f069656d
Revert "api/schema.rs: avoid Option(Option( nesting"
...
This reverts commit ffdac1af01
.
2019-01-19 12:52:51 +01:00
Dietmar Maurer
ca3d861513
remove unused type PropertyMap
2019-01-18 17:54:06 +01:00
Dietmar Maurer
ffdac1af01
api/schema.rs: avoid Option(Option( nesting
2019-01-18 17:49:19 +01:00
Dietmar Maurer
0a35462c1e
/api/schema.rs: implement Schema::Option
2019-01-18 17:40:37 +01:00
Dietmar Maurer
728797d0c1
reduce compiler warnings
2019-01-18 16:50:15 +01:00
Dietmar Maurer
383e857749
move complete_file_name() helper into tools.rs
2019-01-18 13:42:52 +01:00
Dietmar Maurer
73e844dbfe
bin/proxmox-backup-client.rs: improve file name completion
2019-01-18 13:40:05 +01:00
Dietmar Maurer
95cea65b04
backup/datastore.rs: list all index files using walkdir crate
2019-01-18 12:24:58 +01:00
Dietmar Maurer
ff3d3100d4
backup/datastore.rs: try to create useful directory layout
...
store/type/ID/TIME/xxx.yyy
2019-01-18 12:01:37 +01:00
Dietmar Maurer
0d38dcb43c
cleanup nodename()
2019-01-18 10:13:45 +01:00
Dietmar Maurer
74a69302a7
tools.rs: new helper nodename()
2019-01-18 09:58:15 +01:00
Dietmar Maurer
5a778d92b3
api3/admin/datastore.rs: rename parameter "name" to "store"
2019-01-18 08:33:11 +01:00
Dietmar Maurer
244d9b17a8
bin/proxmox-backup-client.rs: implement file name completions - first try ...
2019-01-17 14:24:20 +01:00
Dietmar Maurer
83bdac1e3b
api3/admin/datastore/upload_catar.rs: verify content type ("application/x-proxmox-backup-catar")
2019-01-17 12:43:29 +01:00
Dietmar Maurer
06aeb76a5c
client/catar_backup_stream.rs: remove debug code
2019-01-17 12:16:36 +01:00
Dietmar Maurer
0fe5d605e7
tools.rs: new helper required_string_param()
...
To extract parameters from Value.
2019-01-17 12:14:02 +01:00
Dietmar Maurer
0ee0ad5bf3
api/router.rs: return Result in upload handler
2019-01-17 12:03:38 +01:00
Dietmar Maurer
23bb8780d4
proxmox-backup-client: implement upload to server
2019-01-17 11:38:22 +01:00
Dietmar Maurer
597641fdd5
client/http_client.rs: new helper class
2019-01-17 11:38:03 +01:00
Dietmar Maurer
264f52cf70
api3/admin/datastore.rs: change api patch for upload_catar
2019-01-17 09:16:50 +01:00
Wolfgang Bumiller
37b98249f4
upload: don't return NotReady
...
We need to kick (poll) the stream's next element, so simply
reiterate, the try_read!() will then return NotReady from
the next stream item for us.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-01-16 15:17:26 +01:00
Wolfgang Bumiller
1dcd52e5df
cleanup previous commit...
...
This kind of notation is weird...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-01-16 14:19:13 +01:00
Wolfgang Bumiller
6a50b77e72
listen on :: instead of 0.0.0.0
...
Since this supports both ipv6 & ipv4 unless v6only is
explicitly enabled.
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-01-16 14:18:16 +01:00
Dietmar Maurer
cf16af2ab3
server/rest.rs: correctly pass query/url parameters
2019-01-16 13:58:36 +01:00
Dietmar Maurer
2085142ed4
reduce compiler warnings
2019-01-16 10:19:49 +01:00
Dietmar Maurer
e8edbbd49c
client/catar_backup_stream.rs: new helper for catar uploads to server
2019-01-16 10:15:39 +01:00
Dietmar Maurer
150f1bd8f6
backup/datastore.rs: use Arc for chunk_store references
2019-01-15 12:36:16 +01:00
Dietmar Maurer
1629d2ad7b
api3/admin/datastore/upload_catar.rs: implement upload future
2019-01-15 11:38:26 +01:00
Dietmar Maurer
7e21da6e23
api/router.rs: allow different types of api methods
...
Added a prototype for file/backup uploads.
2019-01-14 12:26:04 +01:00
Dietmar Maurer
b41d1aab8c
catar: define all feature flags
2019-01-12 16:49:02 +01:00
Dietmar Maurer
4c0fd4871e
catar/encoder.rs: allow to pass list of devices
...
We can use this to implement the --one-file-system like options. This
is a bit more convenient, because this way we can select to include
multiple devices (which is required by container backups).
2019-01-12 15:43:20 +01:00
Dietmar Maurer
a8a0495612
catar/encoder.rs: disable backup of virtual file systems
2019-01-12 11:56:53 +01:00
Dietmar Maurer
d7bfac8605
catar/encoder.rs: only test fat attribute on MSDOS and FUSE file systems
2019-01-12 10:28:26 +01:00
Dietmar Maurer
13d98013b2
/catar/encoder.rs: do not store data from virtual file systems
2019-01-12 10:20:08 +01:00
Dietmar Maurer
80881f60ef
catar/encoder.rs: add helpers to test file system type
2019-01-12 09:18:21 +01:00
Dietmar Maurer
1c4804cf67
catar/encoder.rs: pass magic fs number to encode_dir
2019-01-12 08:51:44 +01:00
Dietmar Maurer
dce0ebd505
catar/encoder.rs: use O_DIRECTORY to open dirs
2019-01-11 16:53:17 +01:00
Dietmar Maurer
490683ec93
catar: encode/decode sockets and fifos
2019-01-11 13:26:05 +01:00
Dietmar Maurer
20e2043a08
catar/decoder.rs: corrently pass mode to mknodat
2019-01-11 13:12:55 +01:00
Dietmar Maurer
a7e3713122
catar: encode/decode devices
2019-01-11 12:22:00 +01:00
Dietmar Maurer
1bdb3130f7
catar/format_definition.rs: add more feature flags
2019-01-11 10:44:57 +01:00
Dietmar Maurer
5c76c2f331
catar/encoder.rs: store fat file system attributes
2019-01-11 10:18:22 +01:00
Dietmar Maurer
8c1dfa6c72
catar/encoder.rs: cleanups
2019-01-11 10:01:51 +01:00
Dietmar Maurer
4f6892eb74
catar/encoder.rs: encode linux fs attributes, cleanup encoder
...
Try to avoid duplicate stat calls (assume file tree is stable during backup).
2019-01-11 09:20:10 +01:00
Dietmar Maurer
ddbdf80d51
avoid compiler warnings
2019-01-11 08:41:33 +01:00
Dietmar Maurer
373ef4a504
backup/archive_index.rs: correctly check for errors
2019-01-10 11:19:54 +01:00
Dietmar Maurer
23f68e53b4
catar/decoder.rs: restore mode, uid, gid and mtime
2019-01-10 09:02:50 +01:00
Dietmar Maurer
25f60394d2
catar/decoder.rs: avoid slashes in file names
2019-01-10 09:02:50 +01:00
Dietmar Maurer
9b1bb5a277
catar/decoder.rs: impl restore dirs, files, and symlinks
2019-01-10 09:01:36 +01:00
Wolfgang Bumiller
1ed86a0bae
rest: rename utf-8-checked 'bytes' to 'utf8'
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-01-08 14:22:43 +01:00
Wolfgang Bumiller
9fec7ae593
rest: don't copy the body
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-01-08 14:21:54 +01:00
Wolfgang Bumiller
d9fbcc4631
tools/timer: fixup doc formatting
...
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2019-01-08 14:11:10 +01:00
Dietmar Maurer
676bf71ad4
catar/decoder.rs: restore_sequential - read payload
2019-01-08 09:26:07 +01:00
Dietmar Maurer
c6a0d3fc6b
catar/decoder.rs: improve restore_sequential
2019-01-07 19:18:59 +01:00
Dietmar Maurer
b6ebfb8dab
catar/decoder.rs: start implementing sequential decoder, cleanups
...
And use [derive(Endian)] for endian conversion.
2019-01-07 19:07:03 +01:00
Dietmar Maurer
02c7d8e522
catar: implement create
2019-01-07 13:25:41 +01:00
Dietmar Maurer
e86c49247e
bin/catar.rs: add list command
2019-01-06 17:42:23 +01:00
Dietmar Maurer
3d8c24ecf8
catar/decoder.rs: start implementation
2019-01-06 17:27:57 +01:00
Dietmar Maurer
4b864ad436
format_definition.rs: remove wrong docs
2019-01-06 17:27:22 +01:00
Dietmar Maurer
4624fe29cc
impl Read for BufferedArchiveReader
2019-01-06 10:04:45 +01:00
Dietmar Maurer
343370504b
impl Seek for BufferedArchiveReader
2019-01-06 09:35:39 +01:00
Dietmar Maurer
318564ac03
buffered_read: return empty buffer on eof
2019-01-06 09:17:28 +01:00
Dietmar Maurer
0a72e26704
define and use BufferedReader trait
2019-01-05 17:28:20 +01:00
Dietmar Maurer
1006acd626
remove dead code
2019-01-05 16:55:21 +01:00
Dietmar Maurer
51b499db74
tools.rs: improve docs
2019-01-05 16:53:28 +01:00
Dietmar Maurer
39c6bd86cc
backup/archive_index.rs: implement BufferedArchiveReader
...
Implement relativly fast random read using binary search.
2019-01-05 14:47:56 +01:00
Dietmar Maurer
060c4811a0
backup/chunk_store.rs: resize buffer by powers of two
2019-01-05 11:34:49 +01:00
Dietmar Maurer
9409255aae
catar/encoder.rs: code cleanup
...
Note: Rust Vec resize uses len(), not capacity()!
2019-01-04 17:23:01 +01:00
Dietmar Maurer
df9973e8f5
backup/chunk_store.rs: avoid allocation in read_chunk
2019-01-04 17:16:56 +01:00
Dietmar Maurer
7394ca3e95
white space cleanups
2019-01-04 12:51:43 +01:00
Dietmar Maurer
96df2fb44b
backup/chunk_store.rs: implement read_chunk()
2019-01-04 12:50:54 +01:00
Dietmar Maurer
691c89a0fb
proxmox-backup-manager: add garbage collection cli
2019-01-04 11:34:32 +01:00
Dietmar Maurer
07b4694a33
cleanup crate names
2019-01-04 10:49:52 +01:00
Dietmar Maurer
4bdba5f4f1
rename backup-client to proxmox-backup-client
2019-01-04 10:41:37 +01:00
Dietmar Maurer
a689f6df0e
rename pbs to proxmox-backup-manager
2019-01-04 10:39:32 +01:00
Dietmar Maurer
bc616633d5
backup/chunk_store.rs: only use one directory level
2019-01-04 10:35:22 +01:00
Dietmar Maurer
030cc2a903
move admin API to /admin/ subfolder
2019-01-04 10:32:27 +01:00
Dietmar Maurer
b663789bdb
backup/archive_index.rs: pass correct size to unmap
2019-01-04 09:28:41 +01:00