[svn] commit: r2516 - in /branches/trac277: ChangeLog src/bin/cmdctl/cmdctl.py.in src/bin/cmdctl/tests/cmdctl_test.py
BIND 10 source code commits
bind10-changes at lists.isc.org
Fri Jul 16 06:05:33 UTC 2010
Author: zhanglikun
Date: Fri Jul 16 06:05:32 2010
New Revision: 2516
Log:
Make cmdctl output be more friendly when running cmdctl and it's running already.
Modified:
branches/trac277/ChangeLog
branches/trac277/src/bin/cmdctl/cmdctl.py.in
branches/trac277/src/bin/cmdctl/tests/cmdctl_test.py
Modified: branches/trac277/ChangeLog
==============================================================================
--- branches/trac277/ChangeLog (original)
+++ branches/trac277/ChangeLog Fri Jul 16 06:05:32 2010
@@ -1,3 +1,7 @@
+ 77. [func] zhanglikun
+ Make error message be more friendly when running cmdctl and it's
+ already running(listening on same port)(Trac #277, rTBD)
+
76. [bug] jelte
Fixed a bug in the handling of 'remote' config modules (i.e.
modules that peek at the configuration of other modules), where
Modified: branches/trac277/src/bin/cmdctl/cmdctl.py.in
==============================================================================
--- branches/trac277/src/bin/cmdctl/cmdctl.py.in (original)
+++ branches/trac277/src/bin/cmdctl/cmdctl.py.in Fri Jul 16 06:05:32 2010
@@ -441,7 +441,12 @@
CommandControlClass,
idle_timeout = 1200, verbose = False):
'''idle_timeout: the max idle time for login'''
- http.server.HTTPServer.__init__(self, server_address, RequestHandlerClass)
+ try:
+ http.server.HTTPServer.__init__(self, server_address, RequestHandlerClass)
+ except socket.error as err:
+ sys.stderr.write("[b10-cmdctl] Error creating b10-cmdctl, because: %s \n" % str(err))
+ sys.exit(0)
+
self.user_sessions = {}
self.idle_timeout = idle_timeout
self.cmdctl = CommandControlClass(self, verbose)
@@ -587,17 +592,17 @@
help="display more about what is going on")
if __name__ == '__main__':
+ set_signal_handler()
+ parser = OptionParser(version = __version__)
+ set_cmd_options(parser)
+ (options, args) = parser.parse_args()
try:
- set_signal_handler()
- parser = OptionParser(version = __version__)
- set_cmd_options(parser)
- (options, args) = parser.parse_args()
run(options.addr, options.port, options.idle_timeout, options.verbose)
except isc.cc.SessionError as se:
sys.stderr.write("[b10-cmdctl] Error creating b10-cmdctl, "
- "is the command channel daemon running?\n")
+ "is the command channel daemon running?\n")
except KeyboardInterrupt:
- sys.stderr.write("[b10-cmdctl] exit http server\n")
+ sys.stderr.write("[b10-cmdctl] exit from Cmdctl\n")
if httpd:
httpd.shutdown()
Modified: branches/trac277/src/bin/cmdctl/tests/cmdctl_test.py
==============================================================================
--- branches/trac277/src/bin/cmdctl/tests/cmdctl_test.py (original)
+++ branches/trac277/src/bin/cmdctl/tests/cmdctl_test.py Fri Jul 16 06:05:32 2010
@@ -383,13 +383,30 @@
class TestSecureHTTPServer(unittest.TestCase):
def setUp(self):
self.old_stdout = sys.stdout
+ self.old_stderr = sys.stderr
sys.stdout = open(os.devnull, 'w')
+ sys.stderr = sys.stdout
self.server = MySecureHTTPServer(('localhost', 8080),
MySecureHTTPRequestHandler,
MyCommandControl, verbose=True)
def tearDown(self):
sys.stdout = self.old_stdout
+ sys.stderr = self.old_stderr
+
+ def test_addr_in_use(self):
+ server_one = None
+ try:
+ server_one = SecureHTTPServer(('localhost', 8080),
+ MySecureHTTPRequestHandler,
+ MyCommandControl)
+ except SystemExit:
+ pass
+ else:
+ self.assertRaises(SystemExit, SecureHTTPServer, ('localhost', 8080),
+ MySecureHTTPRequestHandler, MyCommandControl)
+ if server_one:
+ server_one.server_close()
def test_create_user_info(self):
self.server._create_user_info('/local/not-exist')
More information about the bind10-changes
mailing list