Commit Graph

7026 Commits

Author SHA1 Message Date
Folke Gleumes
2dac21405a fix #2336: ui: adjust message for bulk start/stop/migrate
The message in the Task Log has been 'Start/Stop/Migrate all...',
which is misleading since not everything might be affected by bulk actions.
This also affects the messages send at a nodes startup and shutdown, but
since this just affects a subgroup of VMs/Containers (those who are
onboot=1) the new wording still applies better than the previous.

Signed-off-by: Folke Gleumes <f.gleumes@proxmox.com>
2023-11-07 16:50:56 +01:00
Thomas Lamprecht
2f6467d8eb api: ceph osd: fix description line-wrapping style
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-06 18:26:53 +01:00
Aaron Lauterer
ad1677d221 fix #4631: ceph: osd: create: add osds-per-device
Allows to automatically create multiple OSDs per physical device. The
main use case are fast NVME drives that would be bottlenecked by a
single OSD service.

By using the 'ceph-volume lvm batch' command instead of the 'ceph-volume
lvm create' for multiple OSDs / device, we don't have to deal with the
split of the drive ourselves.

But this means that the parameters to specify a DB or WAL device won't
work as the 'batch' command doesn't use them. Dedicated DB and WAL
devices don't make much sense anyway if we place the OSDs on fast NVME
drives.

Some other changes to how the command is built were needed as well, as
the 'batch' command needs the path to the disk as a positional argument,
not as '--data /dev/sdX'.
We drop the '--cluster-fsid' parameter because the 'batch' command
doesn't accept it. The 'create' will fall back to reading it from the
ceph.conf file.

Removal of OSDs works as expected without any code changes. As long as
there are other OSDs on a disk, the VG & PV won't be removed, even if
'cleanup' is enabled.

The '--no-auto' parameter is used to avoid the following deprecation
warning:
```
--> DEPRECATION NOTICE
--> You are using the legacy automatic disk sorting behavior
--> The Pacific release will change the default to --no-auto
--> passed data devices: 1 physical, 0 LVM
--> relative data size: 0.3333333333333333
```

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2023-11-06 18:23:28 +01:00
Stefan Lendl
e07191a081 ui: sdn: homogenize the casing of labels
use title case, or upper case for abbreviations, everywhere.

