summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAn-Cheng Huang <ancheng@vyatta.com>2008-04-07 15:06:40 -0700
committerAn-Cheng Huang <ancheng@vyatta.com>2008-04-07 15:06:40 -0700
commit90bfb8446d408313e9c73335889629e10e616265 (patch)
treeaac3967b9fc078297a802f04d7b431b776624b34
parent63d4544c809b1fbfea9e40ef00bca1f963113c6a (diff)
downloadvyatta-cluster-90bfb8446d408313e9c73335889629e10e616265.tar.gz
vyatta-cluster-90bfb8446d408313e9c73335889629e10e616265.zip
fix for bugs 2970, 3109, 3110:
* replace output messages. * add interface checks.
-rw-r--r--scripts/VyattaClusterConfig.pm8
-rwxr-xr-xscripts/vyatta-update-cluster.pl13
2 files changed, 18 insertions, 3 deletions
diff --git a/scripts/VyattaClusterConfig.pm b/scripts/VyattaClusterConfig.pm
index 08c31de..a7ce914 100644
--- a/scripts/VyattaClusterConfig.pm
+++ b/scripts/VyattaClusterConfig.pm
@@ -169,6 +169,14 @@ sub check_interfaces {
if ($? >> 8) {
return "interface $_ does not exist";
}
+ my $link = `ip link show $_ | grep $_`;
+ if (($link =~ /NO-CARRIER/) || !($link =~ /,UP/)) {
+ return "interface $_ is not connected";
+ }
+ system("ip addr show dev $_ |grep 'inet ' |grep -q 'scope global'");
+ if ($? >> 8) {
+ return "interface $_ is not configured";
+ }
}
return undef;
}
diff --git a/scripts/vyatta-update-cluster.pl b/scripts/vyatta-update-cluster.pl
index 56545e5..ada461f 100755
--- a/scripts/vyatta-update-cluster.pl
+++ b/scripts/vyatta-update-cluster.pl
@@ -74,8 +74,15 @@ foreach (@init_services) {
# restart clustering.
# using "stop" + "start" ("restart" will cause a long wait).
# (may need to change to "restart".)
-system("$HA_INIT stop");
-system("$HA_INIT start");
-
+print "Starting clustering...";
+system("$HA_INIT stop >&/dev/null");
+system("$HA_INIT start >&/dev/null");
+if ($? >> 8) {
+ print "\nError: Clustering failed to start.\n";
+ print "Please make sure all clustering interfaces are functional\n";
+ print "and retry the commit.\n";
+ exit 1;
+}
+print " Done\n";
exit 0;