introduce a new browser setting, with which the users can choose between
the automatic mode of choosing columns, or always using 1/2/3 columns
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
instead of the viewport width. This means that the number of columns can
change when the tree width changes, not only on browser window resize
for this to work reliably, we have to change the structure of the first
two panels, so that they are in one container for non-templates. if
we do not do this, there are some weird glitches on resizing with the
scrollbar
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
as else we'd show "Unknown" if one set the type explicitly to
"virtio", either over API/CLI or editing the configuration directly
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This adds an extra field to the AgentFeatureSelector that reflects the
change in qemu-server.
Changes since previous version:
* Use map rather than if/else if/else for type display string.
* Use Proxmox.Utils.unknownText for unknown type (should not occur with
regular use).
* Keep existing fields as boxLabel rather than fieldLabel, as they
look crammed with fieldLabel.
* Use __default__ for default option, to save space and replicate
behaviour in other places.
* Store option in advancedItems as it is a special case.
Even though the map only contains one item, it will be easily added to
in the future. There is only one item as there is no need to have a
string for "virtio" as it is not displayed because of __default__.
Signed-off-by: Matt Dunwoodie <ncon@noconroy.net>
this helper conditionally sets the given value to the given property
on the given object, optionally a different value
this is useful for our MP/HD Edit panels, where we set the options
of the drive/mp this way for every gui option we have
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
to make it more clear that this is not a single option which can be
disabled or enabled, but that it consists of multiple options
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
as else we change behavior for those who never set the new scaling
variable, or cleared the browser local store.
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>
to have 2 different states for
* packages are outdated
* packages are up to date but the service runs with the old version
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
instead of instantly defaulting to novnc when the chosen
default is not available, try the other (better variant)
before falling back to novnc
e.g. having no default set is equivalent to having it set
to xtermjs, and having a vm with spice then previously
defaulted to novnc, now to spice (the reverse is also true)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
having spice does not mean it can also have xtermjs, and
we get the information in the status call already
so give the correct parameters to openDefaultConsoleWindow
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Make clear thet the 5.x is also supported and reword a bit as
"5.X/4.X/3.X/2.6" is a bit hard to read, so use "5.X - 2.6"
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
as already announced over two months ago[0], remove the unofficial
SheepDog plugin now completely. Besides that it was never fully
supported in Proxmox VE one of its main developer and ex-maintainer
declared it as abandoned[1], and thus just let's remove it, git
allows to resurrect it any time if a wonder happens anyway.
[0]: https://pve.proxmox.com/pipermail/pve-user/2019-March/170497.html
[1]: http://lists.wpkg.org/pipermail/sheepdog/2019-March/068449.html
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
ceph has a bad reputation for chaging such minor things a few times,
even during a stable release, and as here a bit more flexibillity
cost exactly nothing let's do so and accept versions with one to
arbitrary version levels
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
this correctly compares ceph versions by its numeric parts
the way it is written, it can be used as a function for 'sort'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Used for a new Panel in ceph dashboard, shows the ceph services
managed by us (mon,mgr,mds)
some code is copied from 'ceph/StatusDetail.js' and is not necessary there
anymore
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
add some helpers handling this, can be re used for adding the
migration field, maybe we want to move this to widget-toolkits parent
ObjectGrid class, a bit cleaned up.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
to avoid showing numbers as error codes to users, even though the
strings are not much more helpful either...
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
contains the inputpanel for the coming system tab in the vm creation
wizard, where the user can configure the vm system hardware like
the scsi controller, display, etc.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Ext.urlEncode is deprecated, use Ext.Object.toQueryString instead
Signed-off-by: Tim Marx <t.marx@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
when the popup blocker is active, nw is undefined and nw.focus() throws an
error and the touchend event is not finished, causing extjs to retry the
touchevent and click handler, which tries to open a popup which gets blocked
here, and so on
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
we only show that a storage can store snippets, but for now
we do not allow to set or upload them via the gui
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This add a context menu to the entries of the global search field instead of
showing the browsers default one.
This allows to search and easily manage nodes, VMs and CTs similar to the
behaviour in the resource tree.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Allow to add CephFS storage over GUI. Reuse viewcontroller and model from RBD
to detect if we can do a "hyper-converged" addition (with PVE maintained Ceph)
or if only external is possible.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
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>
Combine both dialogues. This reduces storage choices from the
Storage -> Add menu, and thus improves usability.
We make the whole dialog also more intelligent by querying the
monitors, so that we can show them for the hyper converged case
keeping a similar interface for both cases. Further we can use this
to decide if a hyperconverged setup is possible at all.
While this information would also be available through the fact if
the pool selector has entries I wanted to show them anyway and could
make logic a bit easier using it.
allowSpice needs to be a real boolean, because of a
'=== true' check to open a spice console if allowed, so make it one here
this fixes the issue that a doubleclick on a tree item only opened
the novnc console even if spice is the default and the vm is spice
enabled
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds render_optional_url for a field which may contain a link
and render_san which simply displays the different values
in each line
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
add a schema describing our storages name, the map for its
InputPanel, the icon we show in the add menu, and if it is available
at all there.
For now just use it to simplify the ugly if/else mess
format_storage_type was, future patches will use the information to
generalise Adding/Editing of those storages.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
resolves a future jslint type confusion and as it's nor standarized
nor used by our code we can just drop it.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
this is now all in the widget-toolkit and needs to be
set/read to/from there, else we possibly get an inconsistent view on
those
this fixes as issue, where after login the ResourceStore would not update
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>
some function are now in Proxmox.Utils instead, so we have to use that
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
we improve the icons in the tree and the resource grid by
differentiating between cluster online/offline status and no rrd data
when we have no rrd data from a node/storage, instead of showing a
red x (which is scary) even if the node is reachable by corosync (which
confused quite a bit of people, because we show all nodes as online in
the datacenter summary), we show the node/storage with a '?'
this signals that something is wrong with this node, even if we can
reach it via cluster methods
this rewrite of the logic includes a refactoring of the method
of getting the icon, because we want the same icons in the tree and the
grid, and an optimization on how we use the css classes
(introducing a x-grid-custom-icon class)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
simplify HA Information in VM/CT Summary panel.
Use the already translated 'HA State' instead of 'Managed by HA'
(which now becomes obsolete as it was the single appearance).
Simplify PVE.Utils.format_ha respectively to mach the new name,
as here is the only use of this function we have no side effects.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Dominik Csapak <d.csapak@proxmox.com>
move from the key => value format to one where all versions from a
base OS type can be directly used as data for a store.
We will rely on this in the next patch to allow a easy transition to
combobox UI for the OS type selector.
We also avoid having the base type multiple times.
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
this is for adding a pve managed ceph rbd storage, so that the user
just has to select the pool, and does not need to write the monitor
hosts and copy the keyring
the old "RBD" is renamed to "RBD (external)"
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
so we always show one decimal place
(instead of all with seconds and none with minutes, hours, days)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this patch changes the ceph dashboard
now we show the information in a more graphical way, namely:
the overall status is displayed by a big icon (+health)
the warnings/errors are in a list (with severity)
we show more detailed information about monitors, osds, and pgs
we show the usage of the cluster as a gauge graph, and
the reads, writes and iops as running charts (the last 5 minutes)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds a new component health widget, used for cluster and ceph
status
also refactor ceph error levels and ceph status data into PVE.Utils
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
with this patch, vms in an ha error state get an icon (reusing the node
offline icon) to indicate the error
in the resource grid, we also add the icon, and have an additional
column where we can display the ha state
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
when we get a max value of 0
(for example when a storage is not active)
the render function would show:
'NaN% (0B of 0B)'
because of a division by 0
this patch simply returns 'N/A' because
a max value of 0 should never be valid
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This will allow us to add contructed values ( regexp a = stringA + stringB )
into the constructor.
Access to the PVE.Utils properties and methods stays the same.
instead of manually setting the onlineHelpTooltip property
we now have a method which maps links to the docs to
titles
for now this uses a static hashmap, but in the future
we want to generate this by the pve-docs package
also most of the subheaders we can generate instead of
saving them because they simply have each word capitalized
(e.g. '_container_network' => 'Container Network')
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this patch adds a disk list panel which:
lists the disks with typical columns
(type, vendor, serial, smart, wearout, etc.)
and with a doubleclick you can show the smart attributes
and with a click on init disk you can initialize a disk
with a gpt table
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds a component StatusView which is intended to
replace the old statusview panels of qemu/lxc/nodes
(later maybe also pools and storages)
it extends Ext.panel.Panel and expects an rstore and title
it is not intended to be used directly but to be subclassed
it works like this:
on instantiating, it adds a listener to the rstore load,
so that on every rstore load 'updateValues' gets executed
there, if successful, looks for every subcomponent of type
'pveInfoWidget' and calls 'updateField' on it
'updateField' calculates the update text and value for
the info widgets based on the given class variables
using either:
textField -> which gets the value from the store and
displays it simple as text (with renderer and calculator)
or valueField and (optional) maxField
where it determines the usage
(also with a renderer and calculator)
for both there is a default calculator/renderer
but this can be overwritten when instantiating/declaring
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
this adds a vtype which splits the given string into a list by
; or , or space
and checks if it is a valid (hostname|ip) port notation
also make the rbd monhost input field use it
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>