commit a8951ef927ec9aab093b4915af3fc5e60fdb2a55
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu Dec 19 09:51:43 2013 -0800

    Add statsd support
    
    Also correct the oversight of not documenting the SSL params to
    the server class.
    
    Also cap sphinx due to issues with 1.2 and ignore hacking.
    
    Change-Id: Ic4e8e942620d06a92696d5cf52bc2e9ce6e66bdc

commit 9c110fb84ed057bbc796917d6093da3cb34d9e3f
Merge: e5c334c 3a85956
Author: Jenkins <jenkins@review.openstack.org>
Date:   Wed Dec 4 00:47:05 2013 +0000

    Merge "Correctly set job known/running attributes"

commit 3a8595635a2a49a799e2e1d3daa7ecaeb97725fe
Author: Derek Higgins <derekh@redhat.com>
Date:   Thu Nov 28 16:41:54 2013 +0000

    Correctly set job known/running attributes
    
    In Client.handleStatusRes the known and complete arguments in STATUS_RES
    packets were being compared to integers, they should be compared to
    strings.
    
    Change-Id: I170ee12955263065a4adff4221e5bc60015cae70

commit e5c334c6b4ac4aec19460e91032ce0a53d6fe492
Author: Antoine Musso <hashar@free.fr>
Date:   Wed Nov 27 18:36:56 2013 +0100

    geard: wrong reference to setup_logging()
    
    Prevents the server from starting since self.server does not exist :)
    
    Change-Id: I334f298137603919fb57389f73f8e1993ec18fca

commit f74572696b2c440a366b42a22445cc48ccf53444
Merge: 81253d7 2ad8f72
Author: Jenkins <jenkins@review.openstack.org>
Date:   Thu Oct 17 21:25:39 2013 +0000

    Merge "Add SSL error checking"

commit 2ad8f72c5b634f288f2040d896c282c29fda5cff
Author: Monty Taylor <mordred@inaugust.com>
Date:   Mon Sep 16 09:31:39 2013 -0500

    Add SSL error checking
    
    Co-Authored-By: David Shrewsbury <shrewsbury.dave@gmail.com>
    
    David Shrewsbury says:
    
    "When SSL sockets are being used, calls to recv() and send() need to be
    checked for two exceptions: ssl.SSL_ERROR_WANT_READ and
    ssl.SSL_ERROR_WANT_WRITE, respectively.
    
    These are commonly thrown by SSL and the proper thing to do is just
    retry recv() or send() until that exception isn't thrown (see example below).
    
    Secondly, when using SSL, the ssl code has an internal read buffer that
    you need to drain. Use the ssl socket pending() call to check for that."
    
    This also fixes a bug where the ServerConnection was not recognizing
    the use of SSL.
    
    Change-Id: Icf5a696a2685da19a9a027726fa92e6efaac9d2b

commit 81253d775922d2536e476851190dd557dae0a9d4
Merge: f141647 8d09875
Author: Jenkins <jenkins@review.openstack.org>
Date:   Thu Oct 10 15:19:32 2013 +0000

    Merge "Encapsulate the raw socket.send calls"

commit f14164789e0fba57593a892587f340cfd3493016
Merge: 6dcae37 33b7b9e
Author: Jenkins <jenkins@review.openstack.org>
Date:   Tue Oct 8 15:57:46 2013 +0000

    Merge "Update tox.ini to use skipsdist/develop"

commit 8d0987524658840c0dde08289400bf11b4a73874
Author: Monty Taylor <mordred@inaugust.com>
Date:   Mon Sep 16 09:10:59 2013 -0500

    Encapsulate the raw socket.send calls
    
    SSL supports needs to do a set of error checking on each send. In
    anticipation of that work, pull the socket calls into a single method so
    that the error checking and retries can be put into the same place.
    
    Change-Id: I9be82c511d3cb63b94104e7896a1b1396a704507

