The Samba-Bugzilla – Attachment 14780 Details for
Bug 13747
Untidy error handling in samba-tool domain join
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
Fix backport for 4.8
v4.8-patch.txt (text/plain), 5.18 KB, created by
Tim Beale
on 2019-01-17 02:52:56 UTC
(
hide
)
Description:
Fix backport for 4.8
Filename:
MIME Type:
Creator:
Tim Beale
Created:
2019-01-17 02:52:56 UTC
Size:
5.18 KB
patch
obsolete
>From 91a3c85856ee43f4e0868b9eb30c5d41be853f13 Mon Sep 17 00:00:00 2001 >From: Tim Beale <timbeale@catalyst.net.nz> >Date: Wed, 16 Jan 2019 15:17:38 +1300 >Subject: [PATCH 1/2] 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) >--- > python/samba/join.py | 4 ++-- > python/samba/netcmd/domain.py | 2 +- > 2 files changed, 3 insertions(+), 3 deletions(-) > >diff --git a/python/samba/join.py b/python/samba/join.py >index 9782f53..32fac68 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 38c800c..2901605 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 = { >-- >2.7.4 > > >From 62396697a3232b984c3336de8fa134232203d3d5 Mon Sep 17 00:00:00 2001 >From: Tim Beale <timbeale@catalyst.net.nz> >Date: Wed, 16 Jan 2019 15:37:00 +1300 >Subject: [PATCH 2/2] join: Throw CommandError instead of Exception for simple > errors > >Throwing an exception here still dumps out the Python stack trace, which >can be a little disconcerting for users. > >In this case, the stack trace isn't going to really help at all (the >problem is pretty obvious), and it obscures the useful message >explaining what went wrong. > >Throw a CommandError instead, which samba-tool will catch and display >more nicely. > >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> > >Autobuild-User(master): Jeremy Allison <jra@samba.org> >Autobuild-Date(master): Wed Jan 16 22:11:04 CET 2019 on sn-devel-144 > >(cherry picked from commit 9e4b08f4c384b8cae5ad853a7be7cf03e2749be5) >--- > python/samba/join.py | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > >diff --git a/python/samba/join.py b/python/samba/join.py >index 32fac68..d577df0 100644 >--- a/python/samba/join.py >+++ b/python/samba/join.py >@@ -42,6 +42,7 @@ import logging > import talloc > import random > import time >+from samba.netcmd import CommandError > > class DCJoinException(Exception): > >@@ -337,10 +338,10 @@ class dc_join(object): > try: > 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.args[1])) >+ raise CommandError("Failed to find a writeable DC for domain '%s': %s" % >+ (domain, error.args[1])) > except Exception: >- raise Exception("Failed to find a writeable DC for domain '%s'" % domain) >+ raise CommandError("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 != "": > ctx.site = ctx.cldap_ret.client_site > return ctx.cldap_ret.pdc_dns_name >-- >2.7.4 >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Flags:
dbagnall
:
review+
Actions:
View
Attachments on
bug 13747
: 14780 |
14781
|
14782