]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ceph/Status.js
1 Ext
.define('PVE.node.CephStatus', {
2 extend
: 'PVE.grid.ObjectGrid',
3 alias
: ['widget.pveNodeCephStatus'],
6 initComponent: function() {
7 /*jslint confusion: true */
10 var nodename
= me
.pveSelNode
.data
.node
;
12 throw "no node name specified";
15 var renderquorum = function(value
) {
16 if (!value
|| value
.length
< 0) {
20 return 'Yes {' + value
.join(' ') + '}';
23 var rendermonmap = function(d
) {
28 var txt
= 'e' + d
.epoch
+ ': ' + d
.mons
.length
+ " mons at ";
30 Ext
.Array
.each(d
.mons
, function(d
) {
31 txt
+= d
.name
+ '=' + d
.addr
+ ',';
37 var renderosdmap = function(value
) {
38 if (!value
|| !value
.osdmap
) {
44 var txt
= 'e' + d
.epoch
+ ': ';
46 txt
+= d
.num_osds
+ ' osds: ' + d
.num_up_osds
+ ' up, ' +
47 d
.num_in_osds
+ " in";
52 var renderhealth = function(value
) {
53 if (!value
|| !value
.overall_status
) {
57 var txt
= value
.overall_status
;
59 Ext
.Array
.each(value
.summary
, function(d
) {
60 txt
+= " " + d
.summary
+ ';';
66 var renderpgmap = function(d
) {
71 var txt
= 'v' + d
.version
+ ': ';
73 txt
+= d
.num_pgs
+ " pgs:";
75 Ext
.Array
.each(d
.pgs_by_state
, function(s
) {
76 txt
+= " " + s
.count
+ " " + s
.state_name
;
80 txt
+= PVE
.Utils
.format_size(d
.data_bytes
) + " data, ";
81 txt
+= PVE
.Utils
.format_size(d
.bytes_used
) + " used, ";
82 txt
+= PVE
.Utils
.format_size(d
.bytes_avail
) + " avail";
88 url
: "/api2/json/nodes/" + nodename
+ "/ceph/status",
92 renderer
: renderhealth
,
97 renderer
: renderquorum
,
106 renderer
: rendermonmap
,
111 renderer
: renderosdmap
,
116 renderer
: renderpgmap
,
124 me
.on('show', me
.rstore
.startUpdate
);
125 me
.on('hide', me
.rstore
.stopUpdate
);
126 me
.on('destroy', me
.rstore
.stopUpdate
);