commit 33b7b9e311612a2ac166ecb0e86f8ade51348f32
Author: Monty Taylor <mordred@inaugust.com>
Date:   Thu Sep 26 11:37:37 2013 -0400

    Update tox.ini to use skipsdist/develop
    
    No sense in making tarballs every time.
    
    Change-Id: I6aaeb9b78922a7a39d6e7d7cbe0a595a07f5808c

commit 6dcae370785da4e0777e74f1c57108a0bc44606c
Author: Khai Do <zaro0508@gmail.com>
Date:   Wed Sep 25 12:36:02 2013 -0700

    Fix geard logging config
    
    When passing in a logging config file geard was throwing the
    following error: 'module' object has no attribute 'config'
    The fix is to import 'logging.config'
    
    Logs were not being written to log resources when running
    in daemon mode because the dameon closed all of the
    previously opened log resources.  The fix is to setup
    logging after running the daemon.
    
    Change-Id: Ie3e4139e26712a36894d16b48bfe3bca6d5778a9

commit aa401556eb07d0f75e048f82febfa4fe53e2b363
Author: James E. Blair <jeblair@openstack.org>
Date:   Wed Sep 25 12:13:35 2013 -0700

    Remove --pre from tox install command
    
    To avoid installing pre-release versions of packages.
    
    Change-Id: Ia8429d7936a2c0720e342edd733d3c5537c1f564

commit c86f26ddf83a80e6034b62e8001538e44c074217
Merge: a646bf6 cc6e901
Author: Jenkins <jenkins@review.openstack.org>
Date:   Thu Sep 5 18:21:18 2013 +0000

    Merge "Update gear docs to include gearman server daemon"

commit cc6e90181eb63f32757430bfcfa0a3dc4c91ac47
Author: Khai Do <zaro0508@gmail.com>
Date:   Tue Aug 27 11:26:00 2013 -0700

    Update gear docs to include gearman server daemon
    
    Use the sphinxcontrib-programoutput package to
    document command line interface for geard.
    
    Change-Id: Ibe53e9cd176e4cdacd1519c7f1da890002a67125

commit a646bf6dc65758a1b25028e561ee475e583ad317
Merge: 59d4be6 a49102f
Author: Jenkins <jenkins@review.openstack.org>
Date:   Tue Aug 27 01:38:02 2013 +0000

    Merge "Fix ordering of state change in server"

commit a49102f44ce7cb2a439bc593185b888a9ef0557e
Author: James E. Blair <jeblair@openstack.org>
Date:   Mon Aug 26 18:00:36 2013 -0700

    Fix ordering of state change in server
    
    It was possible for an entire noop-grab_job-job_assign cycle to
    happen between before the wakeConnections method set the connection
    state to AWAKE.  Set it first before sending the NOOP packet.
    
    Change-Id: I0d2170b6c583d95a44e289eca19611d11f93c6fd

commit 59d4be6ca9220807290f4e5023e830dd0c9582b6
Author: Khai Do <zaro0508@gmail.com>
Date:   Thu Aug 15 11:46:17 2013 -0700

    fix project dependencies
    
    update pbr requirements to modern state. also added geard
    requirements to requirements.txt
    
    Change-Id: I302b4fa49574b48bb34eb3e7d7df33d2d2c35ce5

commit 12528bfcceb5c79b08a7df517c4ccbc0c90240d8
Author: James E. Blair <jeblair@openstack.org>
Date:   Tue Aug 6 10:48:31 2013 -0700

    Server: make job handle safer
    
    Use a global counter in the job handle.  Previously the job handle
    was using the hostname + a monotonically increasing counter for
    the connection.  If there were two connections from the same host,
    duplicate handles would be generated.  Instead, use a global counter
    for the job handle to guarantee that no collisions will happen.
    
    The hostname portion of the handle is no longer needed, but is
    retained for format compatibility with C gearman (in case some
    tool assumes something about the format).
    
    Change-Id: I44d1784b97d78fc1879a5612316165fa49b90b83

