]> git.proxmox.com Git - pve-manager.git/blob - www/manager6/lxc/StatusView.js
lxc/status: show disk usage on running containers
[pve-manager.git] / www / manager6 / lxc / StatusView.js
1 Ext.define('PVE.lxc.StatusView', {
2 extend: 'PVE.grid.ObjectGrid',
3 disabled: true,
4
5 initComponent : function() {
6 var me = this;
7
8 var nodename = me.pveSelNode.data.node;
9 if (!nodename) {
10 throw "no node name specified";
11 }
12
13 var vmid = me.pveSelNode.data.vmid;
14 if (!vmid) {
15 throw "no VM ID specified";
16 }
17
18 var template = !!me.pveSelNode.data.template;
19
20 var render_cpu = function(value, metaData, record, rowIndex, colIndex, store) {
21 if (!me.getObjectValue('uptime')) {
22 return '-';
23 }
24
25 var maxcpu = me.getObjectValue('cpus', 1);
26
27 if (!(Ext.isNumeric(value) && Ext.isNumeric(maxcpu) && (maxcpu >= 1))) {
28 return '-';
29 }
30
31 var cpu = value * 100;
32 return cpu.toFixed(1) + '% of ' + maxcpu.toString() + (maxcpu > 1 ? 'CPUs' : 'CPU');
33
34 };
35
36 var render_mem = function(value, metaData, record, rowIndex, colIndex, store) {
37 var maxmem = me.getObjectValue('maxmem', 0);
38 var per = (value / maxmem)*100;
39 var text = "<div>" + PVE.Utils.totalText + ": " + PVE.Utils.format_size(maxmem) + "</div>" +
40 "<div>" + PVE.Utils.usedText + ": " + PVE.Utils.format_size(value) + "</div>";
41 return text;
42 };
43
44 var render_swap = function(value, metaData, record, rowIndex, colIndex, store) {
45 var maxswap = me.getObjectValue('maxswap', 0);
46 var per = (value / maxswap)*100;
47 var text = "<div>" + PVE.Utils.totalText + ": " + PVE.Utils.format_size(maxswap) + "</div>" +
48 "<div>" + PVE.Utils.usedText + ": " + PVE.Utils.format_size(value) + "</div>";
49 return text;
50 };
51
52 var render_status = function(value, metaData, record, rowIndex, colIndex, store) {
53 var failcnt = me.getObjectValue('failcnt', 0);
54 if (failcnt > 0) {
55 return value + " (failure count " + failcnt.toString() + ")";
56 }
57 return value;
58 };
59
60 var render_bootdisk = function(value, metaData, record, rowIndex, colIndex, store) {
61 if (!Ext.isNumeric(value)) {
62 return '';
63 }
64 var disk = me.getObjectValue('disk', 0);
65 var text = "<div>" + PVE.Utils.totalText + ": " + PVE.Utils.format_size(value) + "</div>";
66 if (Ext.isNumeric(disk) && disk > 0) {
67 text += "<div>" + PVE.Utils.usedText + ": " + PVE.Utils.format_size(disk) + "</div>";
68 }
69 return text;
70 };
71
72 var rows = {};
73
74 if (template) {
75 rows = {
76 name: { header: gettext('Name'), defaultValue: 'no name specified' },
77 cpus: { header: gettext('CPU limit'), required: true},
78 maxmem: { header: gettext('Memory'), required: true, renderer: PVE.Utils.render_size },
79 maxswap: { header: gettext('VSwap'), required: true, renderer: PVE.Utils.render_size },
80 maxdisk: { header: gettext('Bootdisk size'), renderer: PVE.Utils.render_size, required: true}
81 };
82 } else {
83 rows = {
84 name: { header: gettext('Name'), defaultValue: 'no name specified' },
85 status: { header: gettext('Status'), defaultValue: 'unknown', renderer: render_status },
86 failcnt: { visible: false },
87 cpu: { header: gettext('CPU usage'), required: true, renderer: render_cpu },
88 cpus: { visible: false },
89 mem: { header: gettext('Memory usage'), required: true, renderer: render_mem },
90 maxmem: { visible: false },
91 swap: { header: gettext('VSwap usage'), required: true, renderer: render_swap },
92 maxswap: { visible: false },
93 maxdisk: { header: gettext('Bootdisk size'), renderer: render_bootdisk, required: true},
94 uptime: { header: gettext('Uptime'), required: true, renderer: PVE.Utils.render_uptime },
95 ha: { header: gettext('Managed by HA'), required: true, renderer: PVE.Utils.format_ha }
96 };
97 }
98 Ext.applyIf(me, {
99 cwidth1: 150,
100 rows: rows
101 });
102
103 me.callParent();
104 }
105 });