Instead of having an entirely fake launch server and an entirely
real one, use the real launch server for everything, but add an
option to not actually execute ansible. This will exercise most
of the code in the launcher, remove unecessary fakes, and still
maintain the speed benefit of not running ansible for every test
of scheduler behavior.
Some tests are still run with the launcher actually running ansible,
and that facility will continue to be available as we create tests
that validate actual ansible behavior.
Change-Id: Ie0fbba2b786a5aeb1c603597af30fcd728a8cec8
If a change alters .zuul.yaml in a repo that is permitted to use in-repo
configuration, create a shadow configuration layout specifically for that
and any following changes with the new configuration in place.
Such configuration changes extend only to altering jobs and job trees.
More substantial changes such as altering pipelines will be ignored. This
only applies to "project" repos (ie, the repositories under test which may
incidentally have .zuul.yaml files) rather than "config" repos (repositories
specifically designed to hold Zuul configuration in zuul.yaml files). This
is to avoid the situation where a user might propose a change to a config
repository (and Zuul would therefore run) that would perform actions that
the gatekeepers of that repository would not normally permit.
This change also corrects an issue with job inheritance in that the Job
instances attached to the project pipeline job trees (ie, those that
represent the job as invoked in the specific pipeline configuration for
a project) were inheriting attributes at configuration time rather than
when job trees are frozen when a change is enqueued. This could mean that
they would inherit attributes from the wrong variant of a job.
Change-Id: If3cd47094e6c6914abf0ffaeca45997c132b8e32
Also rename the launcher modules to be consistent with how the merger
modules are named (and reduce redundancy).
Change-Id: I9a347966b0fe7c6aa41047e58c45ba5809868520
Note that ansible is licensed under the GPL which may have
implications for the distribution of Zuul as a whole.
Actually use ansible to launch a hello world test.
Also reorganize the launcher directory to be more like
the mergers: a client and server.
Change-Id: I30f7ed2cadbb7d2381ec477e229d19c9c6e41743
Create a new server that acts as combined merger and job launcher.
Remove the merge step from the scheduler.
Update the gearman job launcher to target the new server.
Change-Id: I14e3d96cadec6e4b4cca66137071e8ed67f161a1