View | Details | Raw Unified | Return to bug 36639
Collapse All | Expand All

(-)umc/python/adtakeover/takeover.py (-9 / +21 lines)
 Lines 621-636    Link Here 
621
		self.username = username
621
		self.username = username
622
		self.password = password
622
		self.password = password
623
623
624
		creds = Credentials()
624
		self.creds = Credentials()
625
		# creds.guess(lp)
625
		# creds.guess(lp)
626
		creds.set_domain("")
626
		self.creds.set_domain("")
627
		creds.set_workstation("")
627
		self.creds.set_workstation("")
628
		creds.set_kerberos_state(DONT_USE_KERBEROS)
628
		self.creds.set_kerberos_state(DONT_USE_KERBEROS)
629
		creds.set_username(self.username)
629
		self.creds.set_username(self.username)
630
		creds.set_password(self.password)
630
		self.creds.set_password(self.password)
631
631
632
		try:
632
		try:
633
			self.samdb = SamDB(self.ldap_uri, credentials=creds, session_info=system_session(self.lp), lp=self.lp)
633
			self.samdb = SamDB(self.ldap_uri, credentials=self.creds, session_info=system_session(self.lp), lp=self.lp)
634
		except ldb.LdbError:
634
		except ldb.LdbError:
635
			raise AuthenticationFailed()
635
			raise AuthenticationFailed()
636
636
 Lines 638-644    Link Here 
638
		ntds_guid = self.samdb.get_ntds_GUID()
638
		ntds_guid = self.samdb.get_ntds_GUID()
639
		local_ntds_guid = None
639
		local_ntds_guid = None
640
		try:
640
		try:
641
			local_samdb = SamDB("ldap://127.0.0.1", credentials=creds, session_info=system_session(self.lp), lp=self.lp)
641
			local_samdb = SamDB("ldap://127.0.0.1", credentials=self.creds, session_info=system_session(self.lp), lp=self.lp)
642
			local_ntds_guid = local_samdb.get_ntds_GUID()
642
			local_ntds_guid = local_samdb.get_ntds_GUID()
643
		except ldb.LdbError:
643
		except ldb.LdbError:
644
			pass
644
			pass
 Lines 672-677    Link Here 
672
		self.domain_info = lookup_adds_dc(self.hostname_or_ip)
672
		self.domain_info = lookup_adds_dc(self.hostname_or_ip)
673
		self.domain_info['ad_os'] = self.operatingSystem(self.domain_info["ad_netbios_name"])
673
		self.domain_info['ad_os'] = self.operatingSystem(self.domain_info["ad_netbios_name"])
674
674
675
	def reconnect(self):
676
		try:
677
			self.samdb = SamDB(self.ldap_uri, credentials=self.creds, session_info=system_session(self.lp), lp=self.lp)
678
		except ldb.LdbError:
679
			raise AuthenticationFailed()
680
675
	def operatingSystem(self, netbios_name):
681
	def operatingSystem(self, netbios_name):
676
		msg = self.samdb.search(base=self.samdb.domain_dn(), scope=samba.ldb.SCOPE_SUBTREE,
682
		msg = self.samdb.search(base=self.samdb.domain_dn(), scope=samba.ldb.SCOPE_SUBTREE,
677
						expression="(sAMAccountName=%s$)" % netbios_name,
683
						expression="(sAMAccountName=%s$)" % netbios_name,
 Lines 1033-1039    Link Here 
1033
1039
1034
		## Fix some attributes in local SamDB
1040
		## Fix some attributes in local SamDB
1035
		operatingSystem_attribute(self.ucr, self.samdb)
1041
		operatingSystem_attribute(self.ucr, self.samdb)
1036
		takeover_DC_Behavior_Version(self.ucr, self.AD.samdb, self.samdb, self.ad_server_name, self.AD.domain_info["ad_server_site"])
1042
		try:
1043
			takeover_DC_Behavior_Version(self.ucr, self.AD.samdb, self.samdb, self.ad_server_name, self.AD.domain_info["ad_server_site"])
1044
		except ldb.LdbError as ex:
1045
			log.debug('Exception during LDAP search of remote LDAP: %s' % (ex.args[0],))
1046
			log.debug('Might be due to a timeout, attempting to reconnect.')
1047
			self.AD.reconnect()
1048
			takeover_DC_Behavior_Version(self.ucr, self.AD.samdb, self.samdb, self.ad_server_name, self.AD.domain_info["ad_server_site"])
1037
1049
1038
		## Fix some attributes in SecretsDB
1050
		## Fix some attributes in SecretsDB
1039
		secretsdb = samba.Ldb(os.path.join(SAMBA_PRIVATE_DIR, "secrets.ldb"), session_info=system_session(self.lp), lp=self.lp)
1051
		secretsdb = samba.Ldb(os.path.join(SAMBA_PRIVATE_DIR, "secrets.ldb"), session_info=system_session(self.lp), lp=self.lp)

Return to bug 36639