[pve-devel] [PATCH manager] fix #2183: fix blinking subscription and show unknown status

Dominik Csapak d.csapak at proxmox.com
Thu Apr 18 14:59:06 CEST 2019


when a node is offline, its sub level is undefined/null

now we check first for '' (which is no subscription) and omit
further checks

then we skip offline nodes, and then we continue to check if we
detect different levels

if for some reason we do not get any subscription status (should not happen)
we show 'unknown'

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
 www/manager6/dc/Summary.js | 36 ++++++++++++++++++++++++++++--------
 1 file changed, 28 insertions(+), 8 deletions(-)

diff --git a/www/manager6/dc/Summary.js b/www/manager6/dc/Summary.js
index 091ece76..b26eeb92 100644
--- a/www/manager6/dc/Summary.js
+++ b/www/manager6/dc/Summary.js
@@ -238,7 +238,20 @@ Ext.define('PVE.dc.Summary', {
 		}
 
 		curlevel = records[i].get('level');
-		if (level === undefined || !curlevel) {
+
+		// no subscription, set and break
+		if (curlevel === '') {
+		    level = '';
+		    break;
+		}
+
+		// skip offline nodes
+		if (!curlevel) {
+		    continue;
+		}
+
+		// save level
+		if (level === undefined) {
 		    level = curlevel;
 		    continue;
 		}
@@ -248,28 +261,35 @@ Ext.define('PVE.dc.Summary', {
 		}
 	    }
 
+	    var data = {
+		title: Proxmox.Utils.unknownText,
+		text: Proxmox.Utils.unknownText,
+		iconCls: PVE.Utils.get_health_icon(undefined, true)
+	    };
 	    if (level === '') {
-		subs.setData({
+		data = {
 		    title: gettext('No Subscription'),
 		    iconCls: PVE.Utils.get_health_icon('critical', true),
 		    text: gettext('You have at least one node without subscription.')
-		});
+		};
 		subs.setUserCls('pointer');
 	    } else if (level !== curlevel) {
-		subs.setData({
+		data = {
 		    title: gettext('Mixed Subscriptions'),
 		    iconCls: PVE.Utils.get_health_icon('warning', true),
 		    text: gettext('Warning: Your subscription levels are not the same.')
-		});
+		};
 		subs.setUserCls('pointer');
-	    } else {
-		subs.setData({
+	    } else if (level) {
+		data = {
 		    title: PVE.Utils.render_support_level(level),
 		    iconCls: PVE.Utils.get_health_icon('good', true),
 		    text: gettext('Your subscription status is valid.')
-		});
+		};
 		subs.setUserCls('');
 	    }
+
+	    subs.setData(data);
 	});
 
 	me.on('destroy', function(){
-- 
2.11.0





More information about the pve-devel mailing list