Add queue-name parameter to job

Allow an optional queue-name parameter to be set for a job.
As projects with that job are combined with others into shared
change queues, give the queue that name.  This allows us to, say,
set the queue name of the tempest gate job to 'integrated' and
end up with the shared change queue of all the OpenStack integrated
projects named 'integrated'.

With that, we can do things like emit stats for the 'integrated'
queue.

Change-Id: Iafd218d7cd519312ccbf97de7c070e8d3b82038c
Add de-duplication to periodic triggers

Don't enqueue more than one entry for a project in a pipeline
that is triggered by a timer.  Match on the project name as that
is the only distinguishing attribute for a NullChange at the moment
(adding branch could be a future enhancement if we add multi-branch
support to periodic triggers).

Change-Id: I5b723497b23077652f2fc64b0c5367a20e3174c2
Document zuul generated log paths

zuul now suggests destinations for logs to help allow them to be
deterministic. Document these extra launcher parameters.

Change-Id: I43f100a058d3aec5b289a5ea81f08dd4639e03ef
Merge "Add de-duplication to periodic triggers"
Fix jshint linting errors

Change-Id: I2c61cb3574b6a78ec47950576789d62011997585
Co-Authored-By: Joshua Hesketh <josh@nitrotech.org>
Fix up filter issues introduced by jshint changes

Change-Id: Id382a297f13275cab87a0f31b664e7d7a21c24ae
Merge "Add support to list running jobs to zuul client"
Let webapp compress status.json if client supports it

Currently status.json is about 1.5 Mb. It can easily be compressed down
to ~115Kb which will make clients' life easier.
Also changed webapp to be a proper WebOb app to remove new wheels in
code.

Change-Id: I400c6133627a82af1c702df78ae688ed89fff0bb
Merge "Document zuul generated log paths"
Add require-approvals to EventFilter representation

We can request additional approval to events since c053d026
https://review.openstack.org/#/c/68516/ .  The EventFilter.__repr__ was
not displaying them though.

Change-Id: I966699e8d2daba6bd2c3bb8d57ef6d7a0e3177f2
Add subway map to status page

Uses a table method similar to OpenStack's page. The code for
calculating the subway map tree is from
http://git.openstack.org/cgit/openstack-infra/config/tree/modules/openstack_project/files/zuul/status.js#n95

Added a sample JSON file that represents the dependency tree in
a very bad state.  All the images are grey because it's a bit old
and doesn't match the current JSON output in some areas, but it
does exercise quite a bit of the tree code.

Co-Authored-By: James E. Blair <jeblair@openstack.org>
Change-Id: I635ed101e5b1b168caa111ee61237cf1734813a1
Tweak job layout css in status page

Make the job lines fit better with long job names

Change-Id: I368bc17848aef5b6d2febf1b228a2f97837bcdc3
Adjust change headings on status page

Reduce the padding to fit more changes on the page and clear up the
layout.

Change-Id: I15714bb96b4ecd0ea2e40c86ca9ac32720548364
Merge "Let webapp compress status.json if client supports it"
Fix races in timer trigger tests.

Timer trigger tests are vulnerable to a race where the timer trigger can
enqueue new builds while we are checking the number of builds queued.
This can happen during intermediate build queue checks or in
assertFinalState.

To fix this race swap in a layout that does not use the timer trigger
which will prevent further build queueing once the timer triggered
builds have done their thing.

Change-Id: Ic9b64e34c6a39275b57b1299b47d9b1d0e0e5c79
Merge "Add subway map to status page"
Merge "Tweak job layout css in status page"
Merge "Adjust change headings on status page"
Remove check that gerrit reporter has params

Since reporters must be specified now (after we added the ability
to have multiple reporters), the right way to make a silent pipeline
is to have no reporters, and the right way to have an experimental
pipeline (non-voting but reporting) is to have a reporter with no
parameters.

Change-Id: I5c979f0d2a6aafe5de4d60d8ce245d9bdcd73dae
Fix pep8 issue with test_scheduler

Somehow a pep8 breakage was merged. Fix it up.

Change-Id: I756d138bd448ccc192d58d9622606e66a1ab683f