commit 1ba52133fcc328650ecce8b5ee0941a888ae461a
Merge: 86606d3 6401d0b
Author: Jenkins <jenkins@review.openstack.org>
Date:   Fri Jul 12 01:10:56 2013 +0000

    Merge "Remove E128 pep8 ignore"

commit 6401d0b2377c1310aa3e53ec6365b8f299465912
Author: James E. Blair <jeblair@openstack.org>
Date:   Tue Jul 9 09:20:04 2013 -0700

    Remove E128 pep8 ignore
    
    Change-Id: I826f90c363787ee93f0ac3706a57d621dd0c0ce0

commit 86606d393493373420433f82e8fcb66e5ae0d067
Merge: 9f3057e 035b883
Author: Jenkins <jenkins@review.openstack.org>
Date:   Mon Jul 8 23:02:56 2013 +0000

    Merge "Add SSL support for clients, workers, and geard"

commit 035b883e7a71e3af044c61ea3781e578c6da34d0
Author: David Shrewsbury <shrewsbury.dave@gmail.com>
Date:   Tue Jul 2 22:20:20 2013 -0400

    Add SSL support for clients, workers, and geard
    
    This change requires all three SSL files (private key,
    public certificate, and CA certificate) to be specified in
    order for SSL to be used.
    
    Change-Id: Ie69b9c16325c04a1818c0b54d3b23526d11ed6a1

commit 9f3057ec280ab1ba1ca5622e609d204ad93f3c1e
Author: Clark Boylan <clark.boylan@gmail.com>
Date:   Tue Jul 2 19:20:32 2013 -0700

    Set hacking versions.
    
    * test-requirements.txt: Specify valid versions of hacking and remove
    flake8 mention. This prevents confusion of versions for common
    dependencies of flake8, hacking, and pyflakes.
    
    Change-Id: I89b32c53f7a4fdba717e6a4c2cbf531ac718af6c

commit 3ca44afc2cb040bdc4cd2f090ae0b9f364b8e6c4
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu Jun 20 14:06:47 2013 -0700

    Add server command: "geard".
    
    Change-Id: I38f5ac0c960f476838c798c775aef4f91dde43f2

commit b0953032ef941a8552aa74ad1df95d7b6dea4677
Author: James E. Blair <jeblair@openstack.org>
Date:   Wed Jun 12 17:00:36 2013 -0700

    Fix accounting in server 'status' command.
    
    The calculations for the number of jobs in the queue and running
    as reported by 'status' were incorrect.
    
    Change-Id: I62bb9583c649b665bacc740a37e8f496f2720fc8

commit 218fe26a2c278bdc352d8714ffbfd655052039f6
Merge: 570534c 0c5390b
Author: Jenkins <jenkins@review.openstack.org>
Date:   Mon Jun 10 22:41:42 2013 +0000

    Merge "Make BaseClientServer threads daemons."

commit 0c5390b298b846d89da155e289390af260fa5a71
Author: Clark Boylan <clark.boylan@gmail.com>
Date:   Mon Jun 10 11:17:50 2013 -0700

    Make BaseClientServer threads daemons.
    
    Gear should run its threads as daemon threads to prevent it from taking
    control of the processes it is running in if that processes other
    threads die.
    
    Change-Id: I43ae02e5bbf63c7aa53eeefe4e88dcc904e80e4a

commit 570534cff9bb1267b131bd7e2edcfd1eff13b230
Author: James E. Blair <jeblair@openstack.org>
Date:   Fri Jun 7 12:52:00 2013 -0700

    Clean up server jobs on disconnect.
    
    When a client or worker disconnects from the server, clean
    up any records of associated jobs.
    
    Change-Id: I1fb234a32df6f9d23f4de0a2fb4c1c82cf259329

commit f88b0ddb971f177a1ff7e92e3e366cbf079527bc
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu Jun 6 09:33:04 2013 -0700

    Add tiered queues to server.
    
    (Low/normal/high precedence for jobs).
    
    Change-Id: Ia10866bcedb7dc828a44e342c202d90d60de87a5

