all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry
@ 2021-01-29 13:57 Dominik Csapak
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 2/5] ui: tape: add Changer config grid Dominik Csapak
                   ` (4 more replies)
  0 siblings, 5 replies; 11+ messages in thread
From: Dominik Csapak @ 2021-01-29 13:57 UTC (permalink / raw)
  To: pbs-devel

so that we can show it in the changer config grid

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 src/api2/config/changer.rs   | 1 +
 src/api2/tape/changer.rs     | 1 +
 src/api2/tape/drive.rs       | 1 +
 src/api2/types/tape/drive.rs | 3 +++
 4 files changed, 6 insertions(+)

diff --git a/src/api2/config/changer.rs b/src/api2/config/changer.rs
index 8404d20b..832939e9 100644
--- a/src/api2/config/changer.rs
+++ b/src/api2/config/changer.rs
@@ -146,6 +146,7 @@ pub fn list_changers(
             vendor: None,
             model: None,
             serial: None,
+            export_slots: changer.export_slots,
         });
     }
 
diff --git a/src/api2/tape/changer.rs b/src/api2/tape/changer.rs
index 84030f8e..64d36ae8 100644
--- a/src/api2/tape/changer.rs
+++ b/src/api2/tape/changer.rs
@@ -167,6 +167,7 @@ pub fn list_changers(
             path: changer.path.clone(),
             changer: None,
             changer_drivenum: None,
+            export_slots: changer.export_slots,
             vendor: None,
             model: None,
             serial: None,
diff --git a/src/api2/tape/drive.rs b/src/api2/tape/drive.rs
index 23991367..a49342fa 100644
--- a/src/api2/tape/drive.rs
+++ b/src/api2/tape/drive.rs
@@ -1162,6 +1162,7 @@ pub fn list_drives(
             vendor: None,
             model: None,
             serial: None,
+            export_slots: None,
         };
         if let Some(info) = lookup_drive(&linux_drives, &drive.path) {
             entry.vendor = Some(info.vendor.clone());
diff --git a/src/api2/types/tape/drive.rs b/src/api2/types/tape/drive.rs
index 9d9b0591..a17e5cbb 100644
--- a/src/api2/types/tape/drive.rs
+++ b/src/api2/types/tape/drive.rs
@@ -104,6 +104,9 @@ pub struct DriveListEntry {
     /// Serial number (autodetected)
     #[serde(skip_serializing_if="Option::is_none")]
     pub serial: Option<String>,
+    /// Self defined Import/Export Slots for devices without explicit ones
+    #[serde(skip_serializing_if="Option::is_none")]
+    pub export_slots: Option<String>,
 }
 
 #[api()]
-- 
2.20.1





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 2/5] ui: tape: add Changer config grid
  2021-01-29 13:57 [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dominik Csapak
@ 2021-01-29 13:57 ` Dominik Csapak
  2021-01-29 15:55   ` [pbs-devel] applied: " Dietmar Maurer
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 3/5] ui: tape/ChangerStatus: add import action for import/export slots Dominik Csapak
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Dominik Csapak @ 2021-01-29 13:57 UTC (permalink / raw)
  To: pbs-devel

analogous to the drive grid

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/Makefile               |   1 +
 www/tape/ChangerConfig.js  | 128 +++++++++++++++++++++++++++++++++++++
 www/tape/TapeManagement.js |   7 +-
 3 files changed, 135 insertions(+), 1 deletion(-)
 create mode 100644 www/tape/ChangerConfig.js

diff --git a/www/Makefile b/www/Makefile
index 91899028..7a47ad8d 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -21,6 +21,7 @@ TAPE_UI_FILES=						\
 	tape/window/PoolEdit.js				\
 	tape/window/TapeBackup.js			\
 	tape/BackupOverview.js				\
+	tape/ChangerConfig.js				\
 	tape/ChangerStatus.js				\
 	tape/DriveConfig.js				\
 	tape/PoolConfig.js				\
diff --git a/www/tape/ChangerConfig.js b/www/tape/ChangerConfig.js
new file mode 100644
index 00000000..a4258dfd
--- /dev/null
+++ b/www/tape/ChangerConfig.js
@@ -0,0 +1,128 @@
+Ext.define('pbs-model-changers', {
+    extend: 'Ext.data.Model',
+    fields: ['path', 'model', 'name', 'serial', 'vendor', 'export-slots'],
+    idProperty: 'name',
+});
+
+Ext.define('PBS.TapeManagement.ChangerPanel', {
+    extend: 'Ext.grid.Panel',
+    alias: 'widget.pbsTapeChangerPanel',
+
+    controller: {
+	xclass: 'Ext.app.ViewController',
+
+	onAdd: function() {
+	    let me = this;
+	    Ext.create('PBS.TapeManagement.ChangerEditWindow', {
+		listeners: {
+		    destroy: function() {
+			me.reload();
+		    },
+		},
+	    }).show();
+	},
+
+	onEdit: function() {
+	    let me = this;
+	    let view = me.getView();
+	    let selection = view.getSelection();
+	    if (!selection || selection.length < 1) {
+		return;
+	    }
+	    Ext.create('PBS.TapeManagement.ChangerEditWindow', {
+		changerid: selection[0].data.name,
+		autoLoad: true,
+		listeners: {
+		    destroy: () => me.reload(),
+		},
+	    }).show();
+	},
+
+	reload: function() {
+	    this.getView().getStore().rstore.load();
+	},
+
+	stopStore: function() {
+	    this.getView().getStore().rstore.stopUpdate();
+	},
+
+	startStore: function() {
+	    this.getView().getStore().rstore.startUpdate();
+	},
+    },
+
+    listeners: {
+	beforedestroy: 'stopStore',
+	deactivate: 'stopStore',
+	activate: 'startStore',
+	itemdblclick: 'onEdit',
+    },
+
+    store: {
+	type: 'diff',
+	rstore: {
+	    type: 'update',
+	    storeid: 'proxmox-tape-changers',
+	    model: 'pbs-model-changers',
+	    proxy: {
+		type: 'proxmox',
+		url: "/api2/json/tape/changer",
+	    },
+	},
+	sorters: 'name',
+    },
+
+    tbar: [
+	{
+	    text: gettext('Add'),
+	    xtype: 'proxmoxButton',
+	    handler: 'onAdd',
+	    selModel: false,
+	},
+	'-',
+	{
+	    text: gettext('Edit'),
+	    xtype: 'proxmoxButton',
+	    handler: 'onEdit',
+	    disabled: true,
+	},
+	{
+	    xtype: 'proxmoxStdRemoveButton',
+	    baseurl: '/api2/extjs/config/changer',
+	    callback: 'reload',
+	},
+    ],
+    columns: [
+	{
+	    text: gettext('Name'),
+	    dataIndex: 'name',
+	    flex: 1,
+	},
+	{
+	    text: gettext('Path'),
+	    dataIndex: 'path',
+	    flex: 2,
+	},
+	{
+	    text: gettext('Vendor'),
+	    dataIndex: 'vendor',
+	    flex: 1,
+	},
+	{
+	    text: gettext('Model'),
+	    dataIndex: 'model',
+	    flex: 1,
+	},
+	{
+	    text: gettext('Serial'),
+	    dataIndex: 'serial',
+	    flex: 1,
+	},
+	{
+	    text: gettext('Import/Export Slots'),
+	    dataIndex: 'export-slots',
+	    flex: 1,
+	},
+    ],
+});
+
diff --git a/www/tape/TapeManagement.js b/www/tape/TapeManagement.js
index f61c26d7..8461b0b3 100644
--- a/www/tape/TapeManagement.js
+++ b/www/tape/TapeManagement.js
@@ -16,10 +16,15 @@ Ext.define('PBS.TapeManagement', {
 	    itemId: 'backup',
 	    xtype: 'pbsBackupOverview',
 	},
+	{
+	    title: gettext('Library'),
+	    itemId: 'library',
+	    xtype: 'pbsChangerStatus',
+	},
 	{
 	    title: gettext('Changers'),
 	    itemId: 'changers',
-	    xtype: 'pbsChangerStatus',
+	    xtype: 'pbsTapeChangerPanel',
 	},
 	{
 	    title: gettext('Drives'),
-- 
2.20.1





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 3/5] ui: tape/ChangerStatus: add import action for import/export slots
  2021-01-29 13:57 [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dominik Csapak
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 2/5] ui: tape: add Changer config grid Dominik Csapak
@ 2021-01-29 13:57 ` Dominik Csapak
  2021-01-29 15:55   ` [pbs-devel] applied: " Dietmar Maurer
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 4/5] ui: tape: change wrong window title Dominik Csapak
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 11+ messages in thread
From: Dominik Csapak @ 2021-01-29 13:57 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/tape/ChangerStatus.js | 43 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 42 insertions(+), 1 deletion(-)

diff --git a/www/tape/ChangerStatus.js b/www/tape/ChangerStatus.js
index 75af75ce..59cc74c8 100644
--- a/www/tape/ChangerStatus.js
+++ b/www/tape/ChangerStatus.js
@@ -49,6 +49,39 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
 	    }).show();
 	},
 
+	importTape: function(view, rI, cI, button, el, record) {
+	    let me = this;
+	    let vm = me.getViewModel();
+	    let from = record.data['entry-id'];
+	    let changer = encodeURIComponent(vm.get('changer'));
+	    Ext.create('Proxmox.window.Edit', {
+		title: gettext('Import'),
+		isCreate: true,
+		submitText: gettext('OK'),
+		method: 'POST',
+		url: `/api2/extjs/tape/changer/${changer}/transfer`,
+		items: [
+		    {
+			xtype: 'displayfield',
+			name: 'from',
+			value: from,
+			submitValue: true,
+			fieldLabel: gettext('From Slot'),
+		    },
+		    {
+			xtype: 'proxmoxintegerfield',
+			name: 'to',
+			fieldLabel: gettext('To Slot'),
+		    },
+		],
+		listeners: {
+		    destroy: function() {
+			me.reload();
+		    },
+		},
+	    }).show();
+	},
+
 	slotTransfer: function(view, rI, cI, button, el, record) {
 	    let me = this;
 	    let vm = me.getViewModel();
@@ -618,7 +651,15 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
 				},
 				{
 				    text: gettext('Actions'),
-				    items: [],
+				    xtype: 'actioncolumn',
+				    items: [
+					{
+					    iconCls: 'fa fa-rotate-270 fa-upload',
+					    handler: 'importTape',
+					    tooltip: gettext('Import'),
+					    isDisabled: (v, r, c, i, rec) => !rec.data['label-text'],
+					},
+				    ],
 				    width: 80,
 				},
 			    ],
-- 
2.20.1





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 4/5] ui: tape: change wrong window title
  2021-01-29 13:57 [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dominik Csapak
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 2/5] ui: tape: add Changer config grid Dominik Csapak
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 3/5] ui: tape/ChangerStatus: add import action for import/export slots Dominik Csapak
@ 2021-01-29 13:57 ` Dominik Csapak
  2021-01-29 15:56   ` [pbs-devel] applied: " Dietmar Maurer
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 5/5] ui: tape/ChangerStatus: add missing tooltips Dominik Csapak
  2021-01-29 15:37 ` [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dietmar Maurer
  4 siblings, 1 reply; 11+ messages in thread
From: Dominik Csapak @ 2021-01-29 13:57 UTC (permalink / raw)
  To: pbs-devel

this is the 'status' msgbox not the label information

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/tape/ChangerStatus.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/www/tape/ChangerStatus.js b/www/tape/ChangerStatus.js
index 59cc74c8..ecfdc424 100644
--- a/www/tape/ChangerStatus.js
+++ b/www/tape/ChangerStatus.js
@@ -316,7 +316,7 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
 		let txt = lines.join('<br>');
 
 		Ext.Msg.show({
-		    title: gettext('Label Information'),
+		    title: gettext('Status'),
 		    message: txt,
 		    icon: undefined,
 		});
-- 
2.20.1





^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pbs-devel] [PATCH proxmox-backup 5/5] ui: tape/ChangerStatus: add missing tooltips
  2021-01-29 13:57 [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dominik Csapak
                   ` (2 preceding siblings ...)
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 4/5] ui: tape: change wrong window title Dominik Csapak
@ 2021-01-29 13:57 ` Dominik Csapak
  2021-01-29 15:56   ` [pbs-devel] applied: " Dietmar Maurer
  2021-01-29 15:37 ` [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dietmar Maurer
  4 siblings, 1 reply; 11+ messages in thread
From: Dominik Csapak @ 2021-01-29 13:57 UTC (permalink / raw)
  To: pbs-devel

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
---
 www/tape/ChangerStatus.js | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/www/tape/ChangerStatus.js b/www/tape/ChangerStatus.js
index ecfdc424..78265024 100644
--- a/www/tape/ChangerStatus.js
+++ b/www/tape/ChangerStatus.js
@@ -527,11 +527,13 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
 				{
 				    iconCls: 'fa fa-rotate-90 fa-exchange',
 				    handler: 'slotTransfer',
+				    tooltip: gettext('Transfer'),
 				    isDisabled: (v, r, c, i, rec) => !rec.data['label-text'],
 				},
 				{
 				    iconCls: 'fa fa-rotate-90 fa-upload',
 				    handler: 'load',
+				    tooltip: gettext('Load'),
 				    isDisabled: (v, r, c, i, rec) => !rec.data['label-text'],
 				},
 			    ],
@@ -601,29 +603,35 @@ Ext.define('PBS.TapeManagement.ChangerStatus', {
 					{
 					    iconCls: 'fa fa-rotate-270 fa-upload',
 					    handler: 'unload',
+					    tooltip: gettext('Unload'),
 					    isDisabled: (v, r, c, i, rec) => !rec.data['label-text'],
 					},
 					{
 					    iconCls: 'fa fa-hdd-o',
 					    handler: 'cartridgeMemory',
+					    tooltip: gettext('Cartridge Memory'),
 					    isDisabled: (v, r, c, i, rec) => !rec.data['label-text'],
 					},
 					{
 					    iconCls: 'fa fa-line-chart',
 					    handler: 'volumeStatistics',
+					    tooltip: gettext('Volume Statistics'),
 					    isDisabled: (v, r, c, i, rec) => !rec.data['label-text'],
 					},
 					{
 					    iconCls: 'fa fa-tag',
 					    handler: 'readLabel',
+					    tooltip: gettext('Read Label'),
 					    isDisabled: (v, r, c, i, rec) => !rec.data['label-text'],
 					},
 					{
 					    iconCls: 'fa fa-info-circle',
+					    tooltip: gettext('Status'),
 					    handler: 'status',
 					},
 					{
 					    iconCls: 'fa fa-shower',
+					    tooltip: gettext('Clean Drive'),
 					    handler: 'cleanDrive',
 					},
 				    ],
-- 
2.20.1





^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry
  2021-01-29 13:57 [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dominik Csapak
                   ` (3 preceding siblings ...)
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 5/5] ui: tape/ChangerStatus: add missing tooltips Dominik Csapak
@ 2021-01-29 15:37 ` Dietmar Maurer
  2021-01-30  8:39   ` Dietmar Maurer
  4 siblings, 1 reply; 11+ messages in thread
From: Dietmar Maurer @ 2021-01-29 15:37 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

Stupid question, but why does list_drives and list_changers
return DriveListEntry?

Those function should simple return the configuration?

Vec<ScsiTapeChanger> and  Vec<LinuxTapeDrive> 

What do I miss?




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 2/5] ui: tape: add Changer config grid
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 2/5] ui: tape: add Changer config grid Dominik Csapak
@ 2021-01-29 15:55   ` Dietmar Maurer
  0 siblings, 0 replies; 11+ messages in thread
From: Dietmar Maurer @ 2021-01-29 15:55 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

applied




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 3/5] ui: tape/ChangerStatus: add import action for import/export slots
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 3/5] ui: tape/ChangerStatus: add import action for import/export slots Dominik Csapak
@ 2021-01-29 15:55   ` Dietmar Maurer
  0 siblings, 0 replies; 11+ messages in thread
From: Dietmar Maurer @ 2021-01-29 15:55 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

applied




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 4/5] ui: tape: change wrong window title
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 4/5] ui: tape: change wrong window title Dominik Csapak
@ 2021-01-29 15:56   ` Dietmar Maurer
  0 siblings, 0 replies; 11+ messages in thread
From: Dietmar Maurer @ 2021-01-29 15:56 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

applied




^ permalink raw reply	[flat|nested] 11+ messages in thread

* [pbs-devel] applied: [PATCH proxmox-backup 5/5] ui: tape/ChangerStatus: add missing tooltips
  2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 5/5] ui: tape/ChangerStatus: add missing tooltips Dominik Csapak
