Commit Graph

188 Commits

Author SHA1 Message Date
Thomas Lamprecht
2fad118858 bump version to 0.7.5
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-21 17:58:45 +01:00
Thomas Lamprecht
df8e411e1d bump version to 0.7.4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-21 15:30:34 +01:00
Thomas Lamprecht
ea6ae50fff bump proxmox-resource-scheduling dependency to 0.2
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-03-21 15:26:40 +01:00
Fiona Ebner
2246577a5d pve: test: resource scheduling: add test with overcommitted node
which will fail with librust-proxmox-resource-scheduling-dev=0.1.0-1

Reported-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-03-21 15:03:45 +01:00
Fiona Ebner
24702d4472 pve: test: resource scheduling: use dedicated functions for tests
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2023-03-21 15:03:45 +01:00
Wolfgang Bumiller
0648876946 buildsys: fix 'target/' path in install target
The target/ dir is relative to the workspace Cargo.toml
file.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-03-21 12:54:50 +01:00
Wolfgang Bumiller
9fdb289df2 update to new tfa crate
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-03-07 12:48:46 +01:00
Wolfgang Bumiller
bd90bdf495 bump d/control
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-03-07 12:44:15 +01:00
Wolfgang Bumiller
29181c7a0e use workspace dependencies
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2023-03-07 12:44:15 +01:00
Lukas Wagner
c7c3940718 initialize logging when shared library is loaded
This commit sets up logging by hooking into module loading/bootstraping
process to call a new `init` function exported by the `Proxmox::Lib::{PVE,PMG}`
module, which initializes `env_logger` with its default settings.

