]> git.proxmox.com Git - pve-manager.git/commitdiff
use RRDChart and RRDStore from widget toolkit
authorDominik Csapak <d.csapak@proxmox.com>
Mon, 15 Jan 2018 14:17:58 +0000 (15:17 +0100)
committerDominik Csapak <d.csapak@proxmox.com>
Thu, 25 Jan 2018 12:36:37 +0000 (13:36 +0100)
also remove old unused RRDView

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
www/manager6/Makefile
www/manager6/data/RRDStore.js [deleted file]
www/manager6/lxc/Summary.js
www/manager6/node/Summary.js
www/manager6/panel/RRDChart.js [deleted file]
www/manager6/panel/RRDView.js [deleted file]
www/manager6/qemu/Summary.js
www/manager6/storage/Summary.js

index 13ab2e88381bbc30f3ed447b0688b69c519e8913..a52ebdfbe1f29ebcf66eba9fce59a053102fa841 100644 (file)
@@ -25,7 +25,6 @@ JSSRC=                                                        \
        data/DiffStore.js                               \
        data/ObjectStore.js                             \
        data/ResourceStore.js                           \
-       data/RRDStore.js                                \
        data/model/RRDModels.js                         \
        form/VLanField.js                               \
        form/Checkbox.js                                \
@@ -79,8 +78,6 @@ JSSRC=                                                        \
        panel/StatusPanel.js                            \
        panel/StatusView.js                             \
        panel/GuestStatusView.js                        \
-       panel/RRDView.js                                \
-       panel/RRDChart.js                               \
        panel/RunningChart.js                           \
        panel/InfoWidget.js                             \
        panel/TemplateStatusView.js                     \
