[pve-devel] [RFC cluster 1/6] corosync config: support 'linknumber' property

Thomas Lamprecht t.lamprecht at proxmox.com
Tue May 28 18:33:08 CEST 2019


Corosync has moved it's rings a layer up, i.e., abstracted away from
the network layer below. That what early were called rings are now
links, knet can have up to 8 all others 1, for now.

Let our parser understand this change in the totem section of the
config, but keep backwards compatibillity and accept 'ringnumber'
also.

While we are at it, try to write out the two map operations used in a
bit more readable way.

Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
 data/PVE/Corosync.pm | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/data/PVE/Corosync.pm b/data/PVE/Corosync.pm
index e46a119..fea7258 100644
--- a/data/PVE/Corosync.pm
+++ b/data/PVE/Corosync.pm
@@ -73,8 +73,17 @@ sub parse_conf {
 
     # make working with the config way easier
     my ($totem, $nodelist) = $conf->{main}->@{"totem", "nodelist"};
-    $nodelist->{node} = { map { $_->{name} // $_->{ring0_addr} => $_ } @{$nodelist->{node}} };
-    $totem->{interface} = { map { $_->{ringnumber} => $_ } @{$totem->{interface}} };
+
+    $nodelist->{node} = {
+	map {
+	    $_->{name} // $_->{ring0_addr} => $_
+	} @{$nodelist->{node}}
+    };
+    $totem->{interface} = {
+	map {
+	    $_->{linknumber} // $_->{ringnumber} => $_
+	} @{$totem->{interface}}
+    };
 
     $conf->{digest} = $digest;
 
@@ -210,7 +219,7 @@ sub create_conf {
 	    interface => {
 		0 => {
 		    bindnetaddr => $bindnet0_addr,
-		    ringnumber => 0,
+		    linknumber => 0,
 		},
 	    },
 	},
@@ -246,7 +255,7 @@ sub create_conf {
 
 	$conf->{totem}->{interface}->{1} = {
 	    bindnetaddr => $bindnet1_addr,
-	    ringnumber => 1,
+	    linknumber => 1,
 	};
 	$conf->{totem}->{rrp_mode} = 'passive';
 	$conf->{nodelist}->{node}->{$nodename}->{ring1_addr} = $ring1_addr;
-- 
2.20.1





More information about the pve-devel mailing list