This allows us to use `log::*` macros from Rust code.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2023-03-07 12:02:02 +01:00
Fabian Grünbichler
f6b244dfb3 update to nix 0.26
and proxmox-sys using it

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-01-05 13:16:26 +01:00
Wolfgang Bumiller
8126db8a17 drop comment about running tests during build
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-15 13:45:58 +01:00
Wolfgang Bumiller
13e3d8b87e pve: build test stub of Proxmox::Lib::PVE for tests
this replaces the libdirs() sub with one containing:
- ../target (for when run from build/pve-rs)
- ../../target (for when run from toplevel/pve-rs

This way we can run 'make check' both from within `pve-rs`
as well as from the package building process.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-15 13:42:18 +01:00
Wolfgang Bumiller
6583f4d840 buildsys: generate .pm files in packages
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-15 13:22:34 +01:00
Wolfgang Bumiller
6b2814d612 buildsys: generate Proxmox::Lib within the product Makefiles
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-15 13:13:59 +01:00
Wolfgang Bumiller
807651bc7b buildsys: include defines.mk in pve-rs and pmg-rs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-15 13:06:47 +01:00
Wolfgang Bumiller
d00aa7f091 pve-rs: bump to 0.7.3
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-15 11:14:14 +01:00
Wolfgang Bumiller
03e4522da3 pve: bump d/control
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-15 11:11:27 +01:00
Wolfgang Bumiller
221be779c4 use Test::More for resource_scheduling tests
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-11-15 11:10:32 +01:00
Fiona Ebner
79552120c6 add basic test for resource scheduling
currently only used to test the installed version and not
automatically during build. See the FIXME note for why.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2022-11-11 14:19:02 +01:00
Fiona Ebner
887c0e2074 pve-rs: add resource scheduling module
backed by the proxmox-resource-scheduling crate.

Initially to be used by the HA manager to allow it basing its decision
where to start a new or recovered service on static usage information
rather than just counting.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2022-11-11 14:18:58 +01:00
Fabian Grünbichler
8e9e521865 pve-rs: bump to 0.7.2
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2022-09-07 12:06:05 +02:00
Fabian Grünbichler
156f3d7727 update to proxmox-subscription 0.3
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2022-09-07 10:25:12 +02:00
Fabian Grünbichler
95b9307776 update to proxmox-http 0.7
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2022-09-07 10:25:12 +02:00
Fabian Grünbichler
39c29ee9a4 bump proxmox-sys dependency to 0.4
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2022-08-02 14:42:50 +02:00
Wolfgang Bumiller
c978d1384b bump pve-rs to 0.7.1
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-07-25 13:46:20 +02:00
Wolfgang Bumiller
ed3bbe6425 bump proxmox-tfa to 2.1
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-07-25 13:45:00 +02:00
Wolfgang Bumiller
d60b0a3ca3 bump pve-rs to 0.7.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-07-21 15:00:27 +02:00
Wolfgang Bumiller
73b295e8c2 pve: bump d/control
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-07-21 15:00:27 +02:00
Wolfgang Bumiller
719c66bf04 bump proxmox-http to 0.6.4
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-07-21 14:59:07 +02:00
Wolfgang Bumiller
818886ee45 bump proxmox-apt to 0.9 and proxmox-subscription to 0.2
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-07-21 14:54:45 +02:00
Fabian Grünbichler
95e5e59fd0 cargo fmt
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2022-07-21 13:33:37 +02:00
Fabian Grünbichler
8d143f8f9e common: add proxmox_subscription wrapper
and expose it for PVE and PMG.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2022-07-21 12:55:20 +02:00
Wolfgang Bumiller
2ae629ac44 bump pve-rs to 0.6.2
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-07-08 14:49:47 +02:00
Fabian Ebner
f386660b4b move apt repositories module to common
while introducing a 'product' parameter to the relevant functions and
adding wrappers for backwards-compatibility.

Suggested-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2022-07-08 14:29:54 +02:00
Thomas Lamprecht
b2a4623ac7 d/control: update build-dep for nix rs dependency to 0.24
was missed in commit b67ff27d9e

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-06-20 10:33:13 +02:00
Fabian Grünbichler
b67ff27d9e update to nix 0.24
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2022-06-02 14:23:07 +02:00
Wolfgang Bumiller
08ec7c069e pve-rs: bump d/control
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-04-19 15:08:24 +02:00
Thomas Lamprecht
2090370e65 bump version to 0.6.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-04-19 10:58:51 +02:00
Thomas Lamprecht
ea43306c16 update proxmox-openid to 0.9.5
to fix azure support that broke with the switch to ureq due to azure
not understanding chunked transfer encoding

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-04-19 10:56:49 +02:00
Thomas Lamprecht
a9171f5d3e update proxmox-openid to 0.9.4
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-29 10:38:29 +02:00
Wolfgang Bumiller
d00bfdcddb buildsys: drop file list in Makefiles
just install all files, `make gen` at the top level is
responsible for generating the correct files

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-21 14:16:21 +01:00
Wolfgang Bumiller
e148c6d608 pve: buildsys: remove CalendarEvent file
this has been moved to the common package

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-21 13:45:01 +01:00
Wolfgang Bumiller
8bea8bba5a buildsys: fail when trying to install non-existent files
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-21 09:28:06 +01:00
Wolfgang Bumiller
17367e04e5 bump perlmod to 0.13
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-08 10:31:28 +01:00
Wolfgang Bumiller
698f0e6f8a bump pve-rs to 0.6.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-01 12:02:48 +01:00
Wolfgang Bumiller
4beb35701b add libproxmox-rs-perl and release it as 0.1.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-01 11:46:49 +01:00
Wolfgang Bumiller
9fcecb2c8f generate and install perl package files
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-01 10:54:15 +01:00
Wolfgang Bumiller
ba8dad1190 add common-src/ and move CalendarEvent to it
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-03-01 10:54:15 +01:00
Wolfgang Bumiller
15c39cb258 Revert "move apt to /perl-apt, use PERLMOD_PRODUCT env var"
This reverts commit 9bc3ab23cb.

This is not the way we're going to organize common code.
2022-02-28 12:25:00 +01:00
Wolfgang Bumiller
ba6812a109 update d/control files
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-02-28 12:25:00 +01:00
Wolfgang Bumiller
8d4f76e3b0 bump perlmod to 0.12
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-02-28 12:11:07 +01:00
Thomas Lamprecht
2bfa47e167 pve-rs: bump version to 0.5.1
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-03 08:48:12 +01:00
Thomas Lamprecht
4122d1781c pve-rs: d/control: update proxmox-openid build-dependency
That version switched from curl to ureq so we'll loose quite a few
transitive dependencies.

Also, auth0 compat with their non-standard timestamp format should be
fixed now too.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-02-03 08:11:47 +01:00
Wolfgang Bumiller
4e819e1dd0 pve-rs: drop unused openssl dep
we don't directly use it

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-02-02 09:57:35 +01:00
Wolfgang Bumiller
3cf399605b bump perlmod to 0.11
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2022-01-25 09:40:14 +01:00
Thomas Lamprecht
8a1df2f38b pve-rs: bump version to 0.5.0
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-13 14:36:23 +01:00
Thomas Lamprecht
81cb2194ff pve-rs: record proxmox-time dependency
fixes build with new calendar event perlmod binding

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-13 14:36:06 +01:00
Dominik Csapak
e75f545a2f pve-rs: add PVE::RS::CalendarEvent
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2022-01-13 13:58:31 +01:00
Thomas Lamprecht
2f474e63f5 d/control: fix vcs urls
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-01-11 14:20:04 +01:00
Wolfgang Bumiller
aa12b05775 bump perlmod to 0.10
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-12-14 13:58:34 +01:00
Wolfgang Bumiller
73a88784f1 pve: bump d/control
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-28 17:11:57 +01:00
Wolfgang Bumiller
89c6d59e60 pve: update to proxmox-tfa 2.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-28 17:11:57 +01:00
Wolfgang Bumiller
e8a5bf2866 pve: bump perlmod to 0.9
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-28 17:11:57 +01:00
Wolfgang Bumiller
009306bf7d bump pve-rs to 0.4.4
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-22 13:33:20 +01:00
Wolfgang Bumiller
c5ca41322e depend on proxmox-tfa >= 1.3.2 for appid/origin fixup
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-22 13:28:01 +01:00
Thomas Lamprecht
e6319f3cd3 bump pve-rs to 0.4.3
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-19 14:35:11 +01:00
Thomas Lamprecht
e6848843ab pve-rs: d/control: break libpve-access-control (<< 7.1-3)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-11-19 14:32:58 +01:00
Fabian Grünbichler
42e927cc55 bump pve-rs to 0.4.2
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-11-19 14:15:56 +01:00
Fabian Grünbichler
4b4d8fb47b tfa: handle incompatible challenge data
by returning default data, in case the challenge data is not parseable.
this allows a new challenge to be started for the userid in question
without manual cleanup.

currently this can be triggered if an ongoing challenge created with
webauthn-rs 0.2.5 is stored in /run and attempted to be read
post-upgrade.

Reported-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-11-19 14:13:27 +01:00
Fabian Grünbichler
344469a057 bump pve-rs to 0.4.1
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-11-19 11:36:18 +01:00
Fabian Grünbichler
f0d52c6094 bump base64 to 0.13
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-11-19 11:25:37 +01:00
Dietmar Maurer
544f85bb89 pve-rs: depend on proxmox-openid 0.9, bump version to 0.4.0 2021-11-18 10:13:29 +01:00
Wolfgang Bumiller
42dbadec03 bump pve-rs to 0.3.2
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-17 12:49:59 +01:00
Wolfgang Bumiller
d9f938ef49 pve-rs: bump d/control
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-17 12:49:31 +01:00
Wolfgang Bumiller
205c76068d tfa: generate 'incomaptible' entries
for users with incompatible tfa entries, generate an
'incompatible' entry so they cannot log in via the old api

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-17 12:33:04 +01:00
Wolfgang Bumiller
84417400ed move proxmox_tfa_api module to proxmox-tfa as api feature
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-17 08:43:17 +01:00
Wolfgang Bumiller
7cb0164e4a fix typo
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-12 11:00:33 +01:00
Wolfgang Bumiller
c012875339 bump pve-rs to 0.3.1
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-12 10:26:23 +01:00
Dominik Csapak
dfbbed5d87 pve-rs/tfa: ignore and discard incomplete u2f entries
it can happen that we have leftover entries with non-completed challenges.
since a user cannot continue here in a sensible way, ignore and discard
them

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-12 10:10:38 +01:00
Dominik Csapak
515d6a81d8 pve-rs/tfa: fix off by one trimming
to is the last *valid* character, and ranges end by default with one
less, so extend the range to the actual last character

this fixes an issue that we could not parse old configs with
non-padded base64 values

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-12 10:10:20 +01:00
Wolfgang Bumiller
790d11edf1 buildsys: drop -C prefer-dynamic (and rebuild 0.3.0)
also add perl depends

the std library is actually big and not linking dynamically
doesn't add much
besides, the package names for libstd would cause issues
with minor compiler bumps...

the 0.3.0 package is actually built from this commit now,
since the installability checks caught this...

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-10 12:32:42 +01:00
Wolfgang Bumiller
f77e2f1a7d bump/release pve-rs as 0.3.0
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-10 11:52:34 +01:00
Wolfgang Bumiller
41ccaa5048 pve: TfaConfig: add_totp_entry, add_yubico_entry
fast path to add those two from the old user.cfg

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-10 09:53:18 +01:00
Wolfgang Bumiller
3e5228dd73 pve: add_totp anda dd_yubico cannot error, drop Result type
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-10 09:53:12 +01:00
Wolfgang Bumiller
2cc9163892 pve: add tfa api
This consists of two parts:

1) A proxmox_tfa_api module which temporarily lives here but
   will become its own crate.

   Most of this is a copy from ' src/config/tfa.rs with some
   compatibility changes:
   * The #[api] macro is guarded by a feature flag, since we
     cannot use it for PVE.
   * The Userid type is replaced by &str since we don't have
     Userid in PVE either.
   * The file locking/reading is removed, this will stay in
     the corresponding product code, and the main entry
     point is now the TfaConfig object.
   * Access to the runtime active challenges in /run is
     provided via a trait implementation since PVE and PBS
     will use different paths for this.
   Essentially anything pbs-specific was removed and the
   code split into a few submodules (one per tfa type
   basically).

2) The tfa module in pve-rs, which contains:
   * The parser for the OLD /etc/pve/priv/tfa.cfg
   * The parser for the NEW /etc/pve/priv/tfa.cfg
   * These create a blessed PVE::RS::TFA instance which:
     - Wraps access to the TfaConfig rust object.
     - Has methods all the TFA API call implementations
       These are copied from PBS' src/api2/access/tfa.rs,
       and pbs specific code removed.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-09 12:02:53 +01:00
Wolfgang Bumiller
9bc3ab23cb move apt to /perl-apt, use PERLMOD_PRODUCT env var
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-09 08:59:43 +01:00
Wolfgang Bumiller
1ae868ad78 import pve-rs
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2021-11-09 08:56:38 +01:00