diff --git a/www/manager6/data/RRDStore.js b/www/manager6/data/RRDStore.js
deleted file mode 100644 (file)
index f9f8068..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/* Extends the PVE.data.UpdateStore type
- *
- *
- */
-Ext.define('PVE.data.RRDStore', {
-    extend: 'PVE.data.UpdateStore',
-    alias: 'store.pveRRDStore',
-
-    setRRDUrl: function(timeframe, cf) {
-       var me = this;
-       if (!timeframe) {
-           timeframe = me.timeframe;
-       }
-
-       if (!cf) {
-           cf = me.cf;
-       }
-
-       me.proxy.url = me.rrdurl + "?timeframe=" + timeframe + "&cf=" + cf;
-    },
-
-    proxy: {
-       type: 'pve'
-    },
-    fields: [
-       // node rrd fields
-       {
-           name:'cpu',
-           // percentage
-           convert: function(value) {
-               return value*100;
-           }
-       },
-       {
-           name:'iowait',
-           // percentage
-           convert: function(value) {
-               return value*100;
-           }
-       },
-       'loadavg',
-       'maxcpu',
-       'memtotal',
-       'memused',
-       'netin',
-       'netout',
-       'roottotal',
-       'rootused',
-       'swaptotal',
-       'swapused',
-       'time',
-
-       // missing qemu/lxc fields
-       'maxmem',
-       'mem',
-       'disk',
-       'diskread',
-       'diskwrite',
-       'maxdisk',
-
-       // missing storage fields
-       'used',
-       'total',
-
-       // for time we generate unix timestamps, javascript uses milliseconds instead of seconds
-       { name:'time', convert: function(value) { return value*1000; }}
-    ],
-    sorters: 'time',
-    timeframe: 'hour',
-    cf: 'AVERAGE',
-
-    constructor: function(config) {
-       var me = this;
-
-       config = config || {};
-
-       // set default interval to 30seconds
-       if (!config.interval) {
-           config.interval = 30000;
-       }
-
-       // set a new storeid
-       if (!config.storeid) {
-           config.storeid = 'rrdstore-' + (++Ext.idSeed);
-       }
-
-       // rrdurl is required
-       if (!config.rrdurl) {
-           throw "no rrdurl specified";
-       }
-
-       var stateid = 'pveRRDTypeSelection';
-       var sp = Ext.state.Manager.getProvider();
-       var stateinit = sp.get(stateid);
-
-        if (stateinit) {
-           if(stateinit.timeframe !== me.timeframe || stateinit.cf !== me.rrdcffn){
-               me.timeframe = stateinit.timeframe;
-               me.rrdcffn = stateinit.cf;
-           }
-       }
-
-       me.callParent([config]);
-
-       me.setRRDUrl();
-       me.mon(sp, 'statechange', function(prov, key, state){
-           if (key === stateid) {
-               if (state && state.id) {
-                   if (state.timeframe !== me.timeframe || state.cf !== me.cf) {
-                       me.timeframe = state.timeframe;
-                       me.cf = state.cf;
-                       me.setRRDUrl();
-                       me.reload();
-                   }
-               }
-           }
-       });
-    }
-});
index e9292b2b8928a9fcddeb11be6fed0e0b8c89eeea..8d05fc0c36e73234a88725112f89634abebd2da5 100644 (file)
@@ -68,8 +68,9 @@ Ext.define('PVE.lxc.Summary', {
                }
            });
        } else {
-           var rrdstore = Ext.create('PVE.data.RRDStore', {
-               rrdurl: "/api2/json/nodes/" + nodename + "/lxc/" + vmid + "/rrddata"
+           var rrdstore = Ext.create('Proxmox.data.RRDStore', {
+               rrdurl: "/api2/json/nodes/" + nodename + "/lxc/" + vmid + "/rrddata",
+               model: 'pve-rrd-guest'
            });
 
            Ext.apply(me, {
@@ -105,7 +106,7 @@ Ext.define('PVE.lxc.Summary', {
                                    ]
                                },
                                {
-                                   xtype: 'pveRRDChart',
+                                   xtype: 'proxmoxRRDChart',
                                    title: gettext('CPU usage'),
                                    pveSelNode: me.pveSelNode,
                                    fields: ['cpu'],
@@ -113,7 +114,7 @@ Ext.define('PVE.lxc.Summary', {
                                    store: rrdstore
                                },
                                {
-                                   xtype: 'pveRRDChart',
+                                   xtype: 'proxmoxRRDChart',
                                    title: gettext('Memory usage'),
                                    pveSelNode: me.pveSelNode,
                                    fields: ['maxmem', 'mem'],
@@ -121,14 +122,14 @@ Ext.define('PVE.lxc.Summary', {
                                    store: rrdstore
                                },
                                {
-                                   xtype: 'pveRRDChart',
+                                   xtype: 'proxmoxRRDChart',
                                    title: gettext('Network traffic'),
                                    pveSelNode: me.pveSelNode,
                                    fields: ['netin','netout'],
                                    store: rrdstore
                                },
                                {
-                                   xtype: 'pveRRDChart',
+                                   xtype: 'proxmoxRRDChart',
                                    title: gettext('Disk IO'),
                                    pveSelNode: me.pveSelNode,
                                    fields: ['diskread','diskwrite'],
index 6e67b74a8625569ac9fabeedf63bfeca9f65a3c2..20600dfca411291c6a22e30325e6b2c8756848ec 100644 (file)
@@ -87,8 +87,9 @@ Ext.define('PVE.node.Summary', {
            }
        });
 
-       var rrdstore = Ext.create('PVE.data.RRDStore', {
-           rrdurl: "/api2/json/nodes/" + nodename + "/rrddata"
+       var rrdstore = Ext.create('Proxmox.data.RRDStore', {
+           rrdurl: "/api2/json/nodes/" + nodename + "/rrddata",
+           model: 'pve-rrd-node'
        });
 
        Ext.apply(me, {
@@ -110,28 +111,28 @@ Ext.define('PVE.node.Summary', {
                                pveSelNode: me.pveSelNode
                            },
                            {
-                               xtype: 'pveRRDChart',
+                               xtype: 'proxmoxRRDChart',
                                title: gettext('CPU usage'),
                                fields: ['cpu','iowait'],
                                fieldTitles: [gettext('CPU usage'), gettext('IO delay')],
                                store: rrdstore
                            },
                            {
-                               xtype: 'pveRRDChart',
+                               xtype: 'proxmoxRRDChart',
                                title: gettext('Server load'),
                                fields: ['loadavg'],
                                fieldTitles: [gettext('Load average')],
                                store: rrdstore
                            },
                            {
-                               xtype: 'pveRRDChart',
+                               xtype: 'proxmoxRRDChart',
                                title: gettext('Memory usage'),
                                fields: ['memtotal','memused'],
                                fieldTitles: [gettext('Total'), gettext('RAM usage')],
                                store: rrdstore
                            },
                            {
-                               xtype: 'pveRRDChart',
+                               xtype: 'proxmoxRRDChart',
                                title: gettext('Network traffic'),
                                fields: ['netin','netout'],
                                store: rrdstore
diff --git a/www/manager6/panel/RRDChart.js b/www/manager6/panel/RRDChart.js
deleted file mode 100644 (file)
index 4cb6dcd..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-Ext.define('PVE.widget.RRDChart', {
-    extend: 'Ext.chart.CartesianChart',
-    alias: 'widget.pveRRDChart',
-
-
-    width: 770,
-    height: 300,
-    animation: false,
-    interactions: [{
-       type: 'crosszoom'
-    }],
-    axes: [{
-       type: 'numeric',
-       position: 'left',
-       grid: true,
-       renderer: 'leftAxisRenderer',
-       minimum: 0
-    }, {
-       type: 'time',
-       position: 'bottom',
-       grid: true,
-       fields: ['time']
-    }],
-    legend: {
-       docked: 'bottom'
-    },
-    listeners: {
-       animationend: 'onAfterAnimation'
-    },
-
-    bytesArr : [
-       'memtotal',
-       'memused',
-       'roottotal',
-       'rootused',
-       'swaptotal',
-       'swapused',
-       'maxmem',
-       'mem',
-       'disk',
-       'maxdisk',
-       'total',
-       'used'
-    ],
-    bytespersArr: [
-       'netin',
-       'netout',
-       'diskread',
-       'diskwrite'
-    ],
-
-    percentArr: [
-       'cpu',
-       'iowait'
-    ],
-
-    convertToUnits: function(value) {
-       var units = ['', 'k','M','G','T', 'P'];
-       var si = 0;
-       while(value >= 1000  && si < (units.length -1)){
-           value = value / 1000;
-           si++;
-       }
-       // javascript floating point weirdness
-       value = Ext.Number.correctFloat(value);
-
-       // limit to 2 decimal points
-       value = Ext.util.Format.number(value, "0.##");
-
-       return value.toString() + " " + units[si];
-    },
-
-    leftAxisRenderer: function(axis, label, layoutContext) {
-       var me = this;
-       return me.convertToUnits(label);
-    },
-
-    onSeriesTooltipRender: function (tooltip, record, item) {
-       var me = this;
-       var suffix = '';
-
-       if (me.percentArr.indexOf(item.field) != -1) {
-           suffix = '%';
-       } else if (me.bytesArr.indexOf(item.field) != -1) {
-           suffix = 'B';
-       } else if (me.bytespersArr.indexOf(item.field) != -1) {
-           suffix = 'B/s';
-       }
-
-       var prefix = item.field;
-       if (me.fieldTitles && me.fieldTitles[me.fields.indexOf(item.field)]) {
-           prefix = me.fieldTitles[me.fields.indexOf(item.field)];
-       }
-        tooltip.setHtml(prefix + ': ' + this.convertToUnits(record.get(item.field)) + suffix +
-           '<br>' + new Date(record.get('time')));
-    },
-
-    onAfterAnimation: function(chart, eopts) {
-       // if the undobuton is disabled,
-       // disable our tool
-       var ourUndoZoomButton = chart.tools[0];
-       var undoButton = chart.interactions[0].getUndoButton();
-       ourUndoZoomButton.setDisabled(undoButton.isDisabled());
-    },
-
-    initComponent: function() {
-       var me = this;
-
-       if (!me.store) {
-           throw "cannot work without store";
-       }
-
-       if (!me.fields) {
-           throw "cannot work without fields";
-       }
-
-       me.callParent();
-
-       // add correct label for left axis
-       var axisTitle = "";
-       if (me.percentArr.indexOf(me.fields[0]) != -1) {
-           axisTitle = "%";
-       } else if (me.bytesArr.indexOf(me.fields[0]) != -1) {
-           axisTitle = "Bytes";
-       } else if (me.bytespersArr.indexOf(me.fields[0]) != -1) {
-           axisTitle = "Bytes/s";
-       }
-       me.axes[0].setTitle(axisTitle);
-
-       me.addTool([{
-           type: 'minus',
-           disabled: true,
-           tooltip: gettext('Undo Zoom'),
-           handler: function(){
-               var undoButton = me.interactions[0].getUndoButton();
-               if (undoButton.handler) {
-                   undoButton.handler();
-               }
-           }
-       },{
-           type: 'restore',
-           tooltip: gettext('Toggle Legend'),
-           handler: function(){
-               me.legend.setVisible(!me.legend.isVisible());
-           }
-       }]);
-       // add a series for each field we get
-       me.fields.forEach(function(item, index){
-           var title = item;
-           if (me.fieldTitles && me.fieldTitles[index]) {
-               title = me.fieldTitles[index];
-           }
-           me.addSeries({
-               type: 'line',
-               xField: 'time',
-               yField: item,
-               title: title,
-               fill: true,
-               style: {
-                   lineWidth: 1.5,
-                   opacity: 0.60
-               },
-               marker: {
-                   opacity: 0,
-                   scaling: 0.01,
-                   fx: {
-                       duration: 200,
-                       easing: 'easeOut'
-                   }
-               },
-               highlightCfg: {
-                   opacity: 1,
-                   scaling: 1.5
-               },
-               tooltip: {
-                   trackMouse: true,
-                   renderer: 'onSeriesTooltipRender'
-               }
-           });
-       });
-
-       // enable animation after the store is loaded
-       me.store.onAfter('load', function() {
-           me.setAnimation(true);
-       }, this, {single: true});
-    }
-});
diff --git a/www/manager6/panel/RRDView.js b/www/manager6/panel/RRDView.js
deleted file mode 100644 (file)
index 9fd3c47..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-Ext.define('PVE.panel.RRDView', {
-    extend: 'Ext.panel.Panel',
-    alias: 'widget.pveRRDView',
-
-    initComponent : function() {
-       var me = this;
-
-       if (!me.datasource) {
-           throw "no datasource specified";
-       }
-
-       if (!me.rrdurl) {
-           throw "no rrdurl specified";
-       }
-
-       var stateid = 'pveRRDTypeSelection';
-       var sp = Ext.state.Manager.getProvider();
-       var stateinit = sp.get(stateid);
-
-        if (stateinit) {
-           if(stateinit.timeframe !== me.timeframe || stateinit.cf !== me.rrdcffn){
-               me.timeframe = stateinit.timeframe;
-               me.rrdcffn = stateinit.cf;
-           }
-       }
-
-       if (!me.timeframe) {
-           if(stateinit && stateinit.timeframe){
-               me.timeframe = stateinit.timeframe;
-           }else{
-               me.timeframe = 'hour';
-           }
-       }
-
-       if (!me.rrdcffn) {
-           if(stateinit && stateinit.rrdcffn){
-               me.rrdcffn = stateinit.cf;
-           }else{
-               me.rrdcffn = 'AVERAGE';
-           }
-       }
-
-
-       var datasource = me.datasource;
-
-       // fixme: dcindex??
-       var dcindex = 0;
-       var create_url = function() {
-           var url = me.rrdurl + "?ds=" + datasource + 
-               "&timeframe=" + me.timeframe + "&cf=" + me.rrdcffn +
-               "&_dc=" + dcindex.toString();
-           dcindex++;
-           return url;
-       };
-
-
-       Ext.apply(me, {
-           layout: 'fit',
-           html: {
-               tag: 'img',
-               width: 800,
-               height: 200,
-               src:  create_url()
-           },
-           applyState : function(state) {
-               if (state && state.id) {
-                   if(state.timeframe !== me.timeframe || state.cf !== me.rrdcffn){
-                       me.timeframe = state.timeframe;
-                       me.rrdcffn = state.cf;
-                       me.reload_task.delay(10);
-                   }
-               }
-           }
-       });
-       
-       me.callParent();
-   
-       me.reload_task = new Ext.util.DelayedTask(function() {
-           if (me.rendered) {
-               try {
-                   var html = {
-                       tag: 'img',
-                       width: 800,
-                       height: 200,
-                       src:  create_url()
-                   };
-                   me.update(html);
-               } catch (e) {
-                   // fixme:
-                   console.log(e);
-               }
-               me.reload_task.delay(30000);
-           } else {
-               me.reload_task.delay(1000);
-           }
-       });
-
-       me.reload_task.delay(30000);
-
-       me.on('destroy', function() {
-           me.reload_task.cancel();
-       });
-
-       var state_change_fn = function(prov, key, value) {
-           if (key == stateid) {
-               me.applyState(value);
-           }
-       };
-
-       me.mon(sp, 'statechange', state_change_fn);
-    }
-});
index e0838b622b9b841ba69a095936cf4e96fa274edd..ff14581552435990e5a3b6b8144b60e99894e1d8 100644 (file)
@@ -75,8 +75,9 @@ Ext.define('PVE.qemu.Summary', {
            });
 
        } else {
-           var rrdstore = Ext.create('PVE.data.RRDStore', {
-               rrdurl: "/api2/json/nodes/" + nodename + "/qemu/" + vmid + "/rrddata"
+           var rrdstore = Ext.create('Proxmox.data.RRDStore', {
+               rrdurl: "/api2/json/nodes/" + nodename + "/qemu/" + vmid + "/rrddata",
+               model: 'pve-rrd-guest'
            });
 
            Ext.apply(me, {
@@ -112,7 +113,7 @@ Ext.define('PVE.qemu.Summary', {
                                    ]
                                },
                                {
-                                   xtype: 'pveRRDChart',
+                                   xtype: 'proxmoxRRDChart',
                                    title: gettext('CPU usage'),
                                    pveSelNode: me.pveSelNode,
                                    fields: ['cpu'],
@@ -120,7 +121,7 @@ Ext.define('PVE.qemu.Summary', {
                                    store: rrdstore
                                },
                                {
-                                   xtype: 'pveRRDChart',
+                                   xtype: 'proxmoxRRDChart',
                                    title: gettext('Memory usage'),
                                    pveSelNode: me.pveSelNode,
                                    fields: ['maxmem', 'mem'],
@@ -128,14 +129,14 @@ Ext.define('PVE.qemu.Summary', {
                                    store: rrdstore
                                },
                                {
-                                   xtype: 'pveRRDChart',
+                                   xtype: 'proxmoxRRDChart',
                                    title: gettext('Network traffic'),
                                    pveSelNode: me.pveSelNode,
                                    fields: ['netin','netout'],
                                    store: rrdstore
                                },
                                {
-                                   xtype: 'pveRRDChart',
+                                   xtype: 'proxmoxRRDChart',
                                    title: gettext('Disk IO'),
                                    pveSelNode: me.pveSelNode,
                                    fields: ['diskread','diskwrite'],
index 2101549c8093e02ad9965040a2d8d6cc163ffb9c..a94d8170842c31b8d87596bf5ad7a724e2effeed 100644 (file)
@@ -37,15 +37,16 @@ Ext.define('PVE.storage.Summary', {
            style: {'padding-top':'0px'}
        });
 
-       var rrdstore = Ext.create('PVE.data.RRDStore', {
-           rrdurl:  "/api2/json/nodes/" + nodename + "/storage/" + storage + "/rrddata"
+       var rrdstore = Ext.create('Proxmox.data.RRDStore', {
+           rrdurl:  "/api2/json/nodes/" + nodename + "/storage/" + storage + "/rrddata",
+           model: 'pve-rrd-storage'
        });
 
        Ext.apply(me, {
            items: [
                statusview,
                {
-                   xtype: 'pveRRDChart',
+                   xtype: 'proxmoxRRDChart',
                    title: gettext('Usage'),
                    fields: ['total','used'],
                    fieldTitles: ['Total Size', 'Used Size'],