Oguz Bektas [Tue, 29 Oct 2019 14:50:17 +0000 (15:50 +0100)]
ui: qemu: update grid button status with events from correct store
as we noticed at the container side, we should use diffStore in order
to update the button status without delay.
Effectively alls ObjectGrids, and thus their descendants,
PendingObjectGrids use a DiffStore, where we have two effective
stores, a remote store and a local, in-memory, proxy store.
Co-developed-by: Dominik Csapak <d.csapak@proxmox.com> Signed-off-by: Oguz Bektas <o.bektas@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Wed, 16 Oct 2019 09:05:36 +0000 (11:05 +0200)]
aplinfo: see trusted keys as build product, always assembly
Don't track the binary trustedkeys.gpg but see it just as normal
build product with the armored keys as source.
This ensures we always ship those from TRUSTED_KEYS variable, not
more, not less.
Instead of the "gpg import+export in temporary home dir" just
de-armor and concatenate them our self, that's what happens anyway.
This could be even simplified by just using base64 -d on the pubkeys,
after the non base64 stuff was trimmed, that would omit our need for
gpg here completely.
Thanks to Wolfgang B. for giving the idea to just do simple stuff :)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Stoiko Ivanov [Wed, 23 Oct 2019 16:10:28 +0000 (18:10 +0200)]
add versioned postinst run of newaliases
When installing from ISO '/etc/aliases' gets written correctly, however
postfix needs '/etc/aliases.db' (generated by running newaliases)
in order to work.
added to the postinst script to fix the issue for users having installed from
the ISO before this fix.
Thomas Lamprecht [Wed, 23 Oct 2019 16:18:08 +0000 (18:18 +0200)]
ui: window settings: use column layout
This change shouldn't be noticeable, main advantage is that we can
add a top or botton spanning row for hints or a save/restore feature
(in the future)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
radio groups set and get Value helper are objects, as they are
expected to be key, value, where key is a field-name of the radio
group and values is the inputValue from the radiobutton to be set.
So ensure we extract only the value in the change event handler, as
we do not want to save the whole object. But on restoring (setValue)
we need to wrap it as object again, else radiogroup won't know what
field we want to set..
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Mira Limbeck [Mon, 7 Oct 2019 10:07:47 +0000 (12:07 +0200)]
fix #2364: allow offline migration with local cloudinit disk
As the cloudinit disk itself does not get copied on an offline
migration, just the config, there's no conflict. Ignore the local
cloudinit disk on offline migration. Also adds a useful message when
trying to live migrate with a local cloudinit disk.
Signed-off-by: Mira Limbeck <m.limbeck@proxmox.com>
Christian Ebner [Tue, 15 Oct 2019 11:00:22 +0000 (13:00 +0200)]
vzdump: move code needed for cfs register of vzdump.cron to guest-common
This moves the cfs register code for vzdump.cron to the
pve-guest-common package. Therefore, it relies on the corresponding
patches in pve-guest-common and pve-docs as build dependencies.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
api: subscription: use rpcenv for permission check
commit 2d2ed7ab5305eb4b5875e7d0888011edc4ad32f7 had a valid cause but
unnecessarily used the static PVE::AccessControl::check_permissions.
As the RPCEnvironment based check method has a "$noerr" parameter and
we already have a rpcenv instance readily available, we can use that
one just fine.
this is the last caller of PVE::AccessControl::check_permissions(),
which is the last caller of PVE::AccessControl::permission(). both can
thus be dropped altogether.
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 10 Oct 2019 09:53:36 +0000 (11:53 +0200)]
ui: vm opts: clarify QGA option
To make it more clear that PVE does not somehow magically injects a
QHA into the VM, but that this can be set if one has installed the
QGA in the VM themself.
So slightly adapt the label by prepending "Use" and adding a hint for
further details.
Also ensure we call it the real name everywhere, i.e., "QEMU Guest
Agent", this makes it a bit more consistent and easier to find
information for users.
Suggested-by: Aaron Lauterer <t.lamprecht@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Stoiko Ivanov [Mon, 7 Oct 2019 19:37:34 +0000 (21:37 +0200)]
change .pve-hint to .pmx-hint css-class
With introducing pmx-hint to pmg as well, by adding a 'pmx-hint' css-class
to proxmox-widget-toolkit, it makes sense to use the definition everywhere.
this patch drops the .pve-hint class from pve's css and replaces all occurences
in the GUI-source.
simply return a empty object for cases we would get an exception
anyway, this is not wrong and allows easier usage for cases where
it's not sure if the value is set or not.
We could still do a Ext.isDebugEnabled() check and then throw up, but
this really should not matter much and I do not like if my debug mode
breaks and the non-debug not..
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Mira Limbeck [Fri, 4 Oct 2019 09:29:58 +0000 (11:29 +0200)]
fix #2389: ceph wizard showing network of target node
Before this patch the wizard shows the available networks for the node
one is connected to, not the actual target node where ceph is
configured. This patch changes this to access the network information of
the target node instead of the local one.
It could be that not every node in the cluster is part of the ceph
cluster (and the same network) which makes this useful.
Signed-off-by: Mira Limbeck <m.limbeck@proxmox.com>
ui: labelWidth gets `px` suffixed so `auto` won't work
This is a common mistake with widths in ExtJS, most of them have the
'px' unit implicit, so using things like 'auto' or '100%' does not
works with them.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Dominic Jäger [Thu, 3 Oct 2019 09:58:38 +0000 (11:58 +0200)]
Harmonize reset buttons in "My Settings"
- Rename both buttons to a single word as it is clear where they belong
to. Use "Reset" instead of "Clear" as you can rather "Reset a saved
user name" than "Clear a layout".
- Use container instead of panels as they are simpler (e.g. no "border:
false" necessary) and sufficient.
- Align the buttons at the right for visual appeal.
- Use title case for the user name label for consistency.
Stefan Reiter [Tue, 10 Sep 2019 17:11:44 +0000 (19:11 +0200)]
Make CPU Model Selector a searchable grid view
Uses a ComboGrid with search feature and a column for vendor. Can be
sorted by both columns.
Default sort is as given in this file, I tried to align it as
* AMD
* Intel
* Other
alphabetically and in QEMU order (as before, seems to be release date?)
within those "groups".
Doesn't work with value set in widget definition (would need to be
preferredValue), but we always call setValue() anyway (and if we don't,
value will be '', aka the default, which is correct too), so just remove
that from ProcessorEdit.js.
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
mobile: implement login with OTP based TFA enabled
roughly copied over from the full-fledged manager UI, but enough
differences between manager <-> mobile and ExtJS <-> Sencha Touch to
just adapt it here instead of having a force-shared implementation
with lots of corner case checks and even more callback methods..
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Thomas Lamprecht [Thu, 26 Sep 2019 16:00:54 +0000 (18:00 +0200)]
ui: usbselector: refactor USB Speed rendering, add USB 3.1
Fixes also an issue where unregonized (often faster) devices would
get recognized as "USB 1.x" due to the else fallback.
Now, if we do not recognize the speed value, just print the speed
with the MBps unit (it's not exactly megabit per second, but mega
baud (= symbols) per second - the effective rate is dependent on the
used signal encoding)
adapt widths a bit further
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Enable USB3 by default. There are no restrictions anymore that the speed
of the dev must match the USB3 speed. The xhci controller can deal with
USB 2 and 1 devices. USB3 devices can be plugged in a USB2 (ehci)
controller. As discussed in [0]
When using a USB device for SPICE passthrough my tests showed that USB2
devices connecting to the xhci controller work but a USB3 device passed
via Spice cannot connect to an ehci controller (no USB3 enabled).
qemu-server 6.0-9 supports USB3 also for Spice USB passthrough. See
commit 733234b [1].
All this means we can get rid of the separate handling of USB3 and non
USB3 devices and leave the decision to the user if USB3 should be
enabled or not.
Thomas Lamprecht [Mon, 23 Sep 2019 15:06:21 +0000 (17:06 +0200)]
ui: vm/usbedit: don't use getUSBValue to avoid possible duplicate "usb3"
As getUSBValue() always added the "usb3" property if the selected
device was recognized as USB3. But we can now also pass such a device
as USB2 so lift this restriction - which also fixes a bug for USB3
selected devices with the USB3 checkbox set.
The solution also avoids the me.down query, which is nice too.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Add a setting to choose the scale mode of the noVNC pop-up as well as
the embedded console in the content panel to "My Settings". Having both
set to local scaling was the most important use-case for the users. One
setting for both places is the simplest solution making this possible.
The new section (fieldset) makes adding further options such as
"Local Cursor" easy.
Co-developed-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Signed-off-by: Dominic Jäger <d.jaeger@proxmox.com>
Thomas Lamprecht [Fri, 30 Aug 2019 16:55:51 +0000 (18:55 +0200)]
ui: IPRef field: allow all valid IPs, even if not in the store
since commit 1ccb53ecdbd69a0e4c57a6d861da1918d3625e08 from widget
toolkit[0] we enforce by default that an entered value needs to be in
the backing data store, else the field is marked invalid.
But, for the firewall source/destination IP selector we do not care
if it's in the store, which is only loaded for convenience and to
allow selecting defined aliases/ipsets
Dominik Csapak [Thu, 22 Aug 2019 10:26:09 +0000 (12:26 +0200)]
fix #2340: gui: ceph: handle 'null' versions for hosts
the api returns 'null' for a host that is in the crushmap, but
without actual version information, so just check for falsyness instead
of 'undefined', else we run later into javascript exceptions and no
content on the osd page
Stefan Reiter [Wed, 14 Aug 2019 13:36:27 +0000 (15:36 +0200)]
Delete "exclude" when switching a backup job to pool mode
If you updated a job in "exclude" mode with some VMIDs specified to "pool" mode,
the backup job would retain the "exclude" section and thus not back up all VMs.
The GUI misrepresents this, showing that all VMs will be backed up or
straight up break and show "exclude" mode again, with the backend still
being on "pool" - to prevent this, we always delete a jobs "exclude" list
when it's switched to "pool".
Co-authored-by: Tim Marx <t.marx@proxmox.com> Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>