Commit Graph

2405 Commits

Author SHA1 Message Date
Dietmar Maurer
43e0e6c7de update proxmox to 0.9.1-1 2020-12-22 13:25:56 +01:00
Stefan Reiter
78aacb67da add tools::future with TimeoutFutureExt
Implements shorthands to automatically cancel a long-running future
after a timeout is reached.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
2020-12-22 13:24:36 +01:00
Dietmar Maurer
b53de8b7c0 proxmox: correctly depend on proxmox-api-macro 0.3 2020-12-22 08:06:02 +01:00
Dietmar Maurer
f6e7463ec1 bump versions to 0.9.0-1/0.3.0-1 2020-12-22 07:54:32 +01:00
Wolfgang Bumiller
8bb221663e adaptions for proxmox 0.9 and proxmox-api-macro 0.3
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:31:05 +01:00
Wolfgang Bumiller
630fd801d2 proxmox changelog update
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:27:11 +01:00
Wolfgang Bumiller
a9318a43aa proxmox: temporary d/changelog update
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:26:29 +01:00
Wolfgang Bumiller
bc0355e582 macro: temporary d/changelog update
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:24:09 +01:00
Wolfgang Bumiller
3d1432a788 schema: ParameterSchema at 'api' level
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:23:33 +01:00
Wolfgang Bumiller
34651099d1 api-macro: support flattened parameters
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:21:43 +01:00
Wolfgang Bumiller
4802e0321b api-macro: factor parameter extraction into a function
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:21:25 +01:00
Wolfgang Bumiller
301918529d api-macro: more tuple refactoring
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:21:13 +01:00
Wolfgang Bumiller
75530cb68c api-macro: object schema entry tuple -> struct
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:20:48 +01:00
Wolfgang Bumiller
de749b1a52 schema: ExtractValueDeserializer
A deserializer which takes an `&mut Value` and an object
schema reference and deserializes by extracting (removing)
the values from the references serde Value.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:20:05 +01:00
Wolfgang Bumiller
9d9231313d api-macro: suport AllOf on structs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:19:40 +01:00
Wolfgang Bumiller
357b3016d5 api-macro: add more standard Maybe methods
Note that any methods added there should be oriented around
`Option`.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:19:16 +01:00
Wolfgang Bumiller
6b5bf36989 api-macro: forbid flattened fields
They don't appear in the json data structure and therefore
should not be named separately in the schema. Structs with
flattened fields will become an `AllOf` schema instead.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:18:46 +01:00
Wolfgang Bumiller
fbc9be471b api-macro: add 'flatten' to SerdeAttrib
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:18:08 +01:00
Wolfgang Bumiller
0cdd47c8fc schema: allow AllOf schema as method parameter
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:17:47 +01:00
Wolfgang Bumiller
3f490368cf schema: support AllOf schemas
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:03:37 +01:00
Wolfgang Bumiller
4916d5b10d api-macro: support optional return values
The return specification can now include an `optional`
field.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:02:47 +01:00
Wolfgang Bumiller
e8998851f8 schema: support optional return values
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:02:17 +01:00
Wolfgang Bumiller
89a3dd5b1f formatting fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-22 07:00:46 +01:00
Dominik Csapak
f9378cad13 tools/daemon: improve reload behaviour
it seems that sometimes, the child process signal gets handled
before the parent process signal. Systemd then ignores the
childs signal (finished reloading) and only after going into
reloading state because of the parent. this will never finish.

Instead, wait for the state to change to 'reloading' after sending
that signal in the parent, an only fork afterwards. This way
we ensure that systemd knows about the reloading before actually trying
to do it.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-By: Fabian Ebner <f.ebner@proxmox.com>
2020-12-18 10:30:37 +01:00
Wolfgang Bumiller
4dec479d2c update d/control
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-09 10:44:58 +01:00
Wolfgang Bumiller
8cc4c167ac bump proxmox-api-macro to 0.2.4-1
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-09 10:43:49 +01:00
Wolfgang Bumiller
84d0859ddb document forward_de/serialize_to_display/from_str
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-09 10:19:59 +01:00
Wolfgang Bumiller
4a0f06d084 doc fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-09 10:18:58 +01:00
Wolfgang Bumiller
0ad74b431e api-macro: lower a whole bunch of errors
to be non fatal for better error messages, this way the user
will see the compile error, but we still generate all the
code & schema variables so that one error isn't accompanied
by all the ones resulting from not having the generated code
there at all.

