[OpenStack-Infra] Use of conditional includes, etc. in jobs

James E. Blair corvus at inaugust.com
Tue Sep 8 16:22:18 UTC 2015


Ian Wienand <iwienand at redhat.com> writes:

> Hi,
>
> With more and more plugins, etc, within our various projects, I've
> seen some jobs coming in with things like
>
>   if [ -f /path/to/hook.sh ]; then
>      . /path/to/hook.sh
>   fi
>
> and some similar "conditional execution" idioms.
>
> Clearly we don't want to go overboard and deny maintainers flexibility
> in providing various parts of their jobs.  However, my concern with
> this sort of thing is that if these files go missing, there is high
> potential for silent failure.  There's nothing worse than thinking
> your jobs are doing something then finding out (probably a long time
> later) they are not due to a silent, unreported failure.
>
> My preference is to see the jobs being strict around things like
> sourcing files or calling functions; thus issues like files not being
> there or paths changing will then result in a loud failure.
>
> This is really a minor thing; certainly devstack-gate isn't free of it
> and you can argue around how jobs would fail.  My thought is just to
> include this sort of "failure hardening" as part of the general
> reviewing Zeitgeist.

I know that sometimes this is needed to accommodate changes between
branches or for a short time while adding new functionality.  Perhaps if
that's necessary, we can require it come with a comment saying "Remove
after ..." to reduce the long-term risk?

-Jim



More information about the OpenStack-Infra mailing list