Commit Graph

276 Commits

Author SHA1 Message Date
Dominik Csapak
25a1063ac7 gui: let users add PCI devices
this enables the gui part to enable the user to add a pci device
via the gui

we disable the button after 4 devices, since that is the maximum
in the backend

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-11-22 13:31:39 +01:00
Dominik Csapak
c59fb4eef5 gui: add qemu/PCIEdit
this patch adds the PCIEdit window and InputPanel uses PCISelector
and MDevSelector

when we detect an iommugroup of -1, we put a warning on top to inform
the user that IOMMU is not activated (but let him add the devices
regardless, so that he can use it after IOMMU is activated)

also puts a warning if he selects a device that shares an iommugroup
with a different device (but not the same device with different
function). that detection is not perfect, but we cannot do really
better

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-11-22 13:31:31 +01:00
Thomas Lamprecht
3097170dad ui: qemu/HW: menu setDisable mustn't ignore caps
We passed a 'disable' config to those menu items on creation, but
promptly ignored that after the first set_button_status call, which
only checked if it's possible to add another device, but not if our
capabilities heuristic is OK.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-11-22 08:40:15 +01:00
Nick Chevsky
75357e9f0d Enable "Discard" option for IDE and SATA drives
Even though QEMU supports the discard feature for both ATA [1] and
SCSI drives, the "Discard" checkbox in Proxmox VE is artificially
restricted to SCSI drives. This change expands availability of the
"Discard" checkbox to all drive types supported by QEMU, leaving
VirtIO Block as the only remaining exclusion.

Combined with the new "SSD emulation" option [2], enabling discard
on IDE/SATA drives allows reclaiming of free space on thin-provisioned
storage with guests that do not support our SCSI controllers.

[1] d353fb72f5
[2] https://git.proxmox.com/?p=pve-manager.git;a=commit;h=f9261fde2134cec35a5ec7c3ebbee5daa4d67ec7

Signed-off-by: Nick Chevsky <nchevsky@gmail.com>
Tested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-11-14 09:21:12 +01:00
David Limbeck
793f2cf4e0 fix #1959: remove invalid SLAAC option
nocloud configuration does not support SLAAC option, only static or dhcp
so this option shouldn't be available

Signed-off-by: David Limbeck <d.limbeck@proxmox.com>
2018-11-13 10:12:06 +01:00
David Limbeck
afa1997599 fix #1969: increase max unused disks
Signed-off-by: David Limbeck <d.limbeck@proxmox.com>
2018-11-09 16:51:56 +01:00
Dominik Csapak
4f3e66d89b gui: let users edit the vga memory
and show the default for each type of virtual gpu

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-11-09 14:02:35 +01:00
David Limbeck
cbe0b4b834 fix sorting for unused disks in HardwareView.js
sort everything based on group and order for those with multiple numbered
entries

Signed-off-by: David Limbeck <d.limbeck@proxmox.com>
2018-11-09 14:02:26 +01:00
Nick Chevsky
f9261fde21 Add "SSD emulation" property to IDE, SATA, and SCSI drives
When enabled, the "SSD emulation" feature exposes drives as
solid-state (rather than rotational) by enabling the new `ssd`
qm.conf flag [1] on the drives, which in turn sets QEMU's
`rotation_rate` property [2, 3] on the underlying devices.

This change also moves the "Discard" option out of the advanced
section and promotes it to the top of the dialog box, as proposed
by Thomas Lamprecht [4].

[1] https://git.proxmox.com/?p=qemu-server.git;a=commit;h=6c875f9f315f2dc7a0a3a988622c2efdf089b171
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1498042
[3] https://lists.gnu.org/archive/html/qemu-devel/2017-10/msg00698.html
[4] https://pve.proxmox.com/pipermail/pve-devel/2018-November/034327.html

Signed-off-by: Nick Chevsky <nchevsky@gmail.com>
2018-11-09 09:33:26 +01:00
Tim Marx
3b2e557ff9 close #584: ui qemu: changed remove unused disk to asynchron call
Signed-off-by: Tim Marx <t.marx@proxmox.com>
2018-10-18 13:26:15 +02:00
David Limbeck
cdf5bec2c9 fix #1884: vm/hardware: ensure correct value on pending changes
e.g., pending deletion of cdrom/dvd drive showed as hard disk in
hardware tab

