diff --git a/www/manager6/dc/Cluster.js b/www/manager6/dc/Cluster.js index 963da098..3dc1b30c 100644 --- a/www/manager6/dc/Cluster.js +++ b/www/manager6/dc/Cluster.js @@ -85,14 +85,18 @@ Ext.define('PVE.ClusterAdministration', { return el.name === data.preferred_node; }); - var links = []; - PVE.Utils.forEachCorosyncLink(nodeinfo, - (num, link) => links.push(link)); + let links = {}; + let ring_addr = []; + PVE.Utils.forEachCorosyncLink(nodeinfo, (num, link) => { + links[num] = link; + ring_addr.push(link); + }); vm.set('preferred_node', { name: data.preferred_node, addr: nodeinfo.pve_addr, - ring_addr: links, + peerLinks: links, + ring_addr: ring_addr, fp: nodeinfo.pve_fp }); }, @@ -116,6 +120,7 @@ Ext.define('PVE.ClusterAdministration', { joinInfo: { ipAddress: vm.get('preferred_node.addr'), fingerprint: vm.get('preferred_node.fp'), + peerLinks: vm.get('preferred_node.peerLinks'), ring_addr: vm.get('preferred_node.ring_addr'), totem: vm.get('totem') } diff --git a/www/manager6/dc/ClusterEdit.js b/www/manager6/dc/ClusterEdit.js index 53cd0efc..100fc680 100644 --- a/www/manager6/dc/ClusterEdit.js +++ b/www/manager6/dc/ClusterEdit.js @@ -223,10 +223,15 @@ Ext.define('PVE.ClusterJoinNodeWindow', { } else { let interfaces = joinInfo.totem.interface; let links = Object.values(interfaces).map(iface => { + let linkNumber = iface.linknumber; + let peerLink; + if (joinInfo.peerLinks) { + peerLink = joinInfo.peerLinks[linkNumber]; + } return { - number: iface.linknumber, + number: linkNumber, value: '', - text: '', + text: peerLink ? Ext.String.format(gettext("peer's link address: {0}"), peerLink) : '', allowBlank: false }; }); diff --git a/www/manager6/dc/CorosyncLinkEdit.js b/www/manager6/dc/CorosyncLinkEdit.js index e14ee85f..6dc3a143 100644 --- a/www/manager6/dc/CorosyncLinkEdit.js +++ b/www/manager6/dc/CorosyncLinkEdit.js @@ -14,7 +14,7 @@ Ext.define('PVE.form.CorosyncLinkEditorController', { this.addLink(); }, - addLink: function(number, value, allowBlank) { + addLink: function(number, value, allowBlank, text) { let me = this; let view = me.getView(); let vm = view.getViewModel(); @@ -37,6 +37,7 @@ Ext.define('PVE.form.CorosyncLinkEditorController', { allowBlankNetwork: allowBlank, initNumber: number, initNetwork: value, + text: text, // needs to be set here, because we need to update the viewmodel removeBtnHandler: function() { @@ -130,6 +131,7 @@ Ext.define('PVE.form.CorosyncLinkSelector', { // values initNumber: 0, initNetwork: '', + text: '', layout: 'hbox', bodyPadding: 5, @@ -190,6 +192,17 @@ Ext.define('PVE.form.CorosyncLinkSelector', { parent.removeBtnHandler(); } } + }, + { + xtype: 'label', + margin: '-1px 0 0 5px', + + // for muted effect + cls: 'x-form-item-label-default', + + cbind: { + text: '{text}' + } } ], @@ -327,7 +340,8 @@ Ext.define('PVE.form.CorosyncLinkEditor', { vm.set('linkCount', 0); Ext.Array.each(links, link => { - controller.addLink(link['number'], link['value'], link['allowBlank']); + controller.addLink(link['number'], link['value'], + link['allowBlank'], link['text']); }); },