public inbox for pbs-devel@lists.proxmox.com
 help / color / mirror / Atom feed
* Re: [pbs-devel] [PATCH v2 proxmox-backup 4/4] ui: add maintenance to datastore options
@ 2021-10-06 15:23 Hannes Laimer
  0 siblings, 0 replies; 3+ messages in thread
From: Hannes Laimer @ 2021-10-06 15:23 UTC (permalink / raw)
  To: pbs-devel

---
fixed a small type Proxmox.Utils... -> PBS.Utils...

 www/Makefile                     |  1 +
 www/Utils.js                     |  7 +++++
 www/datastore/OptionView.js      |  9 ++++++
 www/window/MaintenanceOptions.js | 51 ++++++++++++++++++++++++++++++++
 4 files changed, 68 insertions(+)
 create mode 100644 www/window/MaintenanceOptions.js

diff --git a/www/Makefile b/www/Makefile
index 4aec6e2c..8f6b17ed 100644
--- a/www/Makefile
+++ b/www/Makefile
@@ -63,6 +63,7 @@ JSSRC=							\
 	window/BackupGroupChangeOwner.js		\
 	window/CreateDirectory.js			\
 	window/DataStoreEdit.js				\
+	window/MaintenanceOptions.js			\
 	window/NotesEdit.js				\
 	window/RemoteEdit.js				\
 	window/NotifyOptions.js				\
diff --git a/www/Utils.js b/www/Utils.js
index 36a94211..a1198c57 100644
--- a/www/Utils.js
+++ b/www/Utils.js
@@ -640,4 +640,11 @@ Ext.define('PBS.Utils', {
 	return `${icon} ${value}`;
     },
 
+    renderMaintenance: function(type) {
+	if (type === 'readonly') {
+	    type = 'read only';
+	}
+	return Ext.String.capitalize(gettext(type)) || gettext('None');
+    },
+
 });
diff --git a/www/datastore/OptionView.js b/www/datastore/OptionView.js
index 5a5e85be..91ec2d83 100644
--- a/www/datastore/OptionView.js
+++ b/www/datastore/OptionView.js
@@ -1,3 +1,4 @@
+
 Ext.define('PBS.Datastore.Options', {
     extend: 'Proxmox.grid.ObjectGrid',
     xtype: 'pbsDatastoreOptionView',
@@ -111,5 +112,13 @@ Ext.define('PBS.Datastore.Options', {
 		},
 	    },
 	},
+	"maintenance-type": {
+	    required: true,
+	    header: gettext('Maintenance mode'),
+	    renderer: PBS.Utils.renderMaintenance,
+	    editor: {
+		xtype: 'pbsMaintenanceOptionEdit',
+	    },
+	},
     },
 });
diff --git a/www/window/MaintenanceOptions.js b/www/window/MaintenanceOptions.js
new file mode 100644
index 00000000..85fd3fc9
--- /dev/null
+++ b/www/window/MaintenanceOptions.js
@@ -0,0 +1,51 @@
+Ext.define('PBS.form.MaintenanceType', {
+    extend: 'Proxmox.form.KVComboBox',
+    alias: 'widget.pbsMaintenanceType',
+
+    comboItems: [
+	['__default__', gettext('None')],
+	['readonly', gettext('Read only')],
+	['offline', gettext('Offline')],
+    ],
+});
+
+Ext.define('PBS.window.MaintenanceOptions', {
+    extend: 'Proxmox.window.Edit',
+    xtype: 'pbsMaintenanceOptionEdit',
+    mixins: ['Proxmox.Mixin.CBind'],
+
+    subject: gettext('Maintenance mode'),
+
+    width: 450,
+    fieldDefaults: {
+	labelWidth: 120,
+    },
+
+    items: {
+	xtype: 'inputpanel',
+	items: [
+	    {
+		xtype: 'pbsMaintenanceType',
+		name: 'maintenance-type',
+		fieldLabel: gettext('Maintenance Type'),
+		value: '__default__',
+		deleteEmpty: true,
+	    },
+	    {
+		xtype: 'proxmoxtextfield',
+		name: 'maintenance-msg',
+		fieldLabel: gettext('Description'),
+		deleteEmpty: true,
+	    },
+	],
+    },
+    setValues: function(values) {
+	let me = this;
+
+	const options = {
+	    'maintenance-type': values['maintenance-type'] || '__default__',
+	    'maintenance-msg': values['maintenance-msg'],
+	};
+	me.callParent([options]);
+    },
+});
-- 
2.30.2





