Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Always return sorted partition ids in KafkaClient.get_partition_ids_for_topic() | Dana Powers | 2015-02-09 | 1 | -1/+1 | |
| | ||||||
* | Merge pull request #282 from wedaly/sphinx-api-docs | Dana Powers | 2015-01-23 | 1 | -24/+24 | |
|\ | | | | | Add Sphinx API docs | |||||
| * | Add Sphinx API docs | Will Daly | 2015-01-15 | 1 | -24/+24 | |
| | | ||||||
* | | Catch ReplicaNotAvailableError in MetadataResponse -- per kafka-devs, this ↵ | Dana Powers | 2015-01-14 | 1 | -1/+6 | |
|/ | | | | error can and should be ignored | |||||
* | Use six for py3 support in KafkaConsumer | Dana Powers | 2014-12-15 | 1 | -3/+3 | |
| | | | | Log connection failures w/ traceback in kafka/client.py | |||||
* | Merge pull request #223 from dpkp/metadata_refactor | Dana Powers | 2014-09-08 | 1 | -63/+156 | |
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Metadata Refactor * add MetadataRequest and MetadataResponse namedtuples * add TopicMetadata namedtuple * add error codes to Topic and Partition Metadata * add KafkaClient.send_metadata_request() method * KafkaProtocol.decode_metadata_response changed to return a MetadataResponse object so that it is consistent with server api: [broker_list, topic_list] * raise server exceptions in load_metadata_for_topics(*topics) unless topics is null (full refresh) * Replace non-standard exceptions (LeaderUnavailable, PartitionUnavailable) with server standard exceptions (LeaderNotAvailableError, UnknownTopicOrPartitionError) Conflicts: kafka/client.py test/test_client.py test/test_producer_integration.py test/test_protocol.py | |||||
| * | Add test for sending produce request to unknown topic w/o auto-creation | Dana Powers | 2014-09-01 | 1 | -2/+2 | |
| | | ||||||
| * | Use standard exceptions in client._get_leader_for_partition() | Dana Powers | 2014-09-01 | 1 | -15/+28 | |
| | | | | | | | | | | | | - drop custom PartitionUnavailable exception - raise UnknownTopicOrPartitionError or LeaderNotAvailableError - add tests for exception raises | |||||
| * | Raise UnknownTopicOrPartitionError immediately in ensure_topic_exists -- ↵ | Dana Powers | 2014-09-01 | 1 | -0/+4 | |
| | | | | | | | | server is not auto-creating | |||||
| * | load_metadata_for_topics should raise exceptions on explicit topic args | Dana Powers | 2014-09-01 | 1 | -12/+40 | |
| | | ||||||
| * | Refactor internal metadata dicts in KafkaClient | Dana Powers | 2014-09-01 | 1 | -20/+56 | |
| | | | | | | | | | | | | | | | | - use helper methods not direct access - add get_partition_ids_for_topic - check for topic and partition errors during load_metadata_for_topics - raise LeaderNotAvailableError when topic is being auto-created or UnknownTopicOrPartitionError if auto-creation off | |||||
| * | No more custom LeaderUnavailableError exception -- raise LeaderNotAvailableError | Dana Powers | 2014-09-01 | 1 | -3/+3 | |
| | | ||||||
| * | Rearrange KafkaClient method order to group client metadata methods together | Dana Powers | 2014-09-01 | 1 | -18/+18 | |
| | | ||||||
| * | Improve metadata protocol handling | Dana Powers | 2014-09-01 | 1 | -9/+21 | |
| | | | | | | | | | | | | | | | | | | | | - add MetadataRequest and MetadataResponse namedtuples - add TopicMetadata namedtuple - add error codes to Topic and Partition Metadata - add KafkaClient.send_metadata_request() method - KafkaProtocol.decode_metadata_response changed to return a MetadataResponse object so that it is consistent with server api: [broker_list, topic_list] | |||||
* | | Fix test errors related to mocks | Mark Roberts | 2014-09-03 | 1 | -3/+4 | |
| | | ||||||
* | | Fix more tests, only multiprocessing consumer ones remaining | Bruno Renié | 2014-09-03 | 1 | -3/+3 | |
| | | ||||||
* | | client_id in bytes | Bruno Renié | 2014-09-03 | 1 | -1/+1 | |
| | | ||||||
* | | Make all unit tests pass on py3.3/3.4 | Bruno Renié | 2014-09-03 | 1 | -1/+1 | |
|/ | ||||||
* | Add pylint to tox.ini; test both kafka and test; default to error-checking ↵ | Dana Powers | 2014-08-25 | 1 | -1/+1 | |
| | | | | only; fixup errors; skip kafka/queue.py | |||||
* | Add KafkaTimeoutError (used by client.ensure_topic_exists) and add a test | Dana Powers | 2014-08-14 | 1 | -3/+3 | |
| | ||||||
* | Handle New Topic Creation | Mark Roberts | 2014-05-22 | 1 | -9/+19 | |
| | | | | | Adds ensure_topic_exists to KafkaClient, redirects test case to use that. Fixes #113 and fixes #150. | |||||
* | Attempt to fix travis build. Decrease complexity of service.py in favor of ↵ | Mark Roberts | 2014-05-06 | 1 | -2/+0 | |
| | | | | in memory logging. Address code review concerns | |||||
* | Make BrokerRequestError a base class, make subclasses for each broker error | Mark Roberts | 2014-04-30 | 1 | -19/+17 | |
| | ||||||
* | Refactor away _get_conn_for_broker. Fix bug in _get_conn | Mark Roberts | 2014-04-09 | 1 | -13/+6 | |
| | ||||||
* | Merge pull request #134 from wizzat/conn_refactorv0.9.0 | Dana Powers | 2014-03-21 | 1 | -3/+3 | |
|\ | | | | | conn.py performance improvements, make examples work, add another example | |||||
| * | Merge branch 'master' into conn_refactor | Mark Roberts | 2014-03-18 | 1 | -3/+3 | |
| |\ | ||||||
| * \ | Merge branch 'master' into conn_refactor | Mark Roberts | 2014-02-26 | 1 | -7/+18 | |
| |\ \ | | | | | | | | | | | | | | | | | Conflicts: example.py | |||||
| * | | | Minor refactor in conn.py, update version in __init__.py, add ErrorString | Mark Roberts | 2014-02-25 | 1 | -3/+3 | |
| | | | | ||||||
* | | | | Merge branch 'master' into develop | mrtheb | 2014-03-17 | 1 | -9/+20 | |
|\ \ \ \ | | |_|/ | |/| | | | | | | | | | | Conflicts: test/test_unit.py | |||||
| * | | | If a broker refuses the connection, try the next | stephenarmstrong | 2014-03-13 | 1 | -3/+3 | |
| | |/ | |/| | ||||||
| * | | Support list (or comma-separated) of hosts (replaces host and port arguments) | mrtheb | 2014-02-09 | 1 | -6/+7 | |
| | | | ||||||
| * | | Merge branch 'master' into multihosts | mrtheb | 2014-01-31 | 1 | -91/+120 | |
| |\ \ | | |/ | | | | | | | | | | | | | | | | | | | | | | Conflicts: kafka/client.py kafka/conn.py setup.py test/test_integration.py test/test_unit.py | |||||
| * | | Allow KafkaClient to take in a list of brokers for bootstrapping | Marc Labbe | 2013-11-14 | 1 | -14/+21 | |
| | | | ||||||
* | | | Changes based on comments by @rdiomar, plus added LeaderUnavailableError for ↵ | mrtheb | 2014-02-15 | 1 | -4/+7 | |
| | | | | | | | | | | | | clarity | |||||
* | | | check for broker None in send_broker_aware_request (added test for it) | mrtheb | 2014-01-31 | 1 | -5/+14 | |
| | | | ||||||
* | | | Handle cases for partition with leader=-1 (not defined) | Marc Labbe | 2014-01-31 | 1 | -6/+12 | |
| | | | ||||||
* | | | added mock | mrtheb | 2014-01-18 | 1 | -3/+4 | |
| |/ |/| | ||||||
* | | Merge pull request #107 from rdiomar/fix_default_timeouts | Marc Labbé | 2014-01-16 | 1 | -2/+6 | |
|\ \ | | | | | | | Increase default connection timeout | |||||
| * | | Change default socket timeout to 120 seconds in both the client and connection | Omar Ghishan | 2014-01-16 | 1 | -2/+6 | |
| | | | ||||||
* | | | Merge branch 'repr' of https://github.com/mahendra/kafka-python into ↵ | mrtheb | 2014-01-14 | 1 | -0/+3 | |
|\ \ \ | |/ / |/| | | | | | | | | | | | | | | | | | mahendra-repr Conflicts: kafka/client.py kafka/consumer.py | |||||
| * | | Add proper string representations for each class | Mahendra M | 2013-10-08 | 1 | -1/+4 | |
| |/ | ||||||
* | | Throw KafkaUnavailableError when no brokers available | Thomas Dimson | 2014-01-13 | 1 | -2/+2 | |
| | | ||||||
* | | Exception hierarchy, invalidate more md on errors | Thomas Dimson | 2014-01-13 | 1 | -80/+88 | |
| | | ||||||
* | | Change BufferUnderflowError to ConnectionError in conn._read_bytes() | Omar Ghishan | 2014-01-08 | 1 | -3/+2 | |
| | | | | | | Both errors are handled the same way when raised and caught, so this makes sense. | |||||
* | | Fix client error handling | Omar Ghishan | 2014-01-06 | 1 | -5/+17 | |
| | | | | | | | | | | This differentiates between errors that occur when sending the request and receiving the response, and adds BufferUnderflowError handling. | |||||
* | | * Guarantee reading the expected number of bytes from the socket every time | Omar Ghishan | 2014-01-06 | 1 | -4/+3 | |
| | | | | | | | | | | | | | | | | | | | | | | | | * Remove bufsize from client and conn, since they're not actually enforced Notes: This commit changes behavior a bit by raising a BufferUnderflowError when no data is received for the message size rather than a ConnectionError. Since bufsize in the socket is not actually enforced, but it is used by the consumer when creating requests, moving it there until a better solution is implemented. | |||||
* | | Allow customizing socket timeouts. | Omar Ghishan | 2014-01-06 | 1 | -3/+4 | |
|/ | | | | | | Previously, if you try to consume a message with a timeout greater than 10 seconds, but you don't receive data in those 10 seconds, a socket.timeout exception is raised. This allows a higher socket timeout to be set, or even None for no timeout. | |||||
* | Merge branch 'master' into prod-windows | Mahendra M | 2013-10-08 | 1 | -6/+18 | |
|\ | | | | | | | | | Conflicts: kafka/producer.py | |||||
| * | make changes to be more fault tolerant: clean up connections, brokers, ↵ | Jim Lim | 2013-10-04 | 1 | -6/+18 | |
| | | | | | | | | | | | | | | | | failed_messages - add integration tests for sync producer - add integration tests for async producer w. leadership election - use log.exception | |||||
* | | Ensure that async producer works in windows. Fixes #46 | Mahendra M | 2013-10-07 | 1 | -0/+11 | |
|/ | | | | | | | | | | | | | | | As per the multiprocessing module's documentation, the objects passed to the Process() class must be pickle-able in Windows. So, the Async producer did not work in windows. To fix this we have to ensure that code which uses multiprocessing has to follow certain rules * The target=func should not be a member function * We cannot pass objects like socket() to multiprocessing This ticket fixes these issues. For KafkaClient and KafkaConnection objects, we make copies of the object and reinit() them inside the child processes. |