gui: ceph: remove mon specific code from StatusDetail

will be handled in ceph/Services.js

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
This commit is contained in:
Dominik Csapak
2019-05-27 14:13:59 +02:00
committed by Thomas Lamprecht
parent bf59da1b3b
commit 11b3410fa6

View File

@ -16,17 +16,6 @@ Ext.define('PVE.ceph.StatusDetail', {
},
items: [{
flex: 1,
itemId: 'monitors',
xtype: 'container',
items: [
{
xtype: 'box',
width: '100%',
html: '<h3>' + gettext('Monitors') + '</h3>'
}
]
},{
flex: 1,
itemId: 'osds',
data: {
@ -97,9 +86,7 @@ Ext.define('PVE.ceph.StatusDetail', {
me.getComponent('pgs').update({states: pgs_by_state});
var downinregex = /(\d+) osds down/;
var monnameregex = /^mon.(\S+) /;
var downin_osds = 0;
var monmsgs = {};
// we collect monitor/osd information from the checks
Ext.Object.each(health.checks, function(key, value, obj) {
@ -110,23 +97,6 @@ Ext.define('PVE.ceph.StatusDetail', {
downin_osds = parseInt(found[1],10);
}
}
else if (Ext.String.startsWith(key, 'MON_')) {
if (!value.detail) {
return;
}
found = value.detail[0].message.match(monnameregex);
if (found !== null) {
if (!monmsgs[found[1]]) {
monmsgs[found[1]] = [];
}
monmsgs[found[1]].push({
text: Ext.Array.reduce(value.detail, function(first, second) {
return first + '\n' + second.message;
}, ''),
severity: value.severity
});
}
}
});
// update osds counts
@ -147,121 +117,11 @@ Ext.define('PVE.ceph.StatusDetail', {
downin: downin_osds,
downout: downout_osds
};
me.getComponent('osds').update(osds);
var osdcomponent = me.getComponent('osds');
osdcomponent.update(Ext.apply(osdcomponent.data, osds));
// update the monitors
var mons = monmap.mons.sort(function(a,b) {
return (a.name < b.name)?-1:(a.name > b.name)?1:0;
});
var monContainer = me.getComponent('monitors');
var i;
for (i = 0; i < mons.length; i++) {
var monitor = monContainer.getComponent('mon.' + mons[i].name);
if (!monitor) {
// since mons are already sorted, and
// we always have a sorted list
// we can add it at the mons+1 position (because of the title)
monitor = monContainer.insert(i+1, {
xtype: 'pveCephMonitorWidget',
itemId: 'mon.' + mons[i].name
});
}
monitor.updateMonitor(mons[i], monmsgs, quorum_names);
}
me.suspendLayout = false;
me.updateLayout();
}
});
Ext.define('PVE.ceph.MonitorWidget', {
extend: 'Ext.Component',
alias: 'widget.pveCephMonitorWidget',
userCls: 'monitor inline-block',
data: {
name: '0',
health: 'HEALTH_ERR',
text: '',
iconCls: PVE.Utils.get_health_icon(),
addr: ''
},
tpl: [
'{name}: ',
'<i class="fa fa-fw {iconCls}"></i>'
],
// expects 3 variables which are
// timestate: the status from timechecks.mons
// data: the monmap.mons data
// quorum_names: the quorum_names array
updateMonitor: function(data, monmsgs, quorum_names) {
var me = this;
var state = 'HEALTH_ERR';
var text = '';
var healthstates = {
'HEALTH_OK': 3,
'HEALTH_WARN': 2,
'HEALTH_ERR': 1
};
if (quorum_names &&
quorum_names.indexOf(data.name) !== -1) {
state = 'HEALTH_OK';
}
if (monmsgs[data.name]) {
Ext.Array.forEach(monmsgs[data.name], function(msg) {
if (healthstates[msg.severity] < healthstates[state]) {
state = msg.severity;
}
text += msg.text + "\n";
});
}
me.update(Ext.apply(me.data, {
health: state,
text: text,
addr: data.addr,
name: data.name,
iconCls: PVE.Utils.get_health_icon(PVE.Utils.map_ceph_health[state])
}));
},
listeners: {
mouseenter: {
element: 'el',
fn: function(events, element) {
var me = this.component;
if (!me) {
return;
}
if (!me.tooltip) {
me.tooltip = Ext.create('Ext.tip.ToolTip', {
target: me.el,
trackMouse: true,
renderTo: Ext.getBody(),
html: gettext('Monitor') + ': ' + me.data.name + '<br />' +
gettext('Address') + ': ' + me.data.addr + '<br />' +
gettext('Health') + ': ' + me.data.health + '<br />' +
me.data.text
});
}
me.tooltip.show();
}
},
mouseleave: {
element: 'el',
fn: function(events, element) {
var me = this.component;
if (me.tooltip) {
me.tooltip.destroy();
delete me.tooltip;
}
}
}
}
});