Signed-off-by: David Limbeck <d.limbeck@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-08-24 11:24:38 +02:00
David Limbeck
eb273d60e5 fix #1872 Move button stays on the screen after closing 2018-08-20 14:42:27 +02:00
Stoiko Ivanov
1662ccdbfd ui/qemu: Extend Qemu Guest agent
Change to agent now being a property_string, and including  fstrim_cloned_disks.

Co-Authored-By: Thomas Lamprecht <t.lamprecht@proxmox.com>
Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2018-08-02 16:20:12 +02:00
Thomas Lamprecht
d8e2ae9956 ui: add auostart after create checkbox
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-06-12 09:45:05 +02:00
René Jochum
fdce7d56ce Remove swap/memory limit in the Manager, fixes #1799 2018-06-07 13:44:21 +02:00
Dominik Csapak
abbf0eb74f let NotesView load itself
instead of needing to load from the outside, let NotesView handle the
loading itself

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-05-25 11:04:08 +02:00
Dominik Csapak
2283cff333 correctly update qemu ip information
we updated the status from the status store too often, so that
if the guest agent was not running, the message would
change between 'no information' and 'not running'

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-05-25 10:44:05 +02:00
Dominik Csapak
203829c718 only show 'more' buttons for ips when there are actually ips to show
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-05-25 10:43:59 +02:00
Dominik Csapak
5fa6f3205a check for VM.Montior privileges on qemu AgentIPView
so that the user does not get the useless 'no information' or
'not running' message, but the real cause

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-05-25 10:43:47 +02:00
Thomas Lamprecht
d49d0443b8 ui: use cbind to make usb input panel static
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-05-18 15:39:54 +02:00
Thomas Lamprecht
37977fa500 ui: vm: allow to add socket backed serial devices
We show and can remove serial devices but couldn't add new ones
through the WebUI.
Add a simple component to allow adding serial ports backed by a
socket, which can be especially useful now with xterm.js

Passing through serial devices from /dev isn't possible with this, as
it is normally a root only operation and not that often used.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-05-17 09:25:34 +02:00
Dominik Csapak
16dedd0f6a add missing onlineHelp links
for:
* dc/Cluster
* node/Certificates
* qemu/CloudInit

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-05-14 12:01:39 +02:00
Dominik Csapak
d47512afe6 make HDMove.js also usable for lxc
this makes it possible to reuse the window for container move_volume

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-05-07 14:55:49 +02:00
Dominik Csapak
811a06ca65 close HDMove on taskDone
this triggers the 'destroy' event of the window at the correct time

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-05-07 14:55:49 +02:00
Dominik Csapak
1d90225274 use correct multiKey and getObjectValue calls for memory line
also show shares and if ballooning is off

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-23 12:12:47 +02:00
Dominik Csapak
3438c27eab allow xtermjs to be the default console
if not available for a vm, we fallback to novnc like with spice

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-23 09:42:55 +02:00
Wolfgang Link
7cb345b816 fix #1691: use asynchronous API call for HD create
It should use an asynchronous API call to create an image,
because some storages may need longer to alloc an image.

If a storage needs more than 30 sec
the proxy will timeout and we have an orphan image.

Also, it is possible to increase the timeout for some
storages if an asynchronous call is used
2018-04-20 11:03:47 +02:00
Dominik Csapak
b08ae04435 overwrite the built-in 'run_editor' function
this is needed for the 'enter' handler

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 14:03:59 +02:00
Dominik Csapak
29e19e9583 qemu/CreateWizard: add advanced options on general tab
add start on boot, guest agent and boot order fields

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
57f034f6ff qemu/NetworkEdit: rework panel for advanced options
move some fields into advanced options, and remove nat mode

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
869f805312 qemu/MemoryEdit: rework panel and move most things in advanced options
this is a major rework of the memory inputpanel
previously we had to select fixed/variable and
could set shares/ballooning, depending on what was selected

now the panel is much simpler:

non advanced:

memory: the target maximum memory

advanced:

min-memory: the minimum memory, if different from the memory field
we have 'dynamic' memory

shares, only if we have 'dynamic' memory

