]>
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('Package versions'),
51 iconCls
: 'fa fa-gift',
52 handler
: () => Proxmox
.Utils
.checked_command(() => {
53 Ext
.create('Proxmox.window.PackageVersions', {
59 text
: gettext("Console"),
60 iconCls
: 'fa fa-terminal',
61 handler
: 'openConsole',
64 xtype
: 'proxmoxButton',
65 text
: gettext('Restart'),
67 confirmMsg
: `${gettext('Node')} '${Proxmox.NodeName}' - ${gettext('Restart')}`,
68 handler
: 'nodeReboot',
69 iconCls
: 'fa fa-undo',
72 xtype
: 'proxmoxButton',
73 text
: gettext('Shutdown'),
75 confirmMsg
: `${gettext('Node')} '${Proxmox.NodeName}' - ${gettext('Shutdown')}`,
76 handler
: 'nodeShutdown',
77 iconCls
: 'fa fa-power-off',
81 xtype
: 'proxmoxRRDTypeSelector',
85 initComponent: function() {
88 let nodename
= Proxmox
.NodeName
;
89 let rrdstore
= Ext
.create('Proxmox.data.RRDStore', {
90 rrdurl
: `/api2/json/nodes/${nodename}/rrddata`,
92 { type
: 'number', name
: 'loadavg' },
93 { type
: 'number', name
: 'maxcpu' },
97 convert
: val
=> val
* 100,
102 convert
: val
=> val
* 100,
104 { type
: 'number', name
: 'memtotal' },
105 { type
: 'number', name
: 'memused' },
106 { type
: 'number', name
: 'swaptotal' },
107 { type
: 'number', name
: 'swapused' },
108 { type
: 'number', name
: 'roottotal' },
109 { type
: 'number', name
: 'rootused' },
110 { type
: 'number', name
: 'netin' },
111 { type
: 'number', name
: 'netout' },
112 { type
: 'date', dateFormat
: 'timestamp', name
: 'time' },
119 xtype
: 'proxmoxRRDChart',
120 title
: gettext('CPU usage'),
122 fields
: ['cpu', 'iowait'],
123 fieldTitles
: [gettext('CPU usage'), gettext('IO delay')],
127 xtype
: 'proxmoxRRDChart',
128 title
: gettext('Server load'),
130 fieldTitles
: [gettext('Load average')],
134 xtype
: 'proxmoxRRDChart',
135 title
: gettext('Memory usage'),
137 fields
: ['memtotal', 'memused'],
138 fieldTitles
: [gettext('Total'), gettext('Used')],
142 xtype
: 'proxmoxRRDChart',
143 title
: gettext('Swap usage'),
145 fields
: ['swaptotal', 'swapused'],
146 fieldTitles
: [gettext('Total'), gettext('Used')],
150 xtype
: 'proxmoxRRDChart',
151 title
: gettext('Network traffic'),
152 unit
: 'bytespersecond',
153 fields
: ['netin', 'netout'],
154 fieldTitles
: [gettext('Ingress'), gettext('Egress')],
158 xtype
: 'proxmoxRRDChart',
159 title
: gettext('Disk usage'),
161 fields
: ['roottotal', 'rootused'],
162 fieldTitles
: [gettext('Total'), gettext('Used')],
167 resize
: panel
=> Proxmox
.Utils
.updateColumnWidth(panel
),
168 activate
: () => rrdstore
.startUpdate(),
169 destroy
: () => rrdstore
.stopUpdate(),
175 let sp
= Ext
.state
.Manager
.getProvider();
176 me
.mon(sp
, 'statechange', function(provider
, key
, value
) {
177 if (key
!== 'summarycolumns') {
180 Proxmox
.Utils
.updateColumnWidth(me
);