samba-tool: Python routine to find writable/ldap-capable DC
authorAmitay Isaacs <amitay@gmail.com>
Tue, 26 Jul 2011 03:46:17 +0000 (13:46 +1000)
committerAndrew Tridgell <tridge@samba.org>
Thu, 28 Jul 2011 05:20:53 +0000 (15:20 +1000)
Signed-off-by: Andrew Tridgell <tridge@samba.org>
source4/scripting/python/samba/netcmd/common.py

index bd72c8f36138e59f754d2f9e423cfd166c4feb5c..71629ef08d2ef213456a376b89f5106062f54526 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 
+from samba.dcerpc import nbt
+from samba.net import Net
+
+
 def netcmd_dnsname(lp):
     '''return the full DNS name of our own host. Used as a default
        for hostname when running status queries'''
     return lp.get('netbios name').lower() + "." + lp.get('realm').lower()
+
+
+def netcmd_finddc(lp, creds):
+    '''return domain-name of a writable/ldap-capable DC for the domain.'''
+    net = Net(creds=creds, lp=lp)
+    realm = lp.get('realm')
+    cldap_ret = net.finddc(realm,
+                nbt.NBT_SERVER_LDAP | nbt.NBT_SERVER_DS | nbt.NBT_SERVER_WRITABLE)
+    return cldap_ret.pdc_dns_name