^ permalink raw reply	[flat|nested] 3+ messages in thread
* [pbs-devel] [PATCH v2 proxmox-backup 0/4] close #3071: maintenance mode for datastores
@ 2021-10-06 15:14 Hannes Laimer
  2021-10-06 15:14 ` [pbs-devel] [PATCH v2 proxmox-backup 4/4] ui: add maintenance to datastore options Hannes Laimer
  0 siblings, 1 reply; 3+ messages in thread
From: Hannes Laimer @ 2021-10-06 15:14 UTC (permalink / raw)
  To: pbs-devel

v2:
 - check for maintenance now directly in lookup_datastore
 - parameter for checking is now the last acceptable maintenance type,
   description in commit msg of 2nd patch
 - ui cleanup 

Adds a maintenance mode for datatsores. If a datastore is in maintenance
mode it has a maintenance-type and a maintenance-msg.
The type specifies what is still allowed on the ds and what is not.
Currently there are two types: read only and offline. 'read only' prevents
everything that would write something to the ds, but allows to read from
it. 'offline' prevents everything on the datastore, neither operation
that write nor operations that read form the datastore are allowed.
The message is optional and is a short string that describes the reason
for the maintenance, it is shown whenever an operation is prevented due
to the maintenance.

Already running jobs and operations are not affected. Neither are the
modification or creation of jobs, since they just modify a config file
that is stored on the host system.

As Dominik Csapak <d.csapak@proxmox.com> suggested, it might make sense
to prevent setting a maintenance mode while jobs run.


Hannes Laimer (4):
  pbs-api-types: add maintenance type and msg to ds config
  pbs-datastore: add check for maintenance to lookup_datastore
  api2: make maintenance type and msg updatable/deletable
  ui: add maintenance to datastore options

 pbs-api-types/src/datastore.rs       | 33 ++++++++++++++++++
 pbs-datastore/src/datastore.rs       | 14 ++++++--
 pbs-datastore/src/snapshot_reader.rs |  6 +++-
 src/api2/admin/datastore.rs          | 44 ++++++++++++------------
 src/api2/backup/mod.rs               |  2 +-
 src/api2/config/datastore.rs         |  8 +++++
 src/api2/pull.rs                     |  4 +--
 src/api2/reader/mod.rs               |  6 ++--
 src/api2/status.rs                   |  6 ++--
 src/api2/tape/backup.rs              |  4 +--
 src/api2/tape/restore.rs             |  6 ++--
 src/bin/proxmox-backup-proxy.rs      |  6 ++--
 src/server/prune_job.rs              |  2 +-
 src/server/verify_job.rs             |  4 +--
 www/Makefile                         |  1 +
 www/Utils.js                         |  7 ++++
 www/datastore/OptionView.js          |  9 +++++
 www/window/MaintenanceOptions.js     | 51 ++++++++++++++++++++++++++++
 18 files changed, 168 insertions(+), 45 deletions(-)
 create mode 100644 www/window/MaintenanceOptions.js

-- 
2.30.2





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

end of thread, other threads:[~2021-10-12  8:52 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-06 15:23 [pbs-devel] [PATCH v2 proxmox-backup 4/4] ui: add maintenance to datastore options Hannes Laimer
  -- strict thread matches above, loose matches on Subject: below --
2021-10-06 15:14 [pbs-devel] [PATCH v2 proxmox-backup 0/4] close #3071: maintenance mode for datastores Hannes Laimer
2021-10-06 15:14 ` [pbs-devel] [PATCH v2 proxmox-backup 4/4] ui: add maintenance to datastore options Hannes Laimer
2021-10-12  8:51   ` Dominik Csapak

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal