1 Ext
.define('PVE.data.ResourceStore', {
2 extend
: 'Proxmox.data.UpdateStore',
5 findVMID: function(vmid
) {
8 return (me
.findExact('vmid', parseInt(vmid
, 10)) >= 0);
11 // returns the cached data from all nodes
12 getNodes: function() {
16 me
.each(function(record
) {
17 if (record
.get('type') == "node") {
18 nodes
.push( record
.getData() );
25 storageIsShared: function(storage_path
) {
28 var index
= me
.findExact('id', storage_path
);
30 return me
.getAt(index
).data
.shared
;
33 guestNode: function(vmid
) {
36 var index
= me
.findExact('vmid', parseInt(vmid
, 10));
38 return me
.getAt(index
).data
.node
;
41 constructor: function(config
) {
42 // fixme: how to avoid those warnings
43 /*jslint confusion: true */
47 config
= config
|| {};
49 var field_defaults
= {
51 header
: gettext('Type'),
53 renderer
: PVE
.Utils
.render_resource_type
,
66 header
: gettext('Online'),
68 renderer
: Proxmox
.Utils
.format_boolean
,
70 convert: function(value
, record
) {
71 var info
= record
.data
;
72 return (Ext
.isNumeric(info
.uptime
) && (info
.uptime
> 0));
76 header
: gettext('Description'),
80 convert: function(value
, record
) {
81 var info
= record
.data
;
88 if (Ext
.isNumeric(info
.vmid
) && info
.vmid
> 0) {
89 text
= String(info
.vmid
);
91 text
+= " (" + info
.name
+ ')';
93 } else { // node, pool, storage
94 text
= info
[info
.type
] || info
.id
;
95 if (info
.node
&& info
.type
!== 'node') {
96 text
+= " (" + info
.node
+ ")";
111 header
: gettext('Name'),
117 header
: gettext('Disk usage'),
119 renderer
: PVE
.Utils
.render_disk_usage
,
125 header
: gettext('Disk usage') + " %",
128 renderer
: PVE
.Utils
.render_disk_usage_percent
,
130 calculate
: PVE
.Utils
.calculate_disk_usage
,
134 header
: gettext('Disk size'),
136 renderer
: PVE
.Utils
.render_size
,
142 header
: gettext('Memory usage'),
144 renderer
: PVE
.Utils
.render_mem_usage
,
150 header
: gettext('Memory usage') + " %",
152 renderer
: PVE
.Utils
.render_mem_usage_percent
,
153 calculate
: PVE
.Utils
.calculate_mem_usage
,
159 header
: gettext('Memory size'),
161 renderer
: PVE
.Utils
.render_size
,
167 header
: gettext('CPU usage'),
169 renderer
: PVE
.Utils
.render_cpu
,
174 header
: gettext('maxcpu'),
181 header
: gettext('Total Disk Read'),
185 renderer
: Proxmox
.Utils
.format_size
,
189 header
: gettext('Total Disk Write'),
193 renderer
: Proxmox
.Utils
.format_size
,
197 header
: gettext('Total NetIn'),
201 renderer
: Proxmox
.Utils
.format_size
,
205 header
: gettext('Total NetOut'),
209 renderer
: Proxmox
.Utils
.format_size
,
213 header
: gettext('Template'),
220 header
: gettext('Uptime'),
222 renderer
: Proxmox
.Utils
.render_uptime
,
227 header
: gettext('Node'),
234 header
: gettext('Storage'),
241 header
: gettext('Pool'),
248 header
: gettext('HA State'),
250 defaultValue
: 'unmanaged',
255 header
: gettext('Status'),
265 Ext
.Object
.each(field_defaults
, function(key
, value
) {
266 var field
= {name
: key
, type
: value
.type
};
267 if (Ext
.isDefined(value
.convert
)) {
268 field
.convert
= value
.convert
;
271 if (Ext
.isDefined(value
.calculate
)) {
272 field
.calculate
= value
.calculate
;
275 if (Ext
.isDefined(value
.defaultValue
)) {
276 field
.defaultValue
= value
.defaultValue
;
280 fieldNames
.push(key
);
283 Ext
.define('PVEResources', {
284 extend
: "Ext.data.Model",
288 url
: '/api2/json/cluster/resources'
292 Ext
.define('PVETree', {
293 extend
: "Ext.data.Model",
295 proxy
: { type
: 'memory' }
299 storeid
: 'PVEResources',
300 model
: 'PVEResources',
301 defaultColumns: function() {
303 Ext
.Object
.each(field_defaults
, function(field
, info
) {
304 var fi
= Ext
.apply({ dataIndex
: field
}, info
);
309 fieldNames
: fieldNames
312 me
.callParent([config
]);