From: Andrew Bartlett Date: Mon, 5 Nov 2012 08:35:51 +0000 (+1100) Subject: wintest: Try harder to recover from apparent failure to dcpromo X-Git-Tag: ldb-1.1.14~45 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=abbbbb5cdc39b71c0f243ff1e660d1f35a4923e3;p=thirdparty%2Fsamba.git wintest: Try harder to recover from apparent failure to dcpromo Reviewed-by: Jelmer Vernooij Signed-off-by: Andrew Bartlett --- diff --git a/wintest/wintest.py b/wintest/wintest.py index c0f1eebebfe..61664ae87d8 100644 --- a/wintest/wintest.py +++ b/wintest/wintest.py @@ -852,12 +852,23 @@ RebootOnCompletion=No child.expect("C:") child.expect("C:") child.sendline("dcpromo /answer:answers.txt") - i = child.expect(["You must restart this computer", "failed", "Active Directory Domain Services was not installed", "C:"], timeout=240) + i = child.expect(["You must restart this computer", "failed", "Active Directory Domain Services was not installed", "C:", pexpect.TIMEOUT], timeout=240) if i == 1 or i == 2: raise Exception("dcpromo failed") + if i == 4: # timeout + child = self.open_telnet("${WIN_HOSTNAME}", "administrator", "${WIN_PASS}") + child.sendline("shutdown -r -t 0") self.port_wait("${WIN_IP}", 139, wait_for_fail=True) self.port_wait("${WIN_IP}", 139) + + child = self.open_telnet("${WIN_HOSTNAME}", "administrator", "${WIN_PASS}") + # Check if we became a DC by now + if not self.get_is_dc(child): + raise Exception("dcpromo failed (and wasn't a DC even after rebooting)") + # Give DNS registration a kick + child.sendline("ipconfig /registerdns") + self.retry_cmd("host -t SRV _ldap._tcp.${WIN_REALM} ${WIN_IP}", ['has SRV record'], retries=60, delay=5 )