commit e180fe65d74ec09388f4096dbe733e2fc7cbdf37
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu Jun 6 08:54:29 2013 -0700

    Add workers admin command to server.
    
    Change-Id: If41816e7d823593a469f16255662dc12c6b7fd4b

commit 1e76bfa886dd340069a5bf80535e5eb8f37a7c88
Author: Clark Boylan <clark.boylan@gmail.com>
Date:   Mon Jun 3 20:09:34 2013 -0700

    Support python3.
    
    Import queue on python3 and Queue on python2. Use bytestrings for all
    string constants. Slice byte arrays when comparing to bytestrings. Don't
    use basestring. Gear now expects its packet data to be byte strings.
    Non data fields may be passed as unicode strings, bytes or bytearrays.
    Unicode strings will be converted to bytes using the utf8 encoding.
    
    Change-Id: Iccdd01f9ce6f649f8bbaa93370d330c78c89f087

commit 8336e63685b06f6165f43cc915d46c0c4bb13b32
Author: James E. Blair <jeblair@openstack.org>
Date:   Wed Jun 5 08:43:26 2013 -0700

    Explicitly check event state after waiting.
    
    In python2.6, the wait function always returns None, so explicitly
    check the status of events after waiting with a timeout.
    
    Change-Id: Ie354c1841c49725c93aa8ddf1c04f0e9a9b56548

commit 4bc883e9f3d87df72d8380d8ac0e223c903a6e45
Author: James E. Blair <jeblair@openstack.org>
Date:   Tue Jun 4 19:29:32 2013 -0700

    Handle blobs with nulls.
    
    Some areas where we handle arbitrary blobs (function arguments and
    echo data) were incorrectly stopping at the first null byte.  Instead,
    when we parse out the arguments to a packet, handle the last one as
    a special case if it can contain null bytes (return up to the end
    of the packet).
    
    Change-Id: I45178347cdb058e34329c6601f5e841da0d3b40b

commit 0e87ebfbbc46605e4da20b677966289221310c8f
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu May 30 12:26:34 2013 -0700

    Wait for responses to admin requests.
    
    That's probably what callers will want to do anyway.
    
    Change-Id: I9086e2e182f29ee778b105c82bcef81c12aeb54a

commit 2bb0fcaa28314a54211b1c640b93a325425ac5a2
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu May 30 12:11:10 2013 -0700

    Wait for responses to some requests.
    
    SUBMIT_JOB (and related) requests as well as OPTION_REQ requests
    always return a response (success or error), so have the client
    wait for a response and handle errors appropriately.
    
    Since they can both return ERROR packets, and the gearman protocol
    has no mechanism to associate ERROR responses with the requests
    that triggered them, put each task that may trigger an error response
    in a fifo queue and assume that what we get back is in the same order.
    
    The only other commands (properly executed) that can trigger an ERROR
    response are the WORK_ requests, which are only sent by workers, not
    clients.
    
    If anything about the packet sequencing seems out of order (eg, we get
    a successful response that doesn't match the next item on the fifo
    queue) restart the connection (there is likely no way to recover).
    
    Change-Id: Ibca972f5d57313cebba028ed473273f46fa68e2a

commit f7c06c0dd176501b00a018eb457154422597e3a4
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu May 23 15:41:18 2013 -0700

    Handle GET_STATUS in the server.
    
    Change-Id: Iff6cec77de9eed8e462ec3334fef8c487aa96f2c

commit c642b2069d6d3e3c53de6b77bf204323c32c3364
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu May 23 08:26:09 2013 -0700

    Fix connection debugging messages.
    
    The debugging messages were printing the wrong connection handle.
    
    Change-Id: If4548296015942879c572d2a6b4964b553a9c535

commit 463b84b3d45f3967882fffe993982fef8092fcbf
Author: James E. Blair <jeblair@openstack.org>
Date:   Wed May 22 16:45:49 2013 -0700

    Fix miscategorized packets.
    
    Some packets were being sent with the REQ code instead of RES.
    
    Change-Id: I05fc56ca1dc7ebd2367567e91b4098d9e97b8fb4

