[Checkins] SVN: zc.zkzopeserver/trunk/s Fixed: servers were registered with the host information returned by
Jim Fulton
jim at zope.com
Wed Feb 1 18:16:50 UTC 2012
Log message for revision 124277:
Fixed: servers were registered with the host information returned by
socket.getsockname(), which was unhelpful.
Added more tests.
Changed:
U zc.zkzopeserver/trunk/setup.py
U zc.zkzopeserver/trunk/src/zc/zkzopeserver/README.txt
U zc.zkzopeserver/trunk/src/zc/zkzopeserver/__init__.py
U zc.zkzopeserver/trunk/src/zc/zkzopeserver/tests.py
-=-
Modified: zc.zkzopeserver/trunk/setup.py
===================================================================
--- zc.zkzopeserver/trunk/setup.py 2012-02-01 14:41:55 UTC (rev 124276)
+++ zc.zkzopeserver/trunk/setup.py 2012-02-01 18:16:49 UTC (rev 124277)
@@ -16,7 +16,7 @@
install_requires = ['setuptools', 'zc.zk', 'zope.server']
extras_require = dict(
test=['zope.testing', 'zc.zk [static,test]', 'zc.monitor',
- 'zc.zservertracelog']
+ 'zc.zservertracelog', 'mock', 'netifaces']
)
entry_points = """
Modified: zc.zkzopeserver/trunk/src/zc/zkzopeserver/README.txt
===================================================================
--- zc.zkzopeserver/trunk/src/zc/zkzopeserver/README.txt 2012-02-01 14:41:55 UTC (rev 124276)
+++ zc.zkzopeserver/trunk/src/zc/zkzopeserver/README.txt 2012-02-01 18:16:49 UTC (rev 124277)
@@ -107,7 +107,7 @@
would look something like::
/providers
- /0.0.0.0:61181
+ /1.2.3.4:61181
monitor = u'127.0.0.1:61182'
pid = 4525
@@ -136,7 +136,8 @@
>>> import re, zope.testing.renormalizing
>>> checker = zope.testing.renormalizing.RENormalizing([
... (re.compile('pid = \d+'), 'pid = 999'),
- ... (re.compile('(0\.0\.[01]):\d+'), '\1:99999'),
+ ... (re.compile('1.2.3.4:\d+'), '1.2.3.4:99999'),
+ ... (re.compile('127.0.0.1:\d+'), '1.2.3.4:99999'),
... ])
>>> actual_tree = zk.export_tree('/fooservice/providers', True)
>>> checker.check_output(expected_tree.strip(), actual_tree.strip(), 0)
@@ -219,6 +220,12 @@
Change History
==============
+0.2.1 (2012-02-??)
+------------------
+
+- Fixed: servers were registered with the host information returned by
+ socket.getsockname(), which was unhelpful.
+
0.2.0 (2012-01-18)
------------------
Modified: zc.zkzopeserver/trunk/src/zc/zkzopeserver/__init__.py
===================================================================
--- zc.zkzopeserver/trunk/src/zc/zkzopeserver/__init__.py 2012-02-01 14:41:55 UTC (rev 124276)
+++ zc.zkzopeserver/trunk/src/zc/zkzopeserver/__init__.py 2012-02-01 18:16:49 UTC (rev 124277)
@@ -60,15 +60,15 @@
props = {}
if monitor_server:
- host, port = monitor_server.rsplit(':', 1)
+ mhost, mport = monitor_server.rsplit(':', 1)
global zc
import zc.monitor
- props['monitor'] = "%s:%s" % zc.monitor.start((host, int(port)))
+ props['monitor'] = "%s:%s" % zc.monitor.start((mhost, int(mport)))
server.ZooKeeper = zc.zk.ZooKeeper(
zookeeper, session_timeout and int(session_timeout))
server.ZooKeeper.register_server(
- path, "%s:%s" % server.socket.getsockname(), **props)
+ path, "%s:%s" % (host, server.socket.getsockname()[1]), **props)
map = asyncore.socket_map
poll_fun = asyncore.poll
Modified: zc.zkzopeserver/trunk/src/zc/zkzopeserver/tests.py
===================================================================
--- zc.zkzopeserver/trunk/src/zc/zkzopeserver/tests.py 2012-02-01 14:41:55 UTC (rev 124276)
+++ zc.zkzopeserver/trunk/src/zc/zkzopeserver/tests.py 2012-02-01 18:16:49 UTC (rev 124277)
@@ -11,11 +11,13 @@
# FOR A PARTICULAR PURPOSE.
#
##############################################################################
+from zope.testing import setupstack
import asyncore
import doctest
import manuel.capture
import manuel.doctest
import manuel.testing
+import mock
import re
import time
import unittest
@@ -54,7 +56,7 @@
... zookeeper='zookeeper.example.com:2181',
... path='/fooservice/providers',
... session_timeout='4242',
- ... host='127.0.0.1',
+ ... host='localhost',
... port='3042',
... threads='3',
... )
@@ -67,9 +69,11 @@
>>> zk.print_tree('/fooservice/providers')
/providers
- /127.0.0.1:3042
+ /localhost:3042
pid = 3699
+ Note that localhost didn't get resolved!
+
How many can we do at once? Should be 3
>>> [url] = [('http://%s/' % addr)
@@ -104,7 +108,43 @@
>>> zk.close()
"""
+def test_monitor_server_w_empty_host():
+ r"""
+ >>> @zc.thread.Thread
+ ... def server():
+ ... zc.zkzopeserver.run(
+ ... slow_app, {},
+ ... zookeeper='zookeeper.example.com:2181',
+ ... path='/fooservice/providers',
+ ... monitor_server=':0',
+ ... )
+
+ >>> import zc.zkzopeserver
+ >>> zc.zkzopeserver.event_for_testing.wait(1)
+ >>> zk = zc.zk.ZooKeeper('zookeeper.example.com:2181')
+
+ >>> zk.export_tree('/fooservice/providers', ephemeral=True
+ ... ).strip().split('\n')[-2].strip().split(':')[0]
+ u"monitor = u'"
+
+ >>> zc.zkzopeserver.stop_for_testing(server)
+ >>> zk.close()
+
+ """
+
+def readmesetup(test):
+ zc.zk.testing.setUp(test)
+ setupstack.context_manager(
+ test, mock.patch('netifaces.interfaces')).return_value = 'iface'
+ setupstack.context_manager(
+ test, mock.patch('netifaces.ifaddresses')
+ ).return_value = {2: [dict(addr='1.2.3.4')]}
+
+def readmeteardown(test):
+ setupstack.tearDown(test)
+ zc.zk.testing.tearDown(test)
+
def test_suite():
checker = zope.testing.renormalizing.RENormalizing([
(re.compile('pid = \d+'), 'pid = 9999'),
@@ -115,7 +155,7 @@
manuel.testing.TestSuite(
manuel.doctest.Manuel(checker=checker) + manuel.capture.Manuel(),
'README.txt',
- setUp=zc.zk.testing.setUp, tearDown=zc.zk.testing.tearDown,
+ setUp=readmesetup, tearDown=readmeteardown,
),
doctest.DocTestSuite(
setUp=zc.zk.testing.setUp, tearDown=zc.zk.testing.tearDown,
More information about the checkins
mailing list