]>
git.proxmox.com Git - pmg-gui.git/blob - js/ServerStatus.js
1 Ext
.define('PMG.ServerStatus', {
2 extend
: 'Ext.panel.Panel',
3 alias
: 'widget.pmgServerStatus',
5 title
: gettext('Status'),
21 xclass
: 'Ext.app.ViewController',
23 openConsole: function() {
24 Proxmox
.Utils
.openXtermJsViewer('shell', 0, Proxmox
.NodeName
);
27 nodeCommand: function(cmd
) {
28 Proxmox
.Utils
.API2Request({
32 url
: `/nodes/${Proxmox.NodeName}/status`,
34 waitMsgTarget
: this.getView(),
35 failure
: response
=> Ext
.Msg
.alert(gettext('Error'), response
.htmlStatus
),
39 nodeShutdown: function() {
40 this.nodeCommand('shutdown');
43 nodeReboot: function() {
44 this.nodeCommand('reboot');
50 text
: gettext("Console"),
51 iconCls
: 'fa fa-terminal',
52 handler
: 'openConsole',
55 xtype
: 'proxmoxButton',
56 text
: gettext('Restart'),
58 confirmMsg
: `${gettext('Node')} '${Proxmox.NodeName}' - ${gettext('Restart')}`,
59 handler
: 'nodeReboot',
60 iconCls
: 'fa fa-undo',
63 xtype
: 'proxmoxButton',
64 text
: gettext('Shutdown'),
66 confirmMsg
: `${gettext('Node')} '${Proxmox.NodeName}' - ${gettext('Shutdown')}`,
67 handler
: 'nodeShutdown',
68 iconCls
: 'fa fa-power-off',
72 xtype
: 'proxmoxRRDTypeSelector',
76 initComponent: function() {
79 let nodename
= Proxmox
.NodeName
;
80 let rrdstore
= Ext
.create('Proxmox.data.RRDStore', {
81 rrdurl
: `/api2/json/nodes/${nodename}/rrddata`,
83 { type
: 'number', name
: 'loadavg' },
84 { type
: 'number', name
: 'maxcpu' },
88 convert
: val
=> val
* 100,
93 convert
: val
=> val
* 100,
95 { type
: 'number', name
: 'memtotal' },
96 { type
: 'number', name
: 'memused' },
97 { type
: 'number', name
: 'swaptotal' },
98 { type
: 'number', name
: 'swapused' },
99 { type
: 'number', name
: 'roottotal' },
100 { type
: 'number', name
: 'rootused' },
101 { type
: 'number', name
: 'netin' },
102 { type
: 'number', name
: 'netout' },
103 { type
: 'date', dateFormat
: 'timestamp', name
: 'time' },
110 xtype
: 'proxmoxRRDChart',
111 title
: gettext('CPU usage'),
113 fields
: ['cpu', 'iowait'],
114 fieldTitles
: [gettext('CPU usage'), gettext('IO delay')],
118 xtype
: 'proxmoxRRDChart',
119 title
: gettext('Server load'),
121 fieldTitles
: [gettext('Load average')],
125 xtype
: 'proxmoxRRDChart',
126 title
: gettext('Memory usage'),
128 fields
: ['memtotal', 'memused'],
129 fieldTitles
: [gettext('Total'), gettext('Used')],
133 xtype
: 'proxmoxRRDChart',
134 title
: gettext('Swap usage'),
136 fields
: ['swaptotal', 'swapused'],
137 fieldTitles
: [gettext('Total'), gettext('Used')],
141 xtype
: 'proxmoxRRDChart',
142 title
: gettext('Network traffic'),
143 unit
: 'bytespersecond',
144 fields
: ['netin', 'netout'],
145 fieldTitles
: [gettext('Ingress'), gettext('Egress')],
149 xtype
: 'proxmoxRRDChart',
150 title
: gettext('Disk usage'),
152 fields
: ['roottotal', 'rootused'],
153 fieldTitles
: [gettext('Total'), gettext('Used')],
158 resize
: panel
=> Proxmox
.Utils
.updateColumnWidth(panel
),
159 activate
: () => rrdstore
.startUpdate(),
160 destroy
: () => rrdstore
.stopUpdate(),
166 let sp
= Ext
.state
.Manager
.getProvider();
167 me
.mon(sp
, 'statechange', function(provider
, key
, value
) {
168 if (key
!== 'summarycolumns') {
171 Proxmox
.Utils
.updateColumnWidth(me
);