viewModel.notify();
Ext.Array.forEach(['recentmails', 'receivers'], function(item) {
- viewModel.get(item).load();
+ viewModel.getStore(item).reload();
});
if (setState) {
var bytes_in = 0;
var bytes_out = 0;
var ptime = 0;
- var avg_ptime;
+ var avg_ptime = 'N/A';
records.forEach(function(item) {
bytes_in += item.data.bytes_in;
});
if (count) {
- avg_ptime = (ptime/count).toFixed(2);
+ avg_ptime = (ptime/count).toFixed(2) + " s";
}
viewModel.set('bytes_in', Proxmox.Utils.format_size(bytes_in));
viewModel.set('bytes_out', Proxmox.Utils.format_size(bytes_out));
- viewModel.set('avg_ptime', avg_ptime + " s");
+ viewModel.set('avg_ptime', avg_ptime);
},
updateClusterStats: function(store, records, success) {
var mem = 0;
var hd = 0;
var count = records.length;
+ var errors = [];
records.forEach(function(item) {
// subscription level check
}
// resources count
- cpu += item.data.cpu;
- mem += (item.data.memory.used/item.data.memory.total);
- hd += (item.data.rootfs.used/item.data.rootfs.total);
+ cpu += item.data.cpu || 0;
+
+ var memory = item.data.memory || { used: 0, total: 1 };
+ mem += (memory.used/memory.total);
+
+ var rootfs = item.data.rootfs || { used: 0, total: 1 };
+ hd += (rootfs.used/rootfs.total);
+
+ if (item.data.conn_error && count > 1) {
+ count--;
+ errors.push({
+ name: item.data.name,
+ msg: item.data.conn_error
+ });
+ }
});
var subscriptionPanel = me.lookup('subscription');
var hdPanel = me.lookup('hd');
hdPanel.updateValue(hd);
+
+ if (errors.length && !viewmodel.get('error_shown')) {
+ var text = "";
+ errors.forEach(function(error) {
+ text += error.name + ':<br>' + error.msg + '<br>';
+ });
+ Ext.Msg.alert(gettext('Error'), text);
+ viewmodel.set('error_shown', true);
+ }
},
init: function(view) {
data: {
timespan: 300, // in seconds
hours: 12, // in hours
+ error_shown: false,
'bytes_in': 0,
'bytes_out': 0,
'avg_ptime': 0.0
autoLoad: true,
autoDestroy: true,
proxy: {
+ extraParams: { list_single_node: 1 },
type: 'proxmox',
url: '/api2/json/config/cluster/status'
},
{
height: 250,
iconCls: 'fa fa-tasks',
- title: 'Node Resources',
+ title: gettext('Node Resources'),
bodyPadding: '0 20 0 20',
layout: {
type: 'hbox',