]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/ceph/Pool.js
df43be44945ad4db0cd6182637da3e7d58767afb
1 Ext
.define('PVE.CephCreatePool', {
2 extend
: 'PVE.window.Edit',
3 alias
: ['widget.pveCephCreatePool'],
11 fieldLabel
: gettext('Name'),
16 xtype
: 'pveIntegerField',
17 fieldLabel
: gettext('Size'),
25 xtype
: 'pveIntegerField',
26 fieldLabel
: gettext('Min. Size'),
34 xtype
: 'pveIntegerField',
35 fieldLabel
: 'Crush RuleSet', // do not localize
36 name
: 'crush_ruleset',
43 xtype
: 'pveIntegerField',
52 initComponent : function() {
53 /*jslint confusion: true */
57 throw "no node name specified";
61 url
: "/nodes/" + me
.nodename
+ "/ceph/pools"
68 Ext
.define('PVE.node.CephPoolList', {
69 extend
: 'Ext.grid.GridPanel',
70 alias
: ['widget.pveNodeCephPoolList'],
72 onlineHelp
: 'chapter_pveceph',
74 stateId
: 'grid-ceph-pools',
75 bufferedRenderer
: false,
76 features
: [ { ftype
: 'summary'} ],
79 header
: gettext('Name'),
82 dataIndex
: 'pool_name'
85 header
: gettext('Size') + '/min',
88 renderer: function(v
, meta
, rec
) {
89 return v
+ '/' + rec
.data
.min_size
;
103 dataIndex
: 'crush_ruleset'
106 header
: gettext('Used'),
113 renderer
: Ext
.util
.Format
.numberRenderer('0.00'),
114 dataIndex
: 'percent_used',
116 summaryRenderer
: Ext
.util
.Format
.numberRenderer('0.00')
119 header
: gettext('Total'),
122 renderer
: PVE
.Utils
.render_size
,
124 dataIndex
: 'bytes_used',
126 summaryRenderer
: PVE
.Utils
.render_size
131 initComponent: function() {
134 var nodename
= me
.pveSelNode
.data
.node
;
136 throw "no node name specified";
139 var sm
= Ext
.create('Ext.selection.RowModel', {});
141 var rstore
= Ext
.create('PVE.data.UpdateStore', {
143 storeid
: 'ceph-pool-list' + nodename
,
144 model
: 'ceph-pool-list',
147 url
: "/api2/json/nodes/" + nodename
+ "/ceph/pools"
151 var store
= Ext
.create('PVE.data.DiffStore', { rstore
: rstore
});
153 PVE
.Utils
.monStoreErrors(me
, rstore
);
155 var create_btn
= new Ext
.Button({
156 text
: gettext('Create'),
157 handler: function() {
158 var win
= Ext
.create('PVE.CephCreatePool', {
165 var remove_btn
= new PVE
.button
.Button({
166 text
: gettext('Remove'),
169 confirmMsg: function(rec
) {
170 var msg
= Ext
.String
.format(gettext('Are you sure you want to remove entry {0}'),
171 "'" + rec
.data
.pool_name
+ "'");
172 msg
+= " " + gettext('This will permanently erase all data.');
176 handler: function() {
177 var rec
= sm
.getSelection()[0];
179 if (!rec
.data
.pool_name
) {
183 PVE
.Utils
.API2Request({
184 url
: "/nodes/" + nodename
+ "/ceph/pools/" +
187 failure: function(response
, opts
) {
188 Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
);
197 tbar
: [ create_btn
, remove_btn
],
199 activate
: rstore
.startUpdate
,
200 destroy
: rstore
.stopUpdate
208 Ext
.define('ceph-pool-list', {
209 extend
: 'Ext.data.Model',
210 fields
: [ 'pool_name',
211 { name
: 'pool', type
: 'integer'},
212 { name
: 'size', type
: 'integer'},
213 { name
: 'min_size', type
: 'integer'},
214 { name
: 'pg_num', type
: 'integer'},
215 { name
: 'bytes_used', type
: 'integer'},
216 { name
: 'percent_used', type
: 'number'},
217 { name
: 'crush_ruleset', type
: 'integer'}
219 idProperty
: 'pool_name'