join.py: Handle exceptions when looking for GUID in a DN
authorAndrew Bartlett <abartlet@samba.org>
Tue, 3 Sep 2013 05:41:42 +0000 (17:41 +1200)
committerStefan Metzmacher <metze@samba.org>
Mon, 16 Sep 2013 17:35:21 +0000 (19:35 +0200)
Signed-off-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
python/samba/join.py

index b2f4da4790cb5ea026bbf69ee5a98660933b9cb8..cad228a71adb0ad8ddc54f53e83d121116d97c09 100644 (file)
@@ -303,7 +303,11 @@ class dc_join(object):
                                scope=ldb.SCOPE_BASE, controls=["extended_dn:1:1"])
         if not 'fSMORoleOwner' in res[0]:
             raise DCJoinException("Can't find naming master on partition DN %s" % ctx.partition_dn)
-        master_guid = str(misc.GUID(ldb.Dn(ctx.samdb, res[0]['fSMORoleOwner'][0]).get_extended_component('GUID')))
+        try:
+            master_guid = str(misc.GUID(ldb.Dn(ctx.samdb, res[0]['fSMORoleOwner'][0]).get_extended_component('GUID')))
+        except KeyError:
+            raise DCJoinException("Can't find GUID in naming master on partition DN %s" % res[0]['fSMORoleOwner'][0])
+
         master_host = '%s._msdcs.%s' % (master_guid, ctx.dnsforest)
         return master_host