]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ceph/OSDDetails.js
1 Ext
.define('pve-osd-details-devices', {
2 extend
: 'Ext.data.Model',
3 fields
: ['device', 'type', 'physical_device', 'size', 'support_discard', 'dev_node'],
7 Ext
.define('PVE.CephOsdDetails', {
8 extend
: 'Ext.window.Window',
9 alias
: ['widget.pveCephOsdDetails'],
11 mixins
: ['Proxmox.Mixin.CBind'],
13 cbindData: function() {
15 me
.baseUrl
= `/nodes/${me.nodename}/ceph/osd/${me.osdid}`;
17 title
: `${gettext('Details')}: OSD ${me.osdid}`,
45 xclass
: 'Ext.app.ViewController',
48 let view
= this.getView();
50 Proxmox
.Utils
.API2Request({
51 url
: `${view.baseUrl}/metadata`,
52 waitMsgTarget
: view
.lookup('detailsTabs'),
54 failure: function(response
, opts
) {
55 Proxmox
.Utils
.setErrorMask(view
.lookup('detailsTabs'), response
.htmlStatus
);
57 success: function(response
, opts
) {
58 let d
= response
.result
.data
;
59 let osdData
= Object
.keys(d
.osd
).sort().map(x
=> ({ key
: x
, value
: d
.osd
[x
] }));
60 view
.osdStore
.loadData(osdData
);
61 let devices
= view
.lookup('devices');
62 let deviceStore
= devices
.getStore();
63 deviceStore
.loadData(d
.devices
);
65 view
.lookup('osdGeneral').rstore
.fireEvent('load', view
.osdStore
, osdData
, true);
66 view
.lookup('osdNetwork').rstore
.fireEvent('load', view
.osdStore
, osdData
, true);
68 // select 'block' device automatically on first load
69 if (devices
.getSelection().length
=== 0) {
70 devices
.setSelection(deviceStore
.findRecord('device', 'block'));
76 showDevInfo: function(grid
, selected
) {
77 let view
= this.getView();
79 let device
= selected
[0].data
.device
;
80 this.getViewModel().set('device', device
);
82 let detailStore
= view
.lookup('volumeDetails');
83 detailStore
.rstore
.getProxy().setUrl(`api2/json${view.baseUrl}/lv-info`);
84 detailStore
.rstore
.getProxy().setExtraParams({ 'type': device
});
85 detailStore
.setLoading();
86 detailStore
.rstore
.load({ callback
: () => detailStore
.setLoading(false) });
95 'grid[reference=devices]': {
96 selectionchange
: 'showDevInfo',
102 text
: gettext('Reload'),
103 iconCls
: 'fa fa-refresh',
107 initComponent: function() {
110 me
.osdStore
= Ext
.create('Proxmox.data.ObjectStore');
116 reference
: 'detailsTabs',
119 xtype
: 'proxmoxObjectGrid',
120 reference
: 'osdGeneral',
121 tooltip
: gettext('Various information about the OSD'),
123 title
: gettext('General'),
125 enableTextSelection
: true,
131 text
: gettext('Version'),
136 text
: gettext('Hostname'),
141 text
: gettext('OSD data path'),
145 name
: 'osd_objectstore',
146 text
: gettext('OSD object store'),
151 text
: gettext('Memory usage (PSS)'),
152 renderer
: Proxmox
.Utils
.render_size
,
157 text
: `${gettext('Process ID')} (PID)`,
162 xtype
: 'proxmoxObjectGrid',
163 reference
: 'osdNetwork',
164 tooltip
: gettext('Addresses and ports used by the OSD service'),
166 title
: gettext('Network'),
168 enableTextSelection
: true,
174 text
: `${gettext('Front Address')}<br>(Client & Monitor)`,
175 renderer
: PVE
.Utils
.render_ceph_osd_addr
,
179 name
: 'hb_front_addr',
180 text
: gettext('Heartbeat Front Address'),
181 renderer
: PVE
.Utils
.render_ceph_osd_addr
,
186 text
: `${gettext('Back Address')}<br>(OSD)`,
187 renderer
: PVE
.Utils
.render_ceph_osd_addr
,
191 name
: 'hb_back_addr',
192 text
: gettext('Heartbeat Back Address'),
193 renderer
: PVE
.Utils
.render_ceph_osd_addr
,
199 title
: gettext('Devices'),
200 tooltip
: gettext('Physical devices used by the OSD'),
205 reference
: 'devices',
207 model
: 'pve-osd-details-devices',
211 { text
: gettext('Device'), dataIndex
: 'device' },
212 { text
: gettext('Type'), dataIndex
: 'type' },
214 text
: gettext('Physical Device'),
215 dataIndex
: 'physical_device',
218 text
: gettext('Size'),
220 renderer
: Proxmox
.Utils
.render_size
,
224 dataIndex
: 'support_discard',
228 text
: gettext('Device node'),
229 dataIndex
: 'dev_node',
240 xtype
: 'proxmoxObjectGrid',
241 reference
: 'volumeDetails',
244 enableTextSelection
: true,
247 title
: Ext
.String
.format(
248 gettext('Volume Details for {0}'),
254 header
: gettext('Creation time'),
257 header
: gettext('LV Name'),
260 header
: gettext('LV Path'),
263 header
: gettext('LV UUID'),
266 header
: gettext('VG Name'),
269 url
: 'nodes/', //placeholder will be set when device is selected