Dietmar Maurer
6b303323be
ui: use shorter datetime format for encryption key creation time
2021-03-04 17:57:40 +01:00
Dietmar Maurer
1576c7a0d9
ui: do not show MediaSet Uuid in backup content grid
2021-03-04 17:09:57 +01:00
Dominik Csapak
bec357e2cb
ui: tape: add missing monStoreErrors calls for the grids
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-03 16:09:39 +01:00
Dominik Csapak
b83e136fb6
ui: tape/DriveStatus: fix handler name for eject
...
We call 'ejectMedia' not 'eject', so rename the function.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-03 16:09:39 +01:00
Dietmar Maurer
ac4a1fb35c
ui: render medium-wearout as percentage
2021-03-02 13:08:01 +01:00
Dominik Csapak
6f3714b9aa
ui: tape/DriveStatus: use the drive state to determine a status-load
...
since the status api call blocks the drive, it only makes sense to do
when the drive is idle.
so do not reload on activate, but when the drive changes the first
time from busy to idle
also disable the reload button when the drive is busy
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-02 12:52:39 +01:00
Dominik Csapak
d810014eeb
ui: tape/DriveStatus: add state to Info panel
...
and optimize the updateData function a bit
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-02 12:52:26 +01:00
Dominik Csapak
e0f6892625
ui: tape/DriveStatus: add more status lines
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-02 12:51:50 +01:00
Dominik Csapak
9d5b426a6d
ui: tape: refactor renderDriveState to Utils
...
we will use this later again
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-02 12:51:38 +01:00
Dietmar Maurer
2970cd3d6d
ui: use TaskProgress for clean drive
2021-03-02 12:16:30 +01:00
Dietmar Maurer
d41114c5a8
ui: fix changer panel reload after clean
2021-03-02 12:09:00 +01:00
Dietmar Maurer
6c92449702
ui: improve media pool config grid - add comment field
2021-03-02 11:43:25 +01:00
Dietmar Maurer
3c715edd07
ui: correctly enable/disable changer drive buttons
2021-03-02 09:54:33 +01:00
Dietmar Maurer
bbe05d7fe9
ui: add 'Clean' button to changer drive (remove clean action)
2021-03-02 08:59:00 +01:00
Dietmar Maurer
2af8b8ef91
ui: add 'Catalog' button to changer drive
2021-03-02 08:53:18 +01:00
Dietmar Maurer
d4bfdfe749
ui: add 'Label Media' button to changer drive
2021-03-02 08:44:29 +01:00
Dominik Csapak
e8bf4f31f2
ui: tape: fix eslint warnings
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-01 14:18:44 +01:00
Dominik Csapak
6682461d88
ui: tape/DriveConfig: remove label/catalog/eject buttons
...
they live now in the drive status panel
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-01 14:18:23 +01:00
Dominik Csapak
41f1132e0e
ui: tape/DriveStatus: add label/eject/catalog buttons
...
and enable them only if the status says that a tape is inserted.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-01 14:18:10 +01:00
Dominik Csapak
d938c9337a
ui: tape/BackupOverview: add sublevel for groups
...
For tapes with many snapshots/group, a simple list of them is too
big. Instead, add a level for just the groups, this makes searching
for a specific backup much easier.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-01 14:17:53 +01:00
Dominik Csapak
9896a75caf
ui: tape/ChangerStatus: handle vanishing view during reload
...
since reload is an async function, the view can be destroyed during
any 'await' point. Subsequent accesses to the view will fail, and we
will land in the catch. Check there if the view is destroyed, and
do not raise an error with the user then
also cancel any outstanding timer on 'deactivate' and 'destroy'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-01 14:01:31 +01:00
Dominik Csapak
7eefd0c3d7
ui: tape: ChangerStatus: remove changerselector combobox
...
because we now select it directly in the left-hand tree
so we have to adapt the changer to the one set by the router
and not by the drop down field
and remove it from the TapeManagement tabpanel
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-01 12:36:09 +01:00
Dominik Csapak
7b60850334
ui: tape: add DriveStatus panel
...
not used yet
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-03-01 12:33:53 +01:00
Dietmar Maurer
1552d9699c
tape: add 'Restore Key' button
2021-03-01 11:11:38 +01:00
Dietmar Maurer
31cba7098d
ui: rename 'Changer Slot' to 'Drive Number'
2021-02-27 09:51:13 +01:00
Dietmar Maurer
f4571b0b50
ui: use grouping feature for drive configuration grid
2021-02-27 09:37:47 +01:00
Dietmar Maurer
464c409aa3
ui: tape inventory - allow to set/clear media status
2021-02-26 11:06:11 +01:00
Dietmar Maurer
ed24142767
ui: TapeInventory - show catalog status
...
Clearly mark tapes without valid catalog.
2021-02-26 07:48:13 +01:00
Dietmar Maurer
05228f17f5
ui: use button for tape Catalog (instead of action)
2021-02-25 13:04:50 +01:00
Dietmar Maurer
e8653b96be
ui: add tape drive Eject button
2021-02-25 12:52:04 +01:00
Dietmar Maurer
1cf191c597
ui: fix sumbit url in LabelMedia.js
2021-02-25 12:25:32 +01:00
Dietmar Maurer
3d3e31b7f8
ui: factor out common code
2021-02-25 11:52:42 +01:00
Dietmar Maurer
8730cfcc3e
ui: use butten for 'Label Media' (instead of action icon)
2021-02-25 11:00:24 +01:00
Dietmar Maurer
21e3ed3449
tape: add 'latest-only' property to backup job config
2021-02-24 11:19:12 +01:00
Dietmar Maurer
81678129fb
ui: improve tape job edit (add eject-media and export-media-set)
...
And do not auto-generate job id.
2021-02-24 08:42:58 +01:00
Dominik Csapak
ff2bc2d21f
ui: tape/BackupJobs: add CRUD functions
...
similar to the other jobs grids (add/edit/remove etc.)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-23 13:18:10 +01:00
Dietmar Maurer
41685061f7
tape: volume-statistics - use format_size to display byte counts
2021-02-23 11:38:41 +01:00
Dietmar Maurer
35a7ab5778
ui: use grid to display tape drivbe status
2021-02-23 11:29:43 +01:00
Dietmar Maurer
e1beaae4a2
ui: fix tape volume statistics
2021-02-23 11:20:27 +01:00
Dietmar Maurer
965bd58693
ui: use grid to display tape label information
2021-02-23 11:13:48 +01:00
Dominik Csapak
60473d234a
ui: tape/ChangerStatus: do not show progress on drive clean
...
since we have the state in the grid
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-23 09:16:10 +01:00
Dominik Csapak
4f688e09a4
ui: tape/ChangerStatus: do not show progressbar for (un)load
...
since we already show the state of the drive in the grid, this is
not necessary
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-23 09:10:21 +01:00
Dominik Csapak
24e84128e4
ui: tape/ChangerStatus: add missing model fields
...
the DiffStore only updates the fiels given in the model, so we have to
list all the fields we depend on, else we have incomplete data,
e.g. for rendering
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-23 09:09:41 +01:00
Dominik Csapak
e63457b6b2
ui: tape/ChangerStatus: disable drive buttons when it's blocked
...
if the drive state is not empty, some action blocks it, so we cannot
do any task anyway. Since we now refresh the state every 5 seconds,
we can disable/enable them 'live'.
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-23 08:37:16 +01:00
Dominik Csapak
a83cedc2ac
ui: tape/ChangerStatus: convert grid stores to DiffStores
...
to not deselect items when the store is updated
this makes the ui a bit better to use
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-23 08:36:51 +01:00
Dominik Csapak
076afa6197
ui: tape/ChangerStatus: reload changer status (cached) every 5000ms
...
so that we can have an updated drive status without having to
press 'reload'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-23 08:35:42 +01:00
Dominik Csapak
423e3cbd18
ui: tape/ChangerStatus: only show loading on 'force refresh'
...
so that we can update in the background without interfering with the
users workflow
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-23 08:34:54 +01:00
Dietmar Maurer
cbd9899389
tape: update changer status cache after load/unload
2021-02-20 09:06:17 +01:00
Dominik Csapak
f26276bc4e
ui: tape/ChangerStatus: fixup for conditional
...
the statement !a === "somestring" cannot be true since
!a is either true or false and thus not a string
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-19 16:52:26 +01:00
Dominik Csapak
6d62e69f9a
ui: tape: fix eslint warnings (trailing comma)
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-19 16:52:12 +01:00
Dominik Csapak
0d890ec414
ui: tape/ChangerStatus: show the state of the drive
...
an optimize the columns for smaller layouts (1280 width)
we show either:
* Idle
* spinner + status (if no upid)
* spinner + rendered UPID (clickable, opens task viewer)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-19 10:21:40 +01:00
Dietmar Maurer
9e860ac01a
ui: tape/BackupJobs.js - render task scheduling status
2021-02-19 09:08:00 +01:00
Dietmar Maurer
7aa4851b77
ui: start tape backup job GUI
2021-02-18 12:48:54 +01:00
Dietmar Maurer
6ef8e2902f
ui: tape/ChangerStatus.js - avoid update status in list_media
...
We do not use the media location, so there is no need to update
the online status in the list_media call. Besides, we already update
the online status when we query the changer/status.
2021-02-18 12:06:49 +01:00
Dietmar Maurer
aa16b7b284
ui: tape/ChangerStatus.js - only update status for selected changer
...
To reduce load/wait time.
2021-02-18 11:08:13 +01:00
Dietmar Maurer
65535670f9
ui: tape/TapeInventory.js - avoid update changer status
...
We do not update changer status by default - only when pressing "Reload" button.
2021-02-18 10:10:51 +01:00
Dominik Csapak
9d42fe4d3b
ui: tape/TapeInventory: set defaultValue for pool to ''
...
otherwise the grouping feature of the grid gets confused as it encounters
undefined values
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-18 09:35:05 +01:00
Dominik Csapak
918a367258
ui: tape/ChangerStatus: adapt load/unload to WorkerTask
...
those are now workertasks (behind a 'POST' request), so show the
progress with the upid
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-18 09:34:53 +01:00
Dominik Csapak
970a70b41e
ui: tape/ChangerStatus: rename 'slot' column to 'id'
...
slot is already in the title of the grid, and hide it by default for
drives (the user does not need it there)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-18 09:34:40 +01:00
Dominik Csapak
4094fe5a31
ui: tape/ChangerStatus: add Inventory column to drives/import-export
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-18 09:34:04 +01:00
Dietmar Maurer
bbe06f97be
ui: tape/TapeInventory.js - use grid grouping feature - group by pool
2021-02-18 07:30:37 +01:00
Dominik Csapak
dfde34e612
ui: tape/BackupOverview: insert the tapes between media-set and snapshot
...
but auto-expand them, so no additional click is necessary
this shows the user which tapes are involved for the media sets
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-17 06:55:53 +01:00
Dominik Csapak
85205bc253
ui: tape: improve tape-erase and add it to library view
...
refactor erase window, limit drives to changer if given
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-17 06:55:53 +01:00
Dominik Csapak
002865405c
ui: tape/BackupOverview: show mediaset loading error in msg box instead
...
if a catalog is missing (or the loading otherwise throws an error), show
the error message in a msg box instead of a mask. this way a user can
still navigate the tree
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-17 06:55:53 +01:00
Dominik Csapak
8a73ef897a
ui: tape/TapeInventory: add erase button
...
to erase the selected tape
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-17 06:55:53 +01:00
Dominik Csapak
2048073355
ui: tape/TapeManagement: change Text of Backup/Tape Inventory
...
to 'Content' and 'Inventory' respectively
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-16 08:34:18 +01:00
Dominik Csapak
a585e1f696
ui: tape/TapeInventory: add 'Add Tape' button
...
by adapting and reusing the 'LabelMedia' window
shows a short notice about inserting the correct tape in the drive
and now allows to select a drive
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-16 08:33:59 +01:00
Dominik Csapak
415737b2b8
ui: tape/TapeInventory: change to regular store
...
listing the media can potentially hang (changer status), so do not
reload in the background, only on activate
also increase the timeout to 5 minutes and add a reload button
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-16 08:33:23 +01:00
Dominik Csapak
54f7007cc5
ui: tape/ChangerStatus: use whole drives grid for masking on unload
...
instead of just the tableview
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-15 12:22:22 +01:00
Dominik Csapak
b0338178d7
ui: tape/ChangerStatus: increase timeout for api calls
...
since tape commands can take a while and we do not want to change
all of those to worker tasks, increase the timeout to 5 minutes
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-15 12:22:06 +01:00
Dietmar Maurer
159100b944
tape: ui - avoid changer status query in backup content panel
2021-02-15 12:17:36 +01:00
Dominik Csapak
32b88d928a
ui: tape/BackupOverview: skip tapes without media-set
...
there is no data on them (yet), even if they belong to a pool
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-12 08:53:16 +01:00
Dominik Csapak
f8e1932337
ui: tape/TapeInventory: add 'Set Tape Location' button
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-11 14:24:10 +01:00
Dominik Csapak
bc02c2789c
ui: tape/ChangerStatus: show more inventory info for tapes in slots
...
do not only show if labeled, but the whole status (full/writeable/etc.)
and to which pool the tape belongs (if any)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-10 06:21:49 +01:00
Dominik Csapak
c0b3d09236
ui: tape/TapeInventory: show expired status
...
this is saved in a separate property, but show in status like
'proxmox-tape media list'
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-10 06:21:39 +01:00
Dominik Csapak
3ddbab6193
ui: tape/BackupOverview: do not iterate over empty tapes
...
tapes not belonging to a pool cannot contain data, so skip them
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-10 06:21:20 +01:00
Dominik Csapak
41c0333814
ui: tape/window/LabelMedia: change to POST
...
this changed in the backend
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-09 08:46:14 +01:00
Dominik Csapak
69ebbec40b
ui: tape/BackupOverview: rework BackupOverview (again)
...
instead of showing the snapshots directly under the pool and then the
media-sets, list the media-sets under the pool and only after the
snapshots
this has several advantages:
* we only have to read one set of tape catalog data on expand and not all of
them everytime (which does not scale)
* we can show media-sets without snapshots, this can happen when we
inventoried a set of tapes from another pbs instance, or lost the
catalog data somehow
the disadvantage is that one has to go look for the media set where the
snapshot is included, but we can solve this by implementing a search
function in the future (in the backend)
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-09 08:42:08 +01:00
Dominik Csapak
4c9174ce26
ui: tape/DriveConfig: add missing tooltips
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-05 16:13:04 +01:00
Dominik Csapak
1d70e3812c
ui: tape/DriveConfig: add Catalog button
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-05 16:12:49 +01:00
Dominik Csapak
e2225aa882
ui: tape/ChangerStatus: add inventory button
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-05 16:12:18 +01:00
Dominik Csapak
99dd709f3e
ui: tape/ChangerStatus: remove unnecessary buttons
...
they exist in the changer config pane, and are unnecessary here
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-05 16:12:18 +01:00
Dominik Csapak
42eef1451c
ui: tape/ChangerStatus: add 'is labeled' column for tapes
...
so that a user can see if a tape in a library is not yet labeled
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-04 17:36:29 +01:00
Dominik Csapak
11ecf058e4
ui: tape/PoolConfig: add flex to columns
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-04 17:36:18 +01:00
Dominik Csapak
5f1f7ef564
ui: tape/PoolEdit: add selector for encryption keys
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-04 17:36:06 +01:00
Dominik Csapak
2e4e698633
ui: tape: add EncryptionPanel to add/remove encryption keys
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-04 17:35:46 +01:00
Dominik Csapak
7101ed6e27
ui: tape: add TapeInventory panel
...
since we do not show the tapes anymore in the BackupOverview, add
another panel where we can list the available tapes in the inventory
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-02 14:47:35 +01:00
Dominik Csapak
85ac35aa9a
ui: tape: add Restore Window
...
in the BackupOverview, when a media-set is selected
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-02 14:47:21 +01:00
Dominik Csapak
40590561fe
ui: tape: TapeBackupWindow: add missing DriveSelector
...
and make it a bit wider
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-02 14:47:05 +01:00
Dominik Csapak
631e550920
ui: tape: rework BackupOverview
...
instead of grouping by tape (which is rarely interesting),
group by pool -> group -> id -> mediaset
this way a user looking for a backup of specific vm can do just that
we may want to have an additional view here were we list all snapshots
included in the selected media-set ?
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-02-02 14:46:43 +01:00
Dietmar Maurer
86740dfc89
tape: ui - remove drive from pool config
2021-02-01 10:01:06 +01:00
Dietmar Maurer
b8d526f18d
ui: tape/ChangerStatus - use POST for barcode-label-media
2021-01-29 17:06:53 +01:00
Dominik Csapak
d2edc68ead
ui: tape/ChangerStatus: add missing tooltips
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-01-29 16:54:37 +01:00
Dominik Csapak
4d651378e2
ui: tape: change wrong window title
...
this is the 'status' msgbox not the label information
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-01-29 16:54:19 +01:00
Dominik Csapak
58791864d7
ui: tape/ChangerStatus: add import action for import/export slots
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-01-29 16:54:03 +01:00
Dominik Csapak
1a41e9af4f
ui: tape: add Changer config grid
...
analogous to the drive grid
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-01-29 16:53:33 +01:00
Dietmar Maurer
1a0eb86344
tape: gui: s/encryption/encrypt/ in media pool config panel
2021-01-28 15:50:01 +01:00
Dominik Csapak
8306b8b1a5
ui: tape: use panels in tape interface
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-01-28 15:08:56 +01:00
Dominik Csapak
605cfd4ab1
ui: tape: move TapeManagement.js to tape dir
...
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-01-28 15:08:31 +01:00
Dominik Csapak
dec3147501
ui: tape: add PoolConfig
...
CRUD interface to manage media pools
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
2021-01-28 15:08:21 +01:00