# HG changeset patch # User Pierre-Yves David # Date 1369838656 -7200 # Node ID 55a1567d92a01e693e17a911b64289ddcbfada9b # Parent 8742f4bf029f5d39e552f815cb56affe33471744# Parent 5238f62a430ad24d1511b947267a061bc34459e3 merge with 3.16.x fixes diff -r 8742f4bf029f -r 55a1567d92a0 .hgtags --- a/.hgtags Thu May 23 17:32:56 2013 +0200 +++ b/.hgtags Wed May 29 16:44:16 2013 +0200 @@ -294,3 +294,6 @@ cc1a0aad580cf93d26959f97d8d6638e786c1082 cubicweb-version-3.17.0 22be40c492e9034483bfec379ca11462ea97825b cubicweb-debian-version-3.17.0-1 09a0c7ea6c3cb97bbbeed3795b3c3715ceb9566b cubicweb-debian-version-3.17.0-2 +041804bc48e91e440a5b573ceb0df5bf22863b80 cubicweb-version-3.16.4 +041804bc48e91e440a5b573ceb0df5bf22863b80 cubicweb-debian-version-3.16.4-1 +041804bc48e91e440a5b573ceb0df5bf22863b80 cubicweb-centos-version-3.16.4-1 diff -r 8742f4bf029f -r 55a1567d92a0 dbapi.py --- a/dbapi.py Thu May 23 17:32:56 2013 +0200 +++ b/dbapi.py Wed May 29 16:44:16 2013 +0200 @@ -213,9 +213,13 @@ elif cnxprops and cnxprops.cnxtype == 'inmemory': database = 'inmemory://' + database else: - database = 'pyro://%s/%s.%s' % (kwargs.pop('host', ''), - kwargs.pop('group', 'cubicweb'), - database) + host = kwargs.pop('host', None) + if host is None: + host = '' + group = kwargs.pop('group', None) + if group is None: + group = 'cubicweb' + database = 'pyro://%s/%s.%s' % (host, group, database) puri = urlparse(database) method = puri.scheme.lower() if method == 'inmemory': diff -r 8742f4bf029f -r 55a1567d92a0 doc/book/en/devrepo/repo/hooks.rst --- a/doc/book/en/devrepo/repo/hooks.rst Thu May 23 17:32:56 2013 +0200 +++ b/doc/book/en/devrepo/repo/hooks.rst Wed May 29 16:44:16 2013 +0200 @@ -186,7 +186,7 @@ def __call__(self): def callback(msg): self.info('received message: %s', ' '.join(msg)) - self.repo.app_instances_bus.subscribe('hello', callback) + self.repo.app_instances_bus.add_subscription('hello', callback) .. sourcecode:: python @@ -195,9 +195,9 @@ self._cw.repo.app_instances_bus.publish(['hello', 'world']) The `zmq-address-pub` configuration variable contains the address used -by the instance for sending messages, e.g. `zmqpickle-tcp://*:1234`. The +by the instance for sending messages, e.g. `tcp://*:1234`. The `zmq-address-sub` variable contains a comma-separated list of addresses -to listen on, e.g. `zmqpickle-tcp://localhost:1234, zmqpickle-tcp://192.168.1.1:2345`. +to listen on, e.g. `tcp://localhost:1234, tcp://192.168.1.1:2345`. Hooks writing tips diff -r 8742f4bf029f -r 55a1567d92a0 doc/book/en/devweb/js.rst --- a/doc/book/en/devweb/js.rst Thu May 23 17:32:56 2013 +0200 +++ b/doc/book/en/devweb/js.rst Wed May 29 16:44:16 2013 +0200 @@ -191,7 +191,7 @@ * it is called with two parameters: the current node, and a list containing the loaded (and post-processed node) -* whenever is returns another function, this function is called in +* whenever it returns another function, this function is called in turn with the same parameters as above This mechanism allows callback chaining. @@ -209,7 +209,7 @@ from cubicweb.web.views.ajaxcontroller import ajaxfunc @ajaxfunc(output_type='xhtml') - def js_frob_status(self, eid, frobname): + def frob_status(self, eid, frobname): entity = self._cw.entity_from_eid(eid) return entity.view('frob', name=frobname) diff -r 8742f4bf029f -r 55a1567d92a0 entity.py --- a/entity.py Thu May 23 17:32:56 2013 +0200 +++ b/entity.py Wed May 29 16:44:16 2013 +0200 @@ -1321,11 +1321,11 @@ # deprecated stuff ######################################################### - @deprecated('[3.16] use cw_set() instead') + @deprecated('[3.16] use cw_set() instead of set_attributes()') def set_attributes(self, **kwargs): # XXX cw_set_attributes self.cw_set(**kwargs) - @deprecated('[3.16] use cw_set() instead') + @deprecated('[3.16] use cw_set() instead of set_relations()') def set_relations(self, **kwargs): # XXX cw_set_relations """add relations to the given object. To set a relation where this entity is the object of the relation, use 'reverse_' as argument name. diff -r 8742f4bf029f -r 55a1567d92a0 hooks/zmq.py --- a/hooks/zmq.py Thu May 23 17:32:56 2013 +0200 +++ b/hooks/zmq.py Wed May 29 16:44:16 2013 +0200 @@ -29,20 +29,23 @@ class ZMQStartHook(hook.Hook): __regid__ = 'zmqstart' events = ('server_startup',) + order = -1 def __call__(self): config = self.repo.config address_pub = config.get('zmq-address-pub') - if not address_pub: + address_sub = config.get('zmq-address-sub') + if not address_pub and not address_sub: return from cubicweb.server import cwzmq self.repo.app_instances_bus = cwzmq.ZMQComm() - self.repo.app_instances_bus.add_publisher(address_pub) + if address_pub: + self.repo.app_instances_bus.add_publisher(address_pub) def clear_cache_callback(msg): self.debug('clear_caches: %s', ' '.join(msg)) self.repo.clear_caches(msg[1:]) self.repo.app_instances_bus.add_subscription('delete', clear_cache_callback) - for address in config.get('zmq-address-sub'): + for address in address_sub: self.repo.app_instances_bus.add_subscriber(address) self.repo.app_instances_bus.start() diff -r 8742f4bf029f -r 55a1567d92a0 server/cwzmq.py --- a/server/cwzmq.py Thu May 23 17:32:56 2013 +0200 +++ b/server/cwzmq.py Wed May 29 16:44:16 2013 +0200 @@ -78,7 +78,8 @@ self._subscribers.append(subscriber) def publish(self, msg): - assert self.publisher is not None, "can't publish without a publisher" + if self.publisher is None: + return self.publisher.send(msg) def start(self): diff -r 8742f4bf029f -r 55a1567d92a0 server/serverconfig.py --- a/server/serverconfig.py Thu May 23 17:32:56 2013 +0200 +++ b/server/serverconfig.py Wed May 29 16:44:16 2013 +0200 @@ -232,21 +232,21 @@ {'type' : 'string', 'default': None, 'help': ('ZMQ URI on which the repository will be bound ' - 'to (of the form `zmqpickle-tcp://`).'), + 'to (of the form `zmqpickle-tcp://:`).'), 'group': 'zmq', 'level': 3, }), ('zmq-address-sub', {'type' : 'csv', 'default' : None, 'help': ('List of ZMQ addresses to subscribe to (requires pyzmq) ' - '(of the form `zmqpickle-tcp://`)'), + '(of the form `zmqpickle-tcp://:`)'), 'group': 'zmq', 'level': 1, }), ('zmq-address-pub', {'type' : 'string', 'default' : None, 'help': ('ZMQ address to use for publishing (requires pyzmq) ' - '(of the form `zmqpickle-tcp://`)'), + '(of the form `zmqpickle-tcp://:`)'), 'group': 'zmq', 'level': 1, }), ) + CubicWebConfiguration.options)