xtype: 'textfield',
fieldLabel: gettext('Name'),
name: 'name',
- allowBlank: false
+ allowBlank: false,
},
{
xtype: 'proxmoxintegerfield',
value: 3,
minValue: 1,
maxValue: 7,
- allowBlank: false
+ allowBlank: false,
},
{
xtype: 'proxmoxintegerfield',
value: 2,
minValue: 1,
maxValue: 7,
- allowBlank: false
+ allowBlank: false,
},
{
xtype: 'pveCephRuleSelector',
fieldLabel: 'Crush Rule', // do not localize
name: 'crush_rule',
- allowBlank: false
+ allowBlank: false,
},
{
xtype: 'proxmoxKVComboBox',
tag: 'div',
'data-qtip': gettext('Add the new pool to the cluster storage configuration.'),
},
- }
+ },
],
- initComponent : function() {
+ initComponent: function() {
var me = this;
if (!me.nodename) {
Ext.apply(me, {
url: "/nodes/" + me.nodename + "/ceph/pools",
defaults: {
- nodename: me.nodename
- }
+ nodename: me.nodename,
+ },
});
me.callParent();
- }
+ },
});
Ext.define('PVE.node.CephPoolList', {
stateId: 'grid-ceph-pools',
bufferedRenderer: false,
- features: [ { ftype: 'summary'} ],
+ features: [{ ftype: 'summary' }],
columns: [
{
header: gettext('Name'),
width: 120,
sortable: true,
- dataIndex: 'pool_name'
+ dataIndex: 'pool_name',
},
{
header: gettext('Size') + '/min',
renderer: function(v, meta, rec) {
return v + '/' + rec.data.min_size;
},
- dataIndex: 'size'
+ dataIndex: 'size',
},
{
text: 'Placement Groups',
text: '# of PGs', // pg_num',
width: 150,
align: 'right',
- dataIndex: 'pg_num'
+ dataIndex: 'pg_num',
},
{
text: gettext('Autoscale'),
width: 140,
align: 'right',
- dataIndex: 'pg_autoscale_mode'
+ dataIndex: 'pg_autoscale_mode',
},
- ]
+ ],
},
{
text: 'CRUSH Rule',
text: 'ID',
align: 'right',
width: 50,
- dataIndex: 'crush_rule'
+ dataIndex: 'crush_rule',
},
{
text: gettext('Name'),
width: 150,
dataIndex: 'crush_rule_name',
},
- ]
+ ],
},
{
text: gettext('Used'),
align: 'right',
dataIndex: 'bytes_used',
summaryType: 'sum',
- summaryRenderer: PVE.Utils.render_size
- }
- ]
- }
+ summaryRenderer: PVE.Utils.render_size,
+ },
+ ],
+ },
],
initComponent: function() {
var me = this;
model: 'ceph-pool-list',
proxy: {
type: 'proxmox',
- url: "/api2/json/nodes/" + nodename + "/ceph/pools"
- }
+ url: "/api2/json/nodes/" + nodename + "/ceph/pools",
+ },
});
var store = Ext.create('Proxmox.data.DiffStore', { rstore: rstore });
var regex = new RegExp("not (installed|initialized)", "i");
- PVE.Utils.handleStoreErrorOrMask(me, rstore, regex, function(me, error){
+ PVE.Utils.handleStoreErrorOrMask(me, rstore, regex, function(me, error) {
me.store.rstore.stopUpdate();
PVE.Utils.showCephInstallOrMask(me, error.statusText, nodename,
- function(win){
- me.mon(win, 'cephInstallWindowClosed', function(){
+ function(win) {
+ me.mon(win, 'cephInstallWindowClosed', function() {
me.store.rstore.startUpdate();
});
- }
+ },
);
});
text: gettext('Create'),
handler: function() {
var win = Ext.create('PVE.CephCreatePool', {
- nodename: nodename
+ nodename: nodename,
});
win.show();
win.on('destroy', function() {
rstore.load();
});
- }
+ },
});
var destroy_btn = Ext.create('Proxmox.button.Button', {
showProgress: true,
url: base_url,
params: {
- remove_storages: 1
+ remove_storages: 1,
},
- item: { type: 'CephPool', id: rec.data.pool_name }
+ item: { type: 'CephPool', id: rec.data.pool_name },
}).show();
win.on('destroy', function() {
rstore.load();
});
- }
+ },
});
Ext.apply(me, {
store: store,
selModel: sm,
- tbar: [ create_btn, destroy_btn ],
+ tbar: [create_btn, destroy_btn],
listeners: {
activate: () => rstore.startUpdate(),
destroy: () => rstore.stopUpdate(),
- }
+ },
});
me.callParent();
- }
+ },
}, function() {
-
Ext.define('ceph-pool-list', {
extend: 'Ext.data.Model',
- fields: [ 'pool_name',
- { name: 'pool', type: 'integer'},
- { name: 'size', type: 'integer'},
- { name: 'min_size', type: 'integer'},
- { name: 'pg_num', type: 'integer'},
- { name: 'bytes_used', type: 'integer'},
- { name: 'percent_used', type: 'number'},
- { name: 'crush_rule', type: 'integer'},
- { name: 'crush_rule_name', type: 'string'}
+ fields: ['pool_name',
+ { name: 'pool', type: 'integer' },
+ { name: 'size', type: 'integer' },
+ { name: 'min_size', type: 'integer' },
+ { name: 'pg_num', type: 'integer' },
+ { name: 'bytes_used', type: 'integer' },
+ { name: 'percent_used', type: 'number' },
+ { name: 'crush_rule', type: 'integer' },
+ { name: 'crush_rule_name', type: 'string' },
],
- idProperty: 'pool_name'
+ idProperty: 'pool_name',
});
});
sorters: 'name',
proxy: {
type: 'proxmox',
- url: '/api2/json/nodes/' + me.nodename + '/ceph/rules'
- }
+ url: '/api2/json/nodes/' + me.nodename + '/ceph/rules',
+ },
});
Ext.apply(me, {
- store: store
+ store: store,
});
me.callParent();
store.load({
- callback: function(rec, op, success){
+ callback: function(rec, op, success) {
if (success && rec.length > 0) {
me.select(rec[0]);
}
- }
+ },
});
- }
+ },
});