]> git.proxmox.com Git - pve-manager.git/blob - www/manager/node/Summary.js
imported from svn 'pve-manager/pve2'
[pve-manager.git] / www / manager / node / Summary.js
1 Ext.define('PVE.node.Summary', {
2 extend: 'Ext.panel.Panel',
3 alias: 'widget.pveNodeSummary',
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 statusview = Ext.create('PVE.node.StatusView', {
14 title: 'Status',
15 pveSelNode: me.pveSelNode,
16 style: 'padding-top:0px'
17 });
18
19 var rstore = statusview.rstore;
20
21 var node_command = function(cmd) {
22 PVE.Utils.API2Request({
23 params: { command: cmd },
24 url: '/nodes/' + nodename + '/status',
25 method: 'POST',
26 waitMsgTarget: me,
27 failure: function(response, opts) {
28 Ext.Msg.alert('Error', response.htmlStatus);
29 }
30 });
31 };
32
33 var rrdurl = "/api2/png/nodes/" + nodename + "/rrd";
34
35 var tbar = Ext.create('Ext.toolbar.Toolbar', {
36 items: [
37 {
38 itemId: 'reboot',
39 text: 'Reboot',
40 handler: function() {
41 var msg = "Do you really want to reboot node '" + nodename + "'?";
42 Ext.Msg.confirm('Confirm', msg, function(btn) {
43 if (btn !== 'yes') {
44 return;
45 }
46 node_command('reboot');
47 });
48 }
49 },
50 {
51 itemId: 'shutdown',
52 text: 'Shutdown',
53 handler: function() {
54 var msg = "Do you really want to shutdown node '" + nodename + "'?";
55 Ext.Msg.confirm('Confirm', msg, function(btn) {
56 if (btn !== 'yes') {
57 return;
58 }
59 node_command('shutdown');
60 });
61 }
62 },
63 {
64 itemId: 'shell',
65 text: 'Shell',
66 handler: function() {
67 var url = Ext.urlEncode({
68 console: 'shell',
69 node: nodename
70 });
71 var nw = window.open("?" + url, '_blank',
72 "innerWidth=745,innerheight=427");
73 nw.focus();
74 }
75 }, '->',
76 {
77 xtype: 'pveRRDTypeSelector'
78 }
79 ]
80 });
81
82 me.mon(rstore, 'load', function(s, records, success) {
83 var uptimerec = s.data.get('uptime');
84 var uptime = uptimerec ? uptimerec.data.value : false;
85
86 tbar.down('#reboot').setDisabled(!uptime);
87 tbar.down('#shutdown').setDisabled(!uptime);
88 tbar.down('#shell').setDisabled(!uptime);
89 });
90
91 Ext.apply(me, {
92 autoScroll: true,
93 bodyStyle: 'padding:10px',
94 defaults: {
95 width: 800,
96 style: 'padding-top:10px'
97 },
98 tbar: tbar,
99 items: [
100 statusview,
101 {
102 xtype: 'pveRRDView',
103 title: "CPU usage %",
104 datasource: 'cpu,iowait',
105 rrdurl: rrdurl
106 },
107 {
108 xtype: 'pveRRDView',
109 title: "Server load",
110 datasource: 'loadavg',
111 rrdurl: rrdurl
112 },
113 {
114 xtype: 'pveRRDView',
115 title: "Memory usage",
116 datasource: 'memtotal,memused',
117 rrdurl: rrdurl
118 },
119 {
120 xtype: 'pveRRDView',
121 title: "Network traffic",
122 datasource: 'netin,netout',
123 rrdurl: rrdurl
124 }
125 ]
126 });
127
128 me.on('show', rstore.startUpdate);
129 me.on('hide', rstore.stopUpdate);
130 me.on('destroy', rstore.stopUpdate);
131
132 me.callParent();
133 }
134 });