cifs: Externalize common code to base_publish_over.

The various Publish Over... plugins offer a similar configuration
structure.

Externalizing that knowledge will allow reuse between modules.

Change-Id: I8dd7f62713da013354c656e9437522210e2c39f9
Reviewed-on: https://review.openstack.org/23862
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
ftp: Refactor using base_publish_over.

The subtlety is that Publish Over FTP offers additional options compared
to the CIFS variant. This is done by customizing the XML tree created by
base_publish_over.

Change-Id: I5ff3614781cb52a47bf9816c2326d3fe9a96a47f
Reviewed-on: https://review.openstack.org/23863
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
ftp, cifs: Make optional prefixes really optionals.

Excludes and remove were marker optional, but weren't in practice.
Provides defaults values so that they are really optional.

Change-Id: I6bd6f5183d888b0716bdf5690fc19bcd91bfc856
Reviewed-on: https://review.openstack.org/23864
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Clark Boylan <clark.boylan@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Document current-params option for trigger-build

There was some documentation missing, so I had to find this option when I was
trying to add it myself, in the source code. Nasty!

Added documentation so nobody else has to do that.

Change-Id: I9b6a0227479b600fed213d926f5cd22981db612e
Reviewed-on: https://review.openstack.org/23963
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Reviewed-by: Antoine Musso <hashar@free.fr>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Fix checkstyle documentation

This is following the style of the artifact-resolver builder, which
has other nested dictionaries also.

Change-Id: I26b909e18239df03c123e07791fa7a3549be7701
Reviewed-on: https://review.openstack.org/23977
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Reviewed-by: Antoine Musso <hashar@free.fr>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
Add multi-SCM capabilities

Jenkins has a multiple-SCM option. We can just support that by using it when
more than one SCM module is defined. Simple enough.

Change-Id: Iacfba5c547ff111304644a4777a12a70b0b22e62
Reviewed-on: https://review.openstack.org/23961
Reviewed-by: Monty Taylor <mordred@inaugust.com>
Reviewed-by: Antoine Musso <hashar@free.fr>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Reviewed-by: Khai Do <zaro0508@gmail.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
`update` can now takes several job names

Just like `delete` can accept several jobs names as argument, this patch
let us do the same with `update`.

* builder.update_jobs now filter the jobs against a list
* renamed 'update' argument 'name' to 'names' to make it clear it
  accepts several job names.

Change-Id: I4bcebd98073ec89e172afbec59b93d14de6620ff
Reviewed-on: https://review.openstack.org/24160
Reviewed-by: Anita Kuno <akuno@lavabit.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Approved: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins
doc/configuration: Fix incorrect name "defaults"

See YamlParser#applyDefaults in builder.py.

Change-Id: I763d23608b79f7b1c560ae41cf5ca0d2dcc19d60
Reviewed-on: https://review.openstack.org/24407
Reviewed-by: Anita Kuno <akuno@lavabit.com>
Reviewed-by: Arnaud Fabre <fabre.arnaud@gmail.com>
Reviewed-by: Elizabeth Krumbach <lyz@princessleia.com>
Approved: James E. Blair <corvus@inaugust.com>
Reviewed-by: James E. Blair <corvus@inaugust.com>
Tested-by: Jenkins