Correct the example of zuul enqueue command

Change-Id: I9d73515d796f591c4c5984834959d5625d1c61b9
Log components starts in Zuul.Server

When developping or wondering why Zuul is stuck/having a problem, I
found it very useful to know which tasks it already started.  This patch
adds a logger to the Server() class and log informational message before
most components are started.

Change-Id: I19d0d439c50b42ad6217d92654b9d5e2558d9a7f
Update trigger script for new zuul url parameter

* tools/trigger-job.py: Add a --url option which passes the required
ZUUL_URL parameter with a sane default for OpenStack Infra's
environment.

Change-Id: I2d8aa73b11b0069e31ffa599c1c9d9059919fb7a
Allow workers to send back metadata

To help with debugging, allow workers to send back information about
itself such as hostname and ips. This will allow for an RPC/Client
call to get the information on running jobs.

Change-Id: I03b553293923cd65b3a9651a8877aa23688d2909
Merger: log non Git exceptions on merge

Some git merge commands fails for me with an AssertionError coming from
GitPython:

 AssertionError: len([
    "5a0a437ee9a6fd4b30484dfdc2455c83ea00a058\t\t'refs/changes/80/111180/1'
of ssh://gerrit.wikimedia.org:29418/mediawiki/core\n"]
   )
   != len([
     'Total 10 (delta 9), reused 10 (delta 9)',
     ' * branch refs/changes/80/111180/1 -> FETCH_HEAD'
   ])

Zuul.Merger explicitly log merge exceptions at debug level, though we
should only load GitCommandError exceptions and properly log other
exceptions (such as AssertionError).

Change-Id: Idca682c0920b9e6eac3f12cc05634dfe304a0305
Require gear 0.5.1

* requirements.txt: The latest release of the gear library fixes an
enqueuing/function registration order problem exposed by the recent
zuul merger fan-out implementation. Insist upon it.

Change-Id: Id2275477b12ce62fc485e5769029fe107a82b52d
Doc for project dependencies in gate

When jobs share gates, Zuul has a nice feature which is to creates
reference of the Change in every involved repositories.  That was sadly
undocumented.

Reference:

James E. Blair on openstack-infra mailing list:
http://lists.openstack.org/pipermail/openstack-infra/2014-January/000605.html

Change-Id: Ia3bd640f6a90e12192af1686547a5f4146192dbe
Merge "Log components starts in Zuul.Server"
Merge "Doc for project dependencies in gate"
Merge "Allow workers to send back metadata"
Add gear statsd support

Gear 0.5.0 added statsd support for the gear server.  Have Zuul
use it based on the existence of the same env vars Zuul uses
to configure its own use of statsd.

Change-Id: I09ea2541d1f2eff5f4fd2e0c78da2acfdc1776ab
Retry jobs after gear disconnect

If Zuul is disconnected from gearman, have Zuul retry the job.

Also, report slightly more useful status words for various kinds
of failures when able.

Change-Id: I2d0f2986199516f6251bb122ab619ac56a87ee8e
Merge "Merger: log non Git exceptions on merge"
Merge "Update trigger script for new zuul url parameter"
Merge "Correct the example of zuul enqueue command"
Ignore approvals without descriptions

We don't really offer a facility to match on non-review category
approvals (like SUBM) so ignore those when matching events to
triggers.  Otherwise, matching logic that expects only review
categories will be fooled by submit or other similar approval
types.

Fixes-bug: 1284842
Fixes-bug: 1285210

Change-Id: I68b58f611df8fc2b9b2753d1579eae2e6898acc9
Handle builds without gearman jobs

Zuul creates fake Build objects for jobs that it skips due to
merge conflicts and other such situations.  If Zuul decides to
cancel such a build, we should handle it gracefully instead of
throwing an exception.

Also log received gearman job handles to better correlate builds
with gearman debug logs.

Change-Id: I1cd14c8249ac4c68e797430b2b4941f2eeee2acf
Increase replication timeout to 5 minutes

For very large projects, when Gerrit is under load, it can take
longer than 60 seconds for the submit action to be processed and the
associated commit to replicate to its local mirror, causing Zuul to
think the change did not merge and resetting any remaining changes
in that dependent queue. Increase this to 5 minutes, since the
impact from these "phantom gate resets" is more significant than any
potential increase in merge wait time.

Change-Id: If57d5ed2720707c1ec3a3477dd229f042789fa1f
wmf: soften requirements

WebOb and paramiko have a minimal version which is enforced by OpenStack
but is most probably not needed.

ordereddict is for python 2.6, the feature is included in python 2.7.

Change-Id: I1aa1e3ae496d68d25dd64e8b21d2057c473342f4