summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob van der Linde <rob@catalyst.net.nz>2023-02-23 16:56:07 +1300
committerJule Anger <janger@samba.org>2023-04-05 12:01:12 +0000
commit5382bf6344cc417144136957cc5e04f6f0aa1fcd (patch)
tree4ab7e160e761568dd74533074dac32d14ef6697e
parente9f5d1c03bcb800fc6e01a11c49cf5c193d6a00c (diff)
downloadsamba-5382bf6344cc417144136957cc5e04f6f0aa1fcd.tar.gz
selftest: make two samba-tool drs tests generic
BUG: https://bugzilla.samba.org/show_bug.cgi?id=15316 Signed-off-by: Rob van der Linde <rob@catalyst.net.nz> Reviewed-by: Andrew Bartlett <abartlet@samba.org> Reviewed-by: Joseph Sutton <josephsutton@catalyst.net.nz> (cherry picked from commit 1368e359b2a75b6b683aff274b2b2084f3cd469b)
-rw-r--r--source4/torture/drs/python/samba_tool_drs_showrepl.py35
1 files changed, 24 insertions, 11 deletions
diff --git a/source4/torture/drs/python/samba_tool_drs_showrepl.py b/source4/torture/drs/python/samba_tool_drs_showrepl.py
index de7f89336e3..bba840ce379 100644
--- a/source4/torture/drs/python/samba_tool_drs_showrepl.py
+++ b/source4/torture/drs/python/samba_tool_drs_showrepl.py
@@ -50,6 +50,21 @@ class SambaToolDrsShowReplTests(drs_base.DrsBaseTestCase):
def test_samba_tool_showrepl(self):
"""Tests 'samba-tool drs showrepl' command.
"""
+ nc_list = [self.config_dn, self.domain_dn, self.schema_dn]
+ dns_name = self.ldb_dc1.domain_dns_name()
+
+ # Manually run kcc to create a "Connection" object, so we can find
+ # this for the expected output below.
+ kcc_out = self.check_output("samba-tool drs kcc %s %s" % (self.dc1,
+ self.cmdline_creds))
+ self.assertIn(b"successful", kcc_out)
+
+ # Run replicate to ensure there are incoming and outgoing partners
+ # exist, so we can expect these in the output below.
+ for nc in nc_list:
+ self._net_drs_replicate(DC=self.dnsname_dc2, fromDC=self.dnsname_dc1, nc_dn=nc, forced=True)
+ self._net_drs_replicate(DC=self.dnsname_dc1, fromDC=self.dnsname_dc2, nc_dn=nc, forced=True)
+
# Output should be like:
# <site-name>/<domain-name>
# DSA Options: <hex-options>
@@ -79,22 +94,20 @@ class SambaToolDrsShowReplTests(drs_base.DrsBaseTestCase):
self.assertEqual(_conn, ' KCC CONNECTION OBJECTS ')
self.assertRegex(header,
- r'^Default-First-Site-Name\\LOCALDC\s+'
+ r'^Default-First-Site-Name\\%s\s+'
r"DSA Options: %s\s+"
r"DSA object GUID: %s\s+"
r"DSA invocationId: %s" %
- (HEX8_RE, GUID_RE, GUID_RE))
+ (self.dc1.upper(), HEX8_RE, GUID_RE, GUID_RE))
# We don't assert the DomainDnsZones and ForestDnsZones are
# there because we don't know that they have been set up yet.
- for p in ['CN=Configuration,DC=samba,DC=example,DC=com',
- 'DC=samba,DC=example,DC=com',
- 'CN=Schema,CN=Configuration,DC=samba,DC=example,DC=com']:
+ for p in nc_list:
self.assertRegex(
inbound,
r'%s\n'
- r'\tDefault-First-Site-Name\\[A-Z]+ via RPC\n'
+ r'\tDefault-First-Site-Name\\[A-Z0-9]+ via RPC\n'
r'\t\tDSA object GUID: %s\n'
r'\t\tLast attempt @ [^\n]+\n'
r'\t\t\d+ consecutive failure\(s\).\n'
@@ -105,7 +118,7 @@ class SambaToolDrsShowReplTests(drs_base.DrsBaseTestCase):
self.assertRegex(
outbound,
r'%s\n'
- r'\tDefault-First-Site-Name\\[A-Z]+ via RPC\n'
+ r'\tDefault-First-Site-Name\\[A-Z0-9]+ via RPC\n'
r'\t\tDSA object GUID: %s\n'
r'\t\tLast attempt @ [^\n]+\n'
r'\t\t\d+ consecutive failure\(s\).\n'
@@ -117,13 +130,14 @@ class SambaToolDrsShowReplTests(drs_base.DrsBaseTestCase):
r'Connection --\n'
r'\tConnection name: %s\n'
r'\tEnabled : TRUE\n'
- r'\tServer DNS name : \w+.samba.example.com\n'
+ r'\tServer DNS name : \w+.%s\n'
r'\tServer DN name : %s'
- r'\n' % (GUID_RE, DN_RE))
+ r'\n' % (GUID_RE, dns_name, DN_RE))
def test_samba_tool_showrepl_json(self):
"""Tests 'samba-tool drs showrepl --json' command.
"""
+ dns_name = self.ldb_dc1.domain_dns_name()
out = self.check_output("samba-tool drs showrepl %s %s --json" %
(self.dc1, self.cmdline_creds))
d = json.loads(get_string(out))
@@ -151,8 +165,7 @@ class SambaToolDrsShowReplTests(drs_base.DrsBaseTestCase):
# ntdsconnection
for n in d["NTDSConnections"]:
- self.assertRegex(n["dns name"],
- r'^[\w]+\.samba\.example\.com$')
+ self.assertTrue(n["dns name"].endswith(dns_name))
self.assertRegex(n["name"], "^%s$" % GUID_RE)
self.assertTrue(isinstance(n['enabled'], bool))
self.assertTrue(isinstance(n['options'], int))