@ 2021-01-29 15:56   ` Dietmar Maurer
  0 siblings, 0 replies; 11+ messages in thread
From: Dietmar Maurer @ 2021-01-29 15:56 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

applied




^ permalink raw reply	[flat|nested] 11+ messages in thread

* Re: [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry
  2021-01-29 15:37 ` [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dietmar Maurer
@ 2021-01-30  8:39   ` Dietmar Maurer
  0 siblings, 0 replies; 11+ messages in thread
From: Dietmar Maurer @ 2021-01-30  8:39 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion, Dominik Csapak

Ok, I have done some cleanup, now using serde flatten to derive
types, see:

commit b5b99a52cd317fa3025f29a3f3345ea40b328fba


> On 01/29/2021 4:37 PM Dietmar Maurer <dietmar@proxmox.com> wrote:
> 
>  
> Stupid question, but why does list_drives and list_changers
> return DriveListEntry?
> 
> Those function should simple return the configuration?
> 
> Vec<ScsiTapeChanger> and  Vec<LinuxTapeDrive> 
> 
> What do I miss?




^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2021-01-30  8:39 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-29 13:57 [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dominik Csapak
2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 2/5] ui: tape: add Changer config grid Dominik Csapak
2021-01-29 15:55   ` [pbs-devel] applied: " Dietmar Maurer
2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 3/5] ui: tape/ChangerStatus: add import action for import/export slots Dominik Csapak
2021-01-29 15:55   ` [pbs-devel] applied: " Dietmar Maurer
2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 4/5] ui: tape: change wrong window title Dominik Csapak
2021-01-29 15:56   ` [pbs-devel] applied: " Dietmar Maurer
2021-01-29 13:57 ` [pbs-devel] [PATCH proxmox-backup 5/5] ui: tape/ChangerStatus: add missing tooltips Dominik Csapak
2021-01-29 15:56   ` [pbs-devel] applied: " Dietmar Maurer
2021-01-29 15:37 ` [pbs-devel] [PATCH proxmox-backup 1/5] api2/tape: add export_slots to DriveListEntry Dietmar Maurer
2021-01-30  8:39   ` Dietmar Maurer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal