[pve-devel] [PATCH manager] add subscription panel on dc summary

Dominik Csapak d.csapak at proxmox.com
Fri Mar 1 14:27:49 CET 2019


So that the users have a good and fast feedback about ther
support and subscripttion status, especially if they have
mistakenly different levels of susbscriptions in their cluster.

Signed-off-by: Dominik Csapak <d.csapak at proxmox.com>
---
this is modeled after the subscription panel in the pmg dashboard,
but differently enough, so that a refactor would be more work than
what we would gain
 www/manager6/dc/Summary.js | 52 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 52 insertions(+)

diff --git a/www/manager6/dc/Summary.js b/www/manager6/dc/Summary.js
index d2a52ff3..55a76bf0 100644
--- a/www/manager6/dc/Summary.js
+++ b/www/manager6/dc/Summary.js
@@ -59,6 +59,16 @@ Ext.define('PVE.dc.Summary', {
 	    itemId: 'nodeview',
 	    xtype: 'pveDcNodeView',
 	    height: 250
+	},
+	{
+	    title: gettext('Subscriptions'),
+	    height: 220,
+	    items: [
+		{
+		    itemId: 'subscriptions',
+		    xtype: 'pveHealthWidget'
+		}
+	    ]
 	}
     ],
 
@@ -208,6 +218,48 @@ Ext.define('PVE.dc.Summary', {
 	var dcHealth = me.getComponent('dcHealth');
 	me.mon(rstore, 'load', dcHealth.updateStatus, dcHealth);
 
+	var subs = me.down('#subscriptions');
+	me.mon(rstore, 'load', function(store, records, success) {
+	    var i;
+	    var level;
+	    var curlevel;
+	    for (i = 0; i < records.length; i++) {
+		if (records[i].get('type') !== 'node') {
+		    continue;
+		}
+
+		curlevel = records[i].get('level');
+		if (level === undefined) {
+		    level = curlevel;
+		    continue;
+		}
+
+		if (level !== curlevel) {
+		    break;
+		}
+	    }
+
+	    if (level === '') {
+		subs.setData({
+		    title: gettext('No Subscription'),
+		    iconCls: PVE.Utils.get_health_icon('critical', true),
+		    text: gettext('You have at least one node without subscription.')
+		});
+	    } else if (level !== curlevel) {
+		subs.setData({
+		    title: gettext('Mixed Subscriptions'),
+		    iconCls: PVE.Utils.get_health_icon('warning', true),
+		    text: gettext('Warning: Your subscription levels are not the same.')
+		});
+	    } else {
+		subs.setData({
+		    title: PVE.Utils.render_support_level(level),
+		    iconCls: PVE.Utils.get_health_icon('good', true),
+		    text: gettext('Your subscription status is valid.')
+		});
+	    }
+	});
+
 	me.on('destroy', function(){
 	    rstore.stopUpdate();
 	});
-- 
2.11.0




More information about the pve-devel mailing list