I detected a bug where we overwrote the whole $interfaces variable
(and so all interfaces from the corosync config) if the 'rrp_mode'
param was set.

While this would be easy to with by changing the line to
$interfaces .= ...
I removed the whole rrp_mode parameter instead.

As:
a) I've seen no one running into this bug, so this parameter was not
   really used either way.
b) only the 'passive' is supported and works, 'active' has a whole
   lot of problems. If someone really wants it he should edit the
   corosync config file to achieve this

Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com>
---

I should not have added it in the first place... :/

 data/PVE/CLI/pvecm.pm | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/data/PVE/CLI/pvecm.pm b/data/PVE/CLI/pvecm.pm
index f15f467..294486f 100755
--- a/data/PVE/CLI/pvecm.pm
+++ b/data/PVE/CLI/pvecm.pm
@@ -133,15 +133,6 @@ __PACKAGE__->register_method ({
                    " Defaults to the hostname of the node.",
                optional => 1,
            },
-           rrp_mode => {
-               type => 'string',
-               enum => ['none', 'active', 'passive'],
-               description => "This specifies the mode of redundant ring, 
which" .
-                   " may be none, active or passive. Using multiple 
interfaces".
-                   " only allows 'active' or 'passive'.",
-               default => 'none',
-               optional => 1,
-           },
            bindnet1_addr => {
                type => 'string', format => 'ip',
                description => "This specifies the network address the corosync 
ring 1".
@@ -202,13 +193,11 @@ __PACKAGE__->register_method ({
            die "IPv6 and IPv4 cannot be mixed, use one or the other!\n"
                if Net::IP::ip_is_ipv6($param->{bindnet1_addr}) != 
$bind_is_ipv6;
 
-           die "rrp_mode 'none' is not allowed when using multiple 
interfaces,".
-               " use 'active' or 'passive'!\n"
-               if !$param->{rrp_mode} || $param->{rrp_mode} eq 'none';
-
            $interfaces .= "\n  interface {\n    ringnumber: 1\n" .
                "    bindnetaddr: $param->{bindnet1_addr}\n  }\n";
 
+           $interfaces .= "rrp_mode: passive\n"; # only passive is stable and 
tested
+
            $ring_addresses .= "\n    ring1_addr: $param->{ring1_addr}";
 
        } elsif($param->{rrp_mode} && $param->{rrp_mode} ne 'none') {
@@ -220,9 +209,6 @@ __PACKAGE__->register_method ({
 
        }
 
-       $interfaces = "rrp_mode: $param->{rrp_mode}\n  " . $interfaces
-           if $param->{rrp_mode};
-
        # No, corosync cannot deduce this on its own
        my $ipversion = $bind_is_ipv6 ? 'ipv6' : 'ipv4';
 
-- 
2.1.4


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to