mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-08-09 10:14:46 +00:00
HA: Add a warning/info message for HA setups < 3 votes fix: #1228
This commit is contained in:
parent
8dfd00cd09
commit
0a4651f09d
@ -22,6 +22,7 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
|
|||||||
|
|
||||||
initComponent : function() {
|
initComponent : function() {
|
||||||
var me = this;
|
var me = this;
|
||||||
|
var MIN_QUORUM_VOTES = 3;
|
||||||
|
|
||||||
var disabledHint = Ext.createWidget({
|
var disabledHint = Ext.createWidget({
|
||||||
xtype: 'displayfield', //submitValue is false, so we don't get submitted
|
xtype: 'displayfield', //submitValue is false, so we don't get submitted
|
||||||
@ -31,6 +32,39 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
|
|||||||
hidden: true
|
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 = [
|
me.column1 = [
|
||||||
{
|
{
|
||||||
xtype: me.vmid ? 'displayfield' : 'pveGuestIDSelector',
|
xtype: me.vmid ? 'displayfield' : 'pveGuestIDSelector',
|
||||||
@ -100,7 +134,8 @@ Ext.define('PVE.ha.VMResourceInputPanel', {
|
|||||||
xtype: 'textfield',
|
xtype: 'textfield',
|
||||||
name: 'comment',
|
name: 'comment',
|
||||||
fieldLabel: gettext('Comment')
|
fieldLabel: gettext('Comment')
|
||||||
}
|
},
|
||||||
|
fewVotesHint
|
||||||
];
|
];
|
||||||
|
|
||||||
me.callParent();
|
me.callParent();
|
||||||
|
Loading…
Reference in New Issue
Block a user