]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ceph/Pool.js
1 // Ext.create is a function, but
2 // we defined create a bool in PVE.window.Edit
3 /*jslint confusion: true*/
4 Ext
.define('PVE.CephCreatePool', {
5 extend
: 'PVE.window.Edit',
6 alias
: ['widget.pveCephCreatePool'],
14 fieldLabel
: gettext('Name'),
20 fieldLabel
: gettext('Size'),
29 fieldLabel
: gettext('Min. Size'),
38 fieldLabel
: gettext('Crush RuleSet'),
39 name
: 'crush_ruleset',
55 initComponent : function() {
56 /*jslint confusion: true */
60 throw "no node name specified";
64 url
: "/nodes/" + me
.nodename
+ "/ceph/pools"
71 Ext
.define('PVE.node.CephPoolList', {
72 extend
: 'Ext.grid.GridPanel',
73 alias
: ['widget.pveNodeCephPoolList'],
76 bufferedRenderer
: false,
77 features
: [ { ftype
: 'summary'} ],
80 header
: gettext('Name'),
83 dataIndex
: 'pool_name'
86 header
: gettext('Size') + '/min',
89 renderer: function(v
, meta
, rec
) {
90 return v
+ '/' + rec
.data
.min_size
;
104 dataIndex
: 'crush_ruleset'
107 header
: gettext('Used'),
114 renderer
: Ext
.util
.Format
.numberRenderer('0.00'),
115 dataIndex
: 'percent_used',
117 summaryRenderer
: Ext
.util
.Format
.numberRenderer('0.00')
120 header
: gettext('Total'),
123 renderer
: PVE
.Utils
.render_size
,
125 dataIndex
: 'bytes_used',
127 summaryRenderer
: PVE
.Utils
.render_size
132 initComponent: function() {
135 var nodename
= me
.pveSelNode
.data
.node
;
137 throw "no node name specified";
140 var sm
= Ext
.create('Ext.selection.RowModel', {});
142 var rstore
= Ext
.create('PVE.data.UpdateStore', {
144 storeid
: 'ceph-pool-list' + nodename
,
145 model
: 'ceph-pool-list',
148 url
: "/api2/json/nodes/" + nodename
+ "/ceph/pools"
152 var store
= Ext
.create('PVE.data.DiffStore', { rstore
: rstore
});
154 PVE
.Utils
.monStoreErrors(me
, rstore
);
156 var create_btn
= new Ext
.Button({
157 text
: gettext('Create'),
158 handler: function() {
159 var win
= Ext
.create('PVE.CephCreatePool', {
166 var remove_btn
= new PVE
.button
.Button({
167 text
: gettext('Remove'),
170 confirmMsg: function(rec
) {
171 var msg
= Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
172 "'" + rec
.data
.pool_name
+ "'");
173 msg
+= " " + gettext('This will permanently erase all data.');
177 handler: function() {
178 var rec
= sm
.getSelection()[0];
180 if (!rec
.data
.pool_name
) {
184 PVE
.Utils
.API2Request({
185 url
: "/nodes/" + nodename
+ "/ceph/pools/" +
188 failure: function(response
, opts
) {
189 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
198 tbar
: [ create_btn
, remove_btn
],
200 activate
: rstore
.startUpdate
,
201 hide
: rstore
.stopUpdate
,
202 destroy
: rstore
.stopUpdate
210 Ext
.define('ceph-pool-list', {
211 extend
: 'Ext.data.Model',
212 fields
: [ 'pool_name',
213 { name
: 'pool', type
: 'integer'},
214 { name
: 'size', type
: 'integer'},
215 { name
: 'min_size', type
: 'integer'},
216 { name
: 'pg_num', type
: 'integer'},
217 { name
: 'bytes_used', type
: 'integer'},
218 { name
: 'percent_used', type
: 'number'},
219 { name
: 'crush_ruleset', type
: 'integer'}
221 idProperty
: 'pool_name'