There were special circumstances under which we would return a trusted
config layout as a valid dynamic layout update. Specifically if there
were existing layout errors in code unrelated to the trusted config
update we would fall through error handling such that the trusted config
would be returned.
Fix this by recording the trusted and untrusted layouts as separate
variables so that we can very clearly switch through our state cases and
be clear that we never return the trusted_layout. Instead of there is a
trusted_layout update that would otherwise be accepted we return the
current pipeline config.
Part of the fix here is to write out a "switch" table that clearly lists
and handles all known possible cases. If we hit an unknown case we
return an error. Hopefully by being extra clear about our intent we
avoid unexpected behavior like this in the future.
Story: 2005452
Change-Id: I095819bf2288b4101352badfaf0e0fa8062c2829
When we use getPull() function after a github event, it seems there
might be race where the PR may not exist just yet. So, rather then
raising an exception, log a warning and allow the loop to try again.
Change-Id: I66aaa74e0fdeade253df1e44a659f513accdfe37
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This allows a user to use PgUp/PgDn without first clicking the terminal.
Change-Id: I315f9c8e264a291e4b0e38ecbd1a15dd8df2377c
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
This adds some code coverage on zuul-executor side, to confirm ara
database is also created by zuul-executor.
Change-Id: I53cb3f96bf550bae2c736b1116ff2266056e926b
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Fixes this:
Traceback (most recent call last):
File "zuul/tools/encrypt_secret.py", line 192, in <module>
main()
File "zuul/tools/encrypt_secret.py", line 109, in main
pubkey = urlopen(req, context=ssl_ctx)
When using a file://<path> URL for the project key.
Change-Id: Ide5031eb95fda0d8932e20c178e46ba488ac1783
Supercedent was designed for a post pipeline and predates common
use of a promote pipeline. It therefore only consulted the 'ref'
attribute of a change (so that it would work on tags as well as
branches). However, it should work just fine as a manager for
promote pipelines too, so have it check the branch attribute for
de-duplication first, and only use the ref attribute if it isn't
present.
Change-Id: I1393c828b86a577fba568a183efee98cf5d030e7
Zuul fails to load if the tenant config references an inexistent or
inaccessible project. This should not happen and also be added to the
loading errors. This is especially important with github where users
can freely rename, create and delete repos in their organizations.
Change-Id: I99bc50e98c7edfd2767f950d4898ea8298d7ca94
The job no longer needs to build duplicate copies of the images,
it can fetch them from the buildset registry instead.
Change-Id: Ibcca12c20d29b9b45a67b65934e5a02087c8cdf8
When requiring more than one artifact zuul runs into an sql exception
[1] which bubbles up to the run_handler. This effectively blocks all
operations of zuul until the change that triggers this bug is
dequeued. Fix this by correctly filtering the sql results.
[1] Trace
2019-04-04 17:15:01,158 ERROR zuul.Scheduler: Exception in run handler:
Traceback (most recent call last):
File "/opt/zuul/lib/python3.7/site-packages/sqlalchemy/engine/base.py", line 1244, in _execute_context
cursor, statement, parameters, context
File "/opt/zuul/lib/python3.7/site-packages/sqlalchemy/engine/default.py", line 552, in do_execute
cursor.execute(statement, parameters)
psycopg2.ProgrammingError: operator does not exist: character varying = record
LINE 3: ...bc89ecf79fd84fc7c' AND zuul_provides.name = ('pro...
^
HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
Change-Id: I7f95e1376b7a1f46a5b4ef5242c777e16ceca451
Co-Authored-By: Tobias Henkel <tobias.henkel@bmw.de>
We currently block all keys in xterm so we can use ctrl+c for copying
text. However this blocks scrolling via shift+pageup and
down. Whitelist those buttons so scrolling per keyboard works.
This blocks scrolling per keyboard. In case this is still needed we
should add it back with a specific blacklist or whitelist.
Change-Id: Ida8c90f556912941af528d3c1fd322cf1256185d
Tools like ara are now installed within the virtualenv where ansible
is installed. We need to add the bindir of those into the path so
ansible will find them.
Change-Id: Ic8d0cf821222f792e892a765b2dccaa0f35653af
Update our diagram to show the connections needed if running a database.
Change-Id: I67e47b1916ac1c3ad1f06b9b65c4b1e78aa6a55f
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
The job zuul-quick-start shows a high rate of timeouts
lately. Increase that to improve stability.
Change-Id: Id6cd751c1cefc5a90cce2ecdd605dcf50d8a924a
Show how zuul-web and zuul-fingergw need to connect to zuul-executors
for log streaming.
Change-Id: Ia985979c16d8276c13b1ba7ffbbb5a2224ccff01
Signed-off-by: Paul Belanger <pabelanger@redhat.com>
Using the search addon we can add search capabilities to the xterm.js
based web streaming. This also supports regex, case
sensitive/insensitive and whole word matches.
Change-Id: Icc370c3fe5786d8f81e0c5fd6bd17b2989dda2c7
We currently use a very simplistic self written mechanism for live log
streaming. This has severe performance drawbacks when dealing with
large live logs. The component xterm.js widely used out there that is
specialized for this task and handles huge logs just fine.
We also don't need the autoscroll checkbox anymore as this is handled
automagically by xterm.js. It stops following the stream when
scrolling and starts following again after scrolling to the bottom.
Further it makes it easy to have clickable links in the live log.
Change-Id: I3492e983bf248b4f286edc1bf9db3d52297da993