HA: Add a warning/info message for HA setups < 3 votes fix: #1228

This commit is contained in:
Emmanuel Kasper 2016-12-29 12:04:18 +01:00 committed by Dietmar Maurer
parent 8dfd00cd09
commit 0a4651f09d

View File

@ -22,6 +22,7 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
initComponent : function() {
var me = this;
var MIN_QUORUM_VOTES = 3;
var disabledHint = Ext.createWidget({
xtype: 'displayfield', //submitValue is false, so we don't get submitted
@ -31,6 +32,39 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
hidden: true
});
var fewVotesHint = Ext.createWidget({
itemId: 'fewVotesHint',
xtype: 'displayfield',
userCls: 'pve-hint',
updateValue: function(votes) {
var me = this;
me.setValue(gettext('You need at least three quorum votes for a reliable HA cluster. ' +
'See the online help for details. Current votes: ') + votes);
},
hidden: true
});
PVE.Utils.API2Request({
url: '/cluster/config/nodes',
method: 'GET',
failure: function(response) {
Ext.Msg.alert(gettext('Error'), response.htmlStatus);
},
success: function(response) {
var nodes = response.result.data;
var votes = 0;
Ext.Array.forEach(nodes, function(node) {
var vote = parseInt(node.quorum_votes, 10); // parse as base 10
votes += vote || 0; // parseInt might return NaN, which is false
});
if (votes < MIN_QUORUM_VOTES) {
fewVotesHint.updateValue(votes);
fewVotesHint.setVisible(true);
}
}
});
me.column1 = [
{
xtype: me.vmid ? 'displayfield' : 'pveGuestIDSelector',
@ -100,7 +134,8 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
xtype: 'textfield',
name: 'comment',
fieldLabel: gettext('Comment')
}
},
fewVotesHint
];
me.callParent();