commit 1c4df7622f8e291ebf24a7fa765618120b0ef0a7
Author: James E. Blair <jeblair@openstack.org>
Date:   Tue May 21 10:46:51 2013 -0700

    More improvements to admin requests.
    
    Finish replacing isComplete.  Also, add back in the bit where we
    save the response because it turns out that's important.
    
    Change-Id: I8441386a9aae9c62c1527e780d0b41271f465ac5

commit e3b42f6795b9fc5907e333df39f2a3370efbabf6
Author: James E. Blair <jeblair@openstack.org>
Date:   Mon May 20 15:18:09 2013 -0700

    Improve efficiency of admin packets.
    
    Using a regex to determine when an admin packet is complete is very
    slow with real-world data for most admin responses.  Instead, perform
    simple string comparison checks.
    
    Change-Id: I5ec32c8ab2d44f20061343ee1f95a3d2066e8642

commit cebd9d7ad9ef313b94d3e564d418de93cfde0c30
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu May 9 14:31:02 2013 -0700

    Add remaining client/worker handlers.
    
    Adds all remaining handle methods needed to handle responses that
    clients and workers can expect.
    
    Adds an echo method to connection objects (for ping tests).
    
    Adds all packet types to the handle method in BaseClientServer,
    and add default implementations for each of them that logs an error.
    Subclasses (eg Client, Worker) will override them as appropriate.
    
    Add a "broadcast lock" so that Clients and Workers can maintain
    exclusivity around operations that apply to all connections.
    
    Change-Id: Ia31f0941687ccfee711c3818e8e0c21ccbd1b313

commit ea796eb3403be7e616939ec1de7ae8da811314f0
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu May 9 09:44:02 2013 -0700

    Encoding bugfix.
    
    Use bytearrays in Packet.toBinary().  Encode strings as utf8.
    
    Return the job in the default handleDisconnect method (as the
    documentation says should be done).
    
    Change-Id: I2d2410abff94bc9a7a20f3729c193b5ae8a610d1

commit 9aa4f48bb66fba044013ea498b55af2269d110d5
Author: James E. Blair <jeblair@openstack.org>
Date:   Wed May 8 12:24:36 2013 -0700

    Add status command to test server.
    
    Also record connection times to aid subclasses/users in detecting
    when a client has reconnected.
    
    Change-Id: I1abbf85fd1e20e6c509bcb54a81aa8bf45c135ef

commit 5b7852418d51eb67617f3affcccd8749e5911145
Author: James E. Blair <jeblair@openstack.org>
Date:   Wed May 8 10:58:15 2013 -0700

    Some bugfixes and test/debugging assist.
    
    * Add some more debug log messages
    * Fix copy/paste errors in function signatures
    * Handle port 0 for the test server (system assigns a port at
      random -- record that port for the caller to inspect)
    * In the server, change connection state to awake after sending
      a noop packet (to avoid sending multiple noops)
    * Split handleGrabJobUnique in the server into several functions
      for modularity (helpful for subclasses)
    * In the server, immediately wake up a connection on receipt of
      a pre_sleep packet if there is a waiting job (it may have arrived
      _after_ the most recent grab_job).
    
    Change-Id: I0f2057bddfd6a13a0d2db08641ef51502ec06d9e

commit 61bd6ce5708d27015bb9ccf01aff99bb2b0ac2d8
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu May 2 17:38:47 2013 -0700

    Add simple Gearman server.
    
    For testing, not for real use under load.
    
    Change-Id: I9c84b1eea7d868e907b80b6edf60c49c172c356b

commit 772d256328b4c876a0f308240ef941800def55fc
Author: James E. Blair <jeblair@openstack.org>
Date:   Wed May 1 11:57:39 2013 -0700

    Reorganize documentation.
    
    Split up into sections by usage.
    
    Improve autodoc output of AdminRequest objects and enforce appropriate
    arguments in constructors.
    
    Change-Id: I834e4d10edbee9494d68ae010f439624172a111f

