summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/samba/getopt.py3
-rw-r--r--python/samba/netcmd/__init__.py9
2 files changed, 10 insertions, 2 deletions
diff --git a/python/samba/getopt.py b/python/samba/getopt.py
index a271cd8a736..4e70998d9d9 100644
--- a/python/samba/getopt.py
+++ b/python/samba/getopt.py
@@ -31,6 +31,9 @@ from samba.credentials import (
import sys
+OptionError = optparse.OptionValueError
+
+
class SambaOptions(optparse.OptionGroup):
"""General Samba-related command line options."""
diff --git a/python/samba/netcmd/__init__.py b/python/samba/netcmd/__init__.py
index 40b9b213f70..b98f8a47fd0 100644
--- a/python/samba/netcmd/__init__.py
+++ b/python/samba/netcmd/__init__.py
@@ -19,7 +19,7 @@
import optparse
import samba
from samba import colour
-from samba.getopt import SambaOption
+from samba.getopt import SambaOption, OptionError
from samba.logger import get_samba_logger
from ldb import LdbError, ERR_INVALID_CREDENTIALS
import sys
@@ -110,7 +110,12 @@ class Command(object):
message = "uncaught exception"
force_traceback = True
- if isinstance(inner_exception, LdbError):
+ if isinstance(e, OptionError):
+ print(evalue, file=self.errf)
+ self.usage()
+ force_traceback = False
+
+ elif isinstance(inner_exception, LdbError):
(ldb_ecode, ldb_emsg) = inner_exception.args
if ldb_ecode == ERR_INVALID_CREDENTIALS:
print("Invalid username or password", file=self.errf)