self.info("Restarting bind9")
self.chdir('${PREFIX}')
- self.set_nameserver(self.getvar('INTERFACE_IP'))
-
self.run_cmd("mkdir -p var/named/data")
self.run_cmd("chown -R ${BIND_USER} var/named")
while retries > 0:
child = self.pexpect_spawn("nc -v -z -w 1 %s %u" % (hostname, port), crlf=False, timeout=1)
- i = child.expect(['succeeded', 'failed', pexpect.EOF, pexpect.TIMEOUT])
+ child.expect([pexpect.EOF, pexpect.TIMEOUT])
+ child.close()
+ i = child.exitstatus
if wait_for_fail:
- if i > 0:
+ #wait for timeout or fail
+ if i == None or i > 0:
return
else:
if i == 0:
child.sendline("shutdown -r -t 0")
self.port_wait("${WIN_IP}", 139, wait_for_fail=True)
self.port_wait("${WIN_IP}", 139)
- self.retry_cmd("host -t SRV _ldap._tcp.${WIN_REALM} ${WIN_IP}", ['has SRV record'] )
+ self.retry_cmd("host -t SRV _ldap._tcp.${WIN_REALM} ${WIN_IP}", ['has SRV record'], retries=60, delay=5 )
def start_winvm(self, vm):
self.setwinvars(vm)
self.info('Testing smbclient')
self.chdir('${PREFIX}')
- self.cmd_contains("bin/smbclient --version", ["${SAMBA_VERSION}"])
- self.retry_cmd('bin/smbclient -L ${WIN_HOSTNAME} -U%s%%%s %s' % (username, password, args), ["IPC"], retries=60, delay=5)
+ smbclient = self.getvar("smbclient")
+ self.cmd_contains("%s --version" % (smbclient), ["${SAMBA_VERSION}"])
+ self.retry_cmd('%s -L ${WIN_HOSTNAME} -U%s%%%s %s' % (smbclient, username, password, args), ["IPC"], retries=60, delay=5)
def test_net_use(self, vm, realm, domain, username, password):
self.setwinvars(vm)
self.parser.add_option("--prefix", type='string', default=None, help='override install prefix')
self.parser.add_option("--sourcetree", type='string', default=None, help='override sourcetree location')
self.parser.add_option("--nocleanup", action='store_true', default=False, help='disable cleanup code')
+ self.parser.add_option("--use-ntvfs", action='store_true', default=False, help='use NTVFS for the fileserver')
+ self.parser.add_option("--dns-backend", type="choice",
+ choices=["SAMBA_INTERNAL", "BIND9_FLATFILE", "BIND9_DLZ", "NONE"],
+ help="The DNS server backend. SAMBA_INTERNAL is the builtin name server, " \
+ "BIND9_FLATFILE uses bind9 text database to store zone information, " \
+ "BIND9_DLZ uses samba4 AD to store zone information (default), " \
+ "NONE skips the DNS setup entirely (not recommended)",
+ default="BIND9_DLZ")
self.opts, self.args = self.parser.parse_args()
self.info('cleaning')
self.chdir('${SOURCETREE}/' + subdir)
self.run_cmd('make clean')
+
+ if self.opts.use_ntvfs:
+ self.setvar('USE_NTVFS', "--use-ntvfs")
+ else:
+ self.setvar('USE_NTVFS', "")
+
+ self.setvar('NAMESERVER_BACKEND', self.opts.dns_backend)
+
+ if self.opts.dns_backend == 'SAMBA_INTERNAL':
+ self.setvar('ALLOW_DNS_UPDATES', '--option=allow dns updates = True')
+ # we need recursive queries, since host expects answers with RA-bit
+ self.setvar('DNS_RECURSIVE_QUERIES', '--option=dns recursive queries = Yes')
+ else:
+ self.setvar('ALLOW_DNS_UPDATES', '')
+ self.setvar('DNS_RECURSIVE_QUERIES', '')