summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
authorTim Beale <timbeale@catalyst.net.nz>2019-01-16 15:17:38 +1300
committerKarolin Seeger <kseeger@samba.org>2019-02-05 15:33:25 +0100
commit7acef6b7f43e6d82136bd5c80c782eb6713f280b (patch)
treee6f09aceb32b8102daba0cb543d009c8cd6c2ad4 /python
parent244bd50e3643388cb15256b5b58b68b990fb3f69 (diff)
downloadsamba-7acef6b7f43e6d82136bd5c80c782eb6713f280b.tar.gz
join: Fix TypeError when handling exception
When we can't resolve a domain name, we were inadvertently throwing a TypeError whilst trying to output a helpful message. E.g. ERROR(<class 'TypeError'>): uncaught exception - 'NTSTATUSError' object does not support indexing Instead of indexing the object, we want to index the Exception.args so that we just display the string portion of the exception error. The same problem is also present for the domain trust commands. BUG: https://bugzilla.samba.org/show_bug.cgi?id=13747 Signed-off-by: Tim Beale <timbeale@catalyst.net.nz> Reviewed-by: Rowland Penny <rpenny@samba.org> Reviewed-by: Jeremy Allison <rpenny@samba.org> (cherry picked from commit 3bb7808984c163a7bba66fb983411d1281589722 and modified to work for 4.8 - note that the NTSTATUSError exception wasn't even imported on 4.8)
Diffstat (limited to 'python')
-rw-r--r--python/samba/join.py4
-rw-r--r--python/samba/netcmd/domain.py2
2 files changed, 3 insertions, 3 deletions
diff --git a/python/samba/join.py b/python/samba/join.py
index 9782f536dce..32fac680b1f 100644
--- a/python/samba/join.py
+++ b/python/samba/join.py
@@ -35,7 +35,7 @@ from samba.provision.sambadns import setup_bind9_dns
from samba import read_and_sub_file
from samba import werror
from base64 import b64encode
-from samba import WERRORError
+from samba import WERRORError, NTSTATUSError
from samba.dnsserver import ARecord, AAAARecord, PTRRecord, CNameRecord, NSRecord, MXRecord, SOARecord, SRVRecord, TXTRecord
from samba import sd_utils
import logging
@@ -338,7 +338,7 @@ class dc_join(object):
ctx.cldap_ret = ctx.net.finddc(domain=domain, flags=nbt.NBT_SERVER_LDAP | nbt.NBT_SERVER_DS | nbt.NBT_SERVER_WRITABLE)
except NTSTATUSError as error:
raise Exception("Failed to find a writeable DC for domain '%s': %s" %
- (domain, error[1]))
+ (domain, error.args[1]))
except Exception:
raise Exception("Failed to find a writeable DC for domain '%s'" % domain)
if ctx.cldap_ret.client_site is not None and ctx.cldap_ret.client_site != "":
diff --git a/python/samba/netcmd/domain.py b/python/samba/netcmd/domain.py
index 38c800c711b..2901605ce29 100644
--- a/python/samba/netcmd/domain.py
+++ b/python/samba/netcmd/domain.py
@@ -1773,7 +1773,7 @@ class DomainTrustCommand(Command):
remote_info = remote_net.finddc(flags=remote_flags, domain=domain, address=remote_server)
except NTSTATUSError as error:
raise CommandError("Failed to find a writeable DC for domain '%s': %s" %
- (domain, error[1]))
+ (domain, error.args[1]))
except Exception:
raise CommandError("Failed to find a writeable DC for domain '%s'" % domain)
flag_map = {