ballooning-device: better naming, deactivates the ballooning device

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
c2233c8fc2 qemu/HDEdit: move diskthrottling to advanced options
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
ab1ee35244 fix editor and set_button_status for cloudinit
cloudinit images do not have an editor so return here
and value has to be a string to match
also set the remove button text correctly when selecting a cloudinit disk

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
457d5a9413 remove CPUOptions
this is now merged with ProcessorEdit

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
5034f33904 rework ProcessorEdit and merge with CPUOptions using advanced options
make ProcessorEdit static and merge with CPUOptions
moves some fields in the advanced options

this also changes how we add the flag checkboxes,
which is static now, but if we want to add more, we have to
create a better way than add a checkbox for each flag anyway

also increases the cpulimit to 128 (as per api)
and fixes a small whitespace error

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
546d09c24e qemu/HDEdit.js: move some fields into advanced options
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-04-06 11:45:14 +02:00
Dominik Csapak
58b35f745b move TemplateMenu to menu directory
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-21 15:54:32 +01:00
Dominik Csapak
0718aefcc7 make clone window guest agnostic
so that we can reuse it for containers

while we do this, we also have to adapt the SnapshotSelector

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-21 15:54:32 +01:00
Dominik Csapak
f1e2b5ddc4 move Clone to window directory
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-21 15:54:32 +01:00
Dominik Csapak
2ed6dceb9e cloudinit: implement missing remove logic
this was missing from my original series
also enable deletion of the password field via remove button

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-16 13:28:59 +01:00
Dominik Csapak
4c5071922f add CloudInit Config Panel and use it
this lets the user edit the cloud init config
like username, sshkey, ipconfig, etc.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-16 10:05:57 +01:00
Dominik Csapak
b38d0810ca add CIDriveEdit
and use it on the HardwareView to add/remove and display the
CloudInit drives

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-16 10:05:57 +01:00
Dominik Csapak
0aa9d113a6 add qemu SSHKey Edit for CloudInit
displays all ssh keys in a big textarea, and lets you load one
from a file

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-16 10:05:57 +01:00
Dominik Csapak
01e02121c7 add qemu IPConfigEdit for CloudInit
resembles the lxc IPConfigEdit, but is slightly different

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-16 10:05:57 +01:00
Dominik Csapak
abe824aa95 add PVE.Utils.forEachBus and use it in qemu/HardwareView
this iterates over all busses or over the ones you specify
( a single or an array )

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-03-16 10:05:57 +01:00
Dominik Csapak
33f459ca5c improve node/lxc/qemu summary pages
let them use a one/two column layout depending on browser width
optimize stylings/padding values
get rid of the (now long) unecessary lazyitems plugin
(this was necessary for performance when we still used tabpanels instead
of our own configpanel with treelist)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-02-23 11:01:28 +01:00
Dominik Csapak
e7f07a2efc show guest-agent provided ip address in qemu summary
this adds a new component 'AgentIPView' which
uses the qemu-agent api call to tries to get the ip information for
the guests

only for vms at the moment, since for containers you already
set it on their network tab

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2018-02-23 11:01:28 +01:00
Thomas Lamprecht
8cdfb23faa qemu/wizard: move to declarative syntax
Use a ViewModel directly, instead of emulating its behaviour with a
ViewController.

The rest consists mostly of indentation changes, moving some
components directly inside their parent declaration.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-02-15 14:48:02 +01:00
Thomas Lamprecht
8a56fe1a87 ui: qemu: make DisplayEdit declarative and drop DisplaySelector
DisplayEdit did not get a cleanup during our ExtJS 4 to ExtJS 6
cleanup, in fact it was really touched in the last 5 years.

So refactor it to a declarative syntax, at least almost, we keep the
me.load in initComponent, just to much hassle to adress this for now.

Also purge DisplaySelector. It was a component inheriting from
KVComboBox with the possible VGA values as items only used here.
So just use a KVComboBox directly and set comboboxItems directly.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-02-09 14:46:14 +01:00
Dominik Csapak
8cd96756d3 fix edit button for some panels
when using the 'run_editor' function provided by the ObjectGrid,
we have to make sure the function runs in the context of the grid,
not in that of the button, else we cannot access the
selectionModel/rows/etc. of the grid

this happened with the switch to the widget toolkit

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Tested-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2018-02-07 10:39:57 +01:00