commit 868cc239c93fe93268d53776636d02755c99ce4c
Author: James E. Blair <jeblair@openstack.org>
Date:   Tue Apr 30 16:23:34 2013 -0700

    Add worker functionality.
    
    Change-Id: I7d624df38278dbfba8a3123285b33a52bdc3b870

commit 38cd3373890bf4cddf72d84f453052ddcad0f207
Author: James E. Blair <jeblair@openstack.org>
Date:   Mon Apr 29 11:54:32 2013 -0700

    Add a method that waits for a job handle.
    
    Job handles should be returned immediately, and are quite handy
    to have in further interactions with gearman, so provide a
    convenience method to wait for a job handle after submission.
    
    Change-Id: I3b2fb3c75bf4c0618647f49386cb198e08008fab

commit a470e5e4e0742006c8b4e990be1fb7b29b54eb88
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu Apr 25 16:34:11 2013 -0700

    Support administrative protocol.
    
    Add support for multiplexing the text-based admin protocol on
    existing connections.
    
    Add some basic support for some admin commands (in an extensible way).
    
    Change-Id: Ib6c9891e22518d610b5abed75c78efcc4f23ed60

commit 15ab33ed3bfd6b88b79bcac41dc0b3633c725c20
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu Apr 25 11:29:32 2013 -0700

    Treat job data as an array.
    
    So that users have the option of seeing the discrete data chunks
    returned by gearman.  If they should be concatenated, that's easy
    enough for the user to do.
    
    Change-Id: I19ebed92c41271546ff908582d671cfbaa34977c

commit b52c073bb4bafdd12ecb055c88dc761e18204879
Author: James E. Blair <jeblair@openstack.org>
Date:   Thu Apr 11 14:47:40 2013 -0700

    Fix typo in workStatus.
    
    We were checking the numerator twice.  Get the denominator.
    
    Change-Id: Ib8e8868a3d067dcebb91ae8c9181a22b975abe99

commit ba9ff1c9c6c91258ec7960a2eb92d80a7d5f0369
Author: James E. Blair <jeblair@openstack.org>
Date:   Mon Apr 8 15:17:42 2013 -0700

    Add Sphinx documentation.
    
    Add more events.
    
    Also, return Job objects from event handlers for convenience of
    subclasses.
    
    Add sphinx config to setup.cfg.
    
    Change-Id: I2ccc32fbc5f043a67d5da86cc3c37ab3d2c30d99

commit 8a8b7ffab0f53a4e4c0890912fe034a9583f40c9
Author: Monty Taylor <mordred@inaugust.com>
Date:   Fri Apr 5 19:40:07 2013 -0400

    Make flake8 and OpenStack Hacking clean.
    
    Change-Id: Ifbc78187e29e7befefcfff47b803ff20c86f6e75

commit 207e5cf884d7c7a0f0e95438cb8860b5092c0e52
Author: Monty Taylor <mordred@inaugust.com>
Date:   Fri Apr 5 19:31:07 2013 -0400

    Add initial test suite.
    
    Change-Id: I4fdbc8d6c3073b7edfdc8bf486575820088faa72

commit 855b217f6dac1fd6a613ba8bfda120f8c96734b8
Author: Monty Taylor <mordred@inaugust.com>
Date:   Fri Apr 5 19:10:41 2013 -0400

    Add pbr-based setup.
    
    Change-Id: I8ff06c6711e1d9f5bf4d1278f37d4e2f7f799e3d

commit b6097dc7ed885ff7241ca90f95246c66dbe7cf10
Author: James E. Blair <jeblair@openstack.org>
Date:   Fri Apr 5 12:08:58 2013 -0700

    Initial commit.
    
    Change-Id: Ia612b44511b19e22a73cb6d4662fc02207af9321

commit 604408042330eb023cb8e442eb9302b4d365d9bb
Author: Openstack Project Creator <openstack-infra@lists.openstack.org>
Date:   Fri Apr 5 18:53:07 2013 +0000

    Added .gitreview