]>
Commit | Line | Data |
---|---|---|
a5c093b1 | 1 | Ext.define('PVE.node.StatusView', { |
e3c4b75d | 2 | extend: 'Proxmox.panel.StatusView', |
cb892fb3 | 3 | alias: 'widget.pveNodeStatus', |
a5c093b1 | 4 | |
1f1d8bf3 | 5 | height: 350, |
98f73c48 | 6 | bodyPadding: '15 5 15 5', |
a5c093b1 | 7 | |
701acf20 DC |
8 | layout: { |
9 | type: 'table', | |
10 | columns: 2, | |
11 | tableAttrs: { | |
12 | style: { | |
f6710aac TL |
13 | width: '100%', |
14 | }, | |
15 | }, | |
701acf20 DC |
16 | }, |
17 | ||
cb892fb3 | 18 | defaults: { |
c95917c2 | 19 | xtype: 'pmxInfoWidget', |
98f73c48 | 20 | padding: '0 10 5 10', |
cb892fb3 | 21 | }, |
a5c093b1 | 22 | |
cb892fb3 | 23 | items: [ |
cb892fb3 DC |
24 | { |
25 | itemId: 'cpu', | |
a8ea1b68 | 26 | iconCls: 'fa fa-fw pmx-itype-icon-processor pmx-icon', |
cb892fb3 DC |
27 | title: gettext('CPU usage'), |
28 | valueField: 'cpu', | |
29 | maxField: 'cpuinfo', | |
1bd7bcdb | 30 | renderer: Proxmox.Utils.render_node_cpu_usage, |
cb892fb3 DC |
31 | }, |
32 | { | |
33 | itemId: 'wait', | |
3ff9bf5a | 34 | iconCls: 'fa fa-fw fa-clock-o', |
cb892fb3 | 35 | title: gettext('IO delay'), |
701acf20 | 36 | valueField: 'wait', |
f6710aac | 37 | rowspan: 2, |
cb892fb3 DC |
38 | }, |
39 | { | |
40 | itemId: 'load', | |
3ff9bf5a | 41 | iconCls: 'fa fa-fw fa-tasks', |
cb892fb3 DC |
42 | title: gettext('Load average'), |
43 | printBar: false, | |
f6710aac | 44 | textField: 'loadavg', |
cb892fb3 DC |
45 | }, |
46 | { | |
47 | xtype: 'box', | |
701acf20 | 48 | colspan: 2, |
f6710aac | 49 | padding: '0 0 20 0', |
cb892fb3 DC |
50 | }, |
51 | { | |
a8ea1b68 | 52 | iconCls: 'fa fa-fw pmx-itype-icon-memory pmx-icon', |
cb892fb3 DC |
53 | itemId: 'memory', |
54 | title: gettext('RAM usage'), | |
55 | valueField: 'memory', | |
56 | maxField: 'memory', | |
1bd7bcdb | 57 | renderer: Proxmox.Utils.render_node_size_usage, |
cb892fb3 DC |
58 | }, |
59 | { | |
60 | itemId: 'ksm', | |
61 | printBar: false, | |
62 | title: gettext('KSM sharing'), | |
63 | textField: 'ksm', | |
64 | renderer: function(record) { | |
1bd7bcdb | 65 | return Proxmox.Utils.render_size(record.shared); |
cb892fb3 | 66 | }, |
4b832488 | 67 | padding: '0 10 10 10', |
cb892fb3 DC |
68 | }, |
69 | { | |
3ff9bf5a | 70 | iconCls: 'fa fa-fw fa-hdd-o', |
cb892fb3 | 71 | itemId: 'rootfs', |
2f79184c | 72 | title: '/ ' + gettext('HD space'), |
cb892fb3 DC |
73 | valueField: 'rootfs', |
74 | maxField: 'rootfs', | |
1bd7bcdb | 75 | renderer: Proxmox.Utils.render_node_size_usage, |
cb892fb3 DC |
76 | }, |
77 | { | |
3ff9bf5a | 78 | iconCls: 'fa fa-fw fa-refresh', |
cb892fb3 DC |
79 | itemId: 'swap', |
80 | printSize: true, | |
81 | title: gettext('SWAP usage'), | |
82 | valueField: 'swap', | |
83 | maxField: 'swap', | |
1bd7bcdb | 84 | renderer: Proxmox.Utils.render_node_size_usage, |
cb892fb3 DC |
85 | }, |
86 | { | |
87 | xtype: 'box', | |
701acf20 | 88 | colspan: 2, |
f6710aac | 89 | padding: '0 0 20 0', |
cb892fb3 DC |
90 | }, |
91 | { | |
92 | itemId: 'cpus', | |
701acf20 | 93 | colspan: 2, |
cb892fb3 | 94 | printBar: false, |
4198e16f | 95 | title: gettext('CPU(s)'), |
cb892fb3 | 96 | textField: 'cpuinfo', |
1bd7bcdb | 97 | renderer: Proxmox.Utils.render_cpu_model, |
f6710aac | 98 | value: '', |
cb892fb3 DC |
99 | }, |
100 | { | |
701acf20 | 101 | colspan: 2, |
cb892fb3 DC |
102 | title: gettext('Kernel Version'), |
103 | printBar: false, | |
be04f8ee TL |
104 | // TODO: remove with next major and only use newish current-kernel textfield |
105 | multiField: true, | |
106 | //textField: 'current-kernel', | |
107 | renderer: ({ data }) => { | |
108 | if (!data['current-kernel']) { | |
109 | return data.kversion; | |
110 | } | |
111 | let kernel = data['current-kernel']; | |
4fb7e9e4 | 112 | let buildDate = kernel.version.match(/\((.+)\)\s*$/)?.[1] ?? 'unknown'; |
be04f8ee TL |
113 | return `${kernel.sysname} ${kernel.release} (${buildDate})`; |
114 | }, | |
f6710aac | 115 | value: '', |
cb892fb3 | 116 | }, |
1f1d8bf3 TL |
117 | { |
118 | colspan: 2, | |
119 | title: gettext('Boot Mode'), | |
120 | printBar: false, | |
121 | textField: 'boot-info', | |
122 | renderer: boot => { | |
123 | if (boot.mode === 'legacy-bios') { | |
124 | return 'Legacy BIOS'; | |
125 | } else if (boot.mode === 'efi') { | |
126 | return `EFI${boot.secureboot ? ' (Secure Boot)' : ''}`; | |
127 | } | |
128 | return Proxmox.Utils.unknownText; | |
129 | }, | |
130 | value: '', | |
131 | }, | |
cb892fb3 DC |
132 | { |
133 | itemId: 'version', | |
701acf20 | 134 | colspan: 2, |
cb892fb3 | 135 | printBar: false, |
fd6fb858 | 136 | title: gettext('Manager Version'), |
cb892fb3 | 137 | textField: 'pveversion', |
f6710aac TL |
138 | value: '', |
139 | }, | |
cb892fb3 | 140 | ], |
a5c093b1 | 141 | |
cb892fb3 DC |
142 | updateTitle: function() { |
143 | var me = this; | |
e7ade592 | 144 | var uptime = Proxmox.Utils.render_uptime(me.getRecordValue('uptime')); |
cb892fb3 | 145 | me.setTitle(me.pveSelNode.data.node + ' (' + gettext('Uptime') + ': ' + uptime + ')'); |
f6710aac | 146 | }, |
cb892fb3 | 147 | |
b2f17bfd | 148 | initComponent: function() { |
2bb75d1e | 149 | let me = this; |
2bb75d1e | 150 | |
b2f17bfd FE |
151 | let stateProvider = Ext.state.Manager.getProvider(); |
152 | let repoLink = stateProvider.encodeHToken({ | |
153 | view: "server", | |
154 | rid: `node/${me.pveSelNode.data.node}`, | |
155 | ltab: "tasks", | |
156 | nodetab: "aptrepositories", | |
157 | }); | |
2bb75d1e | 158 | |
b2f17bfd FE |
159 | me.items.push({ |
160 | xtype: 'pmxNodeInfoRepoStatus', | |
161 | itemId: 'repositoryStatus', | |
162 | product: 'Proxmox VE', | |
163 | repoLink: `#${repoLink}`, | |
164 | }); | |
2bb75d1e | 165 | |
b2f17bfd | 166 | me.callParent(); |
2bb75d1e | 167 | }, |
a5c093b1 | 168 | }); |