layout: {
type: 'hbox',
- align: 'stretch'
+ align: 'stretch',
},
bodyPadding: '0 5',
defaults: {
xtype: 'box',
style: {
- 'text-align':'center'
- }
+ 'text-align': 'center',
+ },
},
items: [{
upout: 0,
downin: 0,
downout: 0,
- oldosds: []
+ oldosds: [],
},
tpl: [
'<h3>' + 'OSDs' + '</h3>',
'<div style="clear:both"></div>',
'</tpl>',
'</div>',
- '</tpl>'
- ]
+ '</tpl>',
+ ],
},
{
flex: 1,
'#CFCFCF',
'#21BF4B',
'#FFCC00',
- '#FF6C59'
+ '#FF6C59',
],
store: { },
series: [
state.state_name + ': ' + state.count.toString();
});
tooltip.setHtml(html);
- }
+ },
},
subStyle: {
- strokeStyle: false
- }
- }
- ]
+ strokeStyle: false,
+ },
+ },
+ ],
},
{
flex: 1.6,
maxHeight: 250,
scrollable: true,
data: {
- states: []
+ states: [],
},
tpl: [
'<h3>' + 'PGs' + '</h3>',
'<div class="left-aligned"><i class ="fa fa-circle {cls}"></i> {state_name}:</div>',
'<div class="right-aligned">{count}</div><br />',
'<div style="clear:both"></div>',
- '</tpl>'
- ]
+ '</tpl>',
+ ],
}],
// similar to mgr dashboard
peering: 2,
recovering: 2,
recovery_wait: 2,
+ remapped: 2,
repair: 2,
scrubbing: 2,
snaptrim: 2,
inconsistent: 3,
recovery_toofull: 3,
recovery_unfound: 3,
- remapped: 3,
snaptrim_error: 3,
stale: 3,
- undersized: 3
+ undersized: 3,
},
statecategories: [
text: gettext('Unknown'),
count: 0,
states: [],
- cls: 'faded'
+ cls: 'faded',
},
{
text: gettext('Clean'),
- cls: 'good'
+ cls: 'good',
},
{
text: gettext('Working'),
- cls: 'warning'
+ cls: 'warning',
},
{
text: gettext('Error'),
- cls: 'critical'
- }
+ cls: 'critical',
+ },
],
updateAll: function(metadata, status) {
var me = this;
me.suspendLayout = true;
- var maxversion = "00.0.00";
+ var maxversion = "0";
Object.values(metadata.version || {}).forEach(function(version) {
if (PVE.Utils.compare_ceph_versions(version, maxversion) > 0) {
maxversion = version;
if (version != maxversion) {
oldosds.push({
id: osd.id,
- version: version
+ version: version,
});
}
});
}
+ // update PGs sorted
var pgmap = status.pgmap || {};
- var health = status.health || {};
- var osdmap = status.osdmap || { osdmap: {} };
-
-
- // update pgs sorted
var pgs_by_state = pgmap.pgs_by_state || [];
- pgs_by_state.sort(function(a,b){
+ pgs_by_state.sort(function(a, b) {
return (a.state_name < b.state_name)?-1:(a.state_name === b.state_name)?0:1;
});
});
me.getComponent('pgchart').getStore().setData(me.statecategories);
- me.getComponent('pgs').update({states: pgs_by_state});
+ me.getComponent('pgs').update({ states: pgs_by_state });
var downinregex = /(\d+) osds down/;
var downin_osds = 0;
+ var health = status.health || {};
// we collect monitor/osd information from the checks
Ext.Object.each(health.checks, function(key, value, obj) {
var found = null;
if (key === 'OSD_DOWN') {
found = value.summary.message.match(downinregex);
if (found !== null) {
- downin_osds = parseInt(found[1],10);
+ downin_osds = parseInt(found[1], 10);
}
}
});
+ var osdmap = status.osdmap || {};
+ if (typeof osdmap.osdmap != "undefined") {
+ osdmap = osdmap.osdmap;
+ }
// update osds counts
-
- var total_osds = osdmap.osdmap.num_osds || 0;
- var in_osds = osdmap.osdmap.num_in_osds || 0;
- var up_osds = osdmap.osdmap.num_up_osds || 0;
+ var total_osds = osdmap.num_osds || 0;
+ var in_osds = osdmap.num_in_osds || 0;
+ var up_osds = osdmap.num_up_osds || 0;
var out_osds = total_osds - in_osds;
var down_osds = total_osds - up_osds;
upout: upout_osds,
downin: downin_osds,
downout: downout_osds,
- oldosds: oldosds
+ oldosds: oldosds,
};
var osdcomponent = me.getComponent('osds');
osdcomponent.update(Ext.apply(osdcomponent.data, osds));
me.suspendLayout = false;
me.updateLayout();
- }
+ },
});