[pve-devel] [PATCH cluster v2] error out when getting remote ip address fails

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Nov 9 09:30:44 CET 2016


remove the noerr flag so that we error out when we get multiple IPs
from a CIDR or none at all, the user has to guarantee that his CIDR
matches just one IP on each local host.

Catch an possible error and die on it, if simply no migration ip is
given as a parameter and also not set in datacenter.cfg just print
out 'no ip' and return as previously.

Signed-off-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
---
 data/PVE/CLI/pvecm.pm | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/data/PVE/CLI/pvecm.pm b/data/PVE/CLI/pvecm.pm
index 65a063d..04c7462 100755
--- a/data/PVE/CLI/pvecm.pm
+++ b/data/PVE/CLI/pvecm.pm
@@ -867,10 +867,17 @@ __PACKAGE__->register_method ({
 
 	if ($param->{get_migration_ip}) {
 	    my $network = $param->{migration_network};
-	    if (my $ip = PVE::Cluster::get_local_migration_ip($network, 1)) {
+
+	    my $ip;
+	    eval { $ip = PVE::Cluster::get_local_migration_ip($network); };
+	    my $err = $@;
+
+	    if ($err) {
+		die "could not get migration ip: $err\n";
+	    } elsif (defined($ip)) {
 		print "ip: '$ip'\n";
 	    } else {
-		print "no ip\n"
+		print "no ip\n";
 	    }
 	    # do not keep tunnel open when asked for migration ip
 	    return undef;
-- 
2.1.4





More information about the pve-devel mailing list