[Checkins] SVN: zc.zkzeo/trunk/src/zc/zkzeo/ Fixed: setting a monitor server on a unix-domain socket didn't work.
jim
cvs-admin at zope.org
Fri Jun 22 18:36:45 UTC 2012
Log message for revision 127038:
Fixed: setting a monitor server on a unix-domain socket didn't work.
Changed:
U zc.zkzeo/trunk/src/zc/zkzeo/README.txt
U zc.zkzeo/trunk/src/zc/zkzeo/runzeo.py
-=-
Modified: zc.zkzeo/trunk/src/zc/zkzeo/README.txt
===================================================================
--- zc.zkzeo/trunk/src/zc/zkzeo/README.txt 2012-06-22 18:16:20 UTC (rev 127037)
+++ zc.zkzeo/trunk/src/zc/zkzeo/README.txt 2012-06-22 18:36:42 UTC (rev 127038)
@@ -97,8 +97,7 @@
.. -> server_conf
- >>> stop = zc.zkzeo.runzeo.test(
- ... server_conf)
+ >>> stop = zc.zkzeo.runzeo.test(server_conf)
The value is the address to listen on.
@@ -112,6 +111,53 @@
monitor = u'127.0.0.1:11976'
pid = 5082
+.. verify that we can connect to the monitor:
+
+ >>> [monitor_addr] = zk.get_children('/databases/demo')
+ >>> host, port = monitor_addr.split(':')
+ >>> import socket
+ >>> sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+ >>> sock.settimeout(.5)
+ >>> sock.connect((host, int(port)))
+ >>> sock.close()
+ >>> _ = stop()
+
+You can also specify a unix-domain socket name::
+
+ <zeo>
+ address 127.0.0.1
+ </zeo>
+
+ <zookeeper>
+ connection zookeeper.example.com:2181
+ path /databases/demo
+ monitor-server ./monitor.sock
+ </zookeeper>
+
+ <filestorage>
+ path demo.fs
+ </filestorage>
+
+.. -> server_conf
+
+ >>> stop = zc.zkzeo.runzeo.test(server_conf)
+
+When using a unix-domain socket, the monitor address isn't included in
+the tree:
+
+ >>> zk.print_tree('/databases/demo')
+ /demo
+ /127.0.0.1:64213
+ pid = 5082
+
+.. verify that we can connect to the monitor:
+
+ >>> sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ >>> sock.settimeout(.5)
+ >>> sock.connect('./monitor.sock')
+ >>> sock.close()
+
+
Some notes on the monitor server:
- A monitor server won't be useful unless you've registered some
@@ -266,23 +312,25 @@
>>> print zk.export_tree('/databases/demo', ephemeral=True),
/demo
/127.0.0.1:56837
- monitor = u'127.0.0.1:23265'
pid = 88841
>>> wait(db_from_config.storage.is_connected)
>>> with db_from_config.transaction() as conn:
... conn.root.x = 2
>>> wait(db_from_py.storage.is_connected, timeout=22)
+ >>> time.sleep(.1)
>>> with db_from_py.transaction() as conn:
... print conn.root()
{'x': 2}
>>> wait(db.storage.is_connected, timeout=22)
+ >>> time.sleep(.1)
>>> with db.transaction() as conn:
... print conn.root()
{'x': 2}
>>> wait(exconn.db().storage.is_connected, timeout=22)
+ >>> time.sleep(.1)
>>> with transaction.manager:
... print exconn.root()
{'x': 2}
@@ -320,6 +368,11 @@
Change History
==============
+0.3.1 (2012-06-22)
+------------------
+
+- Fixed: setting a monitor server on a unix-domain socket didn't work.
+
0.3.0 (2012-02-07)
------------------
Modified: zc.zkzeo/trunk/src/zc/zkzeo/runzeo.py
===================================================================
--- zc.zkzeo/trunk/src/zc/zkzeo/runzeo.py 2012-06-22 18:16:20 UTC (rev 127037)
+++ zc.zkzeo/trunk/src/zc/zkzeo/runzeo.py 2012-06-22 18:36:42 UTC (rev 127038)
@@ -43,8 +43,11 @@
maddr = self.options.monitor_server.address
if isinstance(maddr, tuple) and maddr[1] is None:
maddr = maddr[0], 0
- props['monitor'] = "%s:%s" % zc.monitor.start(maddr)
+ maddr = zc.monitor.start(maddr)
+ if isinstance(maddr, tuple):
+ props['monitor'] = "%s:%s" % maddr
+
self.__zk.register_server(self.options.zkpath, addr[:2], **props)
if self.__testing is not None:
More information about the checkins
mailing list