On Tue, Jun 11, 2019 at 07:36:28PM +0200, Thomas Lamprecht wrote: > Preparation for enhanced compatibility with new corosync 3/knet > transport. Pretty straight forward switch from ringX_addr to links, > *but*, for configuration backward compatibility corosync still uses > "ringX_addr" as "link address", this will surely add confusion"link > address", this will surely add confusion ...
last part is duplicated ;) > We drop all the "all IP versions must match" checking code, as > 1. it could cope with hostname's anyway s/could/could NOT/ ? > 2. links can be on different IP versions with kronosnet > > This makes it a bit easier and shorter, we can re-add some (saner) > checking always later on, if people misconfigure this often.. > > Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com> > --- > > changes v1 (RFC) -> v2: > * drop bindnet > * drop IP version checks, replace with a (for now) fixed 'ipv4-6' > > data/PVE/API2/ClusterConfig.pm | 16 ++-------------- > data/PVE/Corosync.pm | 29 ++++++++--------------------- > 2 files changed, 10 insertions(+), 35 deletions(-) > > diff --git a/data/PVE/API2/ClusterConfig.pm b/data/PVE/API2/ClusterConfig.pm > index e7142b5..8b1fdbe 100644 > --- a/data/PVE/API2/ClusterConfig.pm > +++ b/data/PVE/API2/ClusterConfig.pm > @@ -95,20 +95,8 @@ __PACKAGE__->register_method ({ > minimum => 1, > optional => 1, > }, > - bindnet0_addr => { > - type => 'string', format => 'ip', > - description => "This specifies the network address the corosync > ring 0". > - " executive should bind to and defaults to the local IP > address of the node.", > - optional => 1, > - }, > - ring0_addr => get_standard_option('corosync-ring0-addr'), > - bindnet1_addr => { > - type => 'string', format => 'ip', > - description => "This specifies the network address the corosync > ring 1". > - " executive should bind to and is optional.", > - optional => 1, > - }, > - ring1_addr => get_standard_option('corosync-ring1-addr'), > + link0 => get_standard_option('corosync-link'), > + link1 => get_standard_option('corosync-link'), > }, > }, > returns => { type => 'string' }, > diff --git a/data/PVE/Corosync.pm b/data/PVE/Corosync.pm > index fea7258..0d2a85f 100644 > --- a/data/PVE/Corosync.pm > +++ b/data/PVE/Corosync.pm > @@ -202,12 +202,9 @@ sub create_conf { > my $votes = $param{votes} || 1; > > my $local_ip_address = PVE::Cluster::remote_node_ip($nodename); > - my $ring0_addr = $param{ring0_addr} // $local_ip_address; > - my $bindnet0_addr = $param{bindnet0_addr} // $ring0_addr; > > - my $use_ipv6 = ip_is_ipv6($ring0_addr); > - die "ring 0 addresses must be from same IP family!\n" > - if $use_ipv6 != ip_is_ipv6($bindnet0_addr); > + my $link0 = PVE::Cluster::parse_corosync_link($param{link0}); > + $link0->{address} //= $local_ip_address; > > my $conf = { > totem => { > @@ -215,10 +212,9 @@ sub create_conf { > secauth => 'on', > cluster_name => $clustername, > config_version => 0, > - ip_version => $use_ipv6 ? 'ipv6' : 'ipv4', > + ip_version => 'ipv4-6', > interface => { > 0 => { > - bindnetaddr => $bindnet0_addr, > linknumber => 0, > }, > }, > @@ -229,7 +225,7 @@ sub create_conf { > name => $nodename, > nodeid => $nodeid, > quorum_votes => $votes, > - ring0_addr => $ring0_addr, > + ring0_addr => $link0->{address}, > }, > }, > }, > @@ -242,23 +238,14 @@ sub create_conf { > }, > }; > > - die "Param bindnet1_addr set but ring1_addr not specified!\n" > - if (defined($param{bindnet1_addr}) && !defined($param{ring1_addr})); > - > - my $ring1_addr = $param{ring1_addr}; > - my $bindnet1_addr = $param{bindnet1_addr} // $param{ring1_addr}; > - > - if ($bindnet1_addr) { > - die "ring 1 addresses must be from same IP family as ring 0!\n" > - if $use_ipv6 != ip_is_ipv6($bindnet1_addr) || > - $use_ipv6 != ip_is_ipv6($ring1_addr); > + my $link1 = PVE::Cluster::parse_corosync_link($param{link1}); > > + if ($link1->{address}) { > $conf->{totem}->{interface}->{1} = { > - bindnetaddr => $bindnet1_addr, > linknumber => 1, > }; > - $conf->{totem}->{rrp_mode} = 'passive'; > - $conf->{nodelist}->{node}->{$nodename}->{ring1_addr} = $ring1_addr; > + $conf->{totem}->{link_mode} = 'passive'; > + $conf->{nodelist}->{node}->{$nodename}->{ring1_addr} = > $link1->{address}; > } > > return { main => $conf }; > -- > 2.20.1 > > > _______________________________________________ > pve-devel mailing list > pve-devel@pve.proxmox.com > https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel