[pve-devel] [PATCH manager] HA: Add a warning/info message for HA setups < 3 votes fix: #1228

Caspar Smit casparsmit at supernas.eu
Fri Mar 3 14:57:45 CET 2017


Hi dev team,

This commit introduces a permission denied screen when not logged in as
'root at pam' and clicking on Datacenter->HA->Resources->Add (or Edit)

After clicking the permission denied screen away, you can still add/edit
the HA resource so it has no use at all.

Kind regards,
Caspar Smit


2016-12-29 12:04 GMT+01:00 Emmanuel Kasper <e.kasper at proxmox.com>:

> ---
>  www/manager6/ha/ResourceEdit.js | 37 ++++++++++++++++++++++++++++++
> ++++++-
>  1 file changed, 36 insertions(+), 1 deletion(-)
>
> diff --git a/www/manager6/ha/ResourceEdit.js b/www/manager6/ha/
> ResourceEdit.js
> index 4dc7474..06dda10 100644
> --- a/www/manager6/ha/ResourceEdit.js
> +++ b/www/manager6/ha/ResourceEdit.js
> @@ -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();
> --
> 2.1.4
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>



More information about the pve-devel mailing list