Eg.

    error: description not allowed on external type
       --> src/api2/access/user.rs:472:22
        |
    472 |         description: "Get API token metadata (with config digest).",
        |                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Was previously also accompanied by

    error[E0425]: cannot find value `API_METHOD_READ_TOKEN` in this scope
       --> src/api2/access/user.rs:774:11
        |
    699 | pub fn delete_token(
        | ------ similarly named constant `API_METHOD_DELETE_TOKEN` defined here
    ...
    774 |     .get(&API_METHOD_READ_TOKEN)
        |           ^^^^^^^^^^^^^^^^^^^^^ help: a constant with a similar name exists: `API_METHOD_DELETE_TOKEN`

The second error was "wrong" and came much later, needlessly
filling the screen if this happened on multiple functions.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-07 15:34:02 +01:00
Wolfgang Bumiller
273ce60242 api-macro: forbid description on incompatible schemas
References to external schemas (or types) already include
the description in the external schema and therefore are
illegal.

The implementation consists of multiple parts:

* Introduce a `Maybe` type which can be `Explicit`,
  `Derived` or `None`.
* Forbid `Explicit` descriptions on references.
* Instead of bailing out on such errors which causes all of
  the generated code to vanish and create heaps of
  additional nonsensical errors, add a way to *add* errors
  without bailing out immediately via the `error!()` macro.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-07 15:09:45 +01:00
Hannes Laimer
9de5b2a58e correct email in changelog
Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
2020-12-07 11:43:11 +01:00
Dietmar Maurer
c9c28f7631 bump proxmox version to 0.8.1-1 2020-12-06 09:08:41 +01:00
Dietmar Maurer
c7be237b57 trait ReadExt: add read_exact_or_eof and skip_to_end 2020-12-06 09:05:26 +01:00
Wolfgang Bumiller
a793453944 proxmox: fix example array in Cargo.toml
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-12-03 09:58:02 +01:00
Fabian Grünbichler
cce052e97f build: track d/control in git
and check build-dependencies before building..

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-11-30 15:13:01 +01:00
Wolfgang Bumiller
6b0dabefd4 file logger: remove test.log after test as well
and a doc formatting fixup

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-11-30 14:13:21 +01:00
Wolfgang Bumiller
09b2a5961e bump proxmox to 0.8.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-11-30 11:18:57 +01:00
Wolfgang Bumiller
194f2605e4 minor clippy lints
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-11-30 11:18:37 +01:00
Wolfgang Bumiller
3d29fbf15e introduce FdRef and BorrowedFd
Types used to reprecent borrowed raw file descriptors.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-11-30 10:48:05 +01:00
Wolfgang Bumiller
2216b348a1 make_tmp_file: properly guard file descriptor
and return an Fd

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-11-30 09:43:00 +01:00
Fabian Grünbichler
b210ad69eb run 'cargo fmt'
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-11-27 11:43:55 +01:00
Fabian Grünbichler
97509b63ad fix clippy warnings
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-11-27 11:43:21 +01:00
Dietmar Maurer
1d2a0d9e81 bump version to 0.7.2-1 2020-11-24 13:24:11 +01:00
Dietmar Maurer
e7cb1f20d0 implement cli command alias feature 2020-11-24 12:44:54 +01:00
Dietmar Maurer
474fae5b3d fix typo 2020-11-24 12:44:03 +01:00
Wolfgang Bumiller
bba65fe051 bump proxmox to 0.7.1
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-11-19 09:17:26 +01:00
Wolfgang Bumiller
08d6e20c63 tools: refactor hex parsing
deduplicate parsing into a `hex_to_bin_exact`

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-11-19 09:16:50 +01:00
Wolfgang Bumiller
46c71f7da3 formatting fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2020-11-16 14:21:45 +01:00
Fabian Grünbichler
85b5be8133 rest: check for disabled token (user)
when authenticating a token, and not just when authenticating a
user/ticket.

Reported-By: Dominik Jäger <d.jaeger@proxmox.com>

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2020-11-11 12:21:29 +01:00
Thomas Lamprecht
e6edbb5c3b daemon: rename method, endless loop, bail on exec error
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2020-11-11 10:14:01 +01:00