You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by fa...@apache.org on 2010/08/30 20:38:52 UTC

svn commit: r990890 - /incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm

Author: fapeeler
Date: Mon Aug 30 18:38:52 2010
New Revision: 990890

URL: http://svn.apache.org/viewvc?rev=990890&view=rev
Log:
VCL-224

checking for additional dns servers, 
break apart and use netsh cmd with different args for alternate dns server

Modified:
    incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm

Modified: incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm?rev=990890&r1=990889&r2=990890&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm Mon Aug 30 18:38:52 2010
@@ -7203,6 +7203,11 @@ sub set_static_public_address {
 	my $default_gateway = $self->get_public_default_gateway() || 'undefined';
 	my $dns_server = $self->data->get_management_node_public_dns_server() || 'undefined';
 	
+	# Windows does not handle comma delimited dns servers. 
+	# We will split and if we have > 1 dns servers we will add them as alternates.
+
+	my ($dns_server_primary, $dns_server_alt1, $dns_server_alt2) = split(",",$dns_server);
+	
 	# Make sure required info was retrieved
 	if ("$public_interface_name $subnet_mask $default_gateway $dns_server" =~ /undefined/) {
 		notify($ERRORS{'WARNING'}, 0, "unable to retrieve required network configuration:\ninterface: $public_interface_name\npublic IP address: $public_ip_address\nsubnet mask=$subnet_mask\ndefault gateway=$default_gateway\ndns server=$dns_server");
@@ -7244,20 +7249,35 @@ sub set_static_public_address {
 	}
 	
 	# Set the static DNS server address
-	my $dns_command = "netsh interface ip set dns name=\"$public_interface_name\" source=static addr=$dns_server register=none";
+	my $dns_command = "netsh interface ip set dns name=\"$public_interface_name\" source=static addr=$dns_server_primary register=none";
 	my ($dns_exit_status, $dns_output) = run_ssh_command($computer_node_name, $management_node_keys, $dns_command);
 	if (defined($dns_exit_status) && $dns_exit_status == 0) {
-		notify($ERRORS{'DEBUG'}, 0, "set static DNS server address to $dns_server");
+		notify($ERRORS{'DEBUG'}, 0, "set static DNS server address to $dns_server_primary");
 	}
 	elsif (defined($dns_exit_status)) {
-		notify($ERRORS{'WARNING'}, 0, "failed to set static DNS server address to $dns_server, exit status: $dns_exit_status, output:\n@{$dns_output}");
+		notify($ERRORS{'WARNING'}, 0, "failed to set static DNS server address to $dns_server_primary, exit status: $dns_exit_status, output:\n@{$dns_output}");
 		return 0;
 	}
 	else {
-		notify($ERRORS{'WARNING'}, 0, "failed to run ssh command to set static DNS server address to $dns_server");
+		notify($ERRORS{'WARNING'}, 0, "failed to run ssh command to set static DNS server address to $dns_server_primary");
 		return;
 	}
 	
+	# We are only going to set up alternate dns server		
+	if(defined($dns_server_alt1) && $dns_server_alt1){
+		my $dns_alt1_command = "netsh interface ip add dns name=\"$public_interface_name\" addr=$dns_server_alt1";
+        	my ($dns_a_exit_status, $dns_a_output) = run_ssh_command($computer_node_name, $management_node_keys, $dns_alt1_command);
+        	if (defined($dns_a_exit_status) && $dns_a_exit_status == 0) {
+                	notify($ERRORS{'DEBUG'}, 0, "set static DNS server address to $dns_server_alt1");
+        	}	
+        	elsif (defined($dns_a_exit_status)) {
+                	notify($ERRORS{'WARNING'}, 0, "failed to set static DNS server address to $dns_server_alt1, exit status: $dns_a_exit_status, output:\n@{$dns_a_output}");
+        	}
+        	else {
+                	notify($ERRORS{'WARNING'}, 0, "failed to run ssh command to set static DNS server address to $dns_server_alt1");
+        	}
+	}
+	
 	# Add persistent static public default route
 	if (!$self->set_public_default_route()) {
 		notify($ERRORS{'WARNING'}, 0, "failed to add persistent static public default route");