]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ceph/StatusDetail.js
1 Ext
.define('PVE.ceph.StatusDetail', {
2 extend
: 'Ext.panel.Panel',
3 alias
: 'widget.pveCephStatusDetail',
10 bodyPadding
: '0 5 20',
29 '<h3>' + 'OSDs' + '</h3>',
30 '<table class="osds">',
32 '<td><i class="fa fa-fw good fa-circle"></i>',
35 '<td><i class="fa fa-fw warning fa-circle-o"></i>',
40 '<td><i class="fa fa-fw good fa-arrow-circle-up"></i>',
47 '<td><i class="fa fa-fw critical fa-arrow-circle-down"></i>',
68 '<h3>' + 'PGs' + '</h3>',
70 '<div class="left-aligned">{state_name}:</div>',
71 '<div class="right-aligned">{count}</div><br />',
72 '<div style="clear:both"></div>',
77 updateAll: function(health
, monmap
, pgmap
, osdmap
, quorum_names
) {
79 me
.suspendLayout
= true;
82 var pgs_by_state
= pgmap
.pgs_by_state
|| [];
83 pgs_by_state
.sort(function(a
,b
){
84 return (a
.state_name
< b
.state_name
)?-1:(a
.state_name
=== b
.state_name
)?0:1;
86 me
.getComponent('pgs').update({states
: pgs_by_state
});
88 var downinregex
= /(\d+) osds down/;
91 // we collect monitor/osd information from the checks
92 Ext
.Object
.each(health
.checks
, function(key
, value
, obj
) {
94 if (key
=== 'OSD_DOWN') {
95 found
= value
.summary
.message
.match(downinregex
);
97 downin_osds
= parseInt(found
[1],10);
102 // update osds counts
104 var total_osds
= osdmap
.osdmap
.num_osds
|| 0;
105 var in_osds
= osdmap
.osdmap
.num_in_osds
|| 0;
106 var up_osds
= osdmap
.osdmap
.num_up_osds
|| 0;
107 var out_osds
= total_osds
- in_osds
;
108 var down_osds
= total_osds
- up_osds
;
110 var downout_osds
= down_osds
- downin_osds
;
111 var upin_osds
= in_osds
- downin_osds
;
112 var upout_osds
= up_osds
- upin_osds
;
118 downout
: downout_osds
120 var osdcomponent
= me
.getComponent('osds');
121 osdcomponent
.update(Ext
.apply(osdcomponent
.data
, osds
));
123 me
.suspendLayout
= false;