[pve-devel] [PATCH manager v2 3/5] add noout button and reorder actions
Dominik Csapak
d.csapak at proxmox.com
Wed Nov 30 11:52:08 CET 2016
this patch adds a set/unset noout button (for easy maintenance of your
ceph cluster) and reorders the buttons so that global actions (reload,
add osd, set noout) are left, and osd specific actions are on the right
to reduce confusion, there is now a label left of the osd actions which
displays the selected osd
Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
changes to v1:
* use POST/DELETE call from previous patch
www/manager6/ceph/OSD.js | 43 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 42 insertions(+), 1 deletion(-)
diff --git a/www/manager6/ceph/OSD.js b/www/manager6/ceph/OSD.js
index 588e3d3..96d398b 100644
--- a/www/manager6/ceph/OSD.js
+++ b/www/manager6/ceph/OSD.js
@@ -280,6 +280,9 @@ Ext.define('PVE.node.CephOsdTree', {
/*jslint confusion: true */
var me = this;
+ // we expect noout to be not set by default
+ var noout = false;
+
var nodename = me.pveSelNode.data.node;
if (!nodename) {
throw "no node name specified";
@@ -301,6 +304,13 @@ Ext.define('PVE.node.CephOsdTree', {
sm.deselectAll();
me.setRootNode(response.result.data.root);
me.expandAll();
+ // extract noout flag
+ if (response.result.data.flags &&
+ response.result.data.flags.search(/noout/) !== -1) {
+ noout = true;
+ } else {
+ noout = false;
+ }
set_button_status();
}
});
@@ -399,8 +409,37 @@ Ext.define('PVE.node.CephOsdTree', {
}
});
+ var noout_btn = new Ext.Button({
+ text: gettext('Set noout'),
+ handler: function() {
+ PVE.Utils.API2Request({
+ url: "/nodes/" + nodename + "/ceph/flags/noout",
+ waitMsgTarget: me,
+ method: noout ? 'DELETE' : 'POST',
+ failure: function(response, opts) {
+ Ext.Msg.alert(gettext('Error'), response.htmlStatus);
+ },
+ success: reload
+ });
+ }
+ });
+
+ var osd_label = new Ext.toolbar.TextItem({
+ data: {
+ osd: undefined
+ },
+ tpl: [
+ '<tpl if="osd">',
+ '{osd}:',
+ '<tpl else>',
+ gettext('No OSD selected'),
+ '</tpl>'
+ ]
+ });
+
set_button_status = function() {
var rec = sm.getSelection()[0];
+ noout_btn.setText(noout?gettext('Unset noout'):gettext('Set noout'));
if (!rec) {
start_btn.setDisabled(true);
@@ -419,6 +458,8 @@ Ext.define('PVE.node.CephOsdTree', {
osd_out_btn.setDisabled(!(isOsd && rec.data['in']));
osd_in_btn.setDisabled(!(isOsd && !rec.data['in']));
+
+ osd_label.update(isOsd?{osd:rec.data.name}:undefined);
};
sm.on('selectionchange', set_button_status);
@@ -429,7 +470,7 @@ Ext.define('PVE.node.CephOsdTree', {
});
Ext.apply(me, {
- tbar: [ create_btn, reload_btn, start_btn, stop_btn, osd_out_btn, osd_in_btn, remove_btn ],
+ tbar: [ create_btn, reload_btn, noout_btn, '->', osd_label, start_btn, stop_btn, osd_out_btn, osd_in_btn, remove_btn ],
rootVisible: false,
fields: ['name', 'type', 'status', 'host', 'in', 'id' ,
{ type: 'number', name: 'reweight' },
--
2.1.4
More information about the pve-devel
mailing list