You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by ar...@apache.org on 2017/07/13 16:54:57 UTC

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

Author: arkurth
Date: Thu Jul 13 16:54:57 2017
New Revision: 1801845

URL: http://svn.apache.org/viewvc?rev=1801845&view=rev
Log:
VCL-867
Moved call to ad_delete_computer from ad_join_prepare to ad_join_ps after the computer hostname is changed and the computer is rebooted. ad_delete_computer was intermittently failing due to not being able to resolve the domain DNS name. It seems more reliable to set the static DNS server via ad_join_prepare, reboot, then try to delete an existing object.

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

Modified: vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm
URL: http://svn.apache.org/viewvc/vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm?rev=1801845&r1=1801844&r2=1801845&view=diff
==============================================================================
--- vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm (original)
+++ vcl/trunk/managementnode/lib/VCL/Module/OS/Windows.pm Thu Jul 13 16:54:57 2017
@@ -13497,12 +13497,6 @@ sub ad_join_prepare {
 	# Set specific DNS servers for private and public interfaces if DNS servers are configured
 	$self->set_static_dns_servers();
 	
-	# Need to make sure computer object with same name doesn't already exist
-	# If object exists in different OU, the following error will occur when attempting to join the domain:
-	#    This command cannot be executed on target computer('<name>') due to following error: The account already exists.
-	# Don't bother moving existing objects
-	$self->ad_delete_computer();
-	
 	return 1;
 }
 
@@ -13745,6 +13739,11 @@ sub ad_join_ps {
 	#	}
 	#}
 	
+	# Need to make sure computer object with same name doesn't already exist
+	# If object exists in different OU, the following error will occur when attempting to join the domain:
+	#    This command cannot be executed on target computer('<name>') due to following error: The account already exists.
+	# Don't bother moving existing objects
+	$self->ad_delete_computer();
 	
 	# Assemble the PowerShell script
 	my $ad_powershell_script = <<EOF;
@@ -13917,6 +13916,8 @@ sub ad_join_wmic {
 		$rename_computer_reboot_duration = (time - $rename_computer_reboot_start);
 	}
 	
+	$self->ad_delete_computer();
+	
 	my $error_messages = {
 		5    => 'Access is denied',
 		53   => 'Network path not found',
@@ -14412,7 +14413,7 @@ ForEach($result in $results) {
    }
 }
 EOF
-	
+
 	my ($exit_status, $output);
 	for (my $attempt=1; $attempt<=$attempt_limit; $attempt++) {
 		($exit_status, $output) = $self->run_powershell_as_script($powershell_script_contents, 0, 0);