Signed-off-by: Stefan Lendl <s.lendl@proxmox.com>
 [ TL: adapt commit subject to our style guides ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-06 18:17:45 +01:00
Stefan Lendl
9f17d27468 ui: refer to SDN subnets as 'Subnet' not as ID
The Subnet's CIDR in the Edit view is called 'Subnet'.
Also refer to it as Subnet in the list view.

Signed-off-by: Stefan Lendl <s.lendl@proxmox.com>
 [ TL: prefix commit subject with sub-system ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-06 18:17:15 +01:00
Stoiko Ivanov
67c655b933 pve7to8: check for proper grub meta-package for bootmode
This should catch installations from our ISO on non-ZFS in uefi mode,
which won't get the updated grub efi binary installed upon upgrade,
because grub-pc is installed instead of grub-efi-amd64.

Adding this to pve7to8 should make this even more visible, than the
corresponding patch for promxox-kernel-helper (warnings printed during
regular package upgrades might be overlooked more easily than
a yellow line in the major upgrade checkscript)

The if/else order was chosen to limit the nesting level of the long
messages.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2023-11-06 18:12:17 +01:00
Thomas Lamprecht
3632a02974 ui: guest wizard: increase height to match 4:3 ratio
solving an issue where the CPU extra-flags grid had less space than
it's fixed height allowed.
While we also could have reduced that height, having a nicer ratio and
a bit more vertical "breathing room" seem slightly nicer to me.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-06 17:27:02 +01:00
Dominik Csapak
ca97f6301a ui: wizards: allow adding tags in the qemu/lxc create wizard
in the general tab in the advanced section.

For that to work, we introduce a new option for the TagEditContainer
named 'editOnly', which controls now the cancel/finish buttons,
automatically enter edit mode and disable enter/escape keypresses.

We also prevent now the loading of tags while in edit mode, so the tags
don't change while editing (this can be jarring and unexpected).

Then we wrap that all in a FieldSet that implements the Field mixin, so
we can easily use that in the wizard. There we set a maxHeight so that
the field can grow so that it still fits in the wizard.

To properly align the input with the '+' button, we have to add a custom
css class there. (In the hbox we could set the alignment, but this is
not possible in the 'column' layout)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2023-11-06 17:02:08 +01:00
Fabian Grünbichler
7914f5e7b2 node console: allow usage for non-pam realms
non-login commands are still restricted to root@pam if they where before.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-11-06 15:37:38 +01:00
Fabian Grünbichler
4fb92ae88a node console: restrict all non-login commands to root@pam
and not just upgrade.

note that the only other non-login command (ceph_install) is restricted to
root@pam in the web UI anyway, and that the termproxy endpoint is lacking this
check and thus always falls back to a login prompt for non-login commands
requested by non-root users.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-11-06 15:37:28 +01:00
Thomas Lamprecht
6e167f9a9a report: add hint for dir2text
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-11-02 21:00:05 +01:00
Aaron Lauterer
e5ecadec9e report: add sdn config directory
the /etc/pve/sdn directory contains the config files, not just what they
translate to in interface configs (/etc/network/interfaces.d/snd).

The current way will also include dotifiles that may contain the
current/running state. Which can be useful to troubleshoot.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2023-11-02 21:00:03 +01:00
Aaron Lauterer
b2b516f3fc report: add interfaces.d directory
With the SDN becoming more prevalent, it is a good idea to include any
additional config files in '/etc/network/interfaces.d'.

Since no special suffix is enforced, we need to match against any file.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2023-11-02 21:00:01 +01:00
Aaron Lauterer
798bd39a37 report: dir2text: ignore special . and .. files
So far this hasn't been an issue as each user of dir2text wanted files
with a specific pattern. But if we want every file in the directory, we
need to skip the special files '.' and '..'.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
2023-11-02 20:59:59 +01:00
Thomas Lamprecht
bb4c00c073 update shipped aplliance info index
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-30 13:39:43 +01:00
Thomas Lamprecht
2018dc0774 bump version to 8.0.7
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-29 19:52:45 +01:00
Thomas Lamprecht
81e102ebc2 ui: disable new notification UI for now, will be reworked
Lukas is currently reworking this so that we have a single panel,
where the filters are match-entries that can also provide the
functionality of the hard-coded filters in the other panel, reducing
complexity and adding flexibility.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-29 19:47:42 +01:00
Thomas Lamprecht
fea56c69dd ui: datacenter config: adapt to new default MAC prefix
The official Proxmox OUI, assigned by the IEEE, is now used as
default.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-29 18:02:21 +01:00
Fabian Grünbichler
506134df52 subscription: remove ceph APT auth if invalid
like we do for the main APT auth file(s) in proxmox-subscription.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-10-25 18:45:48 +02:00
Fabian Grünbichler
406d820f86 d/control: bump libpve-network-perl suggestion
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2023-10-25 13:14:26 +02:00
Alexandre Derumier
202e26d425 sdn: controllers: add isis controller 2023-10-25 13:05:20 +02:00
Dominik Csapak
33506fa03d ui: tags: fix focus for edit mode
such that one can tab through the editable tag fields.
We have to handle that manually, since ExtJs does not expect
contenteditable html tags for focus handling.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-24 16:48:46 +02:00
Christoph Heiss
8dfdcff8f0 ui: container guest status: show distro logo and name in summary header
It fits neatly there, is rather intrusive and yet still visible at
first sight. It also solves the problem of having to create a bigger
row, so that the icon is still easily recognisable. At the default
font-size of 13pt, this really wasn't the case.

Verified that each supported distro is present in the font and the
name matches up and tested through all supported distros (including
'unmanaged').

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.csapak@proxmox.com>
 [ TL: html-encode, just to be sure, as reviewed by Dominik ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-23 17:28:14 +02:00
Christoph Heiss
b1785dbc65 ui: container guest status: show privileged status as new row
As that info is not available through the store (which stores the
status), it must be fetched separately.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.csapak@proxmox.com>
 [ TL: rework subject and avoid arror-fn for controller to keep `this`
   working, as reviewed by Dominik ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-23 17:27:14 +02:00
Christoph Heiss
4845cca7e2 expose font-logos via API server and load in UI
Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-23 17:26:08 +02:00
Thomas Lamprecht
2944acf97e pvesh: code clean-ups
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-21 16:32:46 +02:00
Thomas Lamprecht
6d7deac70d pvesh: code cleanups for streamed response handling
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-19 15:26:08 +02:00
Christoph Heiss
86f9a0acea pvesh: decode streamed responses
This allows to use `pvesh` on endpoints like /nodes/{node}/journal,
which return streamed (and possibly gzip'd) responses.

Currently, e.g. `pvesh get /nodes/localhost/journal --lastentries 10`
fails with:

  gzip: stdout: Broken pipe
  got hash object, but result schema specified array!

Using e.g. `--output-format yaml` resulted in:

  ---
  download:
    content-encoding: gzip
    content-type: application/json
    fh: &1 !!perl/ref
      =: *1
    stream: 1

  gzip: stdout: Broken pipe
  Failed to write

This is due the API call returning a "download" object (as seen above),
which contains (among some other things) a file handle to read the
response from.

With this patch, the response from such endpoints is now correctly read
and displayed. Only handles combinations of `Content-Encoding` == 'gzip'
and either 'text/plain' or 'application/json' for `Content-Type`.

This tries to mimic the behavior of the API server implementation when
encountering `download` objects.

Tested this with all four output formats 'text', 'json', 'json-pretty'
and 'yaml', as well as "cross-node" in a local test cluster.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
2023-10-19 10:08:54 +02:00
Thomas Lamprecht
39d58bb5b2 ui: ceph wizard: switch to reef as default release for new setups
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-17 12:55:00 +02:00
Thomas Lamprecht
e828af06bf ui: css: rename pmx-faded utility class to pmx-opacity-75
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-13 17:26:54 +02:00
Thomas Lamprecht
5265a2d1a9 ui: clarify that compression selector is for backup only
other targets/sources might have a different list of available
compressions.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-11 15:59:45 +02:00
Christian Ebner
5cd1349071 ui: makefile: readd compression selector form
Commit 65704cc2a8 apparently removed by
misstake the form/CompressionSelector.js from the Makefile.

It is however required by the backup view to select the compression
method, so readd it.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2023-10-11 13:39:31 +02:00
Thomas Lamprecht
7e7e2dc421 ui: ceph warnings: drop summary copy button
talked with Aaron off-list and he found it OK to drop this button now
that "Copy Details" became a "Copy All".

This reduces cognitive load on the user as there are half as many
buttons.

Rename "Copy All" to "Copy to Clipboard" now that there's only one and
drop the disable logic.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 18:16:34 +02:00
Thomas Lamprecht
e4a2efc611 ui: ceph warnings: do not scroll expanded content into view
this causes jumps and is IMO rather irritating, keep hands off from
scrolling, that's best done by user/browser.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 17:38:39 +02:00
Thomas Lamprecht
aa730149a9 ui: ceph warnings: lower opacity for no-details text
to make it more clear that this is not the details, but a UI text
placeholder.
Add a `pmx-faded` class that reduced opacity, as there where recent
discussion about adding such a utility class to widget-toolkit anyway.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 17:38:39 +02:00
Thomas Lamprecht
43fdec754d ui: ceph warnings: disable copy-all if there are no additional infos
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 17:38:39 +02:00
Thomas Lamprecht
f2a0f0ec72 ui: ceph warnings: switch copy-details to copy-all
With health level, summary and full details.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 17:38:39 +02:00
Thomas Lamprecht
d3cbdb217c ui: ceph warnings: use normal font-weight
The use of the <pre> tag will result in font-family `monospace`, and
monospace fonts are often a bit odd w.r.t. size and weight. E.g.,
without this I get a light-font selected, which is hardly visible.

Set the weight to normal, which should not hurt those that got a
better font selection by there system/browser already.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 17:38:39 +02:00
Thomas Lamprecht
b2fcefa067 ui: ceph warnings: render whitespace as pre-wrap
To avoid potential horizontal scrolling on smaller screens, which can
be a PITA as the scroll bar is at the bottom, so users have to scroll
down to move it left and right..

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 17:38:39 +02:00
Thomas Lamprecht
feb192207a ui: ceph warnings: code cleanups
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 17:38:39 +02:00
Aaron Lauterer
459b6c3136 ui: ceph: improve discoverability of warning details
by
* replacing the info button with expandable rows that contain the
  details of the warning
* adding two action buttons to copy the summary and details
* making the text selectable

The row expander works like the one in the mail gateway tracking center
-> doubleclick only opens it.

The height of the warning grid is limited to not grow too large.
A Diffstore is used to avoid expanded rows being collapsed on an update.

The rowexpander cannot hide the toggle out of the box. Therefore, if
there is no detailed message for a warning, we show a placeholder text.
We could consider extending it in the future to only show the toggle if
a defined condition is met.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 17:38:39 +02:00
Thomas Lamprecht
fddf562bf9 api tools: fix usage of stat by-name interface
Fixes: f6395eb6 ("hw-address: check if source file changed so cache needs update")
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 15:38:27 +02:00
Thomas Lamprecht
e02db471ab api tools: improve use-statement sorting and grouping
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-10 15:33:41 +02:00
Maximiliano Sandoval
f6395eb69c hw-address: check if source file changed so cache needs update
We cache the hash of this file, it makes sense to first check if the
file changed via `stat` and recompute the hash if needed.

This mirrors similar changes done for PMG [0].

[0]: https://git.proxmox.com/?p=pmg-api.git;a=commit;h=16d2ff9f8e90db64114a66d78672f5a03f5ee990.

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2023-10-09 16:36:59 +02:00
Thomas Lamprecht
b7588bcdef api: subscription update: actually ignore surrounding whitespace
We already trim correctly in the API endpoint's code, but that happens
after the parameter verification from the REST server, and as
patterns are anchored between ^$pattern$ there by default, it fails if
someone sends some whitespace before/after the actual key.

Simply allow arbitrary whitespace, but only at the API endpoint
itself, do not adapt the subscription pattern to avoid that an actual
whitespace sneaks in and let some lower level code throw up on it.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-05 13:43:30 +02:00
Thomas Lamprecht
8e642410c7 ui: subscription upload: trim key from whitespace on submission
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-05 13:43:30 +02:00
Thomas Lamprecht
a341730bd4 ui: subscription upload: increase window and label width
Quite a few translations produce a longer label here, so account for
that, the window is still very small.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-05 13:43:30 +02:00
Thomas Lamprecht
67dc81829f ui: subscription panel: code reduction and modernization
Drop quite a few lines while actually improving readability.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-10-05 13:43:30 +02:00
Christian Ebner
0329876ccf pve7to8: Add check for dkms modules
... and warn if at least one is present.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2023-09-27 17:02:12 +02:00
Thomas Lamprecht
a622cbf0d9 ui: storage content: transform detected compression extension to lower-case
otherwise the form will be invalid if a uppercase one comes in.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2023-09-27 16:59:00 +02:00