openQA-5.1749832158.cc746ea0-bp157.2.6.1<>, Hhe6I%z UG?L#pF>wÃ>Ϟ_aO$ .}*-oW$WfFjʼmtIѺbH?Y0u@ְ EhR )赈aXO\«V.ܿ} be*a-GqVD<4֗ZVrXTG"r ~qwPWPN8d%>;3koOX_w >4c $!/?CLLֻaMQ(K#R+="E= ~̢F̆Khvf.L bp? b`d  + Xx|   Ox$40 < C S  %9MMP]zq _r_y_(z8z 9 : =>?@FGHIxXdzYLz\0]^Sb %c &d '0e '5f '8l ':u 'Pv 7-w ?x ODy ^z a8 aH aL a a a b b b b b\CopenQA5.1749832158.cc746ea0bp157.2.6.1The openQA web-frontend, scheduler and toolsopenQA is a testing framework that allows you to test GUI applications on one hand and bootloader and kernel on the other. In both cases, it is difficult to script tests and verify the output. Output can be a popup window or it can be an error in early boot even before init is executed. openQA is an automated test tool that makes it possible to test the whole installation process of an operating system. It uses virtual machines to reproduce the process, check the output (both serial console and screen) in every step and send the necessary keystrokes and commands to proceed to the next. openQA can check whether the system can be installed, whether it works properly in 'live' mode, whether applications work or whether the system responds as expected to different installation options and commands. Even more importantly, openQA can run several combinations of tests for every revision of the operating system, reporting the errors detected for each combination of hardware configuration, installation options and variant of the operating system.he6obs-power9-15DSUSE Linux Enterprise 15openSUSEGPL-2.0-or-laterhttp://bugs.opensuse.orgUnspecifiedhttp://os-autoinst.github.io/openQA/linuxppc64leif ! getent passwd geekotest > /dev/null; then /usr/sbin/useradd -r -g nogroup -c "openQA user" \ -d /var/lib/openqa geekotest 2>/dev/null || : fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : for service in openqa-webui.service openqa-gru.service openqa-websockets.service openqa-scheduler.service openqa-enqueue-audit-event-cleanup.service openqa-enqueue-audit-event-cleanup.timer openqa-enqueue-asset-cleanup.service openqa-enqueue-git-auto-update.service openqa-enqueue-asset-cleanup.timer openqa-enqueue-result-cleanup.service openqa-enqueue-result-cleanup.timer openqa-enqueue-bug-cleanup.service openqa-enqueue-bug-cleanup.timer openqa-enqueue-git-auto-update.timer openqa-enqueue-needle-ref-cleanup.service openqa-enqueue-needle-ref-cleanup.timer ; do sysv_service=${service%.*} if [ ! -e /usr/lib/systemd/system/$service ] && [ ! -e /etc/init.d/$sysv_service ]; then mkdir -p /run/systemd/rpm/needs-preset touch /run/systemd/rpm/needs-preset/$service elif [ -e /etc/init.d/$sysv_service ] && [ ! -e /var/lib/systemd/migrated/$sysv_service ]; then /usr/sbin/systemd-sysv-convert --save $sysv_service || : mkdir -p /run/systemd/rpm/needs-sysv-convert touch /run/systemd/rpm/needs-sysv-convert/$service fi done fi [ -z "${TRANSACTIONAL_UPDATE}" -a -x /usr/bin/systemd-tmpfiles ] && /usr/bin/systemd-tmpfiles --create /usr/lib/tmpfiles.d/openqa-webui.conf || : # install empty log file if [ ! -e /var/log/openqa ]; then install -D -m 644 -o geekotest /dev/null /var/log/openqa || : fi if [ $1 -eq 1 ]; then echo "### copy and edit /etc/apache2/vhosts.d/openqa.conf.template if using apache!" echo "### copy and edit /etc/nginx/vhosts.d/openqa.conf.template if using nginx!" echo "### run sudo /usr/share/openqa/script/fetchneedles" else if [ -d "/var/lib/openqa/share/testresults" ]; then # remove the symlink rm "/var/lib/openqa/testresults" mv "/var/lib/openqa/share/testresults" "/var/lib/openqa/" fi # we don't want to require the scheduler for the webui (so we can stop it independent) # but it should be enabled together with the webui if test "$(systemctl is-enabled openqa-webui.service)" = "enabled"; then systemctl enable openqa-scheduler.service fi fi if [ -x /usr/bin/systemctl ]; then test -n "$FIRST_ARG" || FIRST_ARG="$1" [ -d /var/lib/systemd/migrated ] || mkdir -p /var/lib/systemd/migrated || : if [ "$YAST_IS_RUNNING" != "instsys" ]; then /usr/bin/systemctl daemon-reload || : fi for service in openqa-webui.service openqa-gru.service openqa-websockets.service openqa-scheduler.service openqa-enqueue-audit-event-cleanup.service openqa-enqueue-audit-event-cleanup.timer openqa-enqueue-asset-cleanup.service openqa-enqueue-git-auto-update.service openqa-enqueue-asset-cleanup.timer openqa-enqueue-result-cleanup.service openqa-enqueue-result-cleanup.timer openqa-enqueue-bug-cleanup.service openqa-enqueue-bug-cleanup.timer openqa-enqueue-git-auto-update.timer openqa-enqueue-needle-ref-cleanup.service openqa-enqueue-needle-ref-cleanup.timer ; do sysv_service=${service%.*} if [ -e /run/systemd/rpm/needs-preset/$service ]; then /usr/bin/systemctl preset $service || : rm "/run/systemd/rpm/needs-preset/$service" || : elif [ -e /run/systemd/rpm/needs-sysv-convert/$service ]; then /usr/sbin/systemd-sysv-convert --apply $sysv_service || : rm "/run/systemd/rpm/needs-sysv-convert/$service" || : touch /var/lib/systemd/migrated/$sysv_service || : fi done fi test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ "$FIRST_ARG" -eq 0 -a -x /usr/bin/systemctl ]; then # Package removal, not upgrade /usr/bin/systemctl --no-reload disable openqa-webui.service openqa-gru.service openqa-websockets.service openqa-scheduler.service openqa-enqueue-audit-event-cleanup.service openqa-enqueue-audit-event-cleanup.timer openqa-enqueue-asset-cleanup.service openqa-enqueue-git-auto-update.service openqa-enqueue-asset-cleanup.timer openqa-enqueue-result-cleanup.service openqa-enqueue-result-cleanup.timer openqa-enqueue-bug-cleanup.service openqa-enqueue-bug-cleanup.timer openqa-enqueue-git-auto-update.timer openqa-enqueue-needle-ref-cleanup.service openqa-enqueue-needle-ref-cleanup.timer || : ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_STOP_ON_REMOVAL" && . /etc/sysconfig/services test "$DISABLE_STOP_ON_REMOVAL" = yes -o \ "$DISABLE_STOP_ON_REMOVAL" = 1 && exit 0 /usr/bin/systemctl stop openqa-webui.service openqa-gru.service openqa-websockets.service openqa-scheduler.service openqa-enqueue-audit-event-cleanup.service openqa-enqueue-audit-event-cleanup.timer openqa-enqueue-asset-cleanup.service openqa-enqueue-git-auto-update.service openqa-enqueue-asset-cleanup.timer openqa-enqueue-result-cleanup.service openqa-enqueue-result-cleanup.timer openqa-enqueue-bug-cleanup.service openqa-enqueue-bug-cleanup.timer openqa-enqueue-git-auto-update.timer openqa-enqueue-needle-ref-cleanup.service openqa-enqueue-needle-ref-cleanup.timer ) || : fi# reload main service (but do not restart it via service_del_postun to minimize downtimes) if [ -x /usr/bin/systemctl ] && [ $1 -ge 1 ]; then /usr/bin/systemctl reload openqa-webui.service || : fi # restart other services test -n "$FIRST_ARG" || FIRST_ARG="$1" if [ $1 -eq 0 ]; then # Package removal for service in openqa-gru.service openqa-websockets.service openqa-scheduler.service openqa-enqueue-audit-event-cleanup.service openqa-enqueue-audit-event-cleanup.timer openqa-enqueue-asset-cleanup.service openqa-enqueue-git-auto-update.service openqa-enqueue-asset-cleanup.timer openqa-enqueue-result-cleanup.service openqa-enqueue-result-cleanup.timer openqa-enqueue-bug-cleanup.service openqa-enqueue-bug-cleanup.timer openqa-enqueue-git-auto-update.timer openqa-enqueue-needle-ref-cleanup.service openqa-enqueue-needle-ref-cleanup.timer ; do sysv_service="${service%.*}" rm -f "/var/lib/systemd/migrated/$sysv_service" || : done fi if [ -x /usr/bin/systemctl ]; then /usr/bin/systemctl daemon-reload || : fi if [ "$FIRST_ARG" -ge 1 ]; then # Package upgrade, not uninstall if [ -x /usr/bin/systemctl ]; then ( test "$YAST_IS_RUNNING" = instsys && exit 0 test -f /etc/sysconfig/services -a \ -z "$DISABLE_RESTART_ON_UPDATE" && . /etc/sysconfig/services test "$DISABLE_RESTART_ON_UPDATE" = yes -o \ "$DISABLE_RESTART_ON_UPDATE" = 1 && exit 0 /usr/bin/systemctl try-restart openqa-gru.service openqa-websockets.service openqa-scheduler.service openqa-enqueue-audit-event-cleanup.service openqa-enqueue-audit-event-cleanup.timer openqa-enqueue-asset-cleanup.service openqa-enqueue-git-auto-update.service openqa-enqueue-asset-cleanup.timer openqa-enqueue-result-cleanup.service openqa-enqueue-result-cleanup.timer openqa-enqueue-bug-cleanup.service openqa-enqueue-bug-cleanup.timer openqa-enqueue-git-auto-update.timer openqa-enqueue-needle-ref-cleanup.service openqa-enqueue-needle-ref-cleanup.timer ) || : fi fi # reload AppArmor profiles if [ "$YAST_IS_RUNNING" != "instsys" ]; then if /usr/bin/systemctl is-active --quiet apparmor.service; then /sbin/apparmor_parser -r -T -W /etc/apparmor.d/usr.share.openqa.script.openqa &> /dev/null || : fi fi if [ "$YAST_IS_RUNNING" != "instsys" ]; then if /usr/bin/systemctl is-active --quiet apparmor.service; then /sbin/apparmor_parser -r -T -W /etc/apparmor.d/local/usr.share.openqa.script.openqa &> /dev/null || : fi fi bwF t  b#(Iq6RA~ Hd!:SaLO")e"N.?(  aY[}d' 3 9dZb->+` /@l!vL8 7R=LB(uD%0[ </~k f]mKnC /J R4 H ?L_da JGD _ WdC 0WXMM3I>KLMMMMNNN(NNNSVwVVVVW0WNWNWjWWdWvWWWWWWWWW#!&   )Y8S5. W  VV2b  eYy.Wj+_i0knnoopqrssuJ-}zNMem  eM<E44 G h tUft!8>| Y9  Z N vHy}v$|%BV U/ R L r 4j8^/TxjV63' p C ~mmsWXUL6c ?i;g^  h):aukr[#k[0 }R K#%*2  ;v%]mI H 3e:EM 8'/ D K}.X:W|\UUP_ %3ikaOhP {$ >Y !| + F"*,1 Q W &9JNO*  g, ;K mm6A 1L63FAA큤AA큤A큤AA큤A큠A큤AA큤A큤A큤A큤A큤AAAAAA큤A큤A큤A큤A큤A큤AAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAAAAA큤큤AAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤AA큤AA큤AAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAA큤A큤AA큤AAA큤A큤A큤A큤A큤A큤A큤A큤AA큤AA큤AAA큤A큤A큤AA큤A큤AAA큤A큤A큤A큤A큤AAAA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AAAAAAAAAAA큤he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6hLQhe6he6hLQhLQhLQhe6he6he6he6he6hLQhLQhe6he6he6he6he6he6he6he6he6he6he6he6ihe6he6he6he6he6he6he6he6he6he6he6he6jhe6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6ihe6he6he6jhe6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6hLQhLQhLQhe6he6he6he6he6he6he6he6he6he6he6he6he6he6hLQhe6he6he6he6he6he6hLQhe6he6hLQhLQhe6hLQhLQhLQhe6hLQhLQhLQhLQhLQhLQhLQhe6he6hLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhe6he6hLQhe6he6hLQhe6he6hLQhLQhLQhLQhLQhLQhLQhLQhLQhe6he6he6he6he6he6he6he6he6he6hLQhLQhLQhLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhe6hLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhe6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6he6hLQhLQhLQhLQhLQhLQhe6hLQhe6he6he6hLQhLQhLQhLQhLQhLQhLQhe6hLQhLQhe6hLQhe6hLQhLQhe6he6hLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhLQhe6he6he6he6he6he6he6he6he6he6he6he65131355b23b1c9c90a899793d5aed4f36757ebf0fbf3e0bf31f70aa5b67db8042cd438cd8d55efa3f63c01933191f1dbf972c3b578249db93dd3247032582023dc6343de417eeed232396a9a809fc6846b585c7c19553fb8594bc813557355c5fdab5b4c4aace976f9211f8f1439b940609d875573ed60417116a9304aa21ead8305a95a38983cb5e8b1794e850ec09f2df64544a0ca59b379b7e764e2374e9fd9504fa60fb43089912b3e51157f523f3b39ea1c34de1bafed51bd75f1154892017a7bdafcc587819c857a73112886256b7255d0d7a4c802250aac5f95e95bcc71edacd7acfa1a1ed6c7dc3fcd79097e4eb417a96ba2f2f413724b04278a7fc23ce49545639213e03c90621eb1e29abfe23e1ffbb7b5b91e2bf74daefafb85779f6337ae13b1cf807d0b096dbc28e0b27e5df3c9efbb1a0c7f62852b8a239f6f05df7846238de88c4fa81176b868afd6aaa564b92c779350f286cb71d4cf173e2b7afa6bd7ac25697aed60fb1aa02d42467a13368953f6598a02547882992c8185d3f3911d37e562c25811ef0d4d68f3386a96f5374fba882f5eff5f3781e2ac8fe33706cc98e4b38ec513daaa3819f1973152e367aec714d67387d8ceb96b2c20b4841635ca8178d56d87bf7f61f49ccd3b10eb54870c8ccba1bfd34162622e0ff2c5ca8bc6bd68179a57ee91495c78150de951ba141a2a99c1f9896fd769a93a32ba7ef5882b12d0183793a424cf5a85f20244851dd36c7920af7ce4e65fbf2668ff6bcbbdb564d2e86f8410d4a881fa63354810d1f7f79beebfd0562dd2607c1fbc988dcf8a9c4c06797ef36b74fb752a1824679735c4f5ecfe413c9f3c57be2f4d18fa241e6244ed953556d1a697b47ab1297a4eb82320d907f0e024d77ca5a0a029dfe50904264afda7b0bee3667128abb2bfa6b4ed2d29068f0ab58e5f4d6b1f3a24197d8527525e58ff1f97ea73b77029b088e5959eb8c9b34d6f5683a1cee0b09d34601ea760dd4d5fdfabc0758e96bd349c407ba3ecf831c5a510b58f6dc493ea6f16ca762a563a6606045fe077ad8f965ed98872a9bc2a8e6199a2e59a2ebe5ce06842493acdec3c7c308e6fe8572fe987aee612d007f36483d2b5d4c1862933e042e7f4a801913e0b56be49cb5dc34bf1592b978ae5a90f021a15c079c52a7fc13f80986a873cea59b5708994caacad97f3d09ae2fc56cea9cd08d87b23ab76ffd52bdb64b880281dc94d90d00909adc9d29bc9bd1b034ab824f83d3924571813f939e64e99233f5e1cdbb080f9a242da3e5b86364b6cee7c5f2dd1357f6fbc5619e87e2779125aee81bec1cebae085283891b00b64083fe00bc1443b08feb9a96b5773ab4c935e9ba24eb5a3da7b78ad78d512416deb99fbead80b855a601d7be5d0c5d54e29d14b5aacdaf8b6de29703568c5cb012167d1e2897861b32df9bc98caf04194f2489622b547d93e65071c139ece11ad74ed28f0fd3ff1766f3e60e1d9354cc702a41c834ce2d3bfa46266e678edfec2651a7934421f3f2e5351ffab512fe1b640360d689ccbefd1e9054fb7c9bba95a6b82715cee3cfdeffa05219bdaac6743a93ab7ed48365fb767998c7b3a1fb4db8a4ff1e917efc6f8af756f8e989760fcf7c9ebab117e36da01232c6f4dad05a5f76f49cab33b7f617aec3a4ce50f1ca74e31e5e6d53f22bd74d91a83bf3bd2da04edd772f1886a45c01b0f2cf61cb6ffaa2219750a6552712cbc53903204dd14b21518ae334a8cc5da0de2fba134bc9cdc49efe32dc3ec0cb80ffb4461779d798d134384d8a77ff6589248065499e7e3412359c894a6589e3012a65fe879a89135e1fc6d5ddd670ec0bdfb315c3329d4385fec529b3cdbbe3237c1963025f1827da7d147fe980e0c830b8f3d082e75453fbe8724d5a237e7fc9c20e81120f1fddf11d26eb46a227fc89a05551e47ed5940521629b7585ac49721bfc33f5e4417dd71d3c4c7bbd49153286235928096decad1e9afab7b05511528d1025de2d052e319666b3b9b366752448e097275a74bce44b08567504aa55b52c40ffcb7f3422b6baadd989453283746b0deac7d771fbd8ed68e7d6d653079e5a561c2bfdbc09081f2975148422e65217d68d631ea7734730bda2ef93621f9e4c538ee85f56f1dc5dfb7dbd8b4351499b06f04f834620cb1610c67ac1baeee31e0bc07c1be5c7a6210a31931fd9c114f91b557b10d48de81a09dd42e2ed207a91aa4db3c64b2817b220cbaf27d7b650fc3eafbb5aadb713a3643b775db575795418b3fd9683175da17e8ce83eab8fe3a2430511161fbbc6670a582919d24679fd45b6f3b718bb2cbd900facf7d66c5ec996c1e19397119ccef775f3faf67ef59bf5da15c37a6ed7777d5c3fd3bc268209fe58b467300a53e056fcbe090acbf1239de294f2a296b5bf496f3ec8a4e8f2058e3c3a1ecc263743c8aa370b685bf129f739e724c3fa50b5e0fdab91dac82d1b090a540cd22c21833b3f8361b9e541fb55fb3aa83a4cb350a3599ab3299be04dcd9602513fef74c4af07108c66da6772dd8aae0a89543b095ecf304b0025927940fbd760f94fc722441616b26838d2866e01547cd0901efa7aa8df3c51b9294938159769ed99b2fc752d44f6ba0a9e3d175b3207681d7d1feae3501320532ef4acf6942462585ff7c333b30f14028f6cfa89d69b59fd417d154335e9ac57549fe79f29bcbaf6ae91feb0a94b552aee8e177a85b87699c65508d682741a8ee974d99d4057a5baf0369c20da2031ea2d1c8573eba908a2f5957f48076bf442a372a4ad744f1144c508aa8cd5e8fc07f12156479847232faca5c7bd20e3e7a5c0ef48b8496f50efa704f7e392ed2d76cc008f1d2e31c957578e983f6471b0cfbff9cbcca4a1099ed7fba75cfbb065b79a1f4bdf2111b01ca863632256429589052bde2708c836a42201b22ad4a647f641c1595040e758d4fac5687620299599a17eed8de627e95d623fef9f97e465ea8b666aef7a4dc30c9ce90adba8de0072923710d1f02e66091b5f0bbc3f016bcdd07b6e525c10b4f83f7bfdbfae35fa7885a64e313637424a9f3ca7c59560d4fa53633e9263365a87f44953f4a134d28c96fe003dd8ddf7440a271281edab943d5137b6dcebc2af433e01faaf1928e49c03dcfca3ba041e0e169327c90357f87f0dd99ab85b0c61fa2b943976bebe88cf3975a8a4ac204f01c5a1a5dc7715b97567cea4b449d92944c52c2c3b11f7154eb99e4d31955c40ed4e25ccff69ffc7c193cc961cab7ecbf039230b27ff654312e0ba0d4e1294d0cd52a608d71277ef9d8ab0302aa382eb4789655dad396a5f4a3c68f0a79637d7a95099a181c3321b61f66b6cf76624ab9e6f8a085fd77c4adcdb76caf04d41f730536a086fe911ed1e96a2bcd856624a165833879cf7a604a4e204317f5ede0ada81e2f2bf1a919615feab380b944c88d1b38b8baea1bde8cdfa7236bf8aa6080792a51efcc9bc57f414edb4e5f5a8c270032452bc872fdf24fcbc164bc29a1b292e9d61884f89857fba6efeca7b22f5ea343ca4970ff9cd0cdc58a5ec3cf367ac6d86b8b5c95fa6c2d9dc6c336562fca41e2951c08b87c2f72ac7ca9ab6ffb96b19cb564d750b976607f6062462b9d0046aa07d6ee262386ba90d27e3aa86c6c8a005949ee441813f5df0768b72f4dd2aab923a48b6aa3805c53854cab392e80c9d0cce54e6bc6536c36af1876019b1b169a923a1fab5731e08321101525198161430b2cadf5db9e749c1ebf0294caaf441b36a1458f9c7b3b19bf4d5dbfb0edc27cc5fc31b43b4ffc4b3b51888161630f1be63295f362320898a438e22b3be9aa9318de8397750271b8b5129da51c9f425404f3c9fd8e02b24bc59818d6fdc24622cb6361137fe5bbf21970a4f1dc9e06fff4d933004661685034632e20f144a28ab497b43889a2b905cb40aac5861807952c465c4580c3106a8de2910ff57f6e139a22b70854d29a3603516ca0af42b81f152bc3119c5ee47164b42bbd2f98031a64501266dd42bc257a078f28607719b58c64564a0a7048c91048d2c7ebadf647023c3218cb6d6a77b1bf3e73a49387073ffcde2fd566e35b0f3c29ed8d3b11dbe85cd50e148046fba76a288488bf01dca7fc4c04d08fac46a663f61ce2152bd6e5599d6418037320fcfb8a6a0a452eab5dda4d7827fec4820c18cbce37248918093cba36b8ae027028f59b1806b3cd9a6a1302ce88402aed2529711954e572d0d03c4cca0ffa32e3c8d2c61b57c34ebb62d67cd9daf0c429fe4d02c242d64ec82a102ea46cbaf2af46f307519aad44618d10899a7df92db30084b713c9da50e707e25e3f7a9ad289a785288c9d3b3cc49f07dfc9c76b3ff4d979ceeef04c2a88c3fdc18ee13b84f428db521c7eef28cb9b609fc0987785b63ebfe87d53feb2c81570d28910cc5bdb42726adaf795f952aeee441640085cb96e1e7df4cccaa8ab50a9104c3d6d1cace7c9487922ee84b8bb8d25e9d30217596d2979672e68526d74776877d9935c92caf60d1acaf849b25c5d0f368cc951ceeb30a776a50774319dfc3b224bec115cf59094ea3c0722b56e04432839dc0785299b7bdf97dfbda84f0a418c1630a1f6224d7f2bef20a1dbbba429c3632e6966683de78106fa700db6fe2f33510f3de7ed38731ea022ca2d6021df063e95af84fd3f3f008a916c8c3c7818f9a1144a930a341602f3cd506e775a19c97a73be0c2707f088c5fb712a697b9ef2044a9ac380b54cca1234c19aa68623af36c286e8fd625b51ccc5bda3756848986544713462a9555fe85a5f78b8a162f30b4da81e2f8eba2b67b33297dddb074a9279b377524862a79a5c3b44894bf71910cb196fb6946a33a8eba6edc741cf6fb69b7e99d2c5f3ac78cf1236275713dfed78b9df886b1364db69835880494f26d7891a71971891dcc2967a831587466d5e129c603f9d9b9cdf59dbfd60a5688645f63eefa1b112b33d14e85bb15f20e0f4694194a62ab3da350cb82005cd3542f84cb6d32fa76c329f7b7302055dd56b22eed9f639fec7a54a9cc2d8e30a5f51f959956247f6a7a2754072b10d8ed1c1f502887a5a97c99d6b33c51505061956cb06e094d4740286d958fb2a1f818648f07e51bdefd3cbbc7f2d6d6e2fd5a040c5bbbff8986d339e093a824c69bef5382cb470dbfaae73f47a95ad16f337fbaf60b6920737e187e26724481f90aa0d215d2460eae53131695db5c030a3b68a21776dd71ce77f229bf6c85c2855d750e6ee83fe4c9bc0da86f62f32e94337db5e24c48ccbab0407bf96ad14cd3b5151f51ed5ae360ae3245850bc8eccce96696b71b86d5810199db5bfe9ed47511d66b01d5641d140ef326d015a9bebe5a970de853dea4ce3a7dd5a0a9029b07b26eefcf6b8061dc6110e30e7b3215611665f5cbf13c1e634fae21f5bbf76f93d4195e8223be7178024ffc3b86edcd4a65dc9a8083cfade6781a7e4bca34ef224fb475c8eb3ca975a60a148bfe6d84712abfa12d34a31d110b1e271574f3327e98030e1b2a11c9696bdd4bd25e3a3cded9677e5951559d5ee9574ed7fca4ca554059370f6f1efeafbe74afd1a6d833d76ef70fa576ee61fc7e9e91c2a5bad53ecb6f18bfd05076932c74e79b9d44285e6a458b238e4fc9f05af1201c03d0db52a2cf0301c19e43e4bf6f6cff480d32d70683da335dc1fb64df5d6b8f8eae9326b03fde244657c8f6a349bc3e21e5ec05010a43e04c9339920274e82fb7f7ee28bc3ff6b480a7eab7a01919ef017cda6c91cca53678788eb35e807a4809bb25fdff663782812d5bc8c9e01d497bbb1f85ab544265670b1ee61e9a3cc706d5952180441329ef528cfd2373ee6879e8eea58374c30d3fc2ffc1da03b008e9118193be50179128fb1fd49a3cca8c150aef0facf957fb5d9acd122c5d033d196aa952eacc8c1607db1e528f95a57987729d2d71c5de1cf9c77099056850b83605b923fd0607d4c0e818048f60c2adc6bcc26a0a775be563a2ae6e4a7f671fbda047b4c9de057c3de760f3e8fbfe2464c07ce312a5ef969b740ddceeaf5d27c89aeee9ef076d365ace751276feb099f61d29bc4d97f5bc9f15ac0c5613116fe8e41c09364c42af3e0c56d59b076c5bf8a188975c7c19536d1817257ca53f088906753846aad2ba77ee9e626a5bcadf4c2029732a4a2733deecbefedb10f26fa67a7010c555e2c53fff66a8517e855b3b0675fdfd568a4584f41278f95d52ad1fd465369fa8d315d4d3df9ab3c491deaf14b6e2dec8da540e70e5dd7e6806ba3e382c116df15388d8ff2768eb486947750c979f4996adf7f8905af313e87423359fba4d1c789d82148117918cdabf3c0090e243f6ce847e1eb5c220fd678aaf93c725f51d80d0a3e833de369231131fb5c70af474451a75474149955387aeb6b87cc3266fb78ed15ce51d8e663df08b437dec16a1ab3d31b0209eada84df0974e71be80125907ed3c61f5f62338bf3745338b51babf2b227274b18ab56faaf97550fd1badb7c46e788135f4d035055a7a2c1fec7451a9ffc452373bae9b380a8df88f6d863ab1a062fc598a3ed23a3777c08401fc18abf0433a1660c8adbf6833009463131472535af56292d2dca1176347e460c434df8a816b5f749bfeaed77b455d63d2b284654cd350a7ae87c224fc9901a1898071d81b368b39fca12d4880a4952560e163c570ef57f3dcae3c2f57e2d1ad5db44abd9890a22ac973ae38fa6d2ddd20b6b62b1cc7d97ed386822af7ea057e7995421834ef4ff26a6f6433fa9008163e62a257bfd73ede48bcce36bd19b85f72fc00abf0a0d7c97a56daeb72ef6228da31d65a7a5a9aa1292a36f84c90f20b373232be6b5cafc70f246049f5bd2c8b8f1bb8a0b168889e484cd6c7a3cdf576a606bb6fb55003e257138068b0045a5a4a386503e02259afb5513832a1dec94b1d06a96a3c24721eccf1072abd1ca483e85ad1038ed6978f6f3b7960dca3ab97a7b5f518430c1a9e19258e91979a10ed853036485711cd196397854728ae23c3510a01e954359a315874d08a489dad2c01021f9e3666ed6f4e31e95cef6b802f3fbb86145381716e0f2f006bfc3d73c7b89740a0e56b191f2adc313d5657a9d4de8c10dd09571b72b3fb7869cbdfe99e33eb19235e97eb2822c57202ecb4c640b8c976ac9b5a0b6a6a8e00f1b4d5562a7414a528029a185cb6d35411a930b07b18f9278858cc10c2315f3527d98765e09935881dd536ecf183a5eb77556d027cf6af3a655aa179a05a45b4b364552d917bcb95b8c4fc150377d0a6b4dc0ac3268c408509fb6a84bdd64b18f0f601a7d2fec35107930499d0acd3951f539ee90ab8eff62ab16c5c936c580e9ad672bc60264e1069efb248f5cbe4950f535cdc594d852c9b149874176cc27a1b264213610c2f29e13187338802cfd89442491141a240e797444f35d26b620a1b1de210b0bcd1c3196672e1e25ec2de6f7fa52eb0c077fdd1f524dc0c01f6fc59eaeb4fc1de2d0291f55cb750cc70df169a0bf6717881ffd6d57bfdbf4e69c3933b66279263d110ba594cba8217533a63e5a95cbf1bc812c6909ce8a5345b1eea51ba686e5482aacc39bdf7a62f092634421c9c7691baf1aff44bfc86fd990c1b6ebfd3c052dff23e8eaef640f30146284ceb3e0d66b11911e43e76ecca9eca738a8a927e0090321443bca571e953df5cd418080ee3b7bedf6905d89950f5dd6704498416a15678b71a71c2c830f3fbeb21e88a6426ffcea9cc4040717554776541a2f1c5871e6399a03dd69cd73f5f6b6e2619201db98cd0942fb476f3854bdf794aceba9cb40371a4d4f789d8a8bb9416df268104a91b7a9e30eef5e9f0cf3acf54a4bb57a329062b4545f1c8b385be6e8ff4b8b991f8cdc3ff6dee5ed71ae5b84814543d5bf87be2e2fe244a1c326a70118c3f616920fee80535fc4bf71aaa8fd08de2448ea4741ea1b6f753b75d188c73a59210efede73f65bf7ef1c6f7e289fe7d3dbe63d598bef531f1c6281be4d23c89d73c9a11bde3ce85cedb4f3005d633c9ad3db1bbb76ec8b4ad875762636828db0de3c6857b0c9c8d9ad59927647aaf2a87a416af1b94011443c3e1e7970da6c3a37b775053904c7eac92e624ea0fda2321406ffacd60db77551ebed1d7456bd1a66493a4b40ea0fef49cb996088ba08b954f36b437475efe51b1fe26a5c6db91002f948b9c51a06b19d0486a53a2807ef04a5311914f21d153e91d4457346a58a51dc26b1051b70bf19a8a9a2e304d6be9f1bd6388d937c441939beb04f6162e306eaf5295c829b0ed4124764a62563db2b4cc776d5da874604bdf254d3a8b5efa0b5f71670165ab175ffb9efba52f42cf353b9792e025baa54cc32cc42dfab7f460383b28bb8f2b80fc8d8e9793662c7d648f0554e34515b00a2300a24af6430ea283a2ea12634faa423af78e24ac383493cc6948642cf85ab03c0f5f3234aa760ad52ff01b7fe9385b3c9f800a47bab1cb63d9da751149e5470cc7448e679b23a33b8ecaa4f136e63c2f229226345977429ede12fa954708c0edc46d54a1efa2525bb7b9a99d9989a38ef11c03a2bb462033331db493cc1303a1c458635f20d666fbb5a61466df8325dc5dbded327f03263641c9f6a926f52b81e19c6a65988a5ec8f3fe66fa7c1bb11a18148a5098d5d86773df807b8ff59cb5458918afd80da49041a50872893e68241255ce9e7cc349829d8885b01d90fc8004475ab5a35ea0a06f6fe82242a109a3013ff51aa2d677d1d9432d54f677867a140190db50ab2f334f9079f54a90b273d9f1c2b0422a1590b34140073d06b16c7bcea4ad8796be3a26c2f78d06fa8bf499fecd9cb201ca267e34b614b534ed355706df6f55b564b834281295b90f3ed4375606a220675cd253b5ee7be776b1cd920c4c1d78b8f1273277ec0df96b1928630fa45d99125c32b8def28ae8f84a4055c03745bb2daab8ee2ffd6744df55259cb9883c025de87473c5c4a7d8304806a7252e17de91d0d63fa225afbaabe973957b52f466c027567acf04cf4fd6ea6fb25b5d8f10dc8e2b1fe8a20efebc81816248bf29d4545b166a5876b06b2844532d51fb2b60f58d378a5a4e6a80402129bdca9125b432a042830eecc39042442059e690d42c89f7f61c1e7d5d2c2a41e57aadad887bc243a8c8dea81bbe174d0938044f4085331626d1d5fd39a0b7c9bd89d68d825cf8e1a51e572ba5f1120cbb339a47b992399e612ef4e493f22b5d099567afef8ab6b4aeefc4e42b0520b3318235f5d65209394d799ef05b5d6bf6bc5cd9b6ef0c5e3e3d02001d01062eaaa85d35c5029eae45a385d4ef99177011a04cb8028c109f4ca011e7ed5deb391386043a769ec39b7e99beb3a4ba2a945e6e71d4d7ed4df5d7a0a1db27247908ffcc54fadc46b13874f31f8dcdf438d6cf8bf2e489b386a44d09df4d57840e362177f1e7d3ce69678d47d15abb944628f22ef9bed2b498386bd0ced09f3ba706e04535b9b158449085361e366d42a41b651b87ea246d1f7dcbc7ea6b322c3b9fbf3d2370c0f0a2a23c30c3c3fbba763d0759f213387ae794f46441ee55181f9ece2624708ef06f3898f93d4d13cd0bf3bcc226a6dfa96c1bd2c52146b0e256d8eb8e55892476327ffd802e62eed704bf0a9d56edd54fba8da28fdcd2ed17bb6cf50e56efc81ad5e54d943d14b5798f566e07536a1cd7b6aa1693e2ddbe1a02f8c6defc53f5f59ff83aa769f5571d935cb85a8dc4e2c9d3fec5de18ea751e8423edb1d246c543daacf7de7b73ec3cb526faec5837a9b314693f087510ab2cd39c8e02fbf059188dc803d2778a08cf58fbb29e8502b75879af1ef97b3bfa2b7f72f1afb9d86dcd79696354a1b6d4ad03590aeab6331a0ee1a58b543a9d698deaf97e9a25b1f68e2970faec275a95fcc0416987e779fa08b38354316e216cd8defae9fcc59386693bca1c4bf91ceae940823b572291588310aa64c4eeaec6f751138f79b3c95dd34d4fff858d81aa14486fa413ab257f5d78e54d6ace606a582b7742ebc16c0977b5e2f727ec6f2e432ab6b6ce972aad9130110b0fc6fbf5eeafef19018bf72d21333c7901fcc3af858dc4c0b80b1de73d981bcc6e89a2376835f27ac86133363f59d73a16dfb8a09699b9cb64f308342741c99aaaed32d18e49904724c0770c5c4aea5a3d3081496460d80ef4764074c8ef0ae64246f95d690230e588ced39bf4e5d8f84dc0349ab7954eb18f5caaefbc24f7c498e0e5cc05250c9ec548ce19f02e6aa3e556151e13b4205a7e60e550ced79b80d24735f02f031c50f8d5dbced669c204620d0b20a6af3815eed30c47150c6c9bcd898beb97acded6a4dca19950c6f6771030256e4a3f4e3b9aec10aaf18419883dcc7829dee4f1afd2930560aa2d258483b001830e788e61e0ccf6c2e6c799e4b316d7225cbb6c76daf5f69973a63d2f3460c7c6213491de99bd67fc2ad89b0d60207dcd7fcde62b42c9330a313119d6d2e751f58d94c10908606274f0e49ae4fa3ae66c466e4dbdd44106e165ed7a2e9d7e57d3895450fb5c56a39fb71defee14225c304052931c0f21fc5c692b2c5d14bfb7e11c3cb1741dd281c02914c1364098088c8cfc3360985811186060d1a398aecb4213c4b09f8aa8ad64764f67e8a3b68f8c1ce0bfa7e6ff812eacb787250629fd5dc3e753f43494d1fe6869ff1044fbeb86f12246042993862009c5bb32e24f04595b5aa72b34c57a12bc9052a0941a7d39511c37e70e855cbfc689caeb240aa5e0761a39758eaa3f39818b4ec14088f0a9e4189d116d6fa338d3ac281b0a2386cd1a9b11e4ea4e9c619063565e2e3a7f1a301923a39df705593ca7e874224690b6841402232880077dd7a3b41c561a491192deba2337b8dacfa8ca2dce0258be7942f730b4fe91ab2500e7eab6f32bdca2e6ebb5d2877c5536c40f04953e9cbf4d167c2a874da6c12d2c40b960ca7aff477db2cc45d8bc2cd63c79914da713c9ef2a9c450a0ba4579fedde7e63a4b549b1821cabe2908ff1ad1280718bacbc1d93d29721feb45d824e75400d1dcdc0d9a1b6e2d8524ac1656ea9cd5cf1526a99b9142cc504361457ee8a09a46e7a774529e36e22af560a84a44668f56ebb69e1e3148776a72d625e5ce31da9b6e802ac314fbb8bc634345d648655197128a8f26b32717d7e3bce61a9fb5f17aeb8a6dd07bde642008facda84be7e13586b2ef97c5aeec2b326b97efd4a0bbf3f6b6ef1c50c9297f5a228062ccf6ec483bf4ed3782a613560c4c1386d9997750dbec9ed03d0dccc6dd508871401fb36a816e269adbeff2f294d16c4bad6d6777ef74c76bc205a4fd3143f430cbe1839e723274b1469bb5738464f7fce2fe5fe35be915ab3af14a1491732d8e0b8c0beea8ee72b166bf8dd614f794029fc9440fe0e4d5d34ccb114d165a6e679d036ea316b12d7797b62af40ee9b10a72d62a94c55e724e8f149db5d074c780a4b898aafc336597323a32b9c07ac01d9593f02d735b557806df342d6f74cba68b925bef075a003faa9b38205e26b77423b4660eb116bde0f6532e6a3528b60c3339a719ebeee7c097e7988eedd5cb7be33ea5451bb8e84c93a2e7e6ecc44138e3ad255e57a5d34d4a02307422a3edbb1caa3ddd7c19bbe67713a48642b9919567f1ae9bcf55090aa710228a439f44b765de092bd848ea17d6e56922b5c44cb68d1b50b222860dba7fad2d26912e1312777881a4f913b190ff8091a4aae20cbb04354de33ff03b2ea1ee30db88b75b359ffd4954cce3a44afb614288da6e020e8b730f58517f34f7a5a3baf98f4a2278d8af5fca8bd0da2a74fac4cc2ee8e68ee697d22e3cd10b6d4e2daa17a4b5a582f41de7f7e3726bce41db62daed067f78e2c35a1f00363f84f218c84aeb705a5f4595ce097861bb5c249be1584feb98b31bb85eaa7ff3d922531477b9fdd4a8f5a87cdb1ca4fed85c5d2f940a8a41a204005d4e6f7cd75b0d1d8506ea7da11b00a4a6650d7a9f03978d3b43de884555a646dc50f71264aded2c32a3b7df5c76084a1ac6079978e32eab443a5aa4681dfcd3050191b184dbe5d9dc1d7c6040e973af4e04baaaf55c75e383ad7d3300549c794e6f07fb38a281a23d0d80dba7bb00e150be8ee78c8458790c5ecc921cf87106b81c14a4ad68c14091b0072d3db71316e16dc5e2357afda36520cb313080d9b5ef48b47ae286fb9c16b381013d92f4f2dccb98e2c133834107d58a7bab23b5a7c73b7bca5ec943407605f7c05ec887407afe25f5f50e5f369a307fba927d355b4b68b5d041f4a51dc7172f05a1ac52123b900169a5c3000cf90736ec657828c04c31ac43fbc9fe6d23a54793e0291db3e1c37749cf5adbcc70d130ea49d476e7a55afd13015aac68fd61db6c22d8e12c1a38fad85c7d4e8b9cb22a7410b3808ed0d59ac7b0246c54cd5227539379c821c8bf5de86f326df6cea8e795e5bcfba4442e3a2aefc3ff23086364b01220b81b089816cd69fd052ef89941cdc9da543474ab4e0f0f0d84bef444bfa11ec60a3a32f15c1b9350ca8004844e3bc7d82cf8f245775d30803349172e4ebbf5ed96bc47fd824c2e50521fc3362faabec8098b577b9e336c559b58c7aa3afa76bb78089519b616bdf5af468ea05984dc00625011f40547a3c4b06e1337c3f3d8f1524ed4ca8aabe030b195ce1216729b9405974c0a8dc8a43c8b7a66477111252fee1ce6961b1f95e4abeca8fd72a23e57f9ae697907258a1c37fe859d56e173a938489e8ea363611617751d15bff458de861073d914c67aabc3641b2bd8ecf9c19909554cbc0ab43268abddf71e136a3c2383aee469f6aa4b10bf07bd28a05fea11a9768eb5efab037e5e61e156c7e27716f692cd6bea0a4df31b2f467554630eb31f403598f735d2918d8d33e59d2952b9495f700fc3855a0d440ace8e46ac5e6fb5975bbbd7bf4a826dada67ad9003dc234ac4d0ba83a6ab9106fbfdb67597e71f5612c23d4b0e617b7f33c694f1d352b26d6ec31f9e0580d726f8701be5f1aeb393864a8ade1db27c3cd625b58199ff41b9f3fe37bca559f7af9c1672f072b5372e8bc4bd9212f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a68245b7d93a4394bf0e19303681a50b46f375b8dc12dba25f82aaa5bf77587d77582f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a68222f2c861f4bb3e699b3616dd41b941457ffa45a5ba8db7fd0064a3abd03b35e62f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a682d7929f9f1ca340522b6150ae8d264ca0f13996fa45dcaff42863089b7803ddd92f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a682ecf1bc4257db1642713397ab07e4151914f77907371ea2d25565c3e8e7760fe42f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a6826daabff35700a45aa0c81075eb326f049f9aa2348c9e061509afdacf94d8337d2f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a6824ee6a61ac6b0a5b46b6b4333736dcc2a9f2d970d84cbace0e62accf86a3d95cc2f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a682aef5bac3fe96f30f364d0f2858f28083f80ec3b67dd9e997620a572f31692c3e2f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a682aef5bac3fe96f30f364d0f2858f28083f80ec3b67dd9e997620a572f31692c3e2f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a682bba3c3566f1213ee1c1d59a3012c1c17f3bc5dda02141777ffa05afe3018d3622f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a6821f564c2e3d63cce23d52a6a620381bcd5f21b1d877b862a5d6909706ed56dcf52f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a68206f0b37748f5051f39864aa32d7a8701850c2f52249f8535bb62ee80c0653cf72f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a6829b14ec33e9c5b51fc2cb9c37c9aea320098585d622d2b76b353b3166d23803fc2f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a682821336afa410a7e39b2e746e13f342a4c37ca08adeac46741bae059e22be35212f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a6822090ecc774300b373db8643897201d4d997aba63c9e86b2a40e7c4eed31775052f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a6829c8e273a0d2a675e50173945f7526fbbabaed35bf4665f26f4920751bb8124662f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a68282ff76f2dd70f485948eba9017fdc6b5db7d767e4902b61be2b7824a710ab08a2f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a6825447ec5d793aa9be940dae9c2ee6b5e2168c0c1340b7b16f73237fb235d516d83122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf3355274410dab89aedb10f1cc3c7722afa3df33fee6e81749c7a6869b019a71c65ed853122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf335527a9aed3a56d9ed24f1ad1266579d340a2c3681aba922f817b152710d1303b19303122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf335527d00503f9f6c7dd96ed468d542cb5bb5407d468c1e2392bbc830708091fda7e3a3122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf3355273122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf335527b9d5ae5f2cd819d0dfb2424954337e3ad9cc5e322c443ef6a0238faf43965c123122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf335527fa2700d11b90f0bb65b938d5521d9376256b8ce7071bd346f4b6cc34bf209e283122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf33552750627569d7704e3fe8e31556a11d7c34fac1b717361d7e009dbcea808e5b89c13122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf33552787c5b37fcd91486bc42de340728f3f2424a8ee49dfc8d36de63974c1038445c33122efb4cf9fbdccbc044d7bdc0258c964dcf4db5b72266d44406f53cf335527eb8e99871a9eba0bbf71ac7f890365e622785f50975c53c1a857d61d843bc98f2f59c8fda108ecae309b5f85e703cfafb218739af91a0a5e944c1ed8ef07a68285a90b7f4d2f3555c89111178888dd232e2b6cfd2357fd590eb676ef0fa525ccfe337ccc0470534440ef97296fbd844615563c1525c8ffa7aa5e7f6ee95806d4bc53cdd5c8af04e61e3484595a10ac5605275de15536043c4f33a10d93b7e2b6cf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c89281580a5116d77cb1d99a51aed9d981a9d978d8f441c208bea6c6a817e7bc906cf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c8931b14ac1452ea994e84f861ce83d9fdd17da7929db94da63b239963f3f648efacf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c8915aed3006ca3e8321c608531c4acaf24ac9c734e5ab17ccceb4d2b1db37f43a8cf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c89ce2d8682914c393202daaf72490363761075d4536af230dafadd7124f068944acf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c89e9db505d359f75ac9deb31367d100ff462e8f33f9e957091e7ca1373c83230becf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c89593f354caa95f7c2df3b446fb2950e4b45a57829fe2f69f285ba7be4fc12ab99cf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c8972b387b19eb70d56e0d616b3bbbbaeb0325f18e72ef22398657aff46e6a51008cf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c89d66f0ac0d0ef1099005b219e16e2db6e0cfe8bd76e40ea443c5f6c725e92fcf5cf533521434882b34ec04dd0b427e43db9310aca127e01883dc9ab7c9f7d7c898f36a965dc369c01589b3ed3293a677bf50c1e721bf715e29efd1e1247efc24ae1753bab9f5b341ac68b068f467656baf908108a3416513a17377448b1a492ed4bb499c99adda88df092504287778b20c1790f5b002ed03c00bbc326b4b7b82f78bd2c4f08a286d2f832ae98d96f07d333cb48e86e519b146e4a60f1aa8a126022bab6e78f80b69ae397d8c67302b43fe5c98ed35ed5c8ee0ddf0b8f3fe41a3fd90bed877cbb9341c8313ba7831a357707c99e85fc26aef08ab77c4a9b00342fd23c0e0612bc0e0027ce83b9f155bbe9163d160f009bec18e37254b6b527a799f7fd2cbb59a1d2270d2b98d171840004a59f30daff552f37bd67e4b92f7c6de2e3ef253aa2db012a1c3590c0c774e88e1b3e05a001460e651c18eadaa80ebfd1eaa3b80947060bb73181290071691f5865b29767a49789608d6173e4601d2b0bcf8d92aa9b78dbd412ecb2b2ab79423bd44804ac25a9fb90bfd7f71148ee2ca45894e2bac9d600c37f695db6f6f0610a6e5468642089de4410820eac2f624154f0be6a802b6f11092fab6ea2b077444cde092eb55009316a0f39afe89ae65275b61565275048e40c6701f5fbd7927aa46d032b1d5ef3db273f9eb4a02f2b51d82ac362790e7645a0f29a6242df77b484f7e5f14057e0cd2659d6d86ae603956353224e1b929d0c3e6f5ff736bcb3e981189ecc0aaa5482424d4b80276f1009700931b8ad18b2ccee81713a6be5f47f894444f961964ed1963b0a7120418c9afcf97f195d2a0eb5323f1c59b925321443ffc84a76d6f2746a4ee0ba56fef0aaad3d0960cf83fcc91963a5938cfae70f9a3ca6cc0ac73603c3540188a558a1efd5f31937e6ce7b33b4eebd4e274a57b006fab1a9c1dc6b9ee5d36711e1a89232278566e4b3a91f8f4210ae707f4d02935b2b4fdec26863549d07c77456be8c232948416bf114788d69ba96be512577c65fe492ea9187c7b2a206253749b61198b39d7a1e557cb05cb063b21a9c73aee60638969e334b5c7f2363bf4449f7ee63fe4fd13cbd8bb50068c3b97721cc242ed675f173adfe5bb550e549f2de4916b06bdc894cd606e83a399e1b0ec289cadda4c5c55e60f5fcb4a4b1f547cff1d58632f9930e99d52738d8dc2edc24528e2f2435b26c430aba643c4bef17d7a7a0db626369bebb691e1d28765bbcb9b375b336d44f1b75f264f770656e376a35ca7d47c32da41d98cefd1897ff0ec8a6c6d6592f9c09cae3db53bbf36319e139954215d4ca684f1fd1a2ed1647f81f78584b1f20deda9f059471582a0be56d415bb300d745953bc6cbf4376d2b82399076358d6374e10500c4068c3641c439199595aef83e7438749fa47b0bcf95928199d7581a75f5a99ffabdb3e63c35ef36b82b9b5c57943141ee97c216d796162c26b1ec834e70f28fe5bdea12dbc4b25a4121e62b052945ab410b6aebaf6b43f2e9280af1c53de5d582ca9db7fb588164c7a50651803727659d50d9476a19a38770f1ef4433e5804f2898dd42517fb4e36e21a51daf630486e955b9c23b0258c76675b6846268c3c40a80137b1308f348db2d8dc427e79f252b6f7cfa873b151e4a78d0428f1481207d235b13d77eb87303f256d95420de8f318cb60c7943ee75238e8e5c440898ce3224ed251e588192a3e2ad0788b5fe59852d0e89d51f75b72c7c4a94db9ed5fa9883107fcb606028b9901bd828e01c45c7d94cf9db374a244f965e66ab5748e17da6120a48b14467e60002389f9a84092a4f203516cf22969627e6f09e72a74c36f8e568fa9d0b4429daa6e2f6a021d532159ba236961567e6b7757d2fefe7a0eb686e61436f0a2b58d01bf8fff7a57a031cbef654b895d06e956461dd40ca496401abfee4e6c5bb2ffa392e4d801b5ca6626c76a5e7aba3ca6bc2e3ebaca5fd21e849e685825c5880a5300c8fa6d370b913043364a858d5920676a064dfc94b63a5bc7e756b2c5ceefcb6d76465589c8a907fdfedfa1d32b5fa36601c5fa18fe50aeae2af54e783663366cef680d19cab5f0538280c1ba6c638a329d356288e5b9fa37b2a2ebd22c09d8f3f04402a396591ba1d30e8c0a18d2613f4c2205c080d8363ecb385a709449208af579ef61ed16a6c155dbe96a9e4c5ec772efe0a22ae1be662dbcd173f2df9d42dd98ee2d382d971cff486d78f5e2bd9d3d6c78639303266c5ea594d0d18214b83ee00cd64afe19c36f3fd4b44cdd4d1eb5d00fecd80630c8aa4a88f791f648c017a5a01c05067341844995a890e3490b94983fed6d35d5ee2bcced63d0561785250e04d0c8659ac5cf204cefad479342129e0e416441c89c864b4b23a830931dda469e3eff65d429adafbc65b2dbb8d1e842d934a01a219ba8d55848ebed54e02bab3c018b51fdf446e7c9f8f26a164449f84f397a30e74eb35de402d1ecbbb6a9ec7326e035986f4598fbc9a385f92fc5f22dca0541fafe2be59f8225a0bf66f3e07434ae0074ae3ec8389ad4f72aae6ae4663f854775fcbff6c379283ac98627956b2a89144fd2e98cf04b2efbe803ee32e614d102f84f5d9266368f71cbbc54704dee5f264b15d0176dba64b10c8f6c967b8f9953f59c60499c34c1846695a1669dcd8370717d814f5eb2d2daa93d589d141c7720efb6650102ed395866ad4e236e104b526b928cdbf0f1c11bf8d89bed6e5ccb54d44bd1dfb2b7795ffb826b14348e510808629e9401e86ceec80162e772e6d25d16e440f331052e22a401f62a977965353e3b43efc87c219f245cf4de39cd5f24a1e86cf3e74ea17bf470b578918f6ad4c80867101d73643acc7b66a5d1e939934ecd0e9ad8d251703c45fbf8ca3966c1ddc7914e14dc42f584279f537fc8b2ce2139d6a1ea8421587b873b2580be97fb38442659b1424a7a659c33c8822bfb254dc46d6d1c7a994abaee2ea724cc0e1bfd2f6eefc6e5cff7592fd334bd8b8b781cd5cbf35b2b3471fb18cd80dab278a44b87a4991670e44544f96acb10a09353b98901b681c33c77c7d8e6b01814a406d24facb4d8096c7ada7adff8bfbf07057e7906b93291ea8bce94a35ebc2fa65edcd36ca19705d7ba501762d61aaebdabb32fecfcc3b8d40d128a40919752913ee7de8e5110586caae9403e58d7020549c0ab14ea2b119f85cc161337dd30d6073c5fd7db24adee8ff97329212b0069f81157faa0ffb853d554b6a3b80ee540dd893c14bdcf3adc98da79664af49beb58ae899f96bb0a8b111ce01899efbd0a4f1df4543ee0d274cde46f8773fad729a7682411aeacecc4b5d48005d1a13cbc8a122d1370f5e57dfc26e1534058b2b4c6c3799b9eaf98a94bc8531c212de0f016c6cec060dc4a13cdea81d0ebe5c26105ebf0a819f019799593027308d8f99af012bf90306cb9fbdadc117ab8d96f29913d520f15dabd5734ff62e031e8c3f43187ddd8429ed7c8635962f1b209d6448903e8f4589382677d1f730694ea3e75be7902c73446fd058c73655b95393b884ea9cca18d6a3842223a9130e8474bea768506066da4f5a83e60a6635f186288135baf70282ce3cdf952ea408f8f1605be7a15b1aee83bcfbe7adea362ed4b1407f29b1a2ef9ae4cc515eb41b74db65c4d1ada9137930c93e77d9abcfaf42c4bf1cc71a7e47bfdca748f5037498fa8305310722e7a051641a845de9da27863df99b3dfd1f7f714243d41f710ecb468829ac6e127c173ad82ed2e721312195957e39546e71a7a056e3c0cc512b98d2cae0e59351b3cca1dce8d57a4ca143eddf450afbf227e136ff595f83950987bab5a29fef82b9016cbd42c03f9890b8a600c1d35a1478d16e53aa610fa0135d482475dddeb5e505ecab740a64b05756ea537abee9b01ad5df9410d5875561da6317ce4eea8639fa0704d7d095a6c61c1eba8ae01235a51fe784269903b8467a5f2cac5ccf4e24e74b833b78d489dca0fa15287b21d1de63984fecbc1bc50d82c170ecaeb6d3f652af44ed0dd4941f12b8a35c1fd04ef9886c8056657e81eaeb13a2e982cbe9f03e9230612edbcee0e62b85cdd5b5ee13cc9d259d9871b968ad0eadc9d59869a8cbd702ceef0b11d5fc02cef063d4df315bc63771e768a779f749250c02e17cebfa32a92942b70acbee525d9635594e5a5269ca4393aaa119fd5e47f0b6411e35cdd83b721800a78b9183a179502432b9bf1228f31269f54e3a12305f801f8ad6c20d9c6405f5dc36800c02449dac36bc0d0cb16cf1a9b80850c416a775acff8a873bb8d498f31124981db941d4473580fdf79b4c239b877e890b9ce1dc67cf8c5cb2660bb2909c6bd917c91488e49e9e6737dd5274c87b0408d27fd3ff9513a30a9ef2537d3f0ff8d7ce469e86032999f5780f8b0562bac87ca40b2a089f6f0bfa3ba9c79850fa366fe7429aabaa517f76f517ed55b8c6b275836165ee1a820644c857b97c2ee69f00e6ccbce538bba8d83f26ce3c7d930198e7828554040647f4ec4cb75a5a93c441c7a71d745d0519adcccb395654cf8e270b019aa7215cae1967c085e87c4a82b51d576d8309ec4b09ac31c74e0ffb829211bf6a833b00643d871aaca4c82522e00bb019e53a33be2b2451a3cb8070553de08c2c0dcce761760b5deb9f7f05a90f8089586744e9bb457b89ce0167dc1968e387ad8cbd605b463e927404a0e69999e5ecdf13c8c78f97bc30482b25134d72616c41575936b8b2207c63a6896a061febe4c96fabb7c18c2031efc56b25fd34d9154e7af70097c31ff64b7be7721d0df2b7f02bbf35dc7502846d011c7637a3e564ae2449e45c2c6b5a6270673a7872d3cef41d77795371c7f902196b4776e45d2b7b85dcf8ff2c95c297a9860978a063d7120c30311de4111d2ce44a1774b7e9d72386ba2ade45ed9bece4bd08a8aa4032c4a767e3819ea5eb23a5b2de09929837b2957fbc65d7e81954c6ba39ad5dc3c5a8815eb9458e545fc56b09729a52ee423e9f230690df3b32cbd861dc89b6e4cb258b242ab43e700cc9e5fe1a1c53aca26f388c1aceb722dcc72f71edeb8e7535b563fc1ba7a5241480d6e78d389444cb52b3934aa1e6cfb6431b68292c4845fe103f8285bab01e4b699430ce949776004ffe874c32fc6933cc7c8e4f797de40564cf070c88773a5984336dadc76965f40472d2a363698e20f4afc2a8840d0a2ad952106c2b05abf07c42558d0052558dbdab2b4d234f7814f6ada95bacdc9cf07e949f81aca6066a650b87896ddd7ec81e050999a718dd9144dc0d7151f380479c822bf5c6e5c1060a1a21803d231c13ef0a0b795953a74a56b8ffa4ef8263c37e707e9dd41f1880f4d23025e76f103ac8417545591a512ba4e898a460613e384106221c4ce6c0289fd8612aa29e7f9cfdf1b0bf36239158d8742248ecda586a708ba8b50936ec4417d9ec37b05b7c4db95da7426eef34d92d3c15075ea8280a295e03ed65e19a04e1ba1eb2fff76002b0d8f96713eb20d90f194c8a7b73075418f3d0e5002a688f8426df4fb0d9ee80e8f9fd04f90623c586ff5ae76bc727abdd66ac39b2ef802414523400887a77166f5c2f3342b1376366f9c5442d049ae603a927ecbdeecaae93213375af54aeedc919fb8ee692c7c6dd65ed74557bd1bcd5a225579ef235c0e59edb40683ea9055163bbc5e9a3bcd560a5bc975339de4f5a3bbbd58bbd52760cb287b0bbaf193d4ad8501ad5cbedfe46baf723220c0050586e6aa32f1b63e13810418aa7e401f5186e00fab6568e73bf60672d35a01662846cfba3a8c3bb7aad13f9968022dd259f4d77d4700c07cd7fdbe491c76b467aae3c474811b33d01ba6cf79b0dbdbf0934bb6efdf2a2ce17ceea1834097c03c9dad76f639f3c6f15ef6166215f5ce60e8f1074586091f57304dd2b37421d92aaf4f8133a4eac46f2ccda531bdb09eb2115acf75ad9f4eeb2a56af98d09abf00510afb71dc19c028f359137215f5ce60e8f1074586091f57304dd2b37421d92aaf4f8133a4eac46f2ccda53ec0ef427eec99ef164324d4cd297068bcfeda3601bcef50df3c3866b63a4dd16d0813bef17881631cd4fccc0a707d46e7c1233d4bb3ce8409f6185262fe1d449f490485bcea193badedb7aa9dcd14c453cf2404db9749f3e2bee9a2be8707eeebc584bdac605f389365de2a72006e42e960981c5ce943eebcc2df06828eef69838eb4f90c90b001e6f9b9a4964a0505a94665e049882fc47f1681a5c86da2593f02a1991536045f3807bad97d5d53e0190efc21fe711229a41b94499a5f65ebb9c88b75996a7c0c49fe3f0b5d60829291f3ad0ad41d4a9a2e87a8cc6ae0c1998d87d7878e0904726611462752a7d8b1f58fbd244c5d50a29e2f1feb622aac8f21a020e872a95cde139d1be39a9c9a4905fdf67e9bd7fa53e72d6e83218cdabf65dcf845557b32e1af2c3a19623209bfef6f335f215d19f46f4d152544acc94d3ba67e2434b2373c32f785527cd1517eeecc69c9c140a648a05cbab1c3d89cc3a676bc3ed63c2a4f0a64a891e5b82dc01d15ac587ce4c5e54bc660f3e1cfaaf2e2ac2faa1d2bf9705f09d04011148f86bca12c92f46a9e96a1353b53c5e5349e3e1042e35af12aa6719ebb1caebbdfd3870b28e7009b1e5356e4727e39e0a450b6f77d7eda75a43203e44eb3ede0811bd00521169a0cb6aa7b4ce3a58454315bbaa91ed1aa6b222e26e112ec27cd743998e9e799e5e302725a05ca0787bd6889d5b7826039d9166410e14c66e209ea95391acaaebf58c66e32bd2dbf9d246efe628609535adc207661bad712be836c3d95961a4f15c7a13762aedccbaf9398a14fd71dcf667d06601a4732e2148d5eeb903223caececa61e3686f123b417179ca64f502a135bcc2351737ad0202d0ca0a4c14d0ab4a75b4551ea91c3848f91e3773efeadfb0e3568b7239a5a1bdb1a3097210191ab7d1d303894d7aa69ba941e3265519457a580f4082d8b4893805df8556e1ccaad489373176b2534fe066925ca5ef091e8a114eb019629a20462a8b6ee35b64da1f3c613875f4b7bbe96fd7c025afd0b54386dae0f9389c14c25c149d14ff86a6ec23e94391469f7a83bd302bedbe510919ed883c60bffde54a71ca633244d7a4e033c416f995aaf9e78d6c30cb789b7cec81aa580177e1b3c0561011539974d243d3a1de0d78a1a278015cab3654bee12d3f197c7e0c38054b6e7d2d9ac21a3519159c418cb618e8c77f6551dc297fc74b4177e616093ccf2678e1cf3cf1581513763f32ab9595f3454b0fdef9f0a5c8e94e30228ced951003282a65bbd7a05809c4e9b070d7222f566ad3b74520bc555867ea6812bf641df5c148e2511555fdfc7d82a7f70426bfd6bd559e6c42680ce07da2528f8a76faf2cb3cfb13b19ec1c9b8c3997b3b62cd0657e4b11b3b05d4373aa664739d785aed07cd6edc6e5eb3e8de99195a2c94b4ad4851ff8abcc0f8f185a604564e66d005099b22e7b2272c9ef1cede7826ed3891f57f8b9fd6bd38b8ee63f2b95100c5b5981b7e60bd2b37c319483e30b8ad4f2b5774caec2ea27fb010504173f6365a940629cfbd9bc980b353f382b50d4a64ba447013efc8ba9a0e5d5bd866dd318a1e71fd068d67cdfb7f0b1efea04741c4ed6d54670dec028a3e0ea0854cf69532b702087187c0323f0d19b97385ad0c70dd24481e251b894d3e6fa138bbba285ad25f9f855eb54d006c5043cee47631fa5d7ccca60abab018f0587eeb6ee92e71e01789547dac17da6061e559f65c00a181e88994136625382f72e935ae470d05ef8cc8f3f4eb10949d2a376a04a3bc86a14c695d1fdebe863f6bb603111cd9dac6eecdca7166833788c50b8a9c2de21e153ed08994a3d96bf702fa8c1c474b66afd81d772d4b01988ad48439675098a999d577003a0e1e42dea3005e9ed741a7e34d39473e60b77370597fce66cb35e10f51b6d79b1aaa80585969fed8e3df34eeadd1c7b5f40ad92f47de09d52c9cf1ae10456238bcf5c0366f0b5b81ce00941f2dc94cb42a62af875901fcbdd70988167b84e4653fa1f6e5f49fa994be222c9fc6d3081402f737263f689eaaa604023409255408c0961ae5549a5f566f773d885a6cf1cb0b79efd9d5735620b2c5325995f30a4ba84db63c217f21c9112013a8d756f6816b5f5a2ad114c7107dede832aee6a6c2080c28848b54ca2fb14dc485ccdf307a0561c5830cf730b98765f2d8f5e00a8b30ed01347167352e75732132fc5fbbdff8eb3c482e5bcac5d08f91cae3f359ba96b7704c3174b729f8edef6a68ee9ec43641679e3b01341509c5b6f884348d9ce67e18f6ae4ca9aa4f9a8f5da5d035deadcf8fe165ac51cd16628dbe07faa3cd989cbcb1c102534511e633bcdc783531f1f69d19b3aa9bc15e82e6fbcfd9aee72a5cabe6eaa2d375388784d0b65d3b596170f625592b7e65492099010aa90391c30cbded48f93d5f9d15e31b880cefdaffe115d4901a65934f4345ddbd6b12a2c51983d3c93dd74db7a737836e351a756597189910b8df130f76921f27cb91231256b77492bc97051bbf3435f21f552f46c5347791480a8d2eca1684cf0e71b0a6044484a9919b52cd45912954efbed5c6e3c128300cbead07a88283f7b1a25ef70a5b0d24b8b0b0028b577911a4ce4ff972caa82c076624c42eeac5875ad6e5661be1476af60c9e453750780f86841c689dcf229de80223007c3cada148c9a00109ad913b5b37c4fe943287116d21b4fd902be34bbe804b68ceed63953f205aebf5b2fb498505796c5a1fbc309055ecb81aa7670797e6aafc97c6fb443e5bf002abf8b3e88db3c2dd3b4a500c1a0f36253c8f07cfb00e38938b672f4a5803b747baa51f23e4ab92ae865084e52f0b88de6587aa30ffd7ec3564291dc9dcee6e263a086e15dfc103ec847b3cbd369cb2d9572c1184b0653b4ff7bd2b7c098e242ef757e99f70a87bc419baff52132f824c8abc11da4edc7a7ab2c682a979b01d0ce002e4cc698d712589fbf9eaf02a0690284526d71ca4d78afe417204ab0d5cf202b316549bb4b94717c26739378d39f010f23d632c72b421b7a3167d2ad644ec2f4eff27069f19a6c1ada5d12310c7bb3668e996d2c01edd4018dfe65a01447be851ab7e013a5310e182129e14b038ee3ab47abff1697bd8b5fa9ffc5fee43b8639a180698db319dc6ea9ce6871551059eb90e8962fcb39cea6658a43fcbe45b168eb19cbe0f84aa491ae540f0784e4f2aad8557bb1c4510730fe9031f9d82b4a5bda99445da2770a81bbd5382788fb6ee6cb8b0b7de8f7b1355eff02d4b0a4df07c0dacb47d06b0603a5677f18e3763da91619e49d11e088ab4021143a9824c1fd720f5487398fe07ab0518613f0e47c8974da320f9c0d866c7f284065556101d0802f89ce460689a1e283b807337115cc0a58a5bec0ceb8c063d17a0627fdae7a5d8899c474419f72c6f8452fee490d80953678b7b34adb8d0e4e790a9c2891f272fdab5574cdb9edfde4e42747e5b2f714fd9280fa709d5a74dddb52d7fcf50ec230c03f0242f6897181fb9ca5cad7495598da0f545ba88918cd0ab4a02f804452f7cdabd90556371a0dcf766624d9298b7b3d1acc178cf64734e7c694e628615268aedcd83f7a7f1ddd8d468bb7fe03d6d54eefed4e2f705a26e4e22327a5b451233705aa15ac1509ea8f4ff96091dce9ab90739b6fc902cac3efb264f54693632997a794bd6807a3ccfe6ab01ed3c76dc0d215b106c12757c0fa7e02ea2dd8aa8dbc56224c8e6a73f5c9abb27a720b834e7891e7245887a33e86d40be34b3e9209568b71b0b83046199ef3b55a81277c35f993552ad23c061b6cf2246c904799d9b3861fbab8da4279ff97215e7d6d5480729b0a93c36dd0e3b5738b226f555ead1e3429b9a04d704165e20ddd1f2c83c0c958de0368764e67fd8f8c2cf35ded794cd31d196a9cb7b78f53cf70ff476c31dd54d2bd41b62651b1475b8a2ca089c3c5f17cf5e0209a0bf944bbf3700dacff5d60304849fc9f2d5fd58efb48baf3fb5d383d65180ce2c6fc89d547c5092289b1ef91268759b582cf3f7018babd0838afa9dc27c7e6fc8feee0d66c47b8d5c1187ac253949cfaabbf9c15d41c0465894d7da0c61b59d628625f54f428e08a1e5c588c3eaf2df05a9a2b896f68fadee0ab0cde1a59aef895b0bfb8cb7d6c20f5f028cf9f273a3d8293726a7210b0fcd5ff56844b15f03f6ce6d0de394083c318689e867a674e6f19144fa01d5b51542d071fb33533e0397ec18188095604e733cd751b4a2a277f588533b3370e2a3f5bd2db2b977cd0f6cfa9804b7da16cb84f8e42ecc3dae2f3ca493de1bc209e877fa02389c03221784dbc923b7f8447443c386a8f3c235c37d4d3edc9a808a3e3f41221f6327aec48a5877540bebb588247b068f40e02b89768c3c853d442422aabf180904b39a4e047c099b392cf19e43f1663483ac28e91502d5a544ce3cba53404df562012a9c437a44791f6828e69c086ff048cf1e43ed57f8f8690780a5f568226bb755f5e601add120af65474c8f2e07764d6f10bdb586eb1198bab369e97b886b98567a9e636fe121828df7ab59c3951c86fbaa8eddf928c68073bf9fddf94b9c87b1a5a5ee86a0563ecb0c677f0be5b177cb328bd5dba5b239af2e6de0e35c2e08bca84c17609e36ba15b2c6f9b8d44643e1479accc9c64592136f16769c22cc0e3f99d26dac9410352409a31d4e4a274062a25745280e49193f313d5b435d05d6974032ed33a8b8c8df9a35810bd6bb3b58bd62d6dc8a4d84717fbc7fc41ce2ba06cb7542efbf5ceca62022f32cdd48cea839c158e3162422c06d01a94c7b1ca7ee581b86b7508a690448441c9c31b1bc2dd3f0b351a383549cb9b53520c34a707bfc54f30bf8508c0a9bcb97f63fbeb7a123aafb6e4504a7f0a7d2f9904e49b70969b62d8200742f85425299efb34e2e751d35a4132ace41502513f5d3e29f36cc9d0906f21c30cd8dd5bba0ad43c42a613ff8cadfadd4e85ea7e6025a8a061fe65b27706be1b1fd76fc3164c4c91d6727f91a0055ae1c8d453106574abf02344cf09dac1cc0f1022c7da7c267d43e4a1da8d7db18aa4451e9790c971332320ecd173664eaf9767df1d4585a5fae250885cbc4a3a19f8f8f3549157e1a0c4c5c08aa796f2d7e1625b5bac8ede0cd48fd090b0db0cd01b5275bb6c0cab34896d3cddd3eee2b897c96a4942d5821646db99b2c2d9252a49c26c40fac6306150359f8b0afdb946ffeb58723f7d7d64a186dab385bd756d8348aa69ee6b2376505578d758bfbbc52aec88fa5e591f1a7cabd8adfa80a7b613a1e349b80fba8c23b63656925fda8dfe3c5927b5d0d8a1672143416caacf460fbd0b8c9bab2c9a1ad63707691c0c0e75f6110f15a60a543054ffe22f9312d2f274c3b73cfe58e1ae7da42e433aa91279f1749416e71ad4fa9ce3ce7c01b5a5acef2094bbf6141b359722c4fe454eb6c4b0f0e42cc10cc7af921fc158fceb86539eeec42522c210dabdbb565bedf35e2ea106fe26fe62a34c3b0aec66ce59aa4ccd754d85d48189acf928f7d7e0f4df0dbe07e8e72d343c71628e25bd32f326b205adfe8c7957aaec56ef0403aa9e1fcdf7165785f092c34bb55c9075ea660ddbcd86e13f4b2cee5e66235c7ac175907857f9c622164fa637684cbce6cf1fa8f4c5e868c9e8602e531faffe8a13049e8b29826d09d4f33f9e2a316ce51d9ccf07662c52951be321c21d87dbf076af0d199f6e8d51e27e6eddf80bd4d5b737497d0d491dbcb3248d003412deafab505433d2e09d59a1dd748fcf7c6dbd7b38e08164f319287827e35f841069eb471c092eccf97d2f7830aa4d8bd7301ded418bf49006708d6691753cfc46eec2dae88fbdafa22823a89194149d9f223050dc789988810ba3440bf482ced33d2f74b7803bba711f689d8e4caa7da5c6ae6844a1b49cb72fed0846eed03abe9166d55e5cdc06e85f829857094b828141e7b6ae21e68fc9a93dd241f6b045cbff0481cf4e1901becd0e12fb45166a8f17f95823f0b1a0c14434c58d5cbf121c5777445395177b07d90dab09a289c76d121f473a0c75b083252c74de6ed64b2dd5939f0fb88d1c0fa5be8ceb3056d1d4e8aa78ed63c353910b55c5584c3f6214cd397efe04464f89f5d10692f496c1a14d45adce01cd7331ea9090db0c9f6f597bd9840fd5b171830f6e0b3ba1cb24dfa91f0c95aedc1be3b492af15affeecfe838e46eaba50c363bcd8fab364a4bad2da9e15ea1b6b0efb7a98bf5a42c3c819271ed55b856f95e231bb0aa59472f5830b1777758c7a170a5af74971d0bc271a7873e572e1bc911b93d264849cf832032274010523ad3a0ee082852a135fa7aa901a88176ce435796499d13ba115f95559dfd8c6f155105f27f12ddcfe062ad175e8d8745a8e272468e13108d86da6e26062972f538e191b1a90a33208fb8521d6014712857d525cb5c3596d6fb234a6762e7917270887e7dcc893e0afa5ab41f983a79b1aa71a59f51d82767647fd8fea8e54245cabc864b2d0768c1e307fd18477435e7bbdc6f5fea9ee7b33ac84088cd37bf99c0deaa7327bd967a533d92f7ca71d2142a101fb566314436808de018a7f96663bc2d39179ee4627a0f2c0aafc121e78eae9052d797a4aef76ca445fd3d2397121c9dbc2f8e15b2da97eebe94f4d1647dbe6ee464142954e9b64fb25be39e1b892f6ac1485728d5ae11706b846a92cfb8cf3a8ff146337f8fa76966ca3f1978814949455f60f785d7638555bf2f8d30da3d2acd8c8c30b9a0877bc99a74b2cce63509469136f9fedf2a1abf041a765fe1eba062e4a8202ef648917df6cde3d3d61b461d09e62efc95abddeb6dcecea85cb50b0cef5123f35c6cecb70ab6c2f3574aa403f4cef24918e227de5ee049781a2c240056b6517203ec4b8a57192191f1bfed4e548bc0a944d80fbb19c16e5aac3099cd29a9ba86199033c7a7d674f7c1c343ffa1f7c553efb01afffa14d9f00047dd20ca9e7b829d134ce4cea8694dd6d8808d440e157ce88a4c56da0b0766e5c355b48ce3b5f320ca8af2eea108bdc863f5812364b4523e33460909f06ca40781c35d31ee73ab1c23a4db01ca1a90922a3f815ca537de5839ef76e23558463aa58ce7ac5bb55c7175a8d1c1d90e0477f4c605b2632741203cbbf601a7dca64a8e43317ebf6d8e89cbbc17e53b5935d50390f3e7a4c4a6c16549723ca404c1ab78ff8643476e6a0d044cce846423153a3633c509a9f1db35711a5b6e2b665b0b5e56d104156ebe9f42a459177913b3f0fa4561c4b4a43262576ad319b16f47d9836b58fa695b76217b00a19e8071f9b7b1d181cc37c9790f8f8397dcaede225ab3d4b0cdec28c6b2feef3ec8b08023509508d6fbc0dd523779f4e03c82c41651303e8ebbf37593f2cd8eaf51359167f456b66925a601f565a9a1775a940fafa46b50ef996e30927b576cf614bb982854dc2824c856c6b914c73b1791d8669887379bf919081dfd60b3e81075aece04790699e880d79260537c0d5d77949936320a9780822c72837dfa51731dcb8b389f22b517023da1205a294145d0698a5810b16b8e769555e72891b923b684d4ef5db50a80430719b937ccabb7a51be6d01bd79f9ca249f215e72ea73a50a729997e10d39c1b5b219628ad784ed6c4a4e8c3f06c7cdf658034ac7794a550245503703555de8c123eda52b75b54cc87ba34ded115dd0e4e93afc0c1987bffb2d4e636606dd76cf54b0c7f452e1fb7740674f63b36046d662190360780fa31a9f125123d9441e02a6889f0364c5e89545e15f380a607425981ee6a1a5456b4a68694dc01d6c35c3375b80df5e9c173489df634ae28db548c169c449dbdb6c9ea0b0a0fc72446e24a93a8f067350c4552d21d4de12b34e809ba1905c12679b83e518ef6291f6b5205fd68ef82a6b461caf458911546d1afc379960c1a226342524ac33a22a51244461f865b005a5a6057502607650ee17bb2f18277a9caed04a6b6c2c671d2d47057fa79e3d3a3bbb66cc2756eb499e8bc5f6f7e0f3ba0f347fbd3451a0a626c01e3382300d0b60fad29913315e3c7f30ceabbac99fd24075c5c03ff4e6c082b144a05bd111b83098c4451d99f3b7063a9a86027499ecaa4b1352ebaa4bf85f5dd75c5107c4452cb9aec6609fa86740fa22f50d0f7c4ff1f86a57a29275a21167a68cb005bba826b16beef941c3826e292740b03de996cab961c42d0bdf66ae2c3b92f8cb53a1f3f1cd3be2127cdf24faf62703380ebea6653ecfc980cf1cdfa300449c9e43912257cc794b20e113dd723320cffe5ea0811abbe7a45604222c3eedef2ba5906ca7a3c9f910a5ab767849e65f42e7ab9245e93cc19a20b167ac8fad498d689543595046d457812fffdc125266ad2eb55d35c5afd972cb78c9595bc7a4dffe3bab81f3b450190fbd62c6dc5d69991f8c20e344f8974beb9f1e042ce30a062f2b36e8e4b5584aa6f107055e162a7e2ed136fa66fd6016fd8c73ac8bf5e337ce360aacbcdb1d1964bc1d399cb2ecbbcdb63bc7be7e3de553b37c7b9c82608bb715ab70b475b8e7a9943202dfb756e9bbcb33ae81d51f01625a74a9850f537999d0235647a88101ca040897781a3194c984ccabc5cef8c3675e370e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855d3d7c3a66aeb9dffce73a7141514f650c0e68ed33a0539c2601c9605772893dbc488e22031df744b6984dfdd014ec9c82e45b83f1559d0ede1db830ad2fb87a0a3187e3d799082ff6b77e4c09fd4f80a169d5583726cb9a5e7aebdc1fe9a8bf8132cc2dcd593417ace5c8d32db7f6a47ca50dc119cc0eaf8232775d463487894fed65becaad908a50bb9f1652f713d9ed6c192de4a8c2c0402958f88870bcb4c542747b3ba140ad92fc348deea6c0ac4fda0dcb776f1ce4bf1738e670ed9088b8ccd5f961dc83c5bc3934b9b6a1cdf6229409074b112727605e2870c9db73a402b1509a832d565c7cd26ecc3bf4bccca6a8fac37f344a4d06981b4f08d24756485e1ac7bea6c560835237287baf22cabd303e0a5fcb8470fe50dee9f99dd052cd83c411cb9a00520ce8fcb8cbc773ae551e1e37ad19852c047ad0b67bc9bc3a2d28b53173939271dd1c424e153d520d159c4bbca7d6c07f71d2c5ecc145c25d273b60202d3f5fc22ad3f88df0035a38498c57cdd8638c5b522e0e06af06a2395cea81ce4a11fd4d966766c88dc0514328efca8d47a78abbfe8ec1488dbc8b1aa5ca2a24d492be37ec71bba838fe600ff537e8f5f067d23695a7ff95754564d8140594e860e1114d2789923218b4f5767f30883fc8015ab42d60f289d51efc6f6d4817742889dcbba54b6c31162b4588e226a06b10c9c53c2b765e176861b47b19bcb4d6f15d2a791db56c6a26ceed65635c3e027451907f7abeef112741d14b4e2ed0471a67917aca39f1a7fbdf717f2f0ecef1f93b8d1c2043c9bd8ce1ea2a8e82158c007dad0dd1f2f528c9685bab73b4e22fa5d78ea2e87f14171c5f35c55262d0ef53eaeb8a8d8abb10a5fb0fd81e193933e493a81905efe78d18a4cabc0b147f9f4dc44b5acf40b5cf092a4e9bf7f57cad139b23c51e605c9ed7f5b845840b40c570accabb26c0b04aad91e033999d2feab727d3ad49ae97ad4bc6bb174840620f61f55472a112320acdfba4c30cf680b127cb519a69fc790e32ca99184bacd638385b1ea9393a4e685d2b91f34e498711e60e692596659106fb3b435410faea55625358551bbc8c8b1fc5e3b5e1d3a911b56788b8e86afeaac35a65e4d7be5f0872ea8f355242ca0f257c5a354d2db712bc8656a8215f687d30b21395d7e7c37369b743f1cc0d84f97bc092bfbb276e885a7d046b7f0ba61cf714729def63f64254c004bb702baa34d98b71c4026c64ff42a95139eb72ec627a50ceabe10cf90dcf03398f80be88d1f58d1cfa82125d040f31cb92b9b610bcf8c0024fb974f398dd17a010ec4a010e7a0f2362634a3ca131b5d8dcc0756bfe23cbfdfc0c329b49f141ddb8402d636f1d9889928f7a86e7c33e6f92a8438db25369c61f62ead129b80ff88f533f8ed42de8ca1de088d72126b4cfab9934030c59902277ece5ddc5b066bfbbe5c8dbc9ece181bdf08fdfb26a899e3e6dd33fdf6ef84be16c6de602fd79832e2b6daf7b5d8f619e6e542f72264f3a3208ded5c8f89a9c4924ed66c565354bb7419a995086bc5f815fe9a8dc687e58d63f2f313cf1716e234367f3b515379446db51c821dba9ca088b6a277d395535082a0316d9306d71819f950219dd4720ad2bbc51809365177c958c30ae800110d39a5cc0cd63d80d30985aac382aab1813fe667e3e91505efd2882471eacd464ad3b44e37841eceb76b1e25fd7cc5cb8b2077aebaf9084384cc450858f0a1fd311a2298bd3649d06f717386836c4d0a719106ae01e809e3e34b1cf705c5da02a7804d447d0715c46665ea578ba2cf7eae448de298dc819a7cb8d7770dde350607f5c423eaf6d59cb9016e80316522126944282e687f4d18084fa19a1a0ae51a331dd730a052285a38fb825c5189c1d93686c3aeb00a3aaba2214aa214c9860cf1609b09c08b0c07e71010206f2e90e02aae4bd9f77d346d5c91fa3ca800cc9cd0ebbca9e2443183b631cc6cb5a70262f718ec2008de25091c46753430891c6b65f6debd82acf6f452c7b0400ef93f95707817b0008d4ff144f20c39f5f2b037a53a17c120475203a7ad6436e180534dd305e54a6dc9d51b3b2c39f4281ad2f38385eef951b024f76a4d46750f6ecf253b2bbb4b383f452ae30591a932a2c3d8081d8c0e2ddf716c7cd4936aa5a5eedd8400d51025f007efafa2993ee1621798fb8a8a9cfd07c9c97c1342890740334901bf4e7b0da9cd3415bb45c4f38e22daa50e6a548c95c669a54f3c7da6a48bac1c4fad76308e038e61bfcd03e877f2ce79e6d7c1b25b7de7c3d726a97b132c90d296eb2485e33c6497d58878abb8e680be320d667ca239021ef131056ca2669acaf0950b31a8c97356e98f73d848c93832f418e0e32d08ddb32b556d0a3a9f886e8502f8d711a5241a66ff00e127b925645f039e4d4a06068c670155011f995bb417c4b38b31ef54412e809e567947409f7653ec2b03cd64311dea86cfac74e15096de3981886f1bdad15bad122fca6bbbb0023bac208255d92cserviceserviceserviceserviceservice../82/001-auto.sql../82/001-auto.ymlQQ@rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootgeekotestrootgeekotestrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootgeekotestgeekotestgeekotestgeekotestgeekotestgeekotestgeekotestgeekotestgeekotestgeekotestgeekotestgeekotestrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootopenQA-5.1749832158.cc746ea0-bp157.2.6.1.src.rpmconfig(openQA)openQAopenQA(ppc-64)perl(DBIx::Class::Timestamps)perl(OpenQA::LiveHandler)perl(OpenQA::Resource::Jobs)perl(OpenQA::Resource::Locks)perl(OpenQA::Scheduler::Client)perl(OpenQA::Scheduler::Controller::API)perl(OpenQA::Scheduler::Model::Jobs)perl(OpenQA::Scheduler::WorkerSlotPicker)perl(OpenQA::Schema::Profiler)perl(OpenQA::Schema::Result::ApiKeys)perl(OpenQA::Schema::Result::Assets)perl(OpenQA::Schema::Result::AuditEvents)perl(OpenQA::Schema::Result::Bugs)perl(OpenQA::Schema::Result::Comments)perl(OpenQA::Schema::Result::DeveloperSessions)perl(OpenQA::Schema::Result::GruDependencies)perl(OpenQA::Schema::Result::GruTasks)perl(OpenQA::Schema::Result::JobDependencies)perl(OpenQA::Schema::Result::JobGroupParents)perl(OpenQA::Schema::Result::JobGroups)perl(OpenQA::Schema::Result::JobLocks)perl(OpenQA::Schema::Result::JobModules)perl(OpenQA::Schema::Result::JobNetworks)perl(OpenQA::Schema::Result::JobNextPrevious)perl(OpenQA::Schema::Result::JobSettings)perl(OpenQA::Schema::Result::JobTemplateSettings)perl(OpenQA::Schema::Result::JobTemplates)perl(OpenQA::Schema::Result::Jobs)perl(OpenQA::Schema::Result::JobsAssets)perl(OpenQA::Schema::Result::MachineSettings)perl(OpenQA::Schema::Result::Machines)perl(OpenQA::Schema::Result::NeedleDirs)perl(OpenQA::Schema::Result::Needles)perl(OpenQA::Schema::Result::ProductSettings)perl(OpenQA::Schema::Result::Products)perl(OpenQA::Schema::Result::ScheduledProducts)perl(OpenQA::Schema::Result::ScreenshotLinks)perl(OpenQA::Schema::Result::Screenshots)perl(OpenQA::Schema::Result::Secrets)perl(OpenQA::Schema::Result::TestSuiteSettings)perl(OpenQA::Schema::Result::TestSuites)perl(OpenQA::Schema::Result::Users)perl(OpenQA::Schema::Result::WorkerProperties)perl(OpenQA::Schema::Result::Workers)perl(OpenQA::Schema::ResultSet::Assets)perl(OpenQA::Schema::ResultSet::AuditEvents)perl(OpenQA::Schema::ResultSet::Bugs)perl(OpenQA::Schema::ResultSet::Comments)perl(OpenQA::Schema::ResultSet::DeveloperSessions)perl(OpenQA::Schema::ResultSet::JobGroupParents)perl(OpenQA::Schema::ResultSet::JobSettings)perl(OpenQA::Schema::ResultSet::JobTemplates)perl(OpenQA::Schema::ResultSet::Jobs)perl(OpenQA::Schema::ResultSet::Needles)perl(OpenQA::Schema::ResultSet::ScheduledProducts)perl(OpenQA::Schema::ResultSet::Screenshots)perl(OpenQA::Schema::ResultSet::Users)perl(OpenQA::WebAPI::Auth::Fake)perl(OpenQA::WebAPI::Auth::OAuth2)perl(OpenQA::WebAPI::Auth::OpenID)perl(OpenQA::WebAPI::Command::gru)perl(OpenQA::WebAPI::Command::gru::list)perl(OpenQA::WebAPI::Command::gru::run)perl(OpenQA::WebAPI::Controller::API::V1)perl(OpenQA::WebAPI::Controller::API::V1::Asset)perl(OpenQA::WebAPI::Controller::API::V1::Bug)perl(OpenQA::WebAPI::Controller::API::V1::Comment)perl(OpenQA::WebAPI::Controller::API::V1::Feature)perl(OpenQA::WebAPI::Controller::API::V1::Iso)perl(OpenQA::WebAPI::Controller::API::V1::Job)perl(OpenQA::WebAPI::Controller::API::V1::JobGroup)perl(OpenQA::WebAPI::Controller::API::V1::JobSettings)perl(OpenQA::WebAPI::Controller::API::V1::JobTemplate)perl(OpenQA::WebAPI::Controller::API::V1::Locks)perl(OpenQA::WebAPI::Controller::API::V1::Mm)perl(OpenQA::WebAPI::Controller::API::V1::Routes)perl(OpenQA::WebAPI::Controller::API::V1::Search)perl(OpenQA::WebAPI::Controller::API::V1::Table)perl(OpenQA::WebAPI::Controller::API::V1::User)perl(OpenQA::WebAPI::Controller::API::V1::Webhook)perl(OpenQA::WebAPI::Controller::API::V1::Worker)perl(OpenQA::WebAPI::Controller::Admin::ActivityView)perl(OpenQA::WebAPI::Controller::Admin::Asset)perl(OpenQA::WebAPI::Controller::Admin::AuditLog)perl(OpenQA::WebAPI::Controller::Admin::Influxdb)perl(OpenQA::WebAPI::Controller::Admin::JobGroup)perl(OpenQA::WebAPI::Controller::Admin::JobTemplate)perl(OpenQA::WebAPI::Controller::Admin::Machine)perl(OpenQA::WebAPI::Controller::Admin::Needle)perl(OpenQA::WebAPI::Controller::Admin::Product)perl(OpenQA::WebAPI::Controller::Admin::Table)perl(OpenQA::WebAPI::Controller::Admin::TestSuite)perl(OpenQA::WebAPI::Controller::Admin::User)perl(OpenQA::WebAPI::Controller::Admin::Workers)perl(OpenQA::WebAPI::Controller::ApiKey)perl(OpenQA::WebAPI::Controller::Appearance)perl(OpenQA::WebAPI::Controller::Developer)perl(OpenQA::WebAPI::Controller::File)perl(OpenQA::WebAPI::Controller::Main)perl(OpenQA::WebAPI::Controller::Step)perl(OpenQA::WebAPI::Controller::Test)perl(OpenQA::WebAPI::Description)perl(OpenQA::WebAPI::Plugin::AMQP)perl(OpenQA::WebAPI::Plugin::AuditLog)perl(OpenQA::WebAPI::Plugin::Helpers)perl(OpenQA::WebAPI::Plugin::MIMETypes)perl(OpenQA::WebAPI::Plugin::MemoryLimit)perl(OpenQA::WebAPI::Plugin::ObsRsync)perl(OpenQA::WebAPI::Plugin::ObsRsync::Controller::Folders)perl(OpenQA::WebAPI::Plugin::ObsRsync::Controller::Gru)perl(OpenQA::WebAPI::Plugin::ObsRsync::Task)perl(OpenQA::WebAPI::Plugin::REST)perl(OpenQA::WebAPI::Plugin::YAML)perl(OpenQA::WebAPI::ServerSideDataTable)perl(OpenQA::WebSockets::Client)perl(OpenQA::WebSockets::Controller::API)perl(OpenQA::WebSockets::Controller::Worker)perl(OpenQA::WebSockets::Model::Status)perl(OpenQA::WebSockets::Plugin::Helpers)@ @@       /bin/bash/bin/sh/bin/sh/bin/sh/bin/sh/bin/sh/usr/bin/perlbsdtarconfig(openQA)coreutilsgit-coregroup(nogroup)hostnameopenQA-clientopenQA-commonperl(BSD::Resource)perl(CSS::Minifier::XS)perl(Carp)perl(CommonMark)perl(Config::Tiny)perl(DBD::Pg)perl(DBI)perl(DBIx::Class)perl(DBIx::Class::DeploymentHandler)perl(DBIx::Class::DynamicDefault)perl(DBIx::Class::OptimisticLocking)perl(DBIx::Class::ResultClass::HashRefInflator)perl(DBIx::Class::Schema::Config)perl(DBIx::Class::Storage::Statistics)perl(Date::Format)perl(DateTime)perl(DateTime::Duration)perl(DateTime::Format::Pg)perl(Exporter)perl(Fcntl)perl(File::Basename)perl(File::Copy)perl(File::Copy::Recursive)perl(File::Path)perl(File::Spec)perl(FindBin)perl(Getopt::Long::Descriptive)perl(IO::Handle)perl(IPC::Run)perl(JSON::Validator)perl(JavaScript::Minifier::XS)perl(LWP::UserAgent)perl(Minion)perl(Module::Load::Conditional)perl(Module::Pluggable)perl(Mojo::Base)perl(Mojo::ByteStream)perl(Mojo::IOLoop)perl(Mojo::JSON)perl(Mojo::Pg)perl(Mojo::RabbitMQ::Client)perl(Mojo::URL)perl(Mojo::Util)perl(Mojolicious)perl(Mojolicious::Commands)perl(Mojolicious::Plugin)perl(Mojolicious::Plugin::AssetPack)perl(Mojolicious::Plugin::OAuth2)perl(Mojolicious::Static)perl(Net::OpenID::Consumer)perl(POSIX)perl(Pod::POM)perl(SQL::SplitStatement)perl(SQL::Translator)perl(Scalar::Util)perl(Sort::Versions)perl(Text::Diff)perl(Time::HiRes)perl(Time::ParseDate)perl(Time::Piece)perl(Time::Seconds)perl(URI::Escape)perl(YAML::PP)perl(YAML::XS)perl(aliased)perl(base)perl(constant)perl(diagnostics)perl(strict)perl(warnings)perl-Mojolicious-Plugin-AssetPackrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PartialHardlinkSets)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)systemdsystemdsystemdsystemd5.1749832158.cc746ea0-bp157.2.6.15.1749832158.cc746ea05.1749832158.cc746ea00.013.7.41.6320.0828010.1110.00.21.360.0262.143.0.4-14.6.0-14.0.4-14.0-15.2-14.14.3hLhB@h=@h4Wh%@h#4@hhh 'h@g@g=g@ggg͂gg@gřgřg@g@g@g@g@g@g@g@gRgRg@g@ggu@ggF@g@g~hg{gw@gvgj@gg@ge\@gb@gagg`@g\!gR@gQgQgE@g=@g;,@g5@g0@g,g*g'eg#q@g @g6ggg@gY@g @ggg{f@f@fLffX@fff)@f@ffKfըfѴ@fͿfyff3f?@f@ff@f@fffxf@f@f>@fff@ff1ff@f}T@fvftfp%@fj@fife@faf]@fXj@fU@fS$@fO/fLfDfBf> @f6#@f3@f0@f,f*Ef'f#@f! @fh@fsff-f9@f@f f[fe@e!@e~@e,e@ee @e@e @e؈eeN@e̫@ee@e6@ee@ed@eoe)ee@ee@e(ee~ez@eu@eqelmehy@ec3@e_>eYeV@eSa@eGeC@e@@e;@e7e5e1@e.w@e)1@e%@d:d5Kd1W@d-bd)n@d!@d@ddJdd@d@d m@dxd2c>@c@c@cc`cc@c@cc@ccvcc<@cGc@cc@c@ccctc@c:@c@cc~ @c{h@cx@ctcock@ch@cfP@cb[c]cY!@cS@cOcJcF@c@c:c6@c47@c-c!@cc@c @cocb)b5@b@bbb@b4@b@bVbbmbb@bb@b@bblbb2@b@bbbTb`@b@b@b%bb@b~H@b{@bwbu bq@bk@be;baG@b^@bY^@bUibRbN@bL/@bI@bEbBb@Qb<]@b9@b7@b3"b)@b'E@b$@b b bgbs@b@bb bb@a@aa a}a@a@aC@aNaaa@a@aՈ@a@aaa{a@a@aA@aLaaa@a@aa4aa@a@aW@abaa(@a~@azauJaqV@al@aim@aexa`2a\>@aV@aSaMaI@aG&@aD@a@a=a;Ha7T@a'@`:@`@`"@`@`Ȗ@`@```@`!@`@`C`O@`@` @``q``@```e@`~@`z`x*`t6@`q@`n@`j`dd@`W5@`S@`M`J@`Gc@`D@`@`7@`4@`2K@`.V`)`"y@`@``` a@` @`@`&`_@_`@_@__@_@_H@_@_v@_ǁ_;__@_@_i__#_:_F@_Q_]@_h__"_@_@__p~_k8_e_a@_^ _[f_T@_P_N7_K_G@_BZ@_>e_9_5+@_2@_/@_+_&_"@_p@_{__5_A@_ L__c_^@^)@^@^^^W@^@^@^^y^?@^@^'@^2^^^@^U@^@^^^&@^@^^H^^@^@^k@^v^^0^<@^|@^x^v^s^^oj@^l@^`^\@^Y^V]^S^O@^O@^K^F^C^?@^=Q@^:@^6^4^1s^-@^*@^&^"@^ P@^@^^^r^ ^] @]q]]@]7@]@]]]Y]e@]@]]҇]]@]]X]@]]W]c@]c@]@]],j] @]]] ] #]/@]@\\\@\9\\\@\@\ \\\@\@\Y@\~d\zp@\u*@\q5\k\b@\`@\Yz\V\R@\LK\HW@\A\73\'@\@\\I\\ `\[@[@[@[i@[t[Q@[ @[{[m~@[D[2*[(@[$[!@[)[[@ZnZZZ@Z@Z؄ZЛZЛZJ@ZJ@ZZZ@Z Z~ZyZp^@Zg#ZYZTZ;@Z'ZOZ@Z ZfYq@Y@YYYY}@YI@Y7Y0Y-^YYYX!@X!@X@XXXwoXwoXwoX[@XZnXRXRXJXJX<@X2X!@X!@X@X@X TW$W@W0@WRW@W@W@WgWN@W @@V3V`VVVV.UUAUmU@UUa@U%@U hT@T@TT T@T@T@T-@T@T T@T@T@TT@T{Ti@Td@TR(@okurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comokurz@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comStephan Kulow coolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.commarius.kittler@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comedigiacinto@suse.comcoolo@suse.comcoolo@suse.comedigiacinto@suse.commarius.kittler@suse.commarius.kittler@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deokurz@suse.comrd-ops-cm@suse.derd-ops-cm@suse.derd-ops-cm@suse.deokurz@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.demlin@suse.comslindomansilla@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.desantiago.zarate@suse.comrd-ops-cm@suse.decoolo@suse.comokurz@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.deoholecek@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.decoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comcoolo@suse.comrd-ops-cm@suse.derd-ops-cm@suse.deoholecek@suse.comoholecek@suse.comcoolo@suse.comlnussel@suse.deoholecek@suse.comoholecek@suse.comoholecek@suse.comoholecek@suse.comlnussel@suse.delnussel@suse.deoholecek@suse.comlnussel@suse.deoholecek@suse.comcoolo@suse.comlnussel@suse.delnussel@suse.decoolo@suse.comcoolo@suse.comoholecek@suse.comsfalken@opensuse.orgoholecek@suse.comlnussel@suse.derd-ops-cm@suse.deoholecek@suse.comlnussel@suse.delnussel@suse.decoolo@suse.comcoolo@suse.comoholecek@suse.comlnussel@suse.decoolo@suse.comoholecek@suse.comoholecek@suse.commlin@suse.com- Update to version 5.1749832158.cc746ea0: * Bump @eslint/config-helpers from 0.2.2 to 0.2.3 * Docs: Convert images/openqa-in-5-minutes.gif to webm * Add test for failing save_needle with abort call * Document considerations for zero-downtime upgrades * Bump @eslint/config-array from 0.20.0 to 0.20.1 * Bump @eslint/plugin-kit from 0.3.1 to 0.3.2 * Change `do_cleanup` definition in test using `scm git` * apparmor: Allow file lock in fixed iso/hdd images * apparmor: Allow using 'git-lfs' * Disable git_auto_update by default * Re-add git_auto_commit and improved docs for the git settings * Tweak git config access in _git_clone_all * Disentangle git_auto_clone and git_auto_update * Bump brace-expansion from 1.1.11 to 1.1.12 * Update documentation with the new postgres format * Avoid showing too much probably disturbing errors on test details page * Update deprecated postgresql repository * Print one URL per line in test settings * Bump eslint-scope from 8.3.0 to 8.4.0 * Bump espree from 10.3.0 to 10.4.0 * Verify log output when cleanup fail in _save_needles * Improve error handling when loading test module results * Simplify the `createElement()` function * Restore behavior in case of empty details JSON after ca86aec6 * Verify abort job when git is disabled and do_cleanup is 'no' * Avoid job terminated unexpectedly by add signal handler * Bump datatables.net-bs5 from 2.3.1 to 2.3.2 * Bump acorn from 8.14.1 to 8.15.0 * Use regex when checking worker config for relevant sections * Allow appending values in worker config via `+=` * Streamline coding style in `t/24-worker-settings.t` * Allow using list and range specifiers in worker config file- Update to version 5.1749214996.3536da99: * Bump @types/estree from 1.0.7 to 1.0.8 * Support sass generation in all product versions * Avoid sporadic test failures due to warning about closed ws connection * Increase chart testing verbosity for better log trace * Bump ace-builds from 1.41.0 to 1.42.0 * Bump eslint from 9.27.0 to 9.28.0 * Bump @pkgr/core from 0.2.4 to 0.2.7 * Remove nested .gitignore from openQA rpm * Add permissions to avoid the warnings in openQA build- Update to version 5.1748615746.d50d8e24: * Bump synckit from 0.11.6 to 0.11.8 * Bump eslint-plugin-prettier from 5.4.0 to 5.4.1 * Support repeated query params in filter parsing * Replace deprecated ingress class annotation with ingressClassName * CI: Update python version in check-helm-chart * Avoid database error when more than one limit parameter is specified * Use signatures in all functions of `t/ui/18-tests-details.t` * Improve details of test details test * Refactor search_args construction for multi-valued query parameters * Allow comma-separated filtering of flavor * Dependency cron 2025-05-26 * t: Test if flavor options from URL are carried over to the form * t: Add more testing of comma-separated values * t: Check URL contains single flavor * Apply macro to support upcoming opensuse/sle 16 build- Update to version 5.1748004971.d2bfe8ce: * CI: Enable Leap 16.0 OBS build checks * systemd: Increase availability of openqa-webui with ordering * systemd: Remove obsolete ordering of websockets after scheduler * Update GettingStarted.asciidoc Fedora instructions * Deprecate skip-checks and add check-repos option * Switch overly verbose "Updating seen from worker" messages to trace * t: Also use default test database in full-stack+deploy * Fix quoting issue in run-tests-within-container script * Bump eslint from 9.26.0 to 9.27.0 * Bump @modelcontextprotocol/sdk from 1.11.3 to 1.11.4 * Bump synckit from 0.11.5 to 0.11.6 * Create link to the common prove_wrapper * Avoid repeated calls to $t->app->minion * Add linear backoff in hook script * Sync the subrepo external/os-autoinst-common * Bump datatables.net-bs5 from 2.3.0 to 2.3.1 * Dependency cron 2025-05-16 * Bump @modelcontextprotocol/sdk from 1.11.2 to 1.11.3 * Bump eventsource-parser from 3.0.1 to 3.0.2 * Set TESTS_FAILED_FLAG to 1 instead of touching file * Explain container execution and CONTAINER_TEST implications * Remove section which checks unused variable * Update checkstyle invocation in run-tests-within-container script- Update to version 5.1747282262.9a4e6bb5: * load-templates: with --clean, empty job group YAML templates * Fix phrasing in jobs comment carry over unit test * Bump debug from 4.4.0 to 4.4.1 * Bump synckit from 0.11.4 to 0.11.5 * Avoid workers getting stuck with old jobs * Avoid duplicate `use Mojo::JSON` * Follow consistent database DUMP_FOLDER target directory * Create new systemd service and timer for database dump and cleanup * dump-templates: dump job groups as they exist, fix group checks * t: load-templates: check harder for what gets loaded * load-templates: job groups: simplify, don't error on group exists * load-templates: fix loading of job templates- Update to version 5.1747157239.98c95eac: * Improve wording of bail-out messages in fullstack test * Fix wrong test name in fullstack test * Avoid `git_clone` tasks failing with `Job terminated unexpectedly` * Bump @modelcontextprotocol/sdk from 1.11.1 to 1.11.2 * Ensure fullstack tests run even under high load * Bump eslint-config-prettier from 10.1.3 to 10.1.5 * Bump eventsource from 3.0.6 to 3.0.7 * Bump @modelcontextprotocol/sdk from 1.11.0 to 1.11.1 * Don't wait for scheduler when starting webUI * Improve description of systemd services * Install all relevant dirs under `/var/lib/openqa` via `Makefile` * Avoid permission errors when flagging a Git server outage * On shutdown keep openqa-webui and web server running until gru stopped * Render the SUSE "review:acceptable_for" button on overview as well * Bump eslint-config-prettier from 10.1.2 to 10.1.3 * Fix typo in 03-auth-openid.t * Bump bootstrap from 5.3.5 to 5.3.6 * Dependency cron 2025-05-06 * Revert "Block all distri git operations unless `scm = git` is set, add `git_auto_commit` setting, disentangle `git_auto_clone` and `git_auto_update`" * Avoid potential warning when checking whether the test order has changed * Bump eslint-plugin-prettier from 5.2.6 to 5.4.0 * Bump eslint from 9.25.1 to 9.26.0 * Bump ace-builds from 1.40.1 to 1.41.0 * Makefile: Create config folder template only where to be used by users * oauth2: use openQA base_url to create redirect URI if set * Disentangle git_auto_clone and git_auto_update * enqueue_git_update_all: don't check git_auto_clone * Add git_auto_commit setting to control commit of edited needles * Respect 'scm' config setting in _get_needles_ref_and_url * Avoid git clone/update operations unless 'scm' is set to 'git' * OpenID: Prevent confusing error about unset provider endpoint * OpenID: Prevent double-dot in log output * Bump @eslint-community/eslint-utils from 4.6.1 to 4.7.0- Update to version 5.1746194731.ed2800a0: * Improve regex to match flexible spacing * Bump @eslint/config-helpers from 0.2.1 to 0.2.2- Update to version 5.1746018652.10b1e438: * Bump datatables.net-bs5 from 2.2.2 to 2.3.0 * Follow symlinks but only delete files with dump-db script * Avoid unbound variable error in dump-db script * Fix result in case of giving up gru jobs without GruTasks * Add nice and ionice to dump-db script * Documented the PROVE_COMMAND and prove_wrapper feature * Add explicit test for `obsolete_minion_jobs` * Avoid leftover Minion jobs after failing txn when scheduling jobs * Wrap prove to prevent unhandled output- Update to version 5.1745500773.055f94fe: * Make parameters of dump-db script customizable * Add dump-db script to openQA-local-db package * Add '--help' to dump-db script * Improve dump-db script quality * Give up gru jobs which point to non existing GruTask * Bump ace-builds from 1.40.0 to 1.40.1 * Move database dump script * More verbose error message for job template update * Bump eslint from 9.25.0 to 9.25.1 * Fix URLs in admin/productlog * Bump eslint from 9.24.0 to 9.25.0 * Remove unhandled output generated by log over jobs resultset- Update to version 5.1744914226.24548346: * Bump @eslint-community/eslint-utils from 4.6.0 to 4.6.1 * Add signal guard for schedule_iso minion tasks * Avoid security review by not packaging sysctl config for Tumbleweed * Fix jobs sometimes ending up without group after retry on deadlocks * Bump ace-builds from 1.39.1 to 1.40.0 * Bump synckit from 0.11.3 to 0.11.4 * Bump @pkgr/core from 0.2.2 to 0.2.4 * Bump @eslint-community/eslint-utils from 4.5.1 to 4.6.0 * Reload only specific AppArmor profiles on updates * Ignore short Git service outages * Bump eslint-config-prettier from 10.1.1 to 10.1.2 * Bump @pkgr/core from 0.2.1 to 0.2.2 * Change text body on build absent in parent_group_overview * Change phrasing in docs as suggested in review * Mention drop-in config file for worker like for the other config files * Bump synckit from 0.11.2 to 0.11.3 * Ensure `…-restart@.path` units don't run into inotify limit * Restart AppArmor service when updating workers * Rollback retries applied for full-stack test preventing ci from failing * Allow web UI services to read client config * Bump @pkgr/core from 0.2.0 to 0.2.1 * Bump eslint from 9.23.0 to 9.24.0 * Bump bootstrap from 5.3.4 to 5.3.5 * Consider all config files in unit for auto-reloading workers * Update apparmor profiles after adding config sub directories * Dependency cron 2025-04-05 * Adapt scripts to recent config file changes * Simplify Utils::check_download_url * Simplify Utils::parse_assets_from_settings * Simplify Utils::_round_a_bit * Add signatures in OpenQA::Utils * Avoid Perl warning when showing group overview with e.g. `only_tagged=2` * Bump bootstrap from 5.3.3 to 5.3.4 * Bump synckit from 0.11.1 to 0.11.2 * Emphasize drop-in configurations in documentation * Prevent config files from being moved on updates * Fix use of defaults if database config is not present * Update documentation after previous configuration changes * Install default config under `/usr/share/doc/openqa/examples` * Add Utils.pm to fully_covered in Codecov * Use the signal guard in download_asset * Improve retrieving substring in OpenQA::Utils * Bump eslint-plugin-prettier from 5.2.5 to 5.2.6 * Extend connection limit of ws server to handle more workers * Use more signatures in OpenQA::Utils * Simplify Utils::get_url_short * Use signatures in Utils::get_url_short * Avoid unhandled output in `t/20-stale-job…` after 8c5a3a43 * Use signatures on Task/Asset/Download.pm * Remove unused module imports in ws server code * Improve scalability by only sending worker status on ws server ack * Avoid hardcoding /tmp to ensure compatibility with varied environments * Update worker tests with tempdirs under /tmp and not in worktree * Bump @eslint/config-helpers from 0.2.0 to 0.2.1 * Bump @eslint/plugin-kit from 0.2.7 to 0.2.8 * Fix typo in infopanel * Improve job priority display * Check if the taskname exists if not avoid undefined value * Avoid accidentally considering `/usr/etc` the `etc/ from devel checkout * Update tempdir path to /tmp to cleanup worktree for workers tests * Support all config features for `workers.ini` as well * Use consistent temporary database path * Add hyperlinks to the products log * CI: Bump codecov uploader to 5.3.0- Update to version 5.1743174385.0bd1f0a8: * Allow reading config files from `/usr/etc/openqa` and drop-in files * Fix showing version on web UI after fbf611f1347d3087010ee8d6c8c34b169 * Read config from `/usr/etc/openqa` even if `/etc/openqa/….d/…` present * Avoid unhandled output in `t/config.t` after recent changes * Mention that devel config files override any system provided config * Make loading nested config files work with RPM packaging (2nd attempt)- Update to version 5.1743092811.fb25b01c: * Avoid interrupting/skipping directly chained jobs due to high load * Dependency cron 2025-03-27- Update to version 5.1743011892.5068f7f4: * Add new test for skipped job count * dist: Add headers expected by OBS checks * Use spaces in the Test:Most functions of ui/14-dashboard.t * Update url query only with the selected option * Bump eslint-plugin-prettier from 5.2.4 to 5.2.5 * Revert "Make loading nested config files work with our RPM packaging (no symlink)" * Make loading nested config files work with our RPM packaging * Remove unused cropper.css * Bump @eslint/eslintrc from 3.3.0 to 3.3.1 * Bump eslint from 9.22.0 to 9.23.0 * Bump @types/estree from 1.0.6 to 1.0.7 * Bump eslint-plugin-prettier from 5.2.3 to 5.2.4 * dist: Add missing copyright header * Allow web proxy to reach openQA on SELinux systems * Fix config drop-in path to upstream specifications * Bump ace-builds from 1.39.0 to 1.39.1 * Bump @pkgr/core from 0.1.1 to 0.1.2 * Consistently use try/catch instead of 'if ' everywhere * t: Remove obsolete exception checking in 28-logging.t * Slightly simplify Worker::Job * Also use try/catch in Controller::API::V1::Comment * Log AMQP errors only as such when retries exhausted * Slightly simplify Shared::GruJob * Show job ID only in AMQP log messages when actually present * docs: Enable clickable section headers * Add section numbering in OpenQA Documentation * Dependency cron 2025-03-19 * Improve "from" time label in /tests/overview * Mark uncoverable lines in Worker::Job- Update to version 5.1742233134.0a4478bf: * Dependency cron 2025-03-17 * ci: Cover OpenQA::Worker::Job::_read_json_file * Remove obsolete support for Mojolicious < 9 * Simplify 'dump_yaml'- Update to version 5.1741882150.baca1fd8: * Fix bugzilla product entry for SL Micro * Include IDs in error message when sending AMQP message fails * Bump @eslint-community/eslint-utils from 4.5.0 to 4.5.1 * Fix XUnit parser softfail scenario * Use signatures in lib/OpenQA/Schema/ResultSet/Jobs.pm * Improve reading of text_data in module results * Ensure fullstack tests run under high system load * Add signatures to OpenQA::Schema::Result::JobModules * Bump @eslint-community/eslint-utils from 4.4.1 to 4.5.0 * Fix unstable UI tests by waiting for popovers * Revert "Mitigate error for textData undef" * Mitigate textData undef failure * Fix two more sporadic test failures in `t/ui/10-tests_overview.t` * Avoid race condition in `t/ui/21-admin-needles.t` * Mitigate error for textData undef * Make the tests consistent with the behaviour before 0b78fa6 * Fix more sporadic test failures in `t/ui/10-tests_overview.t` * Bump eslint-config-prettier from 10.0.2 to 10.1.1 * Bump eslint from 9.21.0 to 9.22.0 * Dependency cron 2025-03-10- Update to version 5.1741427870.33ddb978: * Use of Feature::Compat::Try in the test libraries * Fix sporadic test failure in `t/ui/10-tests_overview.t` * Simplify test for filtering on test results overview * t: Use implicit Test::Exception functions for the test- Update to version 5.1741336382.92b047c6: * Replace eval with try/catch wherever applicable * Consider `t/ui/01-list.t` stable again after 0b4f441 * Bump acorn from 8.14.0 to 8.14.1 * Use more signatures in OpenQA::WebAPI::Plugin::AMQP * Simplify OpenQA::WebAPI::Controller::Test * Improve path handling for needles and OPENQA_BASEDIR * Fix unstable UI test of result filter * Use more signatures in WebAPI::Controller::Test * Remove unused method in OpenQA::WebAPI::Controller::Test * ci: Reduce timeout for wait_for_result_panel * Apply mitigation for failing circleci with more retry attempts- Update to version 5.1741096950.1f5cdabd: * Remove Try::Tiny from dependencies * Avoid error when emiting an AMQP job event when the job does not exist * Add check to enforce Feature::Compat::Try * Use Feature::Compat::Try in openqa-load-templates script * Update migration script using Feature::Compat::Try * Remove unused dependency from SeleniumTest.pm * Use Test::Exception in deploy.t- Update to version 5.1741014912.a69a2ecf: * t: Prevent git in tests use tester's ~/.gitconfig * Replace Try::Tiny from remaining OpenQA modules * Bump prettier from 3.5.2 to 3.5.3 * Add softfail to XUnit parser poo#177321 * Use perldoc above the corresponding functions- Update to version 5.1741001706.950ead88: * Simplify WebSockets::Worker::Controller * t: Avoid output in non-verbose mode * Fix non-custom OAuth2 providers * Use signatures in WebSockets/Controller/Worker.pm- Update to version 5.1740761651.192e0b4f: * Simplify needle_url in Step controller * Remove uncoverable comment from one statement * Handle unhandled git output by not outputting it * Document `WORKER_CLASS`-specific settings * Ensure instance-specific worker settings have precedence * Avoid duplicated code for reading web UI specific worker config * Allow `WORKER_CLASS`-specific settings in worker config * Only log git checkout if target file is not already there * Enable prove to run tests relying on default test database * t: Use signatures in Test::Database * t: Use Feature::Compat::Try in Test::Database * Extract methods in JobTemplate::update * Show needles from correct git ref on test result page * Bump eslint-config-prettier from 10.0.1 to 10.0.2 * Avoid repetition of allowed characters in test names * Streamline test name parsing in clone job with new validation code * Adapt use of `local-npm-registry` to version 1.1.0 * Document traceability and reproducibility of tests * Replace Try::Tiny with Feature::Compat::Try * coverage: Avoid B::Deparse warning with Syntax::Keyword::Try::Deparse * Use function pointer in JobTemplate method * Extract method from WebAPI::Controller::API::V1::JobTemplate::update * Extract method in WebAPI::Controller::API::V1::JobTemplate * Use proper big-comma style WebAPI::Controller::API::V1::JobTemplate * Use signatures in WebAPI::Controller::API::V1::JobTemplate * Allow os-autoinst >= 5 * Remove unused imports on modules which do not have try/catch block * dist: Bump version to semver-compliant 5 * Update documentation about post_run_hook behavior * Allow all kinds of word characters in test names and other settings * Disallow `%`, `"` and `'` in test names * Disallow trailing newlines in test names * Allow more special characters for test names seen in production * Allow only simple space characters in test names * Validate the test name when creating new jobs * Enable auto updates of tests/needles by default again * Bump eslint from 9.20.1 to 9.21.0 * Improve error message when sub process in tests is terminated * Reduce resource usage of fullstack scheduler test in CI * Bump prettier from 3.5.1 to 3.5.2 * Bump ace-builds from 1.38.0 to 1.39.0 * openqa-dump-templates: Reproducible output- Update to version 4.6.1740219045.577a81d2: * scripts: Rely on Pod::Usage being installed * Bump @eslint/plugin-kit from 0.2.6 to 0.2.7 * perltidy: Use new --pack-operator-types option * Dependency cron 2025-02-21- Update to version 4.6.1740087754.059e123a: * t: Use Test::Exception method instead of manual eval checks * Test saving new needle using image from existing needle * Test whether the needle editor canvas show the correct needle image * t: Use Test::Exception only instead of Test::Fatal * t: Use more simple prototyped Test::Exceptions functions * t: Use implicit Test::Exception in all places * Bump @eslint/plugin-kit from 0.2.5 to 0.2.6 * t: Ensure we use implicit Test::Exception in all places * Avoid errors about deadlocks * Bump flatted from 3.3.2 to 3.3.3- Update to version 4.6.1739720201.6fbd2ed1: * Add new dependency Feature::Compat::Try * Remove incorrect signatures from documentation * Bump prettier from 3.5.0 to 3.5.1 * Bump anser from 2.3.0 to 2.3.2 * Use a proper save point when creating jobs from settings * Avoid nested transaction when creating jobs from settings * Propagate json errors to user on fetch requests with non-200 status code- Update to version 4.6.1739368655.35b7b66a: * Bump eslint from 9.20.0 to 9.20.1 * Bump ace-builds from 1.37.5 to 1.38.0 * Update product name for SUSE Linux Micro * Allow plus signs in test names for scope settings * Prevent download prompt on plain text files with Chromium * Use the import/overlay feature of `Config::IniFiles` * Improve checks of config test * Allow reading web UI config from INI files under `openqa.d`- Update to version 4.6.1739196185.256a7781: * Bump eslint from 9.19.0 to 9.20.0 * Bump prettier from 3.4.2 to 3.5.0 * Dependency cron 2025-02-10- Update to version 4.6.1738939087.13cb1d60: * Restrict SYNC_ASSETS_HOOK to worker settings- Update to version 4.6.1738861231.e206546d: * Update default config with OAuth2 new "id_from" option * Support OpenID Connect better in the OAuth2 'custom' provider * Add SYNC_ASSETS_HOOK support- Update to version 4.6.1738778990.12e43905: * Fix enqueueing of Minion jobs breaking `PARALLEL_ONE_HOST_ONLY=1` * Add missing includes for `OpenQA::App` * Improve code for processing cloned jobs * Bump datatables.net-bs5 from 2.2.1 to 2.2.2- Update to version 4.6.1738731942.8426c5d4: * Dependency cron 2025-02-05- Update to version 4.6.1738687327.a95b31e5: * Avoid unhandled output in Git command tests * Improve logging of Git commands invoked to check something * Improve info message about mismatching Git remote URLs * Improve error message when Git checkout is dirty and thus not updated * Return and log the correct return code in `run_cmd_…` function- Update to version 4.6.1738661963.c8916d87: * Bump @eslint/config-array from 0.19.1 to 0.19.2- Update to version 4.6.1738588761.0324b68b: * Bump import-fresh from 3.3.0 to 3.3.1 * Bump @eslint/object-schema from 2.1.5 to 2.1.6 * Fix typo in example usage for post_run_hook * Slightly improve generate-docs help * Set GIT_ASKPASS to empty string * Add link to docs if git push failed * Avoid restricting `/tests/…/asset/…` needlessly * Remove unused param from run_cmd_with_log_return_error * Add docs about automatically using git ssh urls for pushing * Prevent git from prompting for credentials * git: Rename ssh_batchmode to batchmode- Update to version 4.6.1737988986.b7aa7737: * Report actual server errors in via JS * Bump eslint from 9.18.0 to 9.19.0 * Precede unavailability error with "Unavailable: " to ease log grepping * Dependency cron 2025-01-25 * Allow openQA worker to execute check_qemu_oom script in apparmor * Track the relevant scheduled product when a job is obsoleted * Replace Perl::Critic::Freenode with Perl::Critic::Community- Update to version 4.6.1737550093.3fc00710: * Fix repairing half-assigned clusters with PARALLEL_ONE_HOST_ONLY * Improve test of failure behavior for multiple parallel children * Use local variable consistently in `cluster_jobs` * Add jobs API option "follow" to return latest clone of queried job * Bump eslint-plugin-prettier from 5.2.2 to 5.2.3 * Improve help texts of `openqa-cli` * Extract os-autoinst basepath using enviromental variable- Update to version 4.6.1737122167.8637e820: * Make openqa-clone-job work with authenticated assets downloads * t: Fix hidden output of 'diag explain' * Rollback of pull request #6107: full-stack.t removed from unstable_tests * Make key/secret auth work in `/api/v1/auth` route via `auth_request` * Bump ace-builds from 1.37.4 to 1.37.5 * UI: Clarify that virtio_console.log is renamed * Update authentication headers when following redirection via user agent * Simplify code of openQA user agent * Enable authenticated requests via cache service * Dependency cron 2025-01-16 * Update perltidy and freeze newline wrapping * Bump eslint-plugin-prettier from 5.2.1 to 5.2.2 * Add 2 retry to full-stack * Add restricting asset downloads via NGINX using subrequest auth * Allow all authentication methods for asset downloads * systemd: Fix premature kill of openqa-gru background processes * Bump eslint-config-prettier from 9.1.0 to 10.0.1 * Avoid calling `is_running` unnecessarily in `kill` * Bump eslint from 9.17.0 to 9.18.0 * Bump @eslint/plugin-kit from 0.2.4 to 0.2.5 * Apply t/full-stack.t as unstable to mitigate the failing test * Dependency cron 2025-01-13 * Allow cleaning up openQA devel packages from the zypper cache directory * Bump ace-builds from 1.37.3 to 1.37.4 * Bump datatables.net-bs5 from 2.2.0 to 2.2.1- Update to version 4.6.1736443232.5b07ee40: * Bump ace-builds from 1.37.2 to 1.37.3- Update to version 4.6.1736278545.8d3af5b5: * Check existing job groups in openqa-load-templates * Bump datatables.net-bs5 from 2.1.8 to 2.2.0- Update to version 4.6.1736169195.f9ab8902: * Bump ace-builds from 1.37.1 to 1.37.2- Update to version 4.6.1735880672.bb83b72c: * Dependency cron 2025-01-03- Update to version 4.6.1735794217.a28ab50d: * Dependency cron 2025-01-02- Update to version 4.6.1735016693.f411acbd: * Dependency cron 2024-12-24 * Bump ace-builds from 1.37.0 to 1.37.1- Update to version 4.6.1734785030.f24d7781: * Dependency cron 2024-12-21 * Prevent SIGCHLD handler override within tests- Update to version 4.6.1734664906.658e1837: * Make sure locale inside webui container supports UTF-8- Update to version 4.6.1734528624.ebe0f7eb: * Bump ace-builds from 1.36.5 to 1.37.0- Update to version 4.6.1734430938.416739ec: * Update Python version in Helm chart checks * Dependency cron 2024-12-17- Update to version 4.6.1734355601.fe17962d: * Bump eslint from 9.16.0 to 9.17.0- Update to version 4.6.1734107299.e041d9c6: * Add config option to restrict asset downloads to logged-in users- Update to version 4.6.1733491860.60a7833b: * Bump debug from 4.3.7 to 4.4.0 * Bump @eslint/config-array from 0.19.0 to 0.19.1 * Bump @eslint/core from 0.9.0 to 0.9.1 * Bump @eslint/object-schema from 2.1.4 to 2.1.5- Update to version 4.6.1733407564.7c427bbb: * Bump @eslint/plugin-kit from 0.2.3 to 0.2.4- Update to version 4.6.1733317338.f0e8a3c7: * Bump prettier from 3.4.1 to 3.4.2 * Add endpoint for listing all WebAPI routes * Make 'Broken' workers show as 'Unavailable' instead * Update SUSE Jira url * Bump prettier from 3.4.0 to 3.4.1 * Bump eslint from 9.15.0 to 9.16.0- Update to version 4.6.1732625402.19572aa2: * Bump prettier from 3.3.3 to 3.4.0 * Avoid calling hook script multiple times * Avoid warning for undefined cgroup slice * Update RegEx to detect hyphenated test names- Update to version 4.6.1732121872.463728ed: * Do not post undefined comments * Bump cross-spawn from 7.0.5 to 7.0.6 * Bump flatted from 3.3.1 to 3.3.2 * Bump eslint from 9.14.0 to 9.15.0 * Bump @eslint/eslintrc from 3.1.0 to 3.2.0- Update to version 4.6.1731677347.4f829f47: * Bump ace-builds from 1.36.4 to 1.36.5 * Bump @eslint/plugin-kit from 0.2.2 to 0.2.3 * Add tests for `git_auto_update_method = strict` * Unblock openQA jobs only on network-related Git update failures * Fix typos in `openqa.ini` * Avoid blocking openQA jobs on Git updates * Improve code for handling finished Gru tasks- Update to version 4.6.1731563454.940aba6d: * webapi: allow dots in needle tags- Update to version 4.6.1731074977.2c4a2345: * Bump cross-spawn from 7.0.4 to 7.0.5 * Bump cross-spawn from 7.0.3 to 7.0.4 * Avoid scheduling jobs if not all parallel jobs are ready- Update to version 4.6.1731000818.f1801750: * Avoid repeating information in comments in doc generation code * Fix generation of documentation as PDF document * Move finished jobs filter subtest to correct file * Reuse restartJob in order of restart jobs in Overview page * Extend variable expansion to consider variables from worker config * Avoid use of contraction in variable precedence documentation * Improve documentation about variable expansion * Bump ace-builds from 1.36.3 to 1.36.4 * Revert "Enable automatic updates of test code and needles by default" * Add option to restart jobs upon comment submission- Update to version 4.6.1730743336.9ae638b2: * Have filter options only affect finished jobs * Bump eslint from 9.13.0 to 9.14.0- Update to version 4.6.1730465612.ebe44db5: * Bump tslib from 2.8.0 to 2.8.1- Update to version 4.6.1730390212.a960523a: * Resolve symlinks before enqueuing git_clone GRU task * doc: Improve "Getting tests" after enabling `git_auto_update` by default * Enable automatic updates of test code and needles by default * Add loading indicator to the test liveview * t: Fix sporadic stale element failures in t/ui/18-tests-details.t * Bump espree from 10.2.0 to 10.3.0 * Bump eslint-scope from 8.1.0 to 8.2.0 * Return 0/1 explicitly as the client expects it * Do not git fetch if requested sha is already present * Consistently order git directories * Document wireguard reverse tunnel * Bump @eslint/plugin-kit from 0.2.1 to 0.2.2 * Bump @humanfs/core from 0.19.0 to 0.19.1 * Bump @humanfs/node from 0.16.5 to 0.16.6- Update to version 4.6.1730199808.7e0d08db: * Handle foreign key violation with savepoint * Slightly improve error handling * Fix pattern for needle tag * Bump @eslint-community/eslint-utils from 4.4.0 to 4.4.1 * Bump acorn from 8.13.0 to 8.14.0- Update to version 4.6.1729634304.9a22ad59: * Prevent big empty liveview in early state of running * Fix rpm build on non-openSUSE distributions that are not SLES * Revert "Partially revert "Drop OpenQA::WebAPI::Plugin::HashedParams""- Update to version 4.6.1729587891.7145424b: * Bump eslint from 9.12.0 to 9.13.0 * Improve worker load threshold detection * Bump @eslint/plugin-kit from 0.2.0 to 0.2.1 * Bump ace-builds from 1.36.2 to 1.36.3 * Return timestamps with offset to client for needle info * Use local timezone in t/ui/21-admin-needles.t- Update to version 4.6.1729244210.5cfb4dcc: * Consistently handle settings with multiple values * Remove unused import in t/10-jobs.t- Update to version 4.6.1729175067.9ff0bc1e: * Ensure recurring text streaming callback is invoked by tests * Ensure finish handler for streaming is consistently covered by tests * Ensure drain callback of text streaming is consistently covered by tests * Simplify setup of `t/26-controllerrunning.t` * Fix handling of job array in enqueue_git_clones * t: Debug reponse in case of failure * Reuse existing GruTasks for same git_clone task * Extend worker tests to reach 100 % statement coverage * Bump acorn from 8.12.1 to 8.13.0 * Bump tslib from 2.7.0 to 2.8.0 * Allow enabling worker online limit in scalability test * Log limit of online worker slots when starting websocket server * Improve small mistakes in scalability test * Check bookkeeping of ws connections by worker in `t/27-websockets.t` * Ensure `lib/openQA/Worker` is fully covered by extending CI check * Simplify code in command handler, avoid nested if block * Cover all special cases of the command handler * Test validation errors on worker registration and fix missing return * Cover all lines of worker engine code or mark as uncoverable * etc: Clarify how to set max_online_workers best- Update to version 4.6.1728897629.cd422eac: * etc: Fix wrong default value in comment * Improve naming of `wait_for_data_table_entries` * Stabilize `t/ui/21-admin-needles.t` * Ensure the "Apply" button on needles table is always clickable- Update to version 4.6.1728661059.4cfa2f0b: * Update lib/OpenQA/WebAPI/Controller/API/V1/Table.pm * Consistently mark test files as non-executable * Show error when admintable settings key contains invalid chars- Update to version 4.6.1728578795.2ebe3061: * Fix loading array settings on scheduled product page * Update docs/Installing.asciidoc * Avoid incomplete jobs when restarting Minion while syncing tests * Update circleci config to codecov@4.2 * Make activity view accessible to operators * Install docs: Clarify when and how to add repos on SLE * Show operator links of plugins (like OBS sync) only to operators * Configure a default for the limit of online workers * Partially revert "Drop OpenQA::WebAPI::Plugin::HashedParams" * Skip all symlinks for git_auto_update service * Add munin alert email wrapper * Cover API for showing info of individual worker * Cover unsuccessful websocket connection upgrade of worker * Make `t/24-worker-webui-connection.t` work when error slightly differs * Simplify making worker info removing unused live flag * Allow limiting number of worker websocket connections * Fix source view for running tests * Trigger git_clone also for Job restart * Emit individual comment create events when commenting on job restarts * doc: Improve wording in documentation related to database setup * doc: Add back command for starting daemon using unit test setup * doc: Remove problematic/obsolete parts of "Manual daemon setup" * Allow adding a comment when restarting jobs- Update to version 4.6.1728376236.4a3830a3: * Print error messages to stderr * Bump synckit from 0.9.1 to 0.9.2 * Bump eslint from 9.11.1 to 9.12.0 * Drop OpenQA::WebAPI::Plugin::HashedParams * AdminTable: Only trim hash keys after selecting values * Fix typo for Test names form field * cli: List 'arch' and 'machine' as supported in API help- Update to version 4.6.1728073440.a54ab8d4: * Fix race condition in `t/ui/18-tests-details.t` * Bump datatables.net-bs5 from 2.1.7 to 2.1.8 * OpenID: Clarify the impact of errors to users and admins * Remove scripted waiting for db in favor of healthcheck- Update to version 4.6.1727950788.ba063877: * Improve OpenID auth handling on not_openid response * Improve minion guards for needle tasks * Mark obviously uncoverable lines in scripts * Add test for delete_needles * Bump eslint from 9.11.0 to 9.11.1 * Make t/ui/21-admin-needles.t work for every timezone * Render tooltip in needle table to reveal absolute time- Update to version 4.6.1727773199.b638ad7b: * dist: Add required "group(kvm)" for openQA-worker * Bump eslint-scope from 8.0.2 to 8.1.0 * Bump espree from 10.1.0 to 10.2.0 * Update t/lib/OpenQA/SeleniumTest.pm * Decrease log level from warn to info for git clone reject * Replace $.ajax() with fetch() * Remove obsolete linkify workaround for anser<2.3 * Mark uncoverable statement in `wait_for_worker` as such * Avoid problem with coverage report * Prevent fullstack test from failing early due to 4xx errors * Add example scenario definitions to "Create …" form * Fix the example of minimum scenario definition in documentation * Improve help popover of "Additional settings" in "Create …" form * Dependency cron 2024-09-30 * Skip symlinks in enqueue_git_update_all * ci: Set postgres container version to 16 to ensure compatibility * Bump anser from 2.2.0 to 2.3.0- Update to version 4.6.1727367369.3b39dda0: * t: Improve mocked commands * Workaround `scheduler_step` showing up as uncovered * Fix quoting of git ssh arguments * Fix script name in git-auto-update service * Improve stability of `t/ui/10-tests_overview.t` * Increase time limit of `t/ui/10-tests_overview.t`- Update to version 4.6.1727186979.2ec2ab59: * Add test for uncovered code * Schedule git_clone minion job via a service * Remove unused import * Make use of qw() feature * Automatically update git for jobs without CASEDIR/NEEDLES_DIR * Fix initial cloning via fetchneedles after 313ee7a1 * Bump eslint from 9.10.0 to 9.11.0 * Bump anser from 2.1.1 to 2.2.0 * Bump datatables.net-bs5 from 2.1.6 to 2.1.7 * Fix check for worker classes when creating jobs from settings * Rewrite code for creating parent dependencies in a more compact way * Fix check for worker classes when creating dependencies * Fix inconsistent commenting style in openqa.ini- Update to version 4.6.1727085175.00b92eeb: * Add example for overriding example test parameters * Make fetchneedles work with modern Git repos like the example distri * Ease development of `fetchneedles` by avoid hardcoding `OPENQA_BASEDIR` * Allow cloning example test distribution from UI for running example test * Allow scheduling a (example) product via the web UI * Simplify code for assigning config values * Make selectors in `t/17-build_tagging.to` more specific * Quote URLs with double quotes- Update to version 4.6.1726600250.e88bdd3c: * git subrepo pull (merge) --force external/os-autoinst-common * Dependency cron 2024-09-17 * Improve and simplify test for filtering on tests overview page * Avoid sporadic failures of `t/ui/10-tests_overview.t` * Bump @eslint-community/regexpp from 4.11.0 to 4.11.1- Update to version 4.6.1726480610.b2c7833e: * Ensure `tidyall` is available in CI after 28c5dd11f * Apply tidy after 61be7039 * Ensure the error responsible for API failures is always added * Exclude sub packages with many additional dependencies on SLE- Update to version 4.6.1726234723.b54d8ce9: * Slightly simplify OpenQA::Git * Add missing flash message box to /tests page * Use double quotes for quoting links * Fix linkify to only link to proper URLs * Slightly simplify Schema::Result::ScheduledProducts * Avoid incomplete jobs if Open vSwitch related service is not running- Update to version 4.6.1725890782.54de77b9: * Bump datatables.net-bs5 from 2.1.5 to 2.1.6 * Bump eslint from 9.9.1 to 9.10.0- Update to version 4.6.1725637127.f5fba44a: * Avoid escaping backslashes in regex for QEMU binary * Improve unit tests for check whether QEMU is running * Bump debug from 4.3.6 to 4.3.7 * t: Move git gru tasks into an extra test file * Tell user the reason for a failure- Update to version 4.6.1725368178.01cdac6f: * Require GruTask in database before running a minion job * Only update clean git checkouts * Bump datatables.net-bs5 from 2.1.4 to 2.1.5 * Bump ace-builds from 1.36.1 to 1.36.2- Update to version 4.6.1725224262.f755652b: * Refactor ScheduledProducts * Bump ace-builds from 1.36.0 to 1.36.1- Update to version 4.6.1725027179.122a2c61: * Refactor git functions into git module * Dependency cron 2024-08-30- Update to version 4.6.1724756295.aa42e73c: * Avoid zypper errors when using singe-instance container * Dependency cron 2024-08-27 * openqa-cli: Document changed behavior regarding STDIN after de2a210ce * Bump tslib from 2.6.3 to 2.7.0 * Bump eslint from 9.9.0 to 9.9.1 * openqa-cli: Avoid reading unexpectedly from STDIN * Use signatures in remaining helpers to start different test workers * Ensure full test coverage of test code * Move `python3-yamllint` from test to style-check dependencies * Avoid requiring `ShellCheck` and other style-related deps for RPM build * Improve git commands in git_clone job * Avoid using deprecated Autoyast config for firewall- Update to version 4.6.1724422555.bca3b3b4: * Fix number of expected CI checks * Fix invalid HTML leading to fullstack test failures * Run OBS helper for pull_request_target * Avoid having RPM build depend on packages only needed for style checks * Fix directory name libexec in path * Ensure AppArmor rules for Leap and TW allows git * Fix missing AppArmor rule for git ls-remote * ci: Add OBS helper workflow * Remove git fetch with destination refspec feature * Bump ace-builds from 1.35.5 to 1.36.0 * Remove workaround for broken chromium * Revert "Refactor generic git functions into git module" * Avoid array recreation with _run_cmd helper method * Allow openqa-cli to export commands without an API * Add line numbers with anchoring in log viewer * Bump ace-builds from 1.35.4 to 1.35.5 * Improve git error handling and refactor $path * Refactor format_git_error * WIP refactor generic git functions into git module- Update to version 4.6.1724130238.d2572ad3: * Dependency cron 2024-08-20- Update to version 4.6.1723914098.c2bbc49b: * Prevent git_clone to interfere with needle tasks- Update to version 4.6.1723815752.458533ee: * Bump datatables.net-bs5 from 2.1.3 to 2.1.4 * Add better help on menu items after removing obtrusive tour * Remove tour as it was rather obtrusive * openqa.ini: Move comment on template setting * Update codecov.yml with current coverage in t/ * Extend test coverage of OpenQA::Git * Immediately search when clearing search field * Stop openQA worker processes gracefully to avoid 5xx responses * Add interactive log viewer * t: Remove duplication from test labels * t: Avoid tampering with git checkout * Fix link in live dev mode to docs * Mention the possibility to specify a URL via `SCENARIO_DEF…S_YAML_FILE`- Update to version 4.6.1723625349.2972cfd0: * Move simulating load to a function * ci: Ensure tests pass even under high load * Make exceptions for perlcritic RedundantStrictWarning * Use perlcritic wrapper and plugins from common repo * git subrepo pull (merge) external/os-autoinst-common * Makefile: Extract separate make target "setup-database" for convenience * Bump eslint from 9.8.0 to 9.9.0 * Remove duplicated use * Bump ignore from 5.3.1 to 5.3.2 * Fix some perlcritic complaints * Add filter excluding groupless jobs to API/V1- Update to version 4.6.1723228512.e404d966: * openqa-bootstrap: Refresh and retry in case of package changes * Add help on how to exclude groupless jobs from WebUI * Use new perltidy wrapper tools/tidyall * git subrepo pull (merge) external/os-autoinst-common- Update to version 4.6.1723039980.549ee3ba: * Ensure valid format for HTML element ids * Add validation in route for updating job priority * Simplify priority handling for product scheduling * Avoid including source code line number in API error message * Allow specifying priority when creating a single set of jobs * Use test labels in test for default prio assignment when posting jobs * Bump @floating-ui/core from 1.6.6 to 1.6.7 * Bump @floating-ui/utils from 0.2.6 to 0.2.7 * Bump @floating-ui/dom from 1.6.9 to 1.6.10 * Bump @floating-ui/core from 1.6.5 to 1.6.6 * Bump @floating-ui/dom from 1.6.8 to 1.6.9 * Fix cancelling any pending job from /tests/overview * Reload main openQA service on updates to reduce downtimes * Avoid restarting `openqa-webui.service` when other units are restarted * Allow restarting `openqa-webui-daemon` without downtime * Make jobs running without needing to set needles URL specifically- Update to version 4.6.1722893158.0b3a25ec: * Make sure package is in the codespaces container * Switch codespaces devcontainer to single-instance-codespaces * Revert "Downgrade single-instance-container to Leap"- Update to version 4.6.1722871107.40fce5a7: * Fix openqa-bootstrap login * Define single-instance container for Codespaces * Move 'dsn' functionality into only place where used * Workaround candidates menu not opening sometimes in UI tests- Update to version 4.6.1722606094.a0f3ca50: * Bump datatables.net-bs5 from 2.1.2 to 2.1.3 * Allow openqa-bootstrap to clone job in non-systemd environments * Ease setup for Git-based workflows * Revert "Remove unused 'dsn' function and its usage" * Remove unused 'dsn' function and its usage * Simplify error handling of downloader, avoid confusing error codes- Update to version 4.6.1722436893.4726870f: * Fix sporadic failures in test of candidates menu * Lower the log level of livestream related problem considering low impact * Consistently skip RETRY on all aborted results * Improve error messages in `git_clone` tasks * Avoid incomplete jobs when Git cloning fails * Bump eslint from 9.7.0 to 9.8.0 * Bump @floating-ui/dom from 1.6.7 to 1.6.8 * Bump debug from 4.3.5 to 4.3.6 * Bump @floating-ui/core from 1.6.4 to 1.6.5 * Bump @floating-ui/utils from 0.2.4 to 0.2.5 * Bump ace-builds from 1.35.2 to 1.35.4 * Bump @eslint/config-array from 0.17.0 to 0.17.1 * doc: Clarify notes about setting `CASEDIR`/`NEEDLES_DIR` * doc: Shorten the paragraph about triggering tests bases on Git refspec * CI: Cover repo errors with exponential retries * Dependency cron 2024-07-30 * Do not retry jobs that were obsoleted- Update to version 4.6.1722253340.d5cf7898: * Simplify Resource::Locks with direct return of booleans * Use signatures in Resource::Locks * Use signatures in Resource::Jobs * Slightly simplify script/openqa-validate-yaml- Update to version 4.6.1722030966.ff00eea0: * Allow configure-web-proxy to use a custom port * Revert "Allow configure-web-proxy to use a custom port" * Allow configure-web-proxy to use a custom port * Bump datatables.net-bs5 from 2.0.8 to 2.1.2 * t: Sort external+internal imports in full-stack.t- Update to version 4.6.1721742803.51f9636c: * Use absolute timestamp delta to check hmac tolerance * Add hmac time tolerance setting * Use common time comparison logic to enable better logging * Downgrade chromedriver to avoid broken version * Avoid warning about clashing imported subroutine * Use signatures in Shared::Controller::Running- Update to version 4.6.1721394676.6f16d338: * Use signatures in WebAPI::ServerSideDataTable * Use nginx zone size large enough for 16k pages * Add proper constant time comparison authentication functions- Update to version 4.6.1721240179.3145b6a1: * Add test for render_specific_not_found * Split streaming tests into subtests * Bump eslint-plugin-prettier from 5.1.3 to 5.2.1 * t: Extend 03-auth-openid.t for _create_user and call checks * Retry docker compose up to accomodate zypper errors * t: Extend unit-test for WebAPI::Auth::OpenID * t: Add test for OpenQA::WebAPI::Auth::OpenID * Clarify how OpenQA::WebAPI::Auth::OpenID uses controller argument * Simplify OpenQA::WebAPI::Auth::OpenID * t: Fix typo in 03-auth.t * Bump eslint from 9.6.0 to 9.7.0 * Update systemd dependencies in accordance to moving code to livehandler * Avoid potentially slow ws server slowing down live handler as well * Bump eslint-scope from 8.0.1 to 8.0.2 * Bump prettier from 3.3.2 to 3.3.3 * Use require for loading OpenQA::Test::Database- Update to version 4.6.1721042877.3f4dbfde: * Move render_specific_not_found to SharedHelpers * Prevent failure when restarting Minion-related services * Fix links in Branding.asciidoc * Extend and improve tests for job overview API * Support parameters `arch` and `machine` in job overview API * Prevent live view viewers from making openQA unresponsive * Avoid relying on project-level environment variables in CircleCI * Bump esquery from 1.5.0 to 1.6.0 * Use Codecov-related env variables from orga context- Update to version 4.6.1720446867.5cfa922b: * Add test for `show_job_info` test helper * Fix synchronization in fullstack test * Improve coding style in `websocket_api_version` function- Update to version 4.6.1720189080.136b92a5: * Disable all kinds of CSS animations in tests to increase stability * Modify BUGREF_REGEX to accept all but hash and spaces * Fix URL rendering in job tests' comment- Update to version 4.6.1720013336.c526246d: * Bump acorn from 8.12.0 to 8.12.1 * Bump ace-builds from 1.35.1 to 1.35.2 * Bump @floating-ui/core from 1.6.3 to 1.6.4 * Adjust scheduling to consider PARALLEL_ONE_HOST_ONLY from workers * Remove unused variable in worker slot picker * Simplify `update_caps` after passing `PARALLEL_ONE_HOST_ONLY` setting * Dependency cron 2024-07-02 * Provide PARALLEL_ONE_HOST_ONLY via workers config file * Bump eslint from 9.5.0 to 9.6.0 * Bump @floating-ui/dom from 1.6.6 to 1.6.7 * Bump @floating-ui/utils from 0.2.3 to 0.2.4 * docs: Explain integration of external test results * Remove unused file WebAPI::Controller::API::V1::Command- Update to version 4.6.1719769755.f382481d: * Bump @floating-ui/core from 1.6.2 to 1.6.3 * Dependency cron 2024-06-29 * Be more explicit about the booleans in build_results * Bump @eslint-community/regexpp from 4.10.1 to 4.11.0 * Bump ace-builds from 1.35.0 to 1.35.1- Update to version 4.6.1719403951.26949373: * apparmor: Allow 'sleep' as needed in os-autoinst scripts * Bump @floating-ui/dom from 1.6.5 to 1.6.6 * Document automatic Git checkouts- Update to version 4.6.1718962077.0a0dae67: * Dependency cron 2024-06-21 * Fix products being wrongly re-scheduled with the setting `AMP;ASYNC=1` * templates: Add group title names to title- Update to version 4.6.1718823516.0611ef7a: * Fix `openqa-cli` getting stuck on retrying * Fix highlighting of parent/child jobs after Bootstrap 5 migration * Dependency cron 2024-06-19 * Fix enabling auto cloning in bootstrap script * Bump espree from 10.0.1 to 10.1.0 * Improve dependency-related code * Ensure dependencies of partially re-scheduled product are correct * Fix typo in users documentation * Improve documentation about scheduling parameters * Fix limiting partial re-scheduling to the relevant test suite * Remove unused variable for mandatory parameters- Update to version 4.6.1718631194.f6bb926b: * Bump eslint from 9.4.0 to 9.5.0 * Fix a typo in Installing.asciidoc * Fix table widths of various admin tables * Fix styling of scheduled product settings after Bootstrap 5 migration * Write styling rules for settings table in a more compact way * Fix badges after Bootstrap 5 migration * Bump acorn from 8.11.3 to 8.12.0 * Mention possibility to run `isotovideo` in a CI runner * Bump @eslint/object-schema from 2.1.3 to 2.1.4- Update to version 4.6.1718267941.228ceaf1: * Fix `sed` command in `openqa-bootstrap` after f4c71d4ff2 * Document what the OBS rsync Minion job does * Prevent ambiguous 'localhost' worker connection- Update to version 4.6.1718116578.4bca4b7b: * Bump ace-builds from 1.34.2 to 1.35.0 * Bump prettier from 3.3.1 to 3.3.2 * Make it clear why restarting is disabled * Explain where to find advanced restart options in help popover * Enable automatic cloning of Git repos in openqa-bootstrap setups * docs: Fix typos in single-instance container usage * docs: Add instruction how to trigger and clone tests * Update list of Bootstrap files after migration to Bootstrap 5 * Fix validation of job/parent group forms * Migrate validation code of job group form to Bootstrap 5 * Improve darkmode using dark theme of Bootstrap itself * Fix invalid/problematic HTML * Migrate remaining parts of our frontend code and tests to Bootstrap 5 * Migrate further aspects of our Bootstrap usage to Bootstrap 5 * Migrate modals and dropdowns to Boostrap 5 * Update to Bootstrap to 5.3.3 * Read GitHub token from config file- Update to version 4.6.1717835518.1501646c: * Fix editing parent job group properties * Update version requirement of `rubygem(sass)` to 3.7.4 for Bootstrap 5 * Improve documentation for DELETE /job_groups/id * Fix SUSE:CA repo selection on SLE * Bump tslib from 2.6.2 to 2.6.3 * Bump prettier from 3.3.0 to 3.3.1- Update to version 4.6.1717576421.21904f82: * Add documentation for codespaces * Bump @eslint-community/regexpp from 4.10.0 to 4.10.1 * Bump prettier from 3.2.5 to 3.3.0 * Document cloning jobs mentioned in PR comments- Update to version 4.6.1717421670.f468030a: * Bump eslint from 9.1.1 to 9.4.0 * Add a devcontainer for codespaces- Update to version 4.6.1717018874.26363281: * Bump datatables.net-bs4 from 2.0.7 to 2.0.8 * Downgrade single-instance-container to Leap * Avoid long build numbers from taking too much space on dashboard- Update to version 4.6.1716874663.ccc6eb0d: * Add GRU task to update DISTRI and NEEDLES_DIR from git if needed * Make warning about partial rescheduling more clear * Overhaul info panel on job details page * Bump ace-builds from 1.34.1 to 1.34.2 * Cleanup download job gru task enqueuement- Update to version 4.6.1716566379.3b8eb1f6: * Bump ace-builds from 1.33.2 to 1.34.1- Update to version 4.6.1716471629.dc3ed1b8: * Allow seq in apparmor scripts needed by openqa-label-known-issues (#5657) * Restructure openqa-bootstrap- Update to version 4.6.1716119315.fcb740d1: * Compare SUT package versions in investigation, if available * Add ruby-devel to allow building native extensions * Pin version of pygments gem to fix docs building on Leap * Make VNC port offset configurable * Dependency cron 2024-05-16 * Update helm charts to Leap 15.6 after base update- Update to version 4.6.1715787278.b4f7f6f0: * Ensure curl, ping and ps are installed as deps for openQA-bootstrap * Bump @floating-ui/core from 1.6.1 to 1.6.2- Update to version 4.6.1715609300.c38e9908: * Bump ace-builds from 1.33.1 to 1.33.2 * Add trailing slashes and autoindex to asset config example * Update to Leap 15.6 where applicable * Prevent keyboxd usage when gpg >= 2.4 is used- Update to version 4.6.1715377164.c357f5c7: * CI: Fix broken uploader validation after upgrade to Leap 15.6 * CI: Bump codecov orb to current 4.1.0 * Dependency cron 2024-05-10 * Fix HTML for source view * CI: Fix qemu-kvm dependency in Leap 15.6 * Update CircleCI image to Leap 15.6 * Allow specifying multiple comma-separated values for CORS header * Bump datatables.net-bs4 from 2.0.6 to 2.0.7 * Bump @humanwhocodes/retry from 0.2.3 to 0.2.4 * Bump @floating-ui/dom from 1.6.4 to 1.6.5 * Update actions versions to latest release * Remove duplicate check for status code in API authentication test * Allow configuring Cross-Origin Resource Sharing (CORS) for API requests * Include recording into documentation * Show openQA web UI in a browser inside terminal * Put recording inside a container * Add scenario for asciinema recording * Fix regular expression in grep * Remove containers not mentioned anywhere- Update to version 4.6.1714815830.68247fd5: * Bump datatables.net-bs4 from 2.0.5 to 2.0.6 * Document rendering documentation locally * Remove out of date documentation about tests in non-CI containers * Update names to reflect reality * Remove obsoleted and non-working makefile targets * Fix container-test-build target- Update to version 4.6.1714486212.11bc4a65: * Avoid wrong info message from shellcheck about possible misspelling * Provide volume and default workdir for openqa_devel container * Bump optionator from 0.9.3 to 0.9.4 * Bump @floating-ui/utils from 0.2.1 to 0.2.2 * Bump @floating-ui/dom from 1.6.3 to 1.6.4- Update to version 4.6.1714402034.e9b99fa0: * Fix Lock locking race condition * Remove unused CI dependency bot container * Move asset-related setup into its own file to avoid extra build requires * Bump @floating-ui/core from 1.6.0 to 1.6.1 * Bump eslint from 9.0.0 to 9.1.1 * Improve code for installing assets * Add check for loading assets via openQA-test package * Extract setup of AssetPack into a separate function to ease testing * openqa-clone-job: Extend help with job-specific example and note- Update to version 4.6.1714133087.91cad33b: * Fix missing installation of further assets required by Ace * Use the latest version of AceEditor instead of CodeMirror- Update to version 4.6.1713895143.68ea6d5a: * Make CRITICAL_LOAD_AVG_THRESHOLD work with AppArmor * Avoid race condition when reading step details- Update to version 4.6.1713801413.9fe9436d: * Use and adapt to DataTables 2.0.5 * Bump datatables.net-bs4 from 1.13.8 to 2.0.5- Update to version 4.6.1713529632.617b28d8: * JobTemplates-01.yaml: Disallow empty test suites * Pull path unit file to auto restart after Minion update- Update to version 4.6.1713441124.ce4c4187: * Avoid messing with `PRODUCTDIR` if `CASEDIR`/`NEEDLES_DIR` are from Git * Ensure the Git cache cleanup is happening according to local settings * style: Fix not-clickable links- Update to version 4.6.1713195688.98057f9b: * dist: Allow build on s390x after verification * Create unit files to auto restart services after minion update- Update to version 4.6.1712957750.06bff133: * Fix messed-up wrapping in comment about OBS-rsync terminology * Fix typos in various places in our code (via codespell) * Improve wording of licensing note in footer * Fix typos in live.html.ep * Use signatures and more compact coding style code handling needles * Add test for redirection to job of last needle use/match without step * Avoid warning when computing failed modules * Fix warnings about using undefined values when computing needle details * Avoid running into errors in search route when grep fails * Avoid running into error when the settings file path is a directory- Update to version 4.6.1712826808.42c84738: * Add test for Minion dashboard * Improve coding style in `t/ui/13-admin.t` * Dependency cron 2024-04-11 * Dependency cron 2024-04-10- Update to version 4.6.1712593070.918a7f6d: * Extend ESLint configuration to check recommended JavaScript rules * Add explicit ESLint config for compatibility with ESLint 9.0.0 * t: Fix sporadic test failure in ui/13-admin.t * Bump eslint from 8.57.0 to 9.0.0 * worker: Provide a sensible default for "critical load threshold" * Dependency cron 2024-04-08- Update to version 4.6.1712303211.edc562a0: * Allow configuring a critical value for "load15" for openQA workers- Update to version 4.6.1712128988.6990dcde: * Update eslint-plugin-prettier to 5.0.0 * Bump prettier from 2.3.2 to 3.2.5 * Fix docker compose V2 usage * Bump @humanwhocodes/object-schema from 2.0.2 to 2.0.3 * Switch to docker compose subcommand * Improve info about auto-restart behavior involving `auto_clone_regex` * Bump d3-time from 1.1.0 to 3.1.0- Update to version 4.6.1711720670.566a51a5: * Bump d3-time-format from 2.1.1 to 4.1.0 * Remove obsolete FIXME in OpenQA::Worker * Use signatures in complete OpenQA::Worker * worker: Extract method 'store_package_list'- Update to version 4.6.1711634904.3738335c: * Bump d3-format from 1.2.2 to 3.1.0 * Prevent developer mode test from failing on redirections * Improve workaround for re-login in developer mode test * Document caveats of the PARALLEL_ONE_HOST_ONLY=1 feature * Move `WorkerSlotPicker` out of the `Model` namespace * Bump d3-time from 1.0.8 to 1.1.0 * Improve handling dependency pinning when picking parallel siblings * Mark uncoverable line in scheduler test as such * Refactor code to support parallel dependency pinning * Allow pinning parallel clusters on one host * Avoid possible errors on asset creation about unique constraint * Avoid irrelevant security alert due to old version of `d3-color` * Bump d3-polygon from 1.0.3 to 1.0.6 * style: Prevent the footer overlapping any other content * style: Fix custom footer overflow- Update to version 4.6.1711372491.18a87328: * Bump d3-transition from 1.1.1 to 1.3.2- Update to version 4.6.1711120604.dad79902: * Hide commenting button on empty test results overview pages * Suggest reloading page after adding comments on overview page * Rename "Batch commenting" to "Add comments" according to feedback * Bump d3-axis from 1.0.8 to 1.0.12- Update to version 4.6.1711028310.e985d28c: * Bump d3-color from 1.0.3 to 1.4.1 * Avoid potential problems in UI test of audit log * Avoid tour from interfering with audit log test and improve login code * Log timeout when waiting for condition in tests * Bump d3-zoom from 1.7.1 to 1.8.3 * Use exponential increased delay on retry_tx * Bump d3-ease from 1.0.3 to 1.0.7 * Allow all dependabot pull requests- Update to version 4.6.1710845353.23e79984: * Bump @floating-ui/dom from 1.6.1 to 1.6.3 * Handle special releases in openqa-boostrap (like "Leap 15.6 Beta") * Bump eslint-plugin-prettier from 3.4.1 to 4.2.1 * Update location of d3.min.js * Bump d3 from 4.13.0 to 7.9.0 * Bump eslint-config-prettier from 8.10.0 to 9.1.0 * Remove obsolete checklist item about asset cache * Bump eslint from 7.32.0 to 8.57.0 * Allow undoing batch-commenting from the audit log table * Add route to delete many comments at once * Allow batch-commenting on test results overview * Add dependabot rules to mergify config- Update to version 4.6.1710762624.7d0dd225: * Only allow security PRs from dependabot * Bump flatted from 3.2.9 to 3.3.1 * Enable dependabot updates * Return 404 if module not found * Fix race conditions when handling barriers * Fix typos in comment about locks * Use signatures in UI tests of tests overview page * Fix showing current result/state filters on overview page- Update to version 4.6.1710322691.40a3af54: * Nicely wrap serial text boxes and don't display leading empty line * Adapt "uncoverable statement" comments after tidy update * Dependency cron 2024-03-11- Update to version 4.6.1709822711.90519fe6: * Pin gem ttfunk to version 1.7.0 due to Ruby version requirement * Log waiting time in monitor script and useragent * Make it less likely for jobs incompleting with `Cache … queue … full`- Update to version 4.6.1709639149.060eef3f: * Avoid syncing tests via the cache service when using Git anyway * Revert "Avoid syncing tests via the cache service when using Git anyway" * Avoid syncing tests via the cache service when using Git anyway- Update to version 4.6.1709291879.1d220054: * Print a helpful error message when assets via npm are missing * Ensure npm packages are installed when invoking tests * Improve documentation for setting up the PostgreSQL database * Improve sections for customizing directories * Update Autoyast profile for nvme to include chrony * Simplify CLI::monitor with 'all' function- Update to version 4.6.1709047585.9bc6ce52: * Document GitHub action for cloning job from PR description * Update networking doc advising RSTP instead of slower STP- Update to version 4.6.1708608805.993d8f89: * Add chronyd service in OpenQA Autoyast installation * Add ipmi-deps to our worker container- Update to version 4.6.1708514407.3d50af15: * docs: Mention openqa-label-all in documentation * Improve details in monitor/schedule CLI commands * Split monitoring of jobs via `openqa-cli` into a separate command- Update to version 4.6.1708009978.05b36bda: * t: Only run tests under t/ * git-subrepo: update external/os-autoinst-common * Simplify service_port_delta with environment variable * Fix select dropdown arrow floating over text * Fix caching rpm packages on CircleCI after c5ea52b * Dependency cron 2024-02-14- Update to version 4.6.1707924836.ebe28324: * Improve out-of-box experience with single-instance container * Fix typo in installation documentation * Bump codemirror from 4.13.0 to 5.58.2 * Remove manual installation of npm when caching assets * Install npm in the container we use on CircleCI * Make developer mode work in single-container setup * Adapt AppArmor profile for switch to node modules * Make `local-npm-registry` available in SLE-15-SP6 CI packaging check * Streamline approach for selecting shell files in test targets * Ensure required node modules are installed via install target * Adapt code after updating DataTables from 1.10.16 to 1.10.18 * Exclude node modules from shell formatting checks * Fix fetching fonts after providing assets via npm * Install npm dependencies in the CircleCI caching step * Add npm as dependency after now using it for assets * Add package-lock.json for `obs-service-node_modules` * Remove no longer required asset cache handling from rpm packaging * Update documentation for handling JavaScript/CSS dependencies * Ensure assetpack does no more remote downloads * Install third-party assets via npm- Update to version 4.6.1707499101.aaa807d2: * docs: Add instructions for pinging over GRE tunnels * Ensure all hidden form fields in test overview filter * Avoid sporadic failures in `t/ui/16-tests_job_next_previous.t` * Add /job_groups/id/build_results API route * Add signatures to OpenQA::WebAPI::Controller::API::V1::JobGroup * git subrepo pull (merge) external/os-autoinst-common * Ensure the worker can call `du` for space aware cleanup of Git caching * docs: Explain combination of worker class values and more examples * Adapt usage of tools/update-deps * Remove unnecessary disabling of strict refs * Refactor methods which violate the deeply nested loops * Avoid workers from showing up shortly as broken after registration- Update to version 4.6.1706881004.0d50a814: * Apply perlcritic rule for useless interpolation of literal string * Remove no critic annotation * Add service_port_delta config for livehandler- Update to version 4.6.1706677570.34cd7cff: * Dependency cron 2024-01-31 * Add editorconfig and update bash files accordingly * git subrepo pull (merge) external/os-autoinst-common * Dependency cron 2024-01-30 * Add shfmt to devel requires for preparation- Update to version 4.6.1706272112.624209b7: * Avoid deprecation warnings in GitHub action for JavaScript linting * Show relevant tasks when following Minion link after asset cleanup * Use `--within-instance` in example for cloning MM jobs * Ensure only the Git cache directory from the local worker config is used * Mention handling of symlinks when cleaning up assets in docs * Document debugging problematic connections in the GRE network * Document command to check whether IP forwarding is enabled * Update MTU-related documentation in MM-setup documentation * Improve documentation for running MM jobs accross multiple hosts * Mention specific test scenarios that can be used to verify the MM setup- Update to version 4.6.1706049794.bd8ad6e3: * Adjust .yamllint and add .yamltidy * git-subrepo: update external/os-autoinst-common- Update to version 4.6.1705610500.1e9bfef6: * git-subrepo: update external/os-autoinst-common * Improve deletion of asset-symlinks * Use signatures in some asset-related utility functions * Remove obsolete entry from group_overview * Refactor code for filter form on test result overview page * Add comment text in filter form on test results overview page * Document filter for comments on "All tests" page- Update to version 4.6.1705419426.44c52651: * Fix "duplicate key value violates unique constraint" on needle updates * Ensure the database timezone is always UTC executing tests * Allow filtering by comment text on the test results overview page * Allow searching by comment text on "All tests" page * Move test for `match`-parameter on "All tests" page into subtest- Update to version 4.6.1705059022.6814720: * Add SLE15SP6 Backports OBS CI integration * Update docs for asset cache * ObsRsync: Consistently expand status URL- Update to version 4.6.1704886775.b5e992e: * Limit number of auto_clone restarts- Update to version 4.6.1704466891.4d4e5b7: * Update perl-DBD-Pg-3.18.0 * Download shepherd.js from cdn.jsdelivr.net * ObsRsync: Include URL in GRU task- Update to version 4.6.1704307071.9c8a390: * docs: Document how click points work * CI: Shift nightly schedule further trying to avoid download problems- Update to version 4.6.1703255154.b96c049: * Handle no job group filter matches gracefully * Add group filter options for /tests * Prevent ambiguous PRJDIR ending up in vars.json- Update to version 4.6.1703176922.1f7eb61: * doc: Improve wording of the introduction to MM tests * doc: Improve punctuation/formatting in `WritingTests.asciidoc` * doc: Rewrap lines in `WritingTests.asciidoc` to 80 characters per line * doc: Move "Job dependencies" out of "Writing multi-machine tests" * Remove unnecessary newline * Introduce --skip-checks in openqa-clone-job * Add a note for `Mojo::Base` in Documentation for Tests * t: Use consistent 'Mojo::Base' instead of strict+warnings * Extend tests of dependency graph to better cover restarting * Fix dependencies not showing up in graph under certain conditions- Update to version 4.6.1702976108.a4cd34a: * Document further ovs commands- Update to version 4.6.1702649526.dcd6122: * Use postgresql recursive feature for getting scheduled product- Update to version 4.6.1702503492.e68161c: * Improve documentation of cache service related variables in config * Support for native asciidoc with fallback to rubygems bundle * Add support for non-root installation of ruby dependencies * Wrap lines in networking documentation at 80 characters * Improve instructions for setting up VM to debug MM setup manually * Simplify generation of documentation- Update to version 4.6.1702049559.97f9359: * Add additional check in `t/ui/15-comments.t` for easier debugging * Parse error messages from scheduling failures- Update to version 4.6.1701950335.db07886: * Add job group filter options for /tests/overview * Document testing the MM setup by launching a VM manually * Use format `KEY:TEST=VALUE` in `openqa-clone-job` to specify job * Improve warning about invalid command-line arguments in clone-job script * Allow passing settings only for specific test when cloning jobs * Dependency cron 2023-12-06 * Fail early when attempting to clone a job with missing assets * Pass VNC argument for developer mode dynamically when test has started * Fix displaying hostname in VNC instruction if empty- Update to version 4.6.1701437900.fbad594: * Dependency cron 2023-12-01- Update to version 4.6.1701312647.3c8b171: * Dependency cron 2023-11-30 * Show FQDN in VNC command if available via `WORKER_HOSTNAME` * Add YAML:PP as direct dependecy of generate assetpack script * Cleanup openQA spec files * infopanel: render scenario_description as markdown- Update to version 4.6.1700951825.872b397: * Fix testrefs in lists * Fix test short reference rendering * Mention NetworkManager support * Fix typo- Update to version 4.6.1700754150.dda8c55: * Pass TMPDIR=1 to OBS Rsync authentication * Dependency cron 2023-11-23 * Fix missing space in scheduling error message * Set asset size on job creation- Update to version 4.6.1700240294.34068e3: * Prevent label/flag/bugref overlapping * Dependency cron 2023-11-17 * Improve comment in test code for dependency handling * Do not associate skipped child jobs with new parent when restarting jobs * Fix force-restarting jobs when an advanced restarting option was chosen * Simplify code for setting up restart buttons- Update to version 4.6.1700156289.0130cfb: * ObsRsync Plugin support for HTTP authentication in Build Service * Add documentation for flag:carryover * Update documentation about manual setup of PostgreSQL * Comments API: Render markdown on explicit request only * Add tests for carryover flags * Consistently use 'carryover' instead of 'takeover' * Perform comment carryover when comment has flag:carryover * Add formatted bugref and carryover flag for comments * Update markdown unit tests for new bugref * Increase MOJO_CONNECT_TIMEOUT in openqa-cli * Avoid unintended mass-removals in openqa-auto-update- Update to version 4.6.1699952945.e6799a9: * Make openqa-cli retry also on connection errors * Add headers to search results- Update to version 4.6.1699113915.9e4ee2f: * templates: Clarify how issue reference carry over can be prevented * Dependency cron 2023-11-03 * Sync AMQP plugin config defaults with code- Update to version 4.6.1698924934.1bd59f9: * Dependency cron 2023-11-01 * Fix skipping Selenium tests * munin: Include context in minion plugin title- Update to version 4.6.1698662280.91607f3: * git subrepo pull (merge) external/os-autoinst-common- Update to version 4.6.1698405013.f1d481a: * Dependency cron 2023-10-27 * Use commit message checks from os-autoinst-common * Warn when modifying files under external directly * CI: Use consistent casing in commit message check * CI: Fix typo in github action name * Update .github/workflows/commit_message_checker.yml * Update commit-message-checker & add extra rule for subject lines- Update to version 4.6.1698089463.d08787a: * Document `run_args` limitation on Python Modules- Update to version 4.6.1697790484.83ab402: * Add Fedora SIGs gitlab group to bugrefs * Add self argument to python examples * Extend Test Module Documentation & Explain Python integration- Update to version 4.6.1697730420.c5419ae: * Update Multi Machine docs to ref os-autoinst-setup-multi-machine only * Add repeat parameter to clone a job multiple times- Update to version 4.6.1697251395.f46075b: * Dependency cron 2023-10-14- Update to version 4.6.1697137041.0b9e261: * Update all container references to current Leap 15.5 * Dependency cron 2023-10-11 * Apply memory limit for openqa-worker services- Update to version 4.6.1696927712.9de9760: * ci: Use PERL_TEST_WARNINGS_ONLY_REPORT_WARNINGS * spec: Use PERL_TEST_WARNINGS_ONLY_REPORT_WARNINGS- Update to version 4.6.1696521554.d04a2c8: * Dependency cron 2023-10-05 * Properly handle duplicate sections on openqa/client.conf * Fix perltidy dependency update * De-prioritize harmless log message about scheduler wakeup- Update to version 4.6.1696214599.759eb2e: * Dependency cron 2023-10-02- Update to version 4.6.1696170052.87fc8eb: * Make tidy version check compatible with dotted versions * Fix dependency update script- Update to version 4.6.1695913264.63a7e9e: * Avoid displaying buttons on sticky table headers * Dependency cron 2023-09-28 * Reduce runtime of t/04-scheduler.t * Require Mojolicious 9.340.0- Update to version 4.6.1695760067.7b58081: * t: Fix api/13-influxdb.t timezone issue- Update to version 4.6.1695350713.4878536: * Dependency cron 2023-09-22 * scheduler: Log statistics of rejected jobs * Fix key navigation on test details * Fix usage of spew with empty content * Update code according to new Perl::Tidy * Update Perl::Tidy to 20230909 * Adapt to deprecation of spurt in upstream Mojolicious * Dependency cron 2023-09-13 * git subrepo pull (merge) external/os-autoinst-common * Fix websocket warning not to include the status "working" * Log an info message when worker status updates are too frequent * Make searching for unfinished jobs faster * Makefile: Make replacements in unit files more robust * Optimize get_property method * Add scheduler test with more workers and jobs * Remove optional allocated_ parameters from schedule * Extract _allocate_jobs * Make max_running_jobs a hard limit- Update to version 4.6.1694191490.cda0470: * Increase min/max values for worker status updates * Remove worker population broadcasts- Update to version 4.6.1694101660.598baea: * Fix missing Conflicts in unit files * Remove redundant worker SELECT query- Update to version 4.6.1693909530.ff28f36: * Remove one UPDATE query from worker status updates * contrib: Align the .xml.erp profile to the recent install attempts * contrib: Add autoyast profile for SUSE PRG2 o3 workers- Update to version 4.6.1693565748.f367431: * Allow settings to wrap into the next line- Update to version 4.6.1692951551.c933949: * apparmor: Allow using tesseract * Allow using force-result label with all final job states- Update to version 4.6.1692349627.5bfccc7: * Remove defaults, should be ensured by OpenQA::Setup already * Add usleep_backoff function and use it for asset uploads- Update to version 4.6.1692303781.9dd2c86: * Fix scheduler getting max_running_jobs config * Add timezone to SQL- Update to version 4.6.1692077260.5fbe296: * Make the number of asset upload attempts configurable * Log number of remaining retry attempts for asset uploads * Display max_running_jobs on /tests page * Set max_running_jobs to -1 by default * Remove max_conns setting again from Nginx config- Update to version 4.6.1691585432.1459599: * Sync testsuite name validation in YAML schema for template and scenario * Limit number of running jobs per webui instance * openqa-bootstrap: Align Leap repo priorities with documentation * Add timezone to SQL query- Update to version 4.6.1690904243.43514d5: * docs: Point to new multi-machine setup script instead of manual steps- Update to version 4.6.1690803816.e47aebd: * dependencies: Require Mojo OAuth2 plugin- Update to version 4.6.1690598632.46f13d3: * Dependency cron 2023-07-29- Update to version 4.6.1690300398.6c9149e: * Use regular single quotes in javascript code * docs: Fix firewalld service setup commands * docs: Use 'trusted' firewall zone same as in setup instructions * docs: Use consistent singe-ticks in python code example- Update to version 4.6.1690178908.b9e03ab: * tests: Improve failure when comparing expected image results fails * Display line breaks in data tables * Add X-Forwarded-Proto to nginx config * Update docs/WritingTests.asciidoc * Update docs/WritingTests.asciidoc * Document custom rsync command examples for TESTPOOLSERVER * docs: Make multi-machine related code sections directly executable * Enhance Python test docs * Don't use apache specific www group in fetchneedles * Make the job ID copying easier * Make the restart and reschedule buttons visually distinguishable * Avoid accidental re-triggering of products * Allow to partially re-schedule a product from a job * Fix re-triggering scheduled products with falsy required params- Update to version 4.6.1689360748.edd4aa1: * contrib: Update/extend autoyast profile- Update to version 4.6.1689265095.7be7504: * Comment out TLS section in nginx config by default as there are no certs * Fix openQA spec to actually build single-instance-nginx subpkg * Dependency cron 2023-07-13- Update to version 4.6.1689162874.c51d4b9: * Avoid worker to wait until setup timeout on asset errors * Add nginx config for tls * Avoid asset caching ending up with `Job terminated unexpectedly` * Avoid errors in the logs when invalid group IDs are passed * Provide single-instance-apache from single-instance * Introduce nginx version of the single-instance rpm * Prevent bootstrap script retry failed proxy conf with remote script * Avoid errors in the logs when invalid job IDs are passed * Install nginx webserver in bootstrap script if requested * bootstrap: Use correct syntax to pass args to remote script * Fix openqa-bootstrap script referencing unbound var- Update to version 4.6.1688760836.a3a5f95: * Quote shell vars * Remove unreachable shift statement from script arg parsing * Convert script/configure-web-proxy from POSIX sh to bash * Fix escaping in test tables * Allow nginx setup via configure-web-proxy and openqa-bootstrap script * Improved nginx config: Provide template and includes * Extend install doc to cover nginx- Update to version 4.6.1688565452.efc15ea: * Use indented here-documents * Fix tests due to postgres error msg filtered in wrong language- Update to version 4.6.1688124489.7f4be1c: * Include nginx config in RPM * Make sure munin config survives package update * Consider devel mode test stable after recent changes * Workaround line not being marked as covered * Make it more obvious when devel mode fullstack test lacks files * Fix race condition at the end of developer mode test * Workaround sporadic failures of developer mode test * De-duplicate code for re-login in devel mode test * t: Reduce likelyhood of sporadic error about not logged in user- Update to version 4.6.1688038171.b33d284: * Improve tempdir template uniqueness- Update to version 4.6.1687961273.be57a22: * Fix example in openqa-clone-job helptext- Update to version 4.6.1687920426.098ed2e: * Dependency cron 2023-06-28 * Use a unique template for worker tempdir * git subrepo pull (merge) external/os-autoinst-common * Apply best practices to Dockerfiles- Update to version 4.6.1687532073.e11feac: * Do not hardlink symlink assets * Reclone external/os-autoinst-common subrepo- Update to version 4.6.1687510203.8d9fc92: * Add a hint regarding changes in the external directory * Add subpackage openQA-munin * Avoid hard dependency on Apache in systemd file * Prevent sponsor logo overflow * docs: Feature the "single-instance" container most prominently * docs: Add single-instance container instructions * docs: Remove obsolete note about Leap <15.2 * Fix style check finding false-positive problems * Remove experimental regex from test * Simplify regex validation helper * Catch regex errors when filtering dashboards * Improve regex validation test * Delete potential extra lines from regex validation error * Simplify regex validation via `use warnings FATAL => 'regexp'` * Validate regex for filtering groups on dashboard pages * Show possibly returned error message when loading dashboard- Update to version 4.6.1687285703.cd38e7f: * munin: Make alert thresholds configurable * Limit git diff to a maximum number of commits * container: Rely on package-provided script to fix OBS build * container: Add healthcheck for single-instance * container: Update single-instance according to best practices- Update to version 4.6.1686951519.7cf0865: * Update Dockerfiles to Leap 15.5 * Refresh tools/ci/ scripts for Leap 15.5 * Fix source view of local case dirs * Update CircleCI image to Leap 15.5- Update to version 4.6.1686859477.329edf1: * nginx: Set if_modified_since before * Use signatures in Shared::Plugin::SharedHelpers * Add munin plugin for minion jobs * Update CI documentation to use of `pull_request_target`- Update to version 4.6.1686649789.d386b2b: * Switch to Leap 15.5 in CI workflow- Update to version 4.6.1686317795.57b586f: * Unify `_job_ref` and `_settings_key` * Extend tests for behavior of `_INCLUDE_CHILDREN` * Simplify code for dependency handling when creating jobs * Make `_INCLUDE_CHILDREN` work for nested children * Allow partial retrigger- Update to version 4.6.1686302766.69ffe8a: * Increase client_body_buffer_size to be larger than UPLOAD_CHUNK_SIZE * Add `priority` property to `job_templates` in YAML * Add test for wildcard version in yaml * Pass job result from os-autoinst's state file to web UI * Extract reading state file into a separate function * Simplify code for formatting reason * t: Use signatures in complete OpenQA::SeleniumTest * t: Simplify chromium dir lookup * t: Simplify find_element call in 33-developer_mode.t * Fix openqa-clone-custom-git-refspec on git-checkout job sources * t: Further extract variables in openqa-clone-custom-git-refspec test * t: Reduce duplication in clone-custom-git-refspec test * t: Reduce length of some test strings in clone-custom-git-refspec * Fix timestamp to be actual ns * Add max_conns limit to nginx config * Add re-try in comments test to mitigate alert problem * Switch OBS SCM/CI Workflow to branch_package * Add various optimizations and bug fixes for O3 deployment * Allow wildcard version in scenarios YAML * Remove YAML::PP duplicate_keys option * Forbid cyclic references in YAML * Fix flaky coverage in Worker::WebUIConnection * Add test for rendering Git links in investigation tab * documentation: Improve grammar- Update to version 4.6.1685846780.f3b6f99: * Dependency cron 2023-06-04 * Dependency cron 2023-06-03- Update to version 4.6.1685738164.28716cd: * Reference further documentation for database migrations * Use same selectors in comments test as in real code * Show number of minion jobs with hook_rc indicating failure * Fix condition evaluation for skip variables * Allow overriding variables * Build openQA devel container only on archs where chromium is built * Improve error handling in comments JavaScript code * Improve JavaScript code for commenting further * Simplify JavaScript code for adding/updating comments- Update to version 4.6.1685524945.b4ca723: * Improve performance of server-side asset upload handling * doc: Improve references for a quick installation * openqa-bootstrap: Remove obsolete systemd check * openqa-bootstrap: Speedup package installation * openqa-bootstrap: Optionally skip SUSE-specifics * container: Add single-instance variant * openqa-bootstrap: Support systemd-less environments * container: Handle potentially already existing certificates gracefully * Add development container for openQA * Update docs/WritingTests.asciidoc * Mention required permisson for webhook based CI setup * Use normal operators consistently in `CloneJob` consistently * Fix logic in openqa-clone-job * Remove unneeded list comprehension in openqa-label-all * Remove python3-future from dependencies * doc: Improve "Container based setup" section * Fix postgres dir permissions for running openqa-bootstrap in nspawn * doc: Improve introduction of "Containerized setup" chapter * Remove debug "print" in gru plugin * Extract formatting of CI check description into function * Improve reporting CI status back * Take restarted jobs into account when a PR is updated/closed * Handle updated/closed PRs via webhook * Assign webhook ID when creating a scheduled product from webhook * Add indexed column `webhook_id` to scheduled products table * Consider a tag's version when cleaning up job results- Update to version 4.6.1684771865.6dc41fa: * doc: Fix wrong paths to container directory * Delete worker logs as well when cleaning up job logs- Update to version 4.6.1684511766.434312e: * Make retention periods for jobs outside groups configurable * Improve documentation of cleanup under "Getting started" * Add tests for cleanup of groupless job results * Fix issues in the structuring of cleanup-related documentation * Fix sporadic failure in t/ui/18-tests-details.t * Remove slash from the path if base_url ends with one * Fix warning related to use of `@_` in signatured subroutine * Remove codecov token again after problem fixed * Only output JSON when using --json-output * Explicitly check parameters for scheduling CI jobs * Require PR-ID in webhook and improve validation- Update to version 4.6.1683890027.16a2697: * Add test for datetime based build * Allow colon in tag's build * Fix sporadic failures of comments test * Add route to schedule a product via a webhook and report status * Explicitly match maintenance repo settings variables- Update to version 4.6.1683639249.98b3171: * Improve non-matching log output in investigation tab * Increase heartbeat timeout to 15 minutes * Output host of missing api credentials * Refactor ISOs-API controller to make it reusable * Improve contrast between failed and incomplete color- Update to version 4.6.1683294886.8a7e554: * Fix spec * Improve coding style in `_find_network` * Fix several issues with `allocate_network` * Fix duplication of Devel::Cover requirements specified * Dependency cron 2023-05-05 * CI: Fix codecov upload step with token * CI: Use most recent codecov orb 3.2.4 * CI: Try to fix codecov upload with circleCI orb * Add `xz` to worker container * Makefile: Fix manual calls of codecov report- Update to version 4.6.1683023936.135efe1: * Improve coding style in code for manual restarting * Use subtests to make pagination test descriptions more unique * Extract code to cancel other jobs in cluster to function * Avoid jobs not part of parallel cluster ending up `parallel_restarted` * Make serialization of test results portable * Update documentation in accordance with 29bcb6cd * Verify and improve restarting behavior in certain case * Improve helpers of restarting test * Add pagination tests for GET /api/v1/products * Add pagination tests for GET /api/v1/machines * Add pagination for GET /api/v1/test_suites * Improve contrast of Progress bar text * Fix surplus whitespaces in source view * Don't restart scheduled or running chained parents- Update to version 4.6.1682511024.316b8d8: * docs: Use version variable in PackageHub call as well * Use constant `WORKER_COMMAND_ABORT` * Avoid race condition by waiting for the #text element * Improve coding style in `parse_tags_from_comments` * Remove mostly useless logging for tag detection * Result/Jobs.pm: Update serial console name- Update to version 4.6.1682330950.cdcc4a7: * Add minimalistic "health" check route- Update to version 4.6.1682067800.cbbc51b: * Improve contrast of progress bar showing number of failures (#5080) * Fix non-deleted serial_terminal_user.txt * Dependency cron 2023-04-21 * docs: Add SLE installation instructions * docs: Update outdated reference for "job label" * Dependency cron 2023-04-20 * Add conditional check to skip maint updates verification- Update to version 4.6.1681833567.dd4f8b9: * Clarify "Pause on failure" does *not* affect screen mismatch- Update to version 4.6.1681375245.d0e672c: * Fix typo in installation documentation * Improve out-of-the-box experience when invoking web UI container * Avoid one layer when building web UI container * openqa-clone-job: Apply group settings to all cloned jobs- Update to version 4.6.1681211083.828aa75: * Track download count to supress alert if no downloads ongoing- Update to version 4.6.1680796926.68ee481: * Show error message from server when commenting fails- Update to version 4.6.1680648567.628cb20: * Ensure final status update for cancelled jobs * Modernize and improve `obs_rsync.js` * Dependency cron 2023-04-04- Update to version 4.6.1680231128.78c4788: * Dependency cron 2023-03-31 * Add a --name option to openqa-cli * Make it easier to identify openqa-cli in logs * Require and document use of time-sync * Update test for cache->_exceeds_limit * Fix enabling live stream/log when the backend is not up yet * Mention the keyword DSL in the docs * Avoid live view getting stuck in a certain case * Correct formula in _exceeds_limit when CACHE_MIN_FREE_PERCENTAGE is set * Add documentation for running openQA jobs as CI checks * Add test for case of correct key and wrong secret * Fix logging reason of auth errors- Update to version 4.6.1679910590.9fc2aa0: * Remove obsolete frontend code for sending commands to worker- Update to version 4.6.1679673928.0929919: * Streamline `openqa-clone-job` output with `openqa-cli schedule` * Render web UI URLs for jobs created via `openqa-cli schedule` * Assign dependencies when cloning jobs with children but without parents * Prevent github from caching badges too long * Provide container image to trigger/monitor jobs as CI * Make key-auth work for openQA instances under nested path- Update to version 4.6.1679501784.c715f72: * Add advice to timestamp mismatch error * Unify handling formatting args of `openqa-cli` sub cmds * Don't be quiet about errors of `openqa-cli schedule` * Don't rely on js for badge length setting * Improve variable declarations in `43-cli-schedule.t` * Avoid changing Perl-global for UTF-8-encoded output in CLI * Combine `openqa-cli api` options `-r` and `-m` * Streamline "waiting" output between `openqa-cli` sub commands * Reuse retry from `openqa-cli api` in `openqa-cli schedule` * Tweak retry-loop of `openqa-cli` * Move retry-loop from `api.pm` to baseclass to use in other cmds * Remove unused variable in `api.pm` * Allow scheduling and monitoring a product via `openqa-cli` * Evaluate comment contents on carry-over- Update to version 4.6.1679268237.39af241: * Optimize database queries for next/previous- Update to version 4.6.1679074680.4609521: * Remove unused variable in `_sort_dep` * Improve test for `_SKIP_CHAINED_DEPS` * Make t_created unambiguous in SQL- Update to version 4.6.1678883699.d3ce35d: * Add note about hook script in carry over comment * Extract locating hook script for job into separate function * Improve coding style in `carry_over_bugrefs` * Improve auth test * Test OpenID error handling * Fix "Useless use of a constant" in auth test * Make it easier to distinguish OpenID-related errors * Fix `restart_job` jobs failing with `already has clone` * Avoid failing coverage check in ISO-API test * Simplify example for scenario YAML mentioned in documentation * Improve coding style of ISO-API tests * Move tests for scheduling from YAML into separate file * Split tests for scheduling from YAML file * Make machines/products in scenario definitions YAML optional * Refactor code for scheduling jobs from YAML file * Use constant to avoid duplicating default job priority * Document supplying scenario definitions via YAML * Extend test checks for YAML-related error handling to cover context * Simplify code for returning from `_schedule_from_yaml` * Use signatures in helper functions of `_schedule_from_yaml` * Allow specifying scenario definitions YAML content directly * Remove stub with TODO for cloning a Git repo to retrieve YAML file * Rename `SCHEDULE_FROM_YAML_FILE` to `SCENARIO_DEFINITIONS_YAML_FILE` * Validate scenario definitions passed for scheduling an ISO explicitly * Fix various problems with the function for scheduling from YAML file * Improve tests for scheduling an ISO using definitions from YAML file * Load job templates from YAML file when scheduling isos- Update to version 4.6.1678589270.14d05d8: * Dependency cron 2023-03-12 * Dependency cron 2023-03-11- Update to version 4.6.1678383164.7327f0f: * Add bage for openQA in openQA test (appliance) (#5030)- Update to version 4.6.1678283083.88597fc: * Trigger job finalization reliably from livehandler * Run cache.fullstack job also in nightly job * Use Minion's dependency handling to restart before finalizing * Invoke hook script only after the first restart attempt * Avoid ugly checks for Gru in enqueuing functions for jobs * Improve error handling when automatically restarting a job * Update docs/UsersGuide.asciidoc * Add openQA status badges- Update to version 4.6.1677862140.c495768: * Make --skip-deps and --skip-chained-deps work as described in the docs- Update to version 4.6.1677511074.f74fdc6: * Extend test for RETRY and user-cancelled jobs- Update to version 4.6.1677486029.9cf9ed8: * Mark WORKER_COMMAND_CANCEL condition as uncoverable- Update to version 4.6.1677163264.aee8d8c: * Do not restart user-cancelled job with RETRY- Update to version 4.6.1676994766.f6873b5: * Replace fragile awk script with AssetPack config file * Add basic test for re-routing * Cover remaining places in code that need adjustment for re-routing * Refactor re-routing; move the code into a separate function * Allow re-routing via `Mojolicious::Plugin::RequestBase` * Mention GITHUB_TOKEN in the usage * Note the format for NEEDLES_DIR * Allow escaping percentage signs in job settings to avoid substitution * Make generate-packed-assets return non zero in case of errors * Fix regex to get AssetPack plugins * Revert "Revert "Retry asset downloads automatically"" * OBS: Do not test builds on EOL Leap 15.3- Update to version 4.6.1676689467.218fd47: * Dependency cron 2023-02-18- Update to version 4.6.1676652271.14173e7: * Revert "Retry asset downloads automatically" * Enable build for PowerPC after openQA packages are no longer noarch * Retry asset downloads automatically * Add pagination for GET /api/v1/workers * Remove unused 'backend_info' * Track coverage of test server spawned by `t/25-downloader.t` * Avoid caveats of `Archive::Extract` using `bsdtar` instead- Update to version 4.6.1676474487.945e502: * Remove noarch from openQA.spec * Dependency cron 2023-02-15 * Update documentation of bug references and labels to meanwhile changes * Fix investigation git log * Render bugrefs as clickable links within labels * Use signatures in Markdown module * Ensure consistent openQA version when installing openQA-local-db- Update to version 4.6.1676033243.8d9ce6f: * Fix off-by-one error when limiting jobs API route using `latest=1` * Restore font color of main menu actions * Dependency cron 2023-02-09- Update to version 4.6.1675863678.6b1808c: * Improve appearance of tables * ci: Point out how to fix an empty cache- Update to version 4.6.1674746026.5aaec11: * Avoid errors about changing the working directory after asset extraction * Fix error when displaying help for minion sub command- Update to version 4.6.1674655858.a839999: * Avoid ugly underline when hovering over "Delete asset from disk" button * Allow to search for an asset in the asets table from "Downloads" tab * Clarify that delete button on the assets table will delete file on disk * Allow specifying search term for asset table via URL query parameter * Improve coding style in setup code for assets table * Initialize Mojolicious::Static only in one place * Fix missing input validation for needle API endpoints- Update to version 4.6.1674465154.bcd646c: * t/24-worker-jobs.t: Add virtio_console_user.log to Livelog * Job(s): Add virtio_console_user.log to live serial output * Result/Jobs.pm: Link also virtio_console_user.txt * Worker/Job.pm: Document serial_terminal.txt * Worker/Job.pm: Upload virtio_console_user.log * Worker/Job.pm: Rename all .log to *.txt * t/24-worker-jobs.t: DRY- Update to version 4.6.1674133294.994bfb0: * Avoid another race condition by waiting for the #text element- Update to version 4.6.1673871170.29e858b: * Fix build by providing postgresql during build- Update to version 4.6.1673622416.c01e5cb: * Change type of `owner` column to bigint in consistency with jobs table * Add postgresql service to requirements * Avoid deadlock when updating asset size during job creation * Fix asset cache error handling to avoid proceeding in case of failures * Add missing `use Mojo::UserAgent` * Clean up /api/v1/jobs pagination and remove unused code * Add pagination for GET /api/v1/jobs * Avoid race condition by waiting for the #text element * Dependency cron 2023-01-10 * Revert "Add postgresql service to requirements"- Update to version 4.6.1673059575.c051c08: * Dependency cron 2023-01-07 * Try running the full-stack test without retry * Add postgresql service to requirements * Pin css_parser to version 1.12.0 because newer need ruby 2.7 * Dependency cron 2023-01-05- Update to version 4.6.1671708203.c9f8b10: * Dependency cron 2022-12-22 * codecov.yml: Introduce specific coverage thresholds * codecov: Remove redundant duplication of default values and range * Avoid jobs from being stuck in state "running"- Update to version 4.6.1671625243.c73687c: * Use signatures in WebAPI::Controller::Running * Avoid deadlock when updating asset size during job creation * Improve `t/api/04-jobs.t`- Update to version 4.6.1671158755.972ff1f: * Dependency cron 2022-12-16- Update to version 4.6.1671027455.dda1de5: * container: Install tessseract so we can test OCR * Dependency cron 2022-12-14 * Split big transaction in stale job detection * Remove unused function `set_running`- Update to version 4.6.1670662257.ab43bbd: * Use signatures in OpenQA::Shared::Plugin::Gru- Update to version 4.6.1670600800.c750f3b: * Use signatures in OpenQA::Schema * Fix race-condition reading job module details files * Inform about dependencies before running tests * Increase timeouts of tests api/14 and ui/13- Update to version 4.6.1670432877.32837b1: * Protect second asset size update from possible deadlocks * Support use-case of "local" worker when detecting worker address * Extract code for determining whether a host is local * tests: Consume expected fake error from web socket * Condense scheduling debug output to single line * Fix missing `wait_for_ajax` call in comments test * Catch error and return 404 for module_fails with non existing test * Protect one asset size update from possible deadlocks * Avoid running jobs with undetermined worker address * Add signatures in OpenQA::Task::Bug::Limit * Add signatures in OpenQA::Task::Job::Limit * Add signatures in OpenQA::Task::Job::FinalizeResults * Add signatures in OpenQA::WebAPI::Controller::Admin::Needle * Add signatures in OpenQA::WebAPI::Controller::API::V1::Bug * Add signatures in OpenQA::WebAPI::Auth::Fake * t: Add signatures in cache-service * t: Add signatures in build_tagging * t: Add signatures in grutasks * t: Bump timeout of ui/21-admin-needles.t based on local runtime * Simplify _create_clones with post-for * Extract methods for creating clones with right dependency- Update to version 4.6.1669922159.5e076a0: * Fix typos in developer mode documentation * Add support for absolute URLs to openqa-cli * Add --links option to openqa-cli for pagination * Allow using 'pngquant' instead 'optipng' * Allow ignoring failure when paused on specific command * Ensure openQA-single-instance pulls in same version of openQA- Update to version 4.6.1669740924.a0f6803: * Add pagination for GET /api/v1/bugs * Extract opening/configuring cache service SQLite db into functions * Avoid `database is locked` errors if SQLite writes are slow * Add pagination for GET /api/v1/assets- Update to version 4.6.1669397828.6ece53c: * Add UI for pausing on failure via developer mode * Dependency cron 2022-11-25 * Revert "Use signatures in OpenQA::Shared::Plugin::Gru" * tools: Fix hadolint for systems running in SELinux enforcing mode * Dependency cron 2022-11-25 * Simplify loop in in OpenQA::Task::Needle::Scan * OpenQA::Schema::ResultSet::DeveloperSessions: Extract method * Use signatures in OpenQA::Shared::Plugin::Gru * Use signatures in OpenQA::CacheService * Use signatures in OpenQA::Task::Needle::Scan * OpenQA::WebAPI::Controller::Admin::Workers: Delete redundant comment * Move 'dsn' function to only place used' * Use signatures in OpenQA::Schema- Update to version 4.6.1669212003.b93eb7f: * Fix hadolint check * Use signatures in WebAPI::Controller::Step- Update to version 4.6.1668839343.05e490d: * Dependency cron 2022-11-19- Update to version 4.6.1668778874.64c641d: * Bump actual limits to higher to fix users unable to get results * Simplify WebAPI::Controller::API::V1::Job * Remove obsolete WebAPI::Controller::API::V1::Job::result * OpenQA::WebAPI::Controller::API::V1::Job: Simplify * OpenQA::WebAPI::Controller::API::V1::Job: Use signatures * OpenQA::Schema::ResultSet::Bugs: Use signatures * Use signatures in complete OpenQA::Worker * Use signatures for OpenQA::Utils::run_cmd_with_log_return_error * OpenQA::Utils: Simplify human_readable_size- Update to version 4.6.1668597146.2561fef: * Avoid relying on DNS setup to determine worker registration name * Fix "Use of uninitialized value" in OpenQA/Worker.pm * Bump query limits to higher limits to fix users unable to get results * Avoid misuse of the word "hostname" in documentation * Use more compact coding style in developer mode UI test * Fix submitting "Pause on next command" selection of developer mode * Auto-detect `WORKER_HOSTNAME` on worker startup if not set explicitly * Clarify "worker hostname" logged on worker startup * docs: Add a suggested workflow documentation for test review- Update to version 4.6.1668162974.2b84746: * Add distinct set of limits for assets * Limit implementation for sub list_scheduled_ajax * Limit implementation for sub list in Jobs.pm * Limit implementation for sub list in Worker.pm * Limit implementation for sub list in Table.pm * Limit implementation for sub list in Comment.pm * Limit implementation for sub list in Bug.pm * Limit implementation for sub list in Asset.pm * Initialize generic default and max limits * Add unit test for scheduled jobs limiting * Add unit test for jobs limiting (api call) * Add unit test for workers limiting (api call) * Add unit test for products limiting (api call) * Add unit test for machines limiting (api call) * Add unit test for comments limiting (api call) * Add unit test for bugs limiting (api call) * Add unit test for assets limiting (api call)- Update to version 4.6.1667998549.1a9c56e: * Handle concurrent job deletion when updating job result size * Sort vars.json by key * Dependency cron 2022-11-08 * Use signatures in OpenQA::Scheduler * Add an API endpoint to find jobs with certain job settings * Restore formatting of `vars.json` after a523306 * Remove likely unneeded code in WebAPI::Plugin::REST * Use signatures in OpenQA::WebAPI::Plugin::REST- Update to version 4.6.1667810206.2bf912d: * Clean up git repository before rebase * Use more signatures in OpenQA::CacheService- Update to version 4.6.1667577561.41a898b: * Fix log upload from openQA jobs in case of read-only cache directory * Add tests for SUSE branding * Add button to insert marker for unblocking incident to OSD branding * Allow customizing commenting tools via branding * Use signatures in WebAPI::Controller::Main * Use signatures in WebAPI::Controller::File * Use signatures in WebAPI::Controller::Developer * Use signatures in WebAPI::Controller::ApiKey- Update to version 4.6.1667397351.67490e1: * Simplify database operations in WebAPI::Controller::Test- Update to version 4.6.1666949337.70dda4e: * Use signatures in WebAPI::Controller::Test * Revert "Add button to insert marker for unblocking incident to OSD branding" * Implement server-side max and default limit * Add limits initialization for next previous ajax * Add ajax subtest to 16-tests_jobs_next_previous.t * Add button to insert marker for unblocking incident to OSD branding * Allow customizing commenting tools via branding- Update to version 4.6.1666772157.b8fb43f: * docs: Use consistent writing "openQA" * Fix bug where some pages briefly show up with light theme in darkmode * Document interaction of custom dirs with default-initialization * Improve documentation about triggering tests of custom versions * Allow specifying `NEEDLES_DIR` to be relative to `CASEDIR` * Fix invisible buttons in some forms with darkmode * Fix overview table header in darkmode * Fix jumbotron and card background in darkmode * Bring back the old light theme * t: Fix timing error * Fix host/port in broken t/25-cache-client.t * Fix cache service host config for IPs != 127.0.0.1 * Show correct job status in worker job list * Add theme settings and replace media queries with .darkmode class * Fix error handling in web UI download jobs since 4cee25f * Add darkmode capability * docs: Simplify developer mode firewall rules * Add distri-opensuse specific worker container dockerfile * Improve rendering "waiting for background (GRU) tasks"- Update to version 4.6.1666370010.771049f: * Log used worker cache URL in case of a connection error * Make cacheservice URL configurable via `workers.ini` * Support skip and broken results in LTP parser * Document specifying the version when tagging builds * Ensure no more secrets are present in `vars.json` before uploading it- Update to version 4.6.1666187714.761da80: * Switch to signatures for Auth/Fake.pm and Auth/OpenID.pm * t: Reuse same cache service in 25-cache-service to speedup * t: Remove redundant check for service availability in 25-cache-service.t * Avoid alerts by not failing Minion jobs when downloads fail * Extend checks in Gru test to verify whether job state is expected * Set openQA job reason when preparation Gru task fails * Extend GRU tests to check whether associated job is incompleted * Allow passing error to user from GRU task without failing Minion job * Refactor certain GRU tests into sub tests * Use `LC_ALL` instead of `LANG` to set locale for tests * Document accessing the test database * Avoid test failures due to localized error messages- Update to version 4.6.1665644111.e43a7ac: * t: Fix leaked cache service processes on test abort- Update to version 4.6.1665594818.5464316: * Use signatures in OpenQA::WebAPI::Description * Use signatures in OpenQA::YAML * Add signatures to lib/OpenQA/WebAPI.pm * Use signatures in lib/OpenQA/LiveHandler.pm * Add help popover for limiting number of finished jobs * Allow passing additional arguments when rendering help popover- Update to version 4.6.1665149803.0112fa5: * Clean stale lockfiles when fetching needles * Dependency cron 2022-10-06 * t: Improve scope of daemon variable in 25-cache-service.t * t: Correct naming "start_servers" in 25-cache-service.t * t: Fix sporadic failure in 25-cache-service * t: Use signatures in 24-worker-engine.t * t: Use signatures in 25-cache-service.t * Use signatures in OpenQA::WebAPI::Controller::Admin * Use the workers count from Minion 10.25 to make monitoring more reliable * Reduce two verbose log messages to trace level * Use signatures in Schema::ResultSet::Screenshots- Update to version 4.6.1664678755.af47120: * Dependency cron 2022-10-02- Update to version 4.6.1664521936.e5f3b8b: * codecov: Bump thresholds to current coverage * Refactor listing job_templates * Limit listing of job_templates to avoid timeouts * Add bugzilla link for ALP in webUI * Document GitHub user setup for nightly jobs * Delete unused route 'tests export' * Dependency cron 2022-09-28- Update to version 4.6.1664284663.969184c: * Include virtio VGA support in the openqa_worker container- Update to version 4.6.1663941254.b479233: * Prevent stalebot from closing stale issues * Improve performance of 3 api endpoints by about 312% (for O3 data) * Replace references of `openqabot` with new bot user `os-autoinst-bot` * Fix the cloning of job when the corresponding variable is manually set * Dependency cron 2022-09-21- Update to version 4.6.1662979895.bd3bc01: * Dependency cron 2022-09-12- Update to version 4.6.1662260703.ebbd448: * Dependency cron 2022-09-04- Update to version 4.6.1662134472.4423be7: * Use regex in `_translate_cond` * Avoid 500 response (and log message) if needle route is used wrongly * Fix AJAX/parsing error in needle tables * Re-write `_translate_date_format` more compactly * Use signatures in code for parsing timestamps of needle table filtering * Avoid race condition when creating result directories- Update to version 4.6.1661784564.0b6acba: * Add one line padding to allow space for scrollbar in FF- Update to version 4.6.1661179045.6cedcbd: * generate-documentation: pin publix_suffic to 4.0.7 * Add support for pagure.io and gitlab.gnome.org trackers * Don't try and log without importing the log function * Add a check to detect when maintenance update has already been released- Update to version 4.6.1660819425.c8126a5: * Fix signal guard for hook script since it is a separate Minion task * Document configuring ports for developer mode with firewalld- Update to version 4.6.1660790631.9c38795: * Dependency cron 2022-08-18 * contrib: Remove conflicting product selection in autoyast- Update to version 4.6.1660580984.7191508: * Fix grammar mistakes in MM documentation * Move doc sections about debugging/verifying MM setup to end * Mention `ovs-dpctl` commands in Open vSwitch debugging section of docs * Document how to verify whether the MM setup works * Remove weird bullet points in MM setup documentation * Document firewalld setup with just the `trusted` zone for MM setup * Improve section headings in MM setup documentation * Mention salt states in MM setup documentation- Update to version 4.6.1660317202.3912a15: * Dependency cron 2022-08-12 * docs: Add note about gre_tunnel_preup executable bit- Update to version 4.6.1660127430.c57e24c: * apparmor: Allow run of ping which is required for ipmi backend jobs- Update to version 4.6.1659521059.d04080d: * Limit maximum number of finished jobs shown on "All tests" server-side- Update to version 4.6.1659353820.539e6c4: * Avoid server error if vars.json is missing in investigation- Update to version 4.6.1658503430.1290d12: * Use new Leap repository name format * Avoid potential problem in audit log test * Document enabling the AMQP plugin (and not just configuring it) * Only apply the domain passlist-check for ASSETS as documented * Prevent error about "unreadable git hash" * Fix sort order of comments on job details page * Fix sorting of jobs that have never run on 'All tests' page- Update to version 4.6.1658331411.61dd85b: * Adapt scripts to pass stricter checks of new shellcheck * Dependency cron 2022-07-20 * container: Fix unresolved opencv dependency on Leap15.4+Tumbleweed * Switch helm charts to current openSUSE Leap 15.4 as well * apparmor: Support rootless podman containers- Update to version 4.6.1657915260.7ecfb9e: * worker: Retry registration on timestamp mismatch * Dependency cron 2022-07-15 * Switch development base to current openSUSE Leap 15.4 * container: Update CI base to Leap 15.4 * Render multi-URLs in job settings correctly- Update to version 4.6.1657537268.d9bba8e: * apparmor: Allow grep needed by git-call- Update to version 4.6.1657347231.a3994a3: * Fix unstable `t/ui/23-audit-log.t` by implementing wait condition * Ensure sequences are converted to bigint * Avoid running out of database IDs - remaining tables- Update to version 4.6.1657137732.c5622d5: * Allow configuring results to collapse as parallel children on overview * apparmor: Allow mktemp needed by git-call * Clarify client documentation about --accept option * Add custom live review resolution * Add custom resolution to needle editor * Display custom screenshot resolution in webUI- Update to version 4.6.1656945135.425b473: * Dependency cron 2022-07-04 * Fix liveview dysfunctional with directly chained jobs * Dependency cron 2022-07-02- Update to version 4.6.1656666331.ed970be: * Mark t/ui/23-audit-log.t as unstable * CI: Fix execution of compound statements with "retry" * CI: Retry also on sporadic install errors- Update to version 4.6.1656072301.e097342: * Fix use of --no-refresh in continuous-update * Avoid unintended vendor changes in openqa-continuous-update * Makefile: Ensure "test" includes also helm tests * Makefile: Prevent repetition of test-with-database call definition * Retry hook scripts that use the exit code 142 * Add Chart Testing tool to CI workflow * Add simple static check for Helm chart * Add sub charts as dependencies to allow linting * Add Helm chart for openQA-webui * Exclude templated helm files from yamllint check * Add Helm chart for openQA-worker * Document working on database-related performance problems * Fix warning "Query returned more than one row" for linked comments * Avoid running out of database IDs - worker tables * Fix too verbose message about unrecognized referer- Update to version 4.6.1655873339.ed30901: * Dependency cron 2022-06-22 * Use ANY instead of IN for SQL query with variable placeholders * Fix perl 5.36 warnings on use of @_ in functions with signature- Update to version 4.6.1655534464.7831729: * Add warning before possibly long migration to bigint IDs * Avoid running out of database IDs - jobs table- Update to version 4.6.1655450799.f096817: * Dependency cron 2022-06-17 * ci: Test on Leap 15.4 * docs: Fix explanation for TIMEOUT_SCALE- Update to version 4.6.1655223618.b5506d7: * Extend regex to restart jobs in case of VNC errors automatically- Update to version 4.6.1654784458.53a0598: * Fix permissions for markdown scripts in apparmor * Avoid race condition in Selenium test helper `element_hidden` * doc: Add note about openqa-worker-plain@.service * Allow Markdown.pl in apparmor * systemd: Depend on time being in sync if possible- Update to version 4.6.1654597213.d04d22b: * Fix regression by moving tests/overview limit from SQL back to Perl- Update to version 4.6.1654268802.d627369: * CI: Simplify combination of mergify rules * CI: Automatically merge necessary dependency updates * Replace openqa-worker@ with a link to openqa-worker-plain@- Update to version 4.6.1654246580.7c8d679: * Dependency cron 2022-06-03 * jobs: Emit cancel_by_settings in all cases * Avoid unhandled log output * Use combined operators- Update to version 4.6.1654007249.47fe286: * Improve variable naming * Remove unnecessary monkey patch * jobs: Supply a reason in all cases * Remove a pointless git warning * Prevent dangerous package removal by forcing resolution * t: Simplify ui/23-audit-log.t again to use no fixtures * t: Prevent race-condition in t/ui/23-audit-log.t * t: Adjust timeout of ui/23-audit-log.t to local runtime * t: Introduce subtest for better segmentation in ui/23-audit-log.t- Update to version 4.6.1653656710.7e5eb62: * Extend tests for expanding/collapsing feature in test overview- Update to version 4.6.1653501113.88a17ce: * Allow markdown in apparmor * Generalize fix from previous commit for all kinds of comment creations * Prevent new comments from being considered edited * Fix workaround for sporadic error in comments test * Document `_TRIGGER_JOB_DONE_HOOK` and generic hook script * Introduce job setting `_TRIGGER_JOB_DONE_HOOK` to disable/enable hook * Extract code for running hook script into separate function- Update to version 4.6.1653423899.eb3c8f7: * Add a limit for the maximum number of jobs to include in /tests/overview * Fix showing too many expand/collapse buttons on test overview * Don't log_debug git stdout in all cases * Improve debugging of _carry_over_candidate * Make button to toggle parallel children easier to click * Add "Expand all parallel children" button on test result overview- Update to version 4.6.1653068134.449d730: * Fix missing import of 'log_info' * Reduce log-level of non-critical issue * Add configuration for expiring minion jobs * Simplify setup by removing path rewrite- Update to version 4.6.1652976468.5c2628c: * Fix alignment of avatar icons beside comments * Add button to insert (force result) label into comment text * Limit git log in investigation tab * Add route for WebSockets to allow communication without a proxy * worker: Move formatting of settings to logging module * worker: Extract formatting settings (for log) into separate function * worker: Avoid logging secret variables * Dependency cron 2022-05-18- Update to version 4.6.1652799331.7cf3159: * Test comment event link in audit log * Link to individual comments from the audit log * Use a shared method to generate comment event data * Mark comment helper methods as private * Fix displaying of investigation git log- Update to version 4.6.1652425252.aca9f0c: * Dependency cron 2022-05-13 * Prevent job_done_hooks not knowing that jobs will be retried * Fix comment event names in AuditLog plugin * Fix the force execution mode in fetchneedles script * scripts: Do not hard-code assetdir in openqa-clone-job * docs: Update audit event names according to implementation- Update to version 4.6.1652174357.038f320: * Drop previous web socket connection when worker opens a second one * Raise log level of job assignment problems when scheduling * Log error from ws server when failing to send jobs to the worker * Collapse parallel children by default if cluster is passed/softfailed- Update to version 4.6.1651880189.cec0be3: * Install rsync to worker container image- Update to version 4.6.1651759358.c19bce8: * Fix minion jobs stats retrieval DoS on login provider * Dependency cron 2022-05-04 * Allow collapsing all parallel children via button * Expand parallel parents by default for less intrusive stacking * Fix handling of cycles when stacking parallel jobs * Test stacking parallel children on test results overview * Avoid underline when hovering icons in test result overview * Use `fa-clone` for stacking icons in test results overview * Split `stackParallelChildren()` into smaller functions * Use indentation and bullet point for parallel child rows * Avoid stacking parallel children accross tables * Handle multiple archs when stacking parallel children * Stack parallel children in test results overview- Update to version 4.6.1651605690.58b11fb: * Do not let schedule_iso jobs expire * cache service: Emit download rate only if known * Avoid unhandled output in openqa-clone-job tests * Allow exporting openqa-clone-job's API call for posting jobs * Fix fullstack test * Deal with unknown git revision * Deal with cleaned up vars.json on investigation tab * Dependency cron 2022-05-01 * Fix controller reuse bug in 03-auth.t * Allow sendmail related things in apparmor- Update to version 4.6.1651126518.925dec9: * Allow mailx in apparmor * Dependency cron 2022-04-27 * Add simple command to generate HTML documentation * Only tidy lib/, t/, tools/ and script/ directory * Use OpenQA::Test::PatchDeparse from os-autoinst-common * git subrepo pull (merge) external/os-autoinst-common * Dependency cron 2022-04-26 * Allow python3.6 in apparmor * Reduce retention of temporary files created by the web UI- Update to version 4.6.1650627339.b7e86d95b: * Pin asciidoctor-pdf to a Ruby 2.5 compatible version * Fix apparmor for job hooks- Update to version 4.6.1650557297.c7f8e5313: * Use regular asciidoctor-pdf release * Fix doc headings and numbers * docs: Fix typo 'OPENQAATABASE' * Sync tools/tidy with os-autoinst * Use signatures in Schema::Result::Needles * Use signatures in OpenQA::Setup * Simplify OpenQA::Setup- Update to version 4.6.1650202155.7a94e8114: * Use signatures consistently in complete OpenQA::WebSockets::Client * Ensure consistent space for function signatures- Update to version 4.6.1650015172.429d07817: * Dependency cron 2022-04-15 * Add systemd unit to trigger continous deployment from devel:openQA * apparmor: Allow podman to be called on workers * Allow mutt in apparmor- Update to version 4.6.1649753938.422b00b04: * Avoid running into limit when creating job modules * Allow python3 in apparmor * Prevent unnecessary linebreak in cache service logging- Update to version 4.6.1649490476.badee12aa: * Render multiple URLs in scheduled products table correctly * Allow scheduling settings like `__…_URL` * Avoid corrupted assets on concurrent uploads of same asset * doc: Mention the problem of conflicting asset names more explicitly * doc: Split asset handling section into more subsections * doc: Remove obsolete remark about absolute assets paths- Update to version 4.6.1649340027.0e18e9edf: * Render HTTP(S)-URLs in scheduled product settings as links * Allow adding scheduling settings for informal purposes via `__`-prefix * git subrepo pull (merge) external/os-autoinst-common- Update to version 4.6.1649079466.194e7cda3: * Test cancellation with chained job that has multiple parents * Ensure consistent cancellation of chained dependent jobs- Update to version 4.6.1648829128.bccf1cfcd: * Use syntax to specify SQL-syntax the linter can cope with * Fix race condition during asset registration- Update to version 4.6.1648720710.9f444c83a: * Dependency cron 2022-03-31 * Let os-autoinst handle the limit for uploads * Don't set `MOJO_MAX_MESSAGE_SIZE` for websocket server * Remove upload limit on web UI and worker * docs: Add documentation for custom worker engine command ISOTOVIDEO- Update to version 4.6.1648473912.da11be75c: * Improve documentation of automatic retires of jobs via `RETRY` setting * Fix accidentally re-triggering passed jobs * Avoid possible warnings when using `RETRY` as number when it is not one * Add job comment about automatic retry (instead of server log message) * Dependency cron 2022-03-27- Update to version 4.6.1648235193.5d75dd612: * Fix test of openqa-clone-custom-git-refspec * Update to Bootstrap v4.6.1 for real * Fix for progress bars broken by bootstrap4 update * Fix "Last use & match" popover for Bootstrap 4.2.0 and newer * Update bootstrap and jquery * doc: Extend `openqa-clone-job` documentation for setting variables * openqa-clone-custom-git-refspec: Handle dependencies better * openqa-clone-job: Allow appending via `+=` syntax- Update to version 4.6.1648129468.28317a4e6: * systemd: Remove undesired Wants=network.target (boo#1196359) * worker: Remove tracking current sub queue * worker: Consider job result from web UI when deciding to skip jobs * worker: Fix wrongly skipping directly chained jobs * api: Return result/reason correctly when setting job done * Prevent error about undefined value in next_previous route- Update to version 4.6.1647892469.8e63f7863: * force_result: Allow only a specific list of new results * Import log_error * Extract function to find the "system" user * Use DBIC method 'find' where applicable rather than search->first * Dependency cron 2022-03-20- Update to version 4.6.1647710740.7574f1433: * Use signatures in Schema::Result::Jobs * openqa-clone-job: Allow printing result as JSON- Update to version 4.6.1647535120.9c1b2bd80: * Validate assetid in /tests/id/asset/assetid * Return 404 for Jobs not found * Add support for Mozilla's bug tracker * Install script/*_templates compatibility symlinks * Adjust self-references in openqa-*-templates(1) * Rename script/*_templates -> openqa-*-templates * Replace ->search->first with find or count * Do not prefetch job assets where not needed * openqa-clone-job: Fix adding parameters from CLI to job settings * doc: Cover dependency handling of `openqa-clone-job` * openqa-clone-job: Clone parallel children by default * openqa-clone-job: Add `--clone-parallel-children` * openqa-clone-job: Improve code of dependency handling * Avoid `finalize_job_results` jobs failing with `Job terminated unexp…` * ci: Make packages from `devel:openQA` available in OBS checks * openqa-clone-job: Create jobs atomically to avoid dependency problems * Move Tour to shepherd.js- Update to version 4.6.1646920189.eb67fcddc: * doc: Use "normal" wording instead of `CHAINED` and similar keywords * doc: Improve documentation about job dependencies * doc: Fix and improve certain references * Dependency cron 2022-03-09 * Remove background color and redundant margin in needle editor * Validate `groupid` parameter properly to avoid SQL errors in logs * Add example for triggering a single set of jobs to CLI help * Add test for destructor of `OpenQA::Worker::WebUIConnection`- Update to version 4.6.1646725675.1ddd06891: * Validate `groupid` parameter properly to avoid SQL errors in logs * Add test for destructor of `OpenQA::Worker::WebUIConnection` * Workaround problems with coverage tracking * Re-try accepting directly chained jobs to avoid skipping whole chain * Refactor worker tests to de-duplicate definition of fake worker * Dependency cron 2022-03-07 * Optimize jobs API by prefetching data * Use correct filters in progress bar links- Update to version 4.6.1646407463.070318351: * Use correct filters in progress bar links * Allow passing colons within keys via `openqa-cli` * Document posting multiple jobs within one API call * Move transaction for creating jobs into a separate function * Allow creating multiple jobs in one API call in an atomic way * Improve error feedback in `t/api/04-jobs.t` * Dependency cron 2022-03-03 * Avoid 500 response and error log when `filename` param not specified * t: Consistently use Test::Warnings everwhere- Update to version 4.6.1646321411.b5d8be1e2: * Dependency cron 2022-03-03 * Avoid horizontal scroll bars on dashboard pages * Avoid 500 response and error log when `filename` param not specified * Use simpler SQL for has_modules * Turn `Worker … accepted job … which was never assigned …` into info * t: Consistently use Test::Warnings everwhere * Use signatures in OpenQA::CacheService::Client * Use signatures in OpenQA::CacheService::Command * Use signatures in OpenQA::CacheService::Request * Use signatures in OpenQA::CacheService::Task * Simplify t/43-cli-api- Update to version 4.6.1646082175.7a50bad50: * Use simpler SQL for has_modules * Turn `Worker … accepted job … which was never assigned …` into info * branding: Rely on local override for openqa.suse.de * branding: Remove outdated reference to caasp staging * branding: Use new SUSE internal chat reference * Delete outdated references to novell or microfocus * Use signatures in OpenQA::CacheService::Client * Use signatures in OpenQA::CacheService::Command * Simplify t/43-cli-api- Update to version 4.6.1645823006.b4c26e806: * branding: Rely on local override for openqa.suse.de * branding: Remove outdated reference to caasp staging * branding: Use new SUSE internal chat reference * Delete outdated references to novell or microfocus * Simplify t/43-cli-api * Make force results show a label icon * Exclude files smaller than 250 MB from download rate metrics * Expose bandwidth data for worker cache via InfluxDB- Update to version 4.6.1645711773.760111463: * Extend job templates to cover more error cases * Write parts of job template (test) code in a more compact way * Avoid logging table update errors, only pass them to the user * Avoid logging errors passed to user when creating/deleting job templates * Test that job template routes don't cause unwanted errors in server log * Avoid logging user-input related errors in YAML to server log * Write parts of job templates API test in a more compact way * Avoid unnecessary blank lines in function `validate_yaml` * t: Cleanup fullstack tempdir before using it again * Ensure the dependency graph is sorted consistently- Update to version 4.6.1645520979.2ba573f3e: * Dependency cron 2022-02-22 * doc: Mention to stop `…-reload-worker-…`-service in auto-restart setup * Fix setup_fullstack_temp_dir argument * Add $! to symlink error message * ci: Retain fullstack temp folder in artifacts * Use more compact coding style in `t/ui/16-tests_dependencies.t` * Adapt dependencies test to 87f9c47b78 and b7ceb7bf4 * Improve message for installing asciidoctor via zypper- Update to version 4.6.1645264740.4e997e01d: * ci: Retain fullstack temp folder in artifacts * Add checklist for suggestions in PRs for certain types of changes * Improve message for installing asciidoctor via zypper * doc: Use async flag in examples for posting an iso * Adapt developer mode fullstack test to os-autoinst commit a7103b16 * Use signatures in OpenQA::CacheService::Controller * Dependency cron 2022-02-16- Update to version 4.6.1644850390.c53200ff8: * Add support for query parameters to api command * Make parameters for carry-over configurable * t: Fix querying stale reference in fullstack and developer mode test * t: Avoid noisy debug output when testing test helper of fullstack test * t: Cover testhelper for checking fullstack test setup * t: Workaround Selenium error when using `send_keys` in fullstack tests * t: Cover helpers of fullstack test itself * t: Improve logging errors in case the cache service test fails- Update to version 4.6.1644599247.9ecfb500a: * Make parameters for carry-over configurable * t: Fix querying stale reference in fullstack and developer mode test * t: Avoid noisy debug output when testing test helper of fullstack test * t: Cover testhelper for checking fullstack test setup * t: Workaround Selenium error when using `send_keys` in fullstack tests * t: Cover helpers of fullstack test itself * t: Improve logging errors in case the cache service test fails * Write restarting test shorter by using `@empty_deps` in more places- Update to version 4.6.1644418414.99e1921c4: * Write restarting test shorter by using `@empty_deps` in more places * Restart failed chained parents "up the chain" * Fix includes of script/ in tidyall config * git subrepo pull (merge) external/os-autoinst-common * Add new OBS checks to mergify config * Add perl signatures in lib::OpenQA::JobSettings * Add perl signatures in lib::OpenQA::JobDependencies::Constants * Capture log messages * Add perform_minion_jobs to 25-cache-service.t * Add retry to rsync in cacheservice * Show "failed modules" with a coloring resembling an failed state- Update to version 4.6.1644047097.6bd5ec7f8: * Add new OBS checks to mergify config * Add perl signatures in lib::OpenQA::JobSettings * Add perl signatures in lib::OpenQA::JobDependencies::Constants * Fix typo in t::16-utils-runcmd * Add perl signatures to lib::OpenQA::Git * ci: Conditionally install kvm in container * Capture log messages * Add perform_minion_jobs to 25-cache-service.t * Add perl signatures to lib::OpenQA::Files * Add retry to rsync in cacheservice * Show "failed modules" with a coloring resembling an failed state- Update to version 4.6.1643905340.5024147ca: * Add perl signatures in lib::OpenQA::JobSettings * Add perl signatures in lib::OpenQA::JobDependencies::Constants * Fix typo in t::16-utils-runcmd * Update the format of the OBS workflow file * ci: Conditionally install kvm in container * Capture log messages * Add perform_minion_jobs to 25-cache-service.t * Add more perl signatures in lib::OpenQA::Events * Add more perl signatures in lib::OpenQA::File * Add more perl signatures in lib::OpenQA::Command * Add retry to rsync in cacheservice * Show "failed modules" with a coloring resembling an failed state- Update to version 4.6.1643627567.18c7f1a3c: * Dependency cron 2022-01-29 * Show creation time of scheduled jobs in info panel on job details page * Add `clone` parameter to restart API * Avoid Perl warning when making build-row-key if `MACHINE` is `undef * Add more perl signatures * Prevent error when restarting jobs with `skip_parents=1` * Use tidyall instead of custom implementation- Update to version 4.6.1643469400.853734877: * Dependency cron 2022-01-29 * Add more perl signatures * Add more perl signatures * Simplify code for assigning job settings in `create_from_settings` * Use constant for referring to a job's main settings * Allow changing job settings via restart API * Check whether clones created by the restart API take over the group * Use tidyall instead of custom implementation- Update to version 4.6.1643299616.01abba344: * Add more perl signatures * Add more perl signatures * Simplify code for assigning job settings in `create_from_settings` * Use constant for referring to a job's main settings * Allow changing job settings via restart API * Check whether clones created by the restart API take over the group * Prevent error when restarting jobs with `skip_parents=1` * Use tidyall instead of custom implementation- Update to version 4.6.1643089984.09669586b: * Test availability of investigation tab on incompletes * Revert "Remove retry from fullstack test as it seems stable again" * Simplify base inheritance statement with Mojo::Base everywhere * Dependency cron 2022-01-22 * Add signatures to OpenQA::App and OpenQA::BuildResults * templates: Fix wording for the "VNC display number" * Show number of restarts of a job within info box on details page * Also show "investigation" tabs for incomplete jobs- Update to version 4.6.1642834441.8f6def1db: * Dependency cron 2022-01-22 * Add signatures to OpenQA::App and OpenQA::BuildResults * templates: Fix wording for the "VNC display number" * Show number of restarts of a job within info box on details page * Use signatures in OpenQA::CLI::api and OpenQA::CLI::archive * Show versions of otherwise ambiguous builds on dashboard pages * Avoid repeated calls to `DateTime->now` when computing build results * Remove unused variable `$buildnr`- Update to version 4.6.1642570155.7901b9c11: * Dependency cron 2022-01-19 * Wrap labels in elements for easy highlighting * apparmor: allow to read and lock fd files from /boot * Fix reporting URL for SLE Micro * Add checkbox for "TODO" filter unifying code with "relevant" filter * Simplify code for "relevant" filter on "All tests" page * Write condition for TODO-filter in a more compact way * Add LABEL_REGEX and find_labels to OpenQA::Utils- Update to version 4.6.1642447958.c1844f193: * Remove useless use of `$(…)` when showing flash messages * Fix rendering HTML elements when updating unique flash messages * Reduce log level of certain web socket server log message to 'trace' * Avoid logging worker status messages by default * Give a default response code if not initialized * git subrepo pull (merge) external/os-autoinst-common * Add todo parameter to /tests * apparmor: Allow /usr/bin/swtpm used by os-autoinst- Update to version 4.6.1642169678.8dac53cb0: * apparmor: Allow /usr/bin/swtpm used by os-autoinst * Avoid possible race condition in `t/ui/18-test-details.t` * Try reloading not yet available text results * Prevent failed testapi.pm download in doc generation * Replace bugref_regex function with BUGREF_REGEX constant * Avoid action at a distance issues with global config changes * Fix OpenQA::Utils import statements * Avoid unhandled output in tests- Update to version 4.6.1642009051.9e0bfee4f: * Avoid possible race condition in `t/ui/18-test-details.t` * Try reloading not yet available text results * Replace bugref_regex function with BUGREF_REGEX constant * Avoid action at a distance issues with global config changes * Avoid unhandled output in tests * Change git protocol from git: to https: in fetchneedles * Clarify what the '"OK" children' restarting option means * Adapt documentation to new advanced restarting UI- Update to version 4.6.1641523544.d8e770957: * apparmor: Allow access to subfolders under /tmp- Update to version 4.6.1641405207.b1b3cfd35: * Dependency cron 2022-01-05- Update to version 4.6.1640601401.0c8908a82: * Remove log messages because missing details-*-.json files are expected * t: Move variables into fitting subtest scope in ui/26-jobs_restart.t * templates: Fix redirection to clones on advanced restart actions * templates: Fix styling of restart dropdown with proper classes * Revert "Missing details-*-.json files are expected" * Add retry of openQA jobs based on test variables * t: Split out job referal test from 10-jobs.t * Use signatures in OpenQA::Downloader * Load heavy-weight Archive::Extract dynamically * Remove unnecessary import in OpenQA::Schema::Result::Assets * t: Remove unused parser imports from 10-jobs.t * t: Use consistent subtest blocks in 10-jobs.t for all test statements * t: Split out 10-jobs-results as 10-jobs is getting big- Update to version 4.6.1640096856.6da5eed26: * Force cpanm to always use a trusted HTTPS mirror * docs: Provide simple example command for 'Manual daemon setup' * docs: Make 'Martchus' specific development helper less prominent * Only show advanced restart button where applicable * templates: Use small link-type restart buttons to resemble old look * t: Use signatures in ui/26-jobs_restart.t * Add advanced restart dropdown menu * Remove log messages because missing details-*-.json files are expected * Send AMQP event for `label:linked` comments * Send AMQP event for bugref takeover comments with relevant information * Add proper signal handling in needle scan minion task- Update to version 4.6.1639755028.beaaca21f: * Avoid archiving jobs to fail with "Job terminated unexpectedly" * Avoid "File exists" errors when running archiving jobs concurrently * mergify: Add more useful checks * mergify: Reduce duplication with YAML anchors- Update to version 4.6.1639585815.cbc8674aa: * admin: Check textarea when checking for key input * Ensure "Save" button is enabled when changing the group description * Avoid submitting form when "Clear limit" button is clicked * templates: Add help text for "pinned" comments * templates: Fix missing italic end marker in comment help text * Simplify pinned comments readout with map * Dependency cron 2021-12-15 * branding: Fix unintended source comment showing up in HTML * apparmor: Add rules for default archive folder * cli: List supported search criteria for jobs/overview route- Update to version 4.6.1639414134.aa9bed13e: * Pass program name in scripts using `getopt` (instead of `parse-options`) * Add `--help` flag to `openqa-check-devel` required by `t/44-scripts.t` * Extract health check for `devel:openQA` repository * Allow hxnormalize in apparmor config * t: Add Test::Warnings to most files where missing * branding: Again adapt bug reporting link for SUSE 15 SP4- Update to version 4.6.1639150327.6dac4a283: * Rename signal guard variable to make its effect more clear * Retry Minion jobs for cleanup on SIGTERM/SIGINT (e.g. service restarts)- Update to version 4.6.1639057582.07f0f29cd: * t: Consistently use Test::Most everwhere * t: Prevent warning about signatures in 35-script_clone_job.t * t: Prevent warning about signatures in 24-worker-overall.t * Dependency cron 2021-12-08 * Avoid Perl warning in `testcasedir` when no root directory is present * Avoid unhandled log messages in `t/16-utils.t` * Use unique check names in `t/16-utils` * Turn signal handling functions for retrying Minion jobs into an object * Retry Minion jobs for cleaning results on SIGTERM/SIGINT * Remove unused package defined in `t/16-utils.t` * CI: Prevent commit message check on master when it is too late- Update to version 4.6.1638808687.ea514e9d8: * docs: Add section how to disable cleanup * docs: Properly wrap the 'timers and triggers' section * docs: Improve location of 'timers and triggers' section- Update to version 4.6.1638528184.2ec841d38: * Log the current download speed with every cache service download * Fix running `t/16-utils.t` multiple times- Update to version 4.6.1638461619.b7ce2240e: * t: Prevent non-deterministic test step calculation using wait_for_ajax * t: Fix timeout calculation in wait_for_developer_console_like * t: Prevent trying to wait longer for dev console than overall timeout * t: Simplify OpenQA::Test::FullstackUtils * t: Use signatures in OpenQA::Test::FullstackUtils * t: Add timeout to developer console waiting status log message * docs: Make os-autoinst doc reference more prominent * docs: Add additional hint for SCHEDULE- Update to version 4.6.1638286681.f004793c0: * container: Persist images directory * container: Add upgradedb mode in run script * t: Fix regression that we fail on too many js errors (48664aa) * t: Add more details to wait_for_result_panel log message * t: Also look for worker-log in resultdir * t: Provide autoinst-log.txt in full-stack.t also before uploading * t: Provide stack trace for better context on Selenium related bails * AMQP: allow and handle some TLS-related query parameters * Amend description of tag usage in the documentation * Improve investigation tests so every check has a description * Fix checking investigation response * Fix displaying investigation fields like `diff_to_last_good` * doc: Add section about performance testing under troubleshooting * doc: Fix minor details in installation documentation- Update to version 4.6.1637913492.4e7a64436: * apparmor: Allow local additions to the worker profile * Handle chown in build_autoinst.sh * ci: Manual fullstack tests via GHA- Update to version 4.6.1637672074.afbb8ee35: * use printf (shellcheck SC2028) * Add option of using git-lfs to fetchneedles * Improve fetchneedles --help output * Fail on unexpected Javascript console errors * Prevent confusion about "priority"- Update to version 4.6.1637407518.4c2ce7ada: * Dependency cron 2021-11-20- Update to version 4.6.1637233070.75fb859c3: * Render the test_log value correctly when config has http url * fullstack: Log worker-log.txt on test bail * Allow some special characters in tag labels * Speed up 25-cache-service.t with a shorter worker timeout * Add test for progress bar link on parent group level * Add test for progress bar link on parent group level * commit message checker: Allow tags with dashes and white-spaces * clone-job: Fix accidentally skipping asset downloads * Fix parent progress bar links- Update to version 4.6.1637075542.066802195: * Fix conflicting attr names in collapse class of the investigation tab * Increase time limit for 25-cache-service.t a little * Construct the data attribute of the gitrepodir on investigation * Extend test coverage and apply review feedback * Update dependencies.yaml with Config::Tiny * Add self-deduced git repo construction * Provide the git stats hash with links * Change how the investigation tab displays the git log output * Fix enabling systemd unit `openqa-reload-worker-auto-restart@.path` * Explicitly fail when no jobs to label are found * Remove deprecated openqa-client calls * Improve logging for openqa-label-all script- Update to version 4.6.1636709514.73f6020e3: * doc: Consider `nftables` being used in modern systems * doc: Make it clear that SuSEfirewall2 is only used on older setups- Update to version 4.6.1636630679.707ec60a3: * Dependency cron 2021-11-11 * Make logging when stopping command server gracefully less confusing * Change $job->cancel to have reason- Update to version 4.6.1636468466.ad625ca71: * Dependency cron 2021-11-07 * Move verbose authentication log messages to trace level * Add support for trace log level (below debug level) * Skip uefi-vars download unless parent has UEFI=1- Update to version 4.6.1636004420.dae9f4e5c: * Dependency cron 2021-11-03- Update to version 4.6.1635851989.3196423d5: * Remove workaround for broken Chromium on Leap 15.3 * Unschedule jobs which are too long in 'SCHEDULED' state- Update to version 4.6.1635525801.1df7a829f: * Make text result thumb look same across browsers * Display previews for `wait_serial`-results like before 009e9256 * docs: Add instructions for "installation from source" * templates: Fix redundant spaces around the duration on finished jobs * templates: Add comma to prevent ambiguous state+timestamp combinations- Update to version 4.6.1635405484.2bcc5e885: * Add "retries" option to openqa-cli to work around busy openQA instances * t: Fix 03-auth.t for perl-Mojolicious >= 9.22 * Dependency cron 2021-10-27 * Log slow SQLite queries that run longer than 60 seconds * t: Mark more lines as uncoverable * Increase SQLite busy timeout to 10 minutes and add a missing index * Dependency cron 2021-10-25 * Dependency cron 2021-10-25 * tools: Prevent unnecessary commit of files from CI * Delete erroneously commited file gendep_before.txt (71bef7e3c) * t: Mark all uncovered fail-handler lines as such in FullstackUtils * Display badges for all categories on test result overview- Update to version 4.6.1634908963.3d5c24113: * Also ignore all aborted results for 'todo' flag * Fix missing display of aborted test results in overview status line * Turn around double negation in Schema::Result::Jobs * t: Make summary line check stricter in 10-tests_overview.t * t: Simplify fixture job creation in 10-tests_overview.t * t: Bump timeout of api/04-jobs.t based on local runtime * t: Bump timeout of ui/18-test-details.t based on local runtime * Update the link for OSD's setup and administration which has been moved * Use signatures in OpenQA::Worker::WebUIConnection * Use Time::Seconds in OpenQA::Worker::Settings * Use signatures in OpenQA::Worker::Settings * Consistently describe "Idle" workers as such * t: Add test for worker statistics and numbers * templates: Delete unused worker statistics variables * Use diag instead of note when bailing with log * Enable diagnostics for serialization errors * fullstack: Add context to result panel wait- Update to version 4.6.1634844038.99a1a2378: * Make text results rendering unified with other * Add error handling when updating 'force_result' label comments * t: Prevent aborting the complete test run when interactively debugging * Elaborate on local adjustment of apparmor profiles * t: Mark statements as uncoverable in WebUIConnection.pm * Tidy up Helpers.pm to satisfy CircleCI * Restart the job which incomplete with a known QEMU terminated issue * Override job incomplete reason when fail to allocate memory * Prevent creation of comments with invalid "force_result" command * Makefile: Use many more retries for unstable full-stack.t * Add missing dependency for python-scripts * Use 'backoff' style delay for AMQP publishing attempts * Change test to reflect changes in UI * Make sections clickable for "sort by group" view * Make progress bar sections clickable for children * Add links to overview in progress bar segments for builds * Add a retry delay for publishing AMQP events * Add retry for publishing AMQP events * Streamline error handling when publishing AMQP event * Simplify AMQP plugin code * Avoid escaping issues when making AMQP URL by using `Mojo::URL` * t: Provide more fitting error feedback scope in api/09-comments.t * t: Use signatures in api/09-comments.t * Immediately prevent writing invalid comments with "force_result" * Add configurable regex match rule for "force_result" labels * Ensure force_result is only accepted when being part of the label string * t: Add test for 'job_update_result' event * Prevent deletion of 'force_result' label comments * Add possibility to override the job result with special comments * templates: Add force_result label help text * templates: Replace obsolete wiki reference labels * docs: Add force_result label description * OpenQA::Schema::Result::Comments: Use signatures * OpenQA::WebAPI::Controller::API::V1::Comment: Simplify * OpenQA::WebAPI::Controller::API::V1::Comment: Use signatures * CI: Try to continue on spurious zypper refresh problems- Update to version 4.6.1634301296.a0543cf54: * t: Add a hook to tools/retry to delete coverage data- Update to version 4.6.1634224259.e820fe5b6: * ci: Update codecov uploader * Generalize CI scripts location * Test handling promise for publishing AMQP events * Improve coding style in `t/23-amqp.t` * tests: Use separate databases for unstable tests * Fix error handling when publishing an AMQP event fails * Use signatures in OpenQA::Jobs::Constants * ci: Mark uncoverable bailout code paths * Reformat code to current perltidy style * tools/tidy: Disable aligning assignments * .mergify.yml: Make rules stricter requiring patch coverage- Update to version 4.6.1634049705.509fad0ac: * CI: Add retry for chrome workaround * CI: Move test run instructions to separate file * t: Fix path in t/01-style.t * Downgrade chromedriver from problematic version * git subrepo pull (merge) external/os-autoinst-common * CI: Allow exception for "git subrepo pull" messages * Use consistent abbreviated SPDX license identifiers * ci: Always checkout sha in build_autoinst.sh * workflows/commit_message_checker.yml: Fix file based prefix * Pass all parameters to productdir()- Update to version 4.6.1633624491.52d9e3c63: * Add CLONED_FROM to cloned job settings * Reduce timeout in `t/05-scheduler.full.t` again * Improve quoting style in `t/05-scheduler.full` * Avoid full `OpenQA::Jobs::Constants::` prefix in `t/05-scheduler-full.t` * Fix race-condition in `t/05-scheduler-full.t` which can lead to failures * Continue further checks if job is not done/incomplete in scheduler test * Run hook script timeout in verbose mode * Allow hxselect in apparmor profile * Dependency cron 2021-10-06 * Allow more shells in apparmor profile * CI: Use current updated Selenium::Remote::Driver version to fix CI * Use consistent "Copyright" header without problematic characters * Extract code from `clone_job_download_assets` into separate function * Add missing separator in log message of `openqa-clone-job` script * Consider all parent jobs in `openqa-clone-job` to skip certain assets * Prevent useless downloads of `uefi-vars` assets * Extend tests for asset download in `openqa-clone-job` script- Update to version 4.6.1633442652.bbce4ad33: * Dependency cron 2021-10-05 * Upgrade CI scripts for using Leap 15.3 based container images * Dependency cron 2021-10-05 * OpenQA::Log: Speedup, simplify and fix format with Time::Moment * t: Bump timeout of 25-cache-service.t * t: Bump timeout of 40-script_openqa-clone-custom-git-refspec.t * OpenQA::Log: Simplify * OpenQA::Log: Use signatures * Generalize containerized setup to refer to 'container' * Generalize Makefile and scripts to refer to 'container' * CI: Generalize scripts to refer to 'container' instead of docker * Use simpler 'podman' as drop-in replacement for our checks * Extend clone-job unit tests for handling/ignoring missing assets * Add ignore-missing-assets to unit tests * Add ignore-missing-assets to clone-job * Upgrade CI container image versions to Leap 15.3 * Upgrade containers for containerized setup to Leap 15.3 * Log return code of hook command- Update to version 4.6.1632930736.2895850f3: * CI: Extract script "prepare_dependency_pr" * Fix SQL error in `refresh_assets` caused by 5b14fe * Also auto-clone on VNC connection timeouts of non-qemu backends * Ensure that temporary HTTP 503 errors are handled with auto-clone * CI: Add more explicit error message in cache load script- Update to version 4.6.1632803445.44df68079: * Avoid warning in `untie_asset_from_job_and_unregister_if_unused` * Fix computation of missing assets if there are no relevant assets * Ensure nightly job for deps prefers openQA:devel * Try to fix sporadic CircleCI issues in 05-scheduler-full.t * Fix build in tests/overview when groupid is defined * Speed up asset cleanup by only updating last job on changes * Speed up asset cleanup by only updating the "fixed status" on changes * Speed-up asset cleanup by caching path of asset file on disk * Ignore shellcheck false positives in tools/generate-documentation * Remove useless x in if in tools/run-tests-within-container * Remove useless assignment in tools/generate-documentation * Change shell to bash in tools/generate-packed-assets- Update to version 4.6.1632424784.6736f5e9a: * templates: Clarify which filter options in /overview apply to the job * Trigger minion tasks when jobs are done * Fix typo in jobs API documentation * Document installing test distri deps for containerized setup * Follow symlinks when installing test distri dependencies * Fix config for cloning with container setup * Set a default `base_url` for containerized setup and document config * Utils.pm: Add missing spaces in human_readable_size() * downloads: Print asset size * Plugin/Helpers.pm: Add human_readable_size() helper * Revert mistaken worker write access to needles * Improve cleanup documentation * Allow configuring concurrent cleanup- Update to version 4.6.1632228188.ad82e8315: * Makefile: Add retries for current instabilities of t/full-stack.t * Worker.pm: Print pool directory on error * Add OPENQA_HOSTNAME to the job settings * Make clear 'Module' field in test overview page * Mark non-existing asset as such in the downloads tab * Cover missing lines in function for module result upload * Cover `OpenQA::Worker::Job::settings` * Additions to apparmor profiles- Update to version 4.6.1631887122.a5fe7e20c: * Test format_time_duration * Explicitly install os-autoinst dependencies in container * format_time_duration: Also display days in test duration * Refresh asset size after the upload has been completed- Update to version 4.6.1631807736.c954196f5: * Explicitly cover code with unstable test coverage * Dependency cron 2021-09-15 * Add NAMEs such that pod2man output is valid man(7) * overview: Add higher inactivity timeout * Stop upsetting pod2man- Update to version 4.6.1631608585.77a6c349a: * Remove unnecessary x-bit * Fix broken syntax in logrotate config * docs: Treat database migration as advanced topic * Install recommended deps in worker container * Fetch and display job status for test urls in comments * Install test distri deps in worker container on entry * Fix reference to "Changing timeouts" section * Speed up scan_for_untracked_assets further * Speed up scan_for_untracked_assets by using less syscalls * Strip down `openqa-clone-job` examples for `docker-compose` setup * Mark single exception log in ResultSet::Assets as uncoverable * Improve docker-compose docs as suggested in review * Document running `openqa-clone-job` within container * Document accessing a `psql` shell when using the docker-compose setup * Do not configure web UI and worker containers to share the same network * Fix configuration of additional web UI services in docker-compose setup * Fix quoting in example in container setup docs * Fix indentation of "Data storage …" section in container setup docs * Improve documentation of docker-compose setup * Fix docker-compose setup for worker * Fix client and worker configuration of docker-compose setup * Fix NGINX config for docker-compose setup- Update to version 4.6.1631288156.16e44e0ea: * Add common error message in pitfalls.asciidoc * Simplify code for making asset hash * Simplify code for artefact creation- Update to version 4.6.1631197970.87d9d07f3: * Redirect to original page even on automatic login redirect * Use consistent quoting style in `create_artefact` * Improve formatting tx error on artefact creation * Return errors on artefact creation correctly * Fix job status icons in activity view * Avoid rendering `ARRAY(0x…)` in users table * Use consistent colors for checkbox buttons in users table * Fix checkboxes on users table broken by ForkAwesome migration (35a5333)- Update to version 4.6.1631021118.ebe25e524: * Ensure that worker_container can start any instance * Dependency cron 2021-09-07 * Write error check in `eveluate_error` in a more compact way * Improve logging for artefact uploads * Remove no longer necessary test code * Speed up 21-admin-needles.t by running all Minion jobs in foreground * Fix permission errors when running tidy with docker-compose setup * Add documentation for upgrading PostgreSQL database * Optimize group_overview * Don't check for unset var BYPASS_SYSTEMD_CHECK in openqa-bootstrap * Reference arch diagram in devel mode debug steps * Reference doc about debugging devel mode on errors * Dependency cron 2021-09-06 * Add filter searching modules by regular expression * Speed up 12-needle-edit.t by running all Minion jobs in foreground * Migrate from FontAwesome to ForkAwesome * Add note about `[global]` section for configuring `WORKER_HOSTNAME` * Enable `[global]` section of `workers.ini` by default * Speed up cache service tests by not forking Minion jobs * Return to previous page on openID login * Allow limit parameter for api/v1/jobs/overview * Add /usr/bin/tac to apparmor profile to fix hook script on o3- Update to version 4.6.1629997637.5c3f9e2dd: * Fix flaky coverage in `t/05-scheduler-full.t` * git subrepo pull (merge) --force external/os-autoinst-common * Add `/usr/bin/tail` to apparmor profile to fix hook script on o3 * Dependency cron 2021-08-26 * fullstack: Wait for live view button * Avoid printing stacktrace when cgroup configuration fails * Move code for cgroups configuration into its own function * Prevent private assets from being cleaned up too early * Refactor function to determine a job's parent IDs * Improve asset registration function * Prevent public assets from being cleaned up too early * Improve `t/15-assets.t` * Reenable sysusers once again on Tumbleweed * Dependency cron 2021-08-25 * doc: Make the PRODUCTDIR overwrite docs less confusing * Remove unused test mock and mark uncoverable line * Optimize querying progress of running jobs by utilizing module columns * doc: Document new cache service setting `CACHE_MIN_FREE_PERCENTAGE` * doc: Improve documentation of cache service * doc: Fix typo in `Installing.asciidoc` * Allow configuring worker cache to keep certain percentage of free space * fullstack: scale panel waits via TimeLimit * Document that needles will not be loaded from a custom `CASEDIR` * doc: Remove remark that asset caching overrides PRODUCTDIR * Remove TODO-comment in worker code which is most likely obsolete * Avoid uncovered lines in `t/24-worker-engine.t` * Fix bug reporting link for SUSE 15 SP4 * job: Record hook_cmd in minion job notes * worker: Remove delay function as now proper callbacks are used * Improve test coverage of `isotovideo.pm` * worker: Use proper callback instead of `delay` function during setup * Let workers declare themselves as broken if asset downloads pile up * Print stacktrace when worker crashes due to unhandled exception * workflows: Drop the body line length check * worker: Workaround errors in web socket handling * workflows: Allow 180 characters in commit body * Improve worker's exception handling and related test * Add an explicit unit test for the workers `exec` and `delay` functions * Do not remove timer after delay * Create `cache_tests` jobs with increased prio * Dependency cron 2021-08-11 * Bail out whenever the expected result was not found * fullstack: Extended wait for result panel * fullstack: Return early if stat fails to avoid file errors * Allow users to change which group $dbuser belongs to * ci: Improve hadolint check * Log user data received during OAuth2 * Add yaml file to enable commit message checks * Dependency cron 2021-08-06 * Fix "not last X" needle searches to include "never" results * search: Search Python filenames and contents * Ensure we end testing when bailing due to missing Selenium drivers * Add perl(IO::Uncompress::UnXz) as an optional dependency * Dependency cron 2021-08-04 * spec: Exclude t/43-scheduling-and-worker-scalability.t from tests again * Simplify loop over results in dump_templates * Extract function for product_key from dump_templates * t: Add complete statement coverage for dump_templates * Extract functions in script/dump_templates * t: Add one subtest for dump_templates options * Use "url_from_host" in OpenQA::Script::CloneJob as well * Extract method OpenQA::Client::url_from_host for load+dump_templates * Slightly simplify script/load+dump_templates * Use signatures in script/load+dump_templates * Slightly simplify OpenQA::Script::CloneJob * Use signatures completely in OpenQA::Script::CloneJob * Use signatures in script/openqa-clone-job * t: Fix 40-openqa-clone-job to not read personal config files * Fix OPENQA_CONFIG in OpenQA::UserAgent to override, not add config search path * Use signatures in OpenQA::Script::Client * t: Clarify that 40-script_load_templates also calls dump_templates * Simplify script/dump_templates a bit * Add regex and tests for fragment identifier recognition * Retry the assets package generation if a CDN fails * Generalize path to "unstable tests" * Simplify all test selection switches for all "fullstack" tests into one * Remove unnecessary "SCALABILITY_TEST" variable * Update dependencies * Remove `collect_coverage_of_gru_jobs` where `run_gru_job` is used anyways * Perform minion jobs in foreground in several tests using `perform_jobs` * Remove unused imports of `collect_coverage_of_gru_jobs` * Perform all Minion jobs consistently in foreground in `t/14-grutasks.t` * Remove `collect_coverage_of_gru_jobs` from `t/api/02-iso-download.t` * Fix stability of check for scroll-up button in `t/ui/14-dashboard.t` * Enable all rules from eslint:recommended related to syntax and logic errors * Makefile: Bump retries for fullstack-unstable after recent instabilities * Make default test runs less noisy * Makefile: Add optional "EXTRA_PROVE_ARGS" to add to prove calls * Makefile: Fix comment alignment * Make scalability test setup independent of test data from `os-autoinst` * Remove more dead code from OpenQA::WebAPI::Plugin::Helpers * Remove dead code from OpenQA::WebAPI::Plugin::Helpers * Generalize CI base container path * git subrepo pull (merge) --force external/os-autoinst-common * t: Bump timeout for ui/14-dashboard.t * Make message about clone error unique * worker: Unify retry-behavior of artefact file uploads with regular API calls * worker: Move error handling for API calls into a separate function * worker: Pass error during final upload as `api failure: …` reason * worker: Retry when sending an artefact fails * Improve error handling of _upload_log_file to retry also on connection errors * Run tools/tidy * Adapt codecov target to current coverage * OpenQA::Worker::Engines::isotovideo: Use consistent single-ticks where applicable * OpenQA::Worker::Engines::isotovideo: Simplify using signatures * docs: Add option to disable test timeout with env variable * Dependency cron 2021-07-27 * Mark most of the unstable worker test code as uncoverable * t: Ensure `t/ui/14-dashboard.t` passes also when browser window is big * t: Disable coverage report for forked processes in scalability test * t: Fix check for `last_updated` column of needles * Avoid perl warning in string concatenation * Remove .jsbeautifyrc, since it is no longer needed * Dependency cron 2021-07-22 * Use the OPENQA_UPLOAD_DELAY environment variable to speed up 24-worker-jobs.t * Replace wait_with_progress with a sleep call * Cover wait_with_progress with basic tests * Remove dead code from LiveViewHandler * git subrepo commit (merge) external/os-autoinst-common * Dependency cron 2021-07-20 * containers: Install ruby and rubygem-sass * Dependency cron 2021-07-17 * Add minimal js-tidy script that will take care of Node.js dependencies * cache service: Avoid logging back-traces when scanning * docs: Add a test example written in Python * t: Improve coding style in `t/21-needles.t` * t: Fix check for `last_updated` column of needles * t: Use `Time::Seconds` in `t/21-needles.t` * t: Cover worker's log file upload * .circleci: Be more gracious with timeouts due to random slowness * t: Bump timeout for ui/06-operator_links.t * t: Bump timeouts for 44-scripts.t * Simplify script/modify_needle * t: Add test for script/modify_needle * Improve error message (report filename instead of test name) * Avoid getting stuck syncing tests by adding timeout to `rsync` call * Prefer "const" to "let" in JavaScript code if the value is never changed * Fix all ESLint rule violations * Add eslint and prettier support * Show logs when docker compose up fails in the test_containers_compose * Fix use of su by providing shell for geekotest * Clean up param_hash helper code * t: Cover worker's asset upload * Remove debug logging for livelog viewers * t: Cover worker's handling of failing asset upload * openqa-bootstrap: Check that systemd is available * Add basic unit test for image live streaming * Use configurable constants instead of hard-coded intervals for streaming * Fix error handling when asking worker to enable the live log * Improve error handling when streaming images for live view * Improve log messages of image streaming code * doc: Document finding tests via the REST-API * doc: Improve `openqa-cli` documentation * doc: Improve introduction of REST-API * doc: Improve references * Distinguish comment types on /tests * Fix 'This: command not found' errors * t: Cover posting job setup status * t: Cover handling job timeout * t: Cover worker's image upload * t: Cover case when worker accepts job but the ws connection has been lost * Write code in `t/24-worker-jobs.t` in a more compact way * Avoid forking in `t/24-worker-jobs.t` to collect coverage of upload code * Split `_upload_results_step_2_upload_images` into multiple functions * Revert "Reenable sysusers" * Remove the link to /tests/overview in the parent group overview * Revert "Distinguish comment types on /tests" * openqa-bootstrap: Ensure to enforce expected error handling- Update to version 4.6.1625814138.021a88a2a: * t: Simplify "linked" lookup in 10-jobs.t * t: Add test for happy-path of OpenQA::Worker::Engines::isotovideo::sync_tests * OpenQA::Worker::Engines::isotovideo: Remove dead code "_kill" * t: Increase timeouts * Fix use of `isnt` in `t/lib/OpenQA/Test/Utils.pm` * t: Bump timeout in more slow tests * t: Bump timeout for ui/26-jobs_restart.t * Distinguish comment types on /tests * t: Bump timeout for deploy.t after recent slowdown * Fix typos found by codespell * Update parent_group link to test/overview to the new icon format * Add link to /test/overview from index page for every parent group * Add a check for the geekotest & _openqa-worker user to test specs * Switch to systemd-sysusers instead of getent + useradd * Mark uncovered line in OpenQA::Schema::Result::Assets * Remove uncovered conditions for internal search of job settings * Delete unused args special case handling in OpenQA::Schema::Result::GruTasks * Simplify OpenQA::Schema::ResultSet::JobSettings * Slightly simplify OpenQA::Schma::ResultSet::Assets for full statement coverage * Slightly simplify OpenQA::Schma::ResultSet::AuditEvents for full statement coverage * Do not fail Minion jobs when asset download fails due to a client error- Update to version 4.6.1625604748.6b93c98dd: * build-docs-ci: Fix sporadic zypper install failure with retrying * Simplify circleCI config by extracting build-docs-ci script * Fix the multi-job-group overview link to show all results * Return the error message the Downloader up the stack * Add a regression test to make sure an empty flavor value does not result in all jobs getting loaded * Fiter all incoming parameters, but do not actually validate them yet * Add test filter option to test overview * Add flavor filter option to test overview * Use a more feasible timeout for t/full-stack.t * ci: Increase several timeouts * fullstack test: Remove job settings to fix execution with QEMU 6 * fullstack test: Stop when first test incompletes * search: Correctly use username for gru lock if logged in * Take test modules without result into account for carry-over * Consider all modules on carry over, despite missing/broken results * t: Simplify setup of `t/17-labels_carry_over.t` * Fix carry-over only due to one matching bugref in step title * Refactor carry-over in OpenQA::Schema::Result::Jobs * BugLinks: Do not attempt label with incomplete referer URLs * Dependency cron 2021-06-30 * Add link to /test/overview from a parent job group * Revert "Switch to systemd-sysusers instead of getent + useradd" * Encode query parameters in openqa-label-all * Fix a few more cases where "if (%foo" was used instead of "if (keys %foo" * Fix a small mistake where "if (%foo" was used instead of "if (keys %foo" * Switch to using the %make_build macro * Fix parse failure if is_opensuse is undefined * Switch to systemd-sysusers instead of getent + useradd * Dependency cron 2021-06-27 * Convert a few more tests to use OpenQA::Test::Utils::perform_minion_jobs * Replace perform_minion_jobs_in_foreground workaround with upstream Minion feature * openqa-label-all: Allow to call without specific build * Remove code for mocking Minion in `t/42-df-based-cleanup.t` * docs: Adapt docs after ffc13764b fixed the lookup of multiple builds * Fix show results for multiple groups in /test/overview- Update to version 4.6.1624362583.02699d6c5: * Optimize group_overview: don't fetch bugdetails where not needed- Update to version 4.6.1624280432.2ce59c621: * Optimize search: prefetch job columns * Dependency cron 2021-06-20 * t: Make `t/ui/18-tests-details.t` independent of `t/ui/12-needle-edit.t` * t: Access download list in t/ui/18-test-details.t directly * Dependency cron 2021-06-18 * Fix repository used by openqa-bootstrap under Leap 15.3 for internal CA * Dependency cron 2021-06-17 * Simplify "linked" lookup in OpenQA::Schema::ResultSet::Jobs * Fix repository used by openqa-bootstrap under Leap 15.3 * t: Mark 10-jobs.t as not-heavy anymore after a9defcedf * Optimize /tests/overview: Combine SQL for JobDependencies * Optimize /tests/overview: Combine SQL for JobModules * Install iputils in the bootstrap script for the ping command * Make openQA package depend on hostname, required by configure-web-proxy * Delete uncovered and likely obsolete "assetid" parameter for test queries * Delete unused parameter "failed_modules" for list endpoint * Delete uncovered and likely unnecessary code for "failed_modules" parsing * Delete old undocumented and unused "maxage" filter mode * Delete old dead code in OpenQA::Schema::ResultSet::Jobs::complex_query * Reduce some whitespace for readability in OpenQA::Schema::ResultSet::Jobs::complex_query * Extract method from OpenQA::Schema::ResultSet::Jobs::complex_query * Set all 'attrs' in OpenQA::Schema::ResultSet::Jobs::complex_query in one place * Simplify OpenQA::Schema::ResultSet::Jobs * dist: Also save update-cache.sh from OBS * t: Simplify test timeout handling in 33-developer_mode for coverage * Mark openqa-client as deprecated * Correct volume labels to allow running on SELinux enabled systems * Remove `t/ui/25-developer_mode.t` from unstable tests * Fix problem in t/ui/25-developer_mode.t leading to sporadic test failures * Revert "Downgrade chromedriver from problematic version" * Adapt UI tests to chromedriver changes- Update to version 4.6.1623747238.4c4508f96: * t: Mark missed uncoverable line in 14-grutasks.t * doc: Add end of list marker so chapter heading after pitfalls is rendered correctly * doc: Improve documentation for debugging developer mode * t: Mark uncoverable statements in 14-grutasks.t * t: Mark uncoverable statements in 42-df-based-cleanup.t * t: Mark uncoverable statements in 01-test-utilities- Update to version 4.6.1623492373.886d5787f: * t: Delete unused function in t/ui/13-admin.t * t: Fix wrongly moved line ending up as comment statement * Minor optimization: Turn SQL 'OR' into 'IN' * Add automatic installation recipe autoyast profile * Deployment handler: Log error message * Handle ANSI escape sequences in live log as well * Enable log viewer also for user logs and unify code for both log lists * Improve appearance of result file list * Use layout for video view to avoid rendering an incomplete HTML page * Test log view * Fix broken HTML by removing surplus end-tag * Add log view (similar to video view) supporting ANSI escape sequences * Render ANSI escape sequences within embedded log files via Anser (client-side)- Update to version 4.6.1623351179.452374ecb: * Allow to configure Selenium chromedriver startup timeout for slow environments * docs: Add explanation for OPENQA::Test::TimeLimit configuration options * Give permission of check_qemu_oom * docs: Improve "getting involved" paragraphs * docs: Remove redundant and outdated contact reference * README: Update and generalize contact information * The coverage fix should not be necessary anymore * The coverage fix should not be necessary anymore * Make run_gru_job perform jobs without forking * Run 10-jobs.t really fast * parser: update IPA parser to support latest img-proof changes * Increase Mojolicious version requirement to a version compatible to what we test with * Fix content negotiation with .txt file extension for module source * Fix loading `main.pm` from custom CASEDIR with ABSOLUTE_TEST_CONFIG_PATHS=1 * Add test for ABSOLUTE_TEST_CONFIG_PATHS=1 and custom CASEDIR * Split 'symlink testrepo' test into further subtests * worker: Fix handling CASEDIR/PRODUCTDIR/NEEDLES_DIR in certain cases * worker: Fix deleting previous links when preparing pool directory- Update to version 4.6.1622818917.004fe9ea4: * Dependency cron 2021-06-04- Update to version 4.6.1622732249.47bfb0150: * Downgrade chromedriver from problematic version- Update to version 4.6.1622538546.3dbc437d2: * Fix failing stylecheck for tools/test_containers_compose * Update docs about the special case of BACKEND variable precedence- Update to version 4.6.1622199777.577b4d3e1: * containers: Add test to check that webui can connect to scheduler * Also cover shell scripts in tools/ by shellcheck * Apply shellcheck rules to tools/tidy as well * Give permission of dmesg to worker * Simplify test code for OBS rsync plugin * Restore test coverage for OBS rsync code in obs_rsync.js * Remove 27-plugin_obs_rsync_status_details.t from unstable tests * Restore test coverage for OBS rsync code in Task.pm * Restore test coverage for OBS rsync code in ObsRsync.pm, Folders.pm and Gru.pm * t: Remove all unstable test code in ui/27-plugin_obs_rsync_status_details.t potentially covered elsewhere * containers: Fix scheduler and websockets URLs in webui container- Update to version 4.6.1621582962.3db67fb03: * Dependency cron 2021-05-21 * Fix retry/delay in FinalizeResults.pm leading to failing Minion jobs- Update to version 4.6.1621511845.b2720ea04: * Tweak routing again to work for Mojo < 9 or >=9.11 * Show alert box linking to first bad test * Do not build openQA-devel for archs where it would be unresolvable * Install auto-update systemd files for SUSE as well and not only openSUSE * Remove previous tmpdir (on web UI side) when preparing worker for its next job- Update to version 4.6.1621307093.e6e7d0a8c: * Improve locking of archiving task * Test case of copy error when archiving job * Mention the archiving feature within the documentation * Show archive icon on test details page for archived jobs * Archive important jobs which would be otherwise preserved during log cleanup * Add Minion job for archiving job results * Add function to archive a job * Add archive dir, allow customization via OPENQA_ARCHIVEDIR * Mention `MAX_SETUP_TIME` and `TIMEOUT_SCALE` in timeout documentation * worker: Add MAX_SETUP_TIME to limit job setup time (by default to one hour) * Use constants from Time::Seconds for declaring our own time-related constants * worker: Write code for stopping job in a more compact way * worker: Pass result USER_CANCELLED when stopping job due to cancellation * Add test for some error cases when calling rsync to sync tests * worker: Allow cancellation of jobs while waiting for asset cache * worker: Unify loops for polling the cache service- Update to version 4.6.1620996956.bd2066072: * Add new column to jobs table to flag jobs as archived- Update to version 4.6.1620897674.b48ba1486: * Dependency cron 2021-05-13- Update to version 4.6.1620717468.c034e36b0: * Prevent Perl warning in worker code introduced by 4c2e8c8a63 * Do not allow to deprioritize/obsolete build when specifying TEST * Do not enqueue more Minion jobs while waiting in 27-plugin_obs_rsync_status_details.t * Log pending Minion jobs while waiting in 27-plugin_obs_rsync_status_details.t * CI: Store log artifacts in build-docs job * Speed up execution of `t/api/04-jobs.t` with coverage analysis enabled * CI: Fix 01-test-utilities.t * Simplify handling of potential not-implemented states of jobs * Check if the ci check will pass after updating this hash * Do symlink assets as default- Update to version 4.6.1620235932.ef6bfa0d1: * Makefile: set DEVEL_COVER_DB_FORMAT * apparmor: Allow execution of smbd which is required for QEMU_ENABLE_SMBD * Mark t/ui/25-developer_mode.t as unstable due to recent failures * Prevent execution of container test when `TESTS` has been specified * openqa_bootstrap: Fix indentation- Update to version 4.6.1619779004.cdb202dbd: * Update documentation about review badges * Use 'check-circle' icon for 'All passed' badge * Add "commented badge" for builds where all failed jobs have at least a comment * Let the worker retry uploading when updating module results failed * Consider jobs with no modules incomplete- Update to version 4.6.1619707627.35eae8e4f: * doc: Improve phrasing regarding worker instance number * Add example for triggering single job to `openqa-cli api --help` * Fix Cpanel::JSON::XS dependency to be the same as in Mojolicious * Update comment in loop for gathering comment data * Compute whether a job is considered reviewed when making comment data * Check whether arbitrary comments do not count for review badge * Only consider bugrefs/labels for black certificate icon * Simplify code for making overview result * Make dashboard test work in environment where default changelog path exists- Update to version 4.6.1619521273.6de41c49b: * Make the back to top button circular * Add back to top button to layout * Use Time::Seconds instead of magic numbers- Update to version 4.6.1619097622.241af4702: * Enable signatures in …::Result::Jobs and fix issues * Add tests for 'first_bad' link in investigation * Show link to first bad test in investigation tab * worker: Avoid running optipng/upload twice * Fix missing test module results and extend related unit tests * worker: Make uploading test order on final upload (when stopping job) work * Add more tests for Main controller * Use form validation in Main controller * worker: Avoid redundant code for getting test status- Update to version 4.6.1618919402.a469aea0f: * Increase health-check retries * Fix failing CI check for container file (static check DL3059) * Prevent recursive apparmor profile inclusion * CI: Retry if docker-compose build fails in webui-docker-compose test * Fix content negotiation to use Accept headers again * Improve parameter name 'check'- Update to version 4.6.1618564988.9a9616334: * Dependency cron 2021-04-16 * Fix result cleanup when retention period configured on job group level is zero * Dependency cron 2021-04-15 * CI: Remove -q flag in docker-compose build in test_containers_compose- Update to version 4.6.1618384717.6ce950447: * CI: Fix db & webui_init startup * Extend tests for login via OAuth2 * Update user authentication documentation to cover recent improvements * OAuth: Allow setting a unique provider ID when specifying a custom parameters * Make OAuth2 parameters customizable * Improve OAuth2 changes based on suggestions from code review * Attempt to make OAuth2 work with salsa.debian.org * docs: Fix typo "connfigure" * Dependency cron 2021-04-13 * CI: Add checks over static-check-containers and webui-docker-comopse to Mergify- Update to version 4.6.1618218627.42ed03b34: * container doc: Improve documentation about SSL * container doc: Document stopping docker-compose setup * container doc: Fix formatting of SSL section * container doc: Move directory/storage explanations under Fedora section * container doc: Fix working directory for docker-compose command * container doc: State that docker-compose builds images automatically * Improve container documentation * containers: Add healthchecks to organize the docker-compose startup- Update to version 4.6.1617960903.4aa567c96: * Dependency cron 2021-04-09 * Ensure workers are shown as offline after disconnecting gracefully immediately- Update to version 4.6.1617809893.cee5e7331: * containers: fix github test webui-docker-compose timeout * Add test for overall cloning behavior with dependencies * Improve error handling in clone-job script * Print more useful error message when API key/secret is missing * Document client config file in cli/clone-job help * containers: Fix worker container entrypoint script * Fix several more API routes for Mojolicious 9.11 routing change- Update to version 4.6.1617645556.ee8c16dbd: * Dependency cron 2021-04-05 * Fix openqa-rollback for non-dry-run * Set using relative path as the default operation * Mark t/ui/27-plugin_obs_rsync_status_details.t as unstable again * Fix broken HTML in OBS plugin * Move containers documentation to regular documentation * Fix Mojolicious 9.11 compatibility- Update to version 4.6.1617146416.3db1f06ed: * Add script for package installation rollback on demand * Treat result uploads for non-existant modules as error * container: Fix missing shared directories and its permissions * Add param-file option to client * Dependency cron 2021-03-25 * t: use JSON::PP when using Devel::Cover- Update to version 4.6.1616233122.00db033: * Dependency cron 2021-03-20 * Allow to override isotovideo executable with command line * worker: Simplify use of job_settings hash lookup * Mark unstable t/ui/13-admin.t as such * Fix unhandled output in worker job test * Dependency cron 2021-03-19 * Fix 414 failures when cloning jobs with too long settings * Fix help popover in developer mode panel- Update to version 4.6.1616080850.6ccbaedb8: * dist: Exclude less relevant container tests from packaging tests * CI: Add compose tests via GitHub workflow * Improve logging of concluded upload further * Prevent worker from getting stuck in final upload when no tests are scheduled * Add a switch to decide if enable the CASEDIR symlink * Set an absolute path as PRODUCTDIR * Don't create symlink when CASEDIR is an url address * Symlink CASEDIR and set values to relative path * Dependency cron 2021-03-18 * Add test for failed status post during upload * Add test for stopping a job due to obsoletion * worker: Improve logging of upload and stopping * Check whether worker proceeds only stopping job after upload concluded * Mark uncoverable branches in Gru controller * Avoid assigning a negative result_size to a job when cleaning up results * Remove surplus `+` signs in documentation for importing production data * Use bigint to store job's result size to increase the limit ~2 GiB to ~8 EiB * docker: Allow docker-compose build images * Dependency cron 2021-03-17 * Fix default cover db suffix/filename i.e. cover_db- Update to version 4.6.1615570408.acacd6dbc: * Wait for the element instead of constantly refreshing the page * Revert "Rework symlink CASEDIR and set values to relative path" * Dependency cron 2021-03-12- Update to version 4.6.1615465829.199a835ed: * Package auto-update part on openSUSE only * Update apparmor profile for git for openSUSE Tumbleweed since git moved from /usr/lib/git/ to /usr/libexec/git/ * Dependency cron 2021-03-11 * BuildRequires openSUSE-release only on openSUSE * Test personal access tokens with an OpenID user * Enable "fast lane" so jobs with prio 10 or higher are not blocked * Adjust priorities of Minion jobs * gru: Specify default-priority only at one place * gru: Allow passing CLI options to Minion * Personal access tokens need to compare the nickname * Add static Dockerfile checks as in os-autoinst * container: Fix all style issues reported by hadolint * Document how to take out worker slots without interrupting running jobs * Improve coding style in function to create user * Adjust function for creating user to handle provider column * Add auth provider column to users table to support multiple providers later * Restore cover and run makefile targets * Set an absolute path as PRODUCTDIR * Don't create symlink when CASEDIR is an url address * Symlink CASEDIR and set values to relative path- Update to version 4.6.1615196506.0b1531c35: * t: Skip fixtures by default to prevent excessive runtime * t: Fix fixture list in ui/07-file.t introduced in e62972a78 * t: Add explicit fixture list for 26-jobs_restart.t * t: Add explicit fixture list for 27-plugin_obs_rsync_status_details.t * t: Add explicit fixture list for 05-scheduler-full.t * t: Ensure services are terminated on unclean shutdown of ui/27-plugin_obs_rsync_status_details.t * t: Specify specific fixture modules to ui/01-list.t- Update to version 4.6.1614942732.c0f9ffea8: * Document personal access tokens- Update to version 4.6.1614844749.095bc6031: * Dependency cron 2021-03-04 * Split up large auth method into multiple methods * Use Codecovbash RPM instead of cpanm * t: Increase timeout in 27-plugin_obs_rsync_status_details.t * Limit execution time of hook scripts run within Minion * Add personal access tokens as an alternative to X-API-* headers- Update to version 4.6.1614239222.751e3210d: * Dependency cron 2021-02-25 * Mark t/ui/27-plugin_obs_rsync_status_details.t as stable again * Test aborting cleanup early if there's still sufficient free disk space * Configure "early-abort" for cleanup via free percentage * Add "early-abort" in asset/results cleanup jobs based on df-output * Mock Git in t/ui/12-needle-edit.t * Show form for commit message only if Git is enabled * Test specifying a custom commit message to save a needle * Allow specifying a custom commit message in needle editor * Use codecov-bash to upload coverage reports * Fix local upload for larger assets- Update to version 4.6.1613993204.ea2110d1c: * Dependency cron 2021-02-20 * Remove custom AssetPack pipe- Update to version 4.6.1613737964.fe7c1907f: * Run starvation protection test with fixed priority offset * Add tests for the scheduler's starvation protection * Add test for so far uncovered error cases of scheduler * Improve comments in scheduler code * Make offset for scheduler's starvation protection configurable * t: Mark uncoverable statements in 25-downloader.t * t: Mark uncoverable statements in 01-test-utilities.t- Update to version 4.6.1613656670.2413c666d: * Fix remove link configuration for "Untracked" groups in /admin/assets * Dependency cron 2021-02-18 * Improve help of openqa-clone-job script * Make host names used by internal clients configurable * Avoid Perl warning when client.conf contains unknown value * Apply tidy to t/ui/27-plugin_obs_rsync_status_details.t * The CI package has been updated to 9.01 already * Remove dependency to Mojo::Log::Colored as it is not Mojolicious 9 compatible * Fix Mojolicious 9.0 compatibility * Stabilize t/ui/27-plugin_obs_rsync_status_details * Add qemu-tools to worker container image * Fix worker container to allow job executions relying on KVM * Dependency cron 2021-02-16 * t: Bump timeout for t/ui/27-plugin_obs_rsync_status_details after observed acceptable failure * Provide more retries for "unstable" tests after recent failures * Fix broken lookup of paths in coverage reports * Mark code which only runs when t/full-stack.t fails as uncoverable * Remove invisible WIP logos from logo.svg- Update to version 4.6.1613318110.525d96fca: * Dependency cron 2021-02-14 * script: Fallback to running openqa-bootstrap-container without pipe * Add a section on how to use signatures to the code style guide * Increase timeout for slow ui test * Convert all of OpenQA::CacheService::Client to signatures * Simplify WebUIConnection method arguments with signatures * Replace one occurence of @_ unrolling to put in default value * Mark uncoverage statements in OpenQA::Worker::WebUIConnection * Refactor scheduler to fix occasional failures of the fullstack test * Make scheduler output more verbose for fullstack tests * Stabilize scalability test * Improve verbosity of scalability test when scheduling fails * Allow using `systemctl reload openqa-worker-auto-restart@*.service` * Use --kill-who=main when reloading worker to send signal only the main process * Avoid the worker to stop its current job when receiving SIGHUP twice * Prevent test timeouts in CI with splitting out "heavy" tests * Combine "scheduler"+"developer" test runs into one to save time * t: Simplify 25-cache.t with IPC::Run instead of Mojo::IOLoop::ReadWriteProcess- Update to version 4.6.1612882822.353560390: * Fix create_admin by not expecting ARGV after parsing it * Fix problem in fullstack test leading to occasional failures * Use full path in openqa-reload-….service to support- Update to version 4.6.1612273300.b98492573: * Make 'perl >= 5.20.0' a common dependency to be able to use signatures everywhere * Use Mojo::UserAgent::socket_options if available to avoid relying on monkey patch * Return size of symlink (and not its target) when deleting job results * tests: Test expected output from job cloning * Add service files to restart worker after config changes without interrupting running jobs * Restart openqa-worker-auto-restart@.service on pkg upgrade without interrupting jobs- Update to version 4.6.1612014696.1998b3cde: * Revert "Rework symlink CASEDIR and set values to relative path" * Dependency cron 2021-01-30 * Update .circleci/ci-packages.txt * Update patch for B::Deparse * Don't rely on re-checking statfs() during the cleanup * Increase coverage scale factor for t/10-jobs.t to avoid running into timeout * Add test for screenshot deletion failure * Unify code for screenshot deletion * Mock the Minion framework in tests for df-based cleanup to speed up coverage analysis * Document df-based cleanup of results within the web UI and config file * Ensure usage of results disk is below configurable threshold * Add function to delete all results from a job keeping the database entry * Add function to delete only the videos from a job * Add function to determine screenshots exclusively used by a job- Update to version 4.6.1611917326.c2fb0e67e: * Attempt to avoid accessing stale elements in t/ui/25-developer_mode.t * Increase timeout of t/api/04-jobs.t * Dependency cron 2021-01-28 * Convert only OpenQA::WebAPI to a more modern Perl dialect with signatures * Don't create symlink when CASEDIR is an url address * Symlink CASEDIR and set values to relative path- Update to version 4.6.1611422905.79471b7a1: * Revert "Symlink CASEDIR and set values to relative path" * Dependency cron 2021-01-23 * Automatically rerun incompleted jobs because of no space left * Symlink CASEDIR and set values to relative path- Update to version 4.6.1611251947.ef6edb09c: * Revert "client: Log what config file is being read" * Dependency cron 2021-01-21 * Fix error reporting link for SLE Micro * Document restarting workers without interrupting ongoing testing * doc: Avoid calling the worker instance number 'worker id' * clone-custom-git-refspec: Call clone-job from same install * Add SUSE Linux Enterprise Micro in the external reporting * client: Log what config file is being read- Update to version 4.6.1610981115.826fa7196: * Adjust Bugzilla links for SLE 15 SP3 products to add new "PUBLIC" prefix * Workaround getaddrinfo() being stuck in error state for 127.0.0.1- Update to version 4.6.1610720970.29c09fe9d: * Install qemu-hw-display-virtio-gpu in openqa-bootstrap- Update to version 4.6.1610631324.09c27b628: * fetchneedles: Do a quiet git reset to avoid log spam * Dependency cron 2021-01-14 * Stabilize test coverage of 27-plugin_obs_rsync_status_details.t * Document further systemd units for the worker * Allow skipping generation of PDF documentation- Update to version 4.6.1610476848.0a2eee8d6: * Support filtering specified minion jobs * Cleanup test code * Clear any uncommitted changes that would prevent a rebase * Dependency cron 2021-01-11 * Dependency cron 2021-01-06 * Generalize "docker" path in source to "container"- Update to version 4.6.1609567691.181f02eda: * Install qemu-hw-display-virtio-gpu-pci in openqa-bootstrap- Update to version 4.6.1609206039.6c302d51d: * Catch unhandled output in `t/24-worker-overall.t` * Move logging exit signals into worker module * Allow stopping worker so it still finishes assigned jobs * Skip all assigned jobs when worker receives SIGTERM- Update to version 4.6.1608723884.96c04b5b4: * profiles: Add examples for "site-specific" apparmor profiles extensions * profiles: Add apparmor profile if openqa-cli is called under apparmor itself- Update to version 4.6.1608562438.b02a47dac: * t: Prevent unreliable coverage report on sleep line * worker: Fix clearing current error on status updates when idling- Update to version 4.6.1608227660.f87d0124e: * Override TERMINATE_AFTER_JOBS_DONE setting from environment variable * Consider sleep in `unstable_worker` uncoverable * Remove unused test helper 'standard_worker' * Test case when setting up pool directory during availability check fails- Update to version 4.6.1608163990.9004bc4cf: * t: Refactor and mark multiple test modules for 100% statement coverage * t: Use more concise one-line Selenium WDKeys init as well * t: Use more concise one-line Selenium driver initialization (2nd) * Refine check for error message about immediately pruned assets * Improve logging of availability error to show retry interval * Dependency cron 2020-12-16 * Ignore openqa-worker-cacheservice-minion ignoring invalid args * Workaround broken top-level help in Mojolicious 8.67 * Avoid using deprecated Mojolicious functions * Avoid worker from appearing stuck (e.g. not reacting to SIGTERM) on cache check * Add openqa-worker-auto-restart@.service to apply worker updates automatically * Combine sed commands used to install openqa-worker-no-cleanup@.service * Allow configuring the worker to terminate after all jobs have been processed * t: Fix coverage of separate process in 25-cache-service.t * t: Increase statement coverage ratio in 25-cache-service.t * t: Delete unused function _port in 25-cache-client.t * Document configuring automatic cloning of incomplete jobs * Clone incompletes caused by cache service errors automatically * docs: Explain the concept of "carry-over" better- Update to version 4.6.1607368100.ab9d59cad: * Fix reading config for custom job hooks following 6cf76ae8b * Clarify caveats with custom job hooks after 6cf76ae8b * Extend tests for asset caching to cover more error paths * Distinguish different types of setup failures * Fix web UI container script in basic execution * t: Reuse "collect_coverage_of_gru_jobs" to reduce duplication- Update to version 4.6.1607108258.175f03ea7: * Add possibility to call custom hook scripts on "job done" based on result * t: Add full schema init+upgrade cycle test * script: Add command line options to override script dir in initdb/upgradedb * Schema: Allow to override schema version for testing purposes * Improve 404 page * Dependency cron 2020-12-04 * load_templates: Use ref instead of reftype to avoid Perl warning * cache service: Remove creating/dropping table to test database * Ensure proper return values in OpenQA::Schema::Result::Jobs::carry_over_bugrefs * t: Delete redundant, uncovered INT handler in 25-cache.t * t: Fix coverage of separate process in 25-cache.t * Test whether worker still accepts jobs when a configured web UI is offline * Simplify 'view' method in WebAPI::Controller::Step- Update to version 4.6.1606933510.bed89ec4d: * docs: Add Code style suggestions, in particular for use statements * Dependency cron 2020-12-02 * t: Fix local execution of 16-utils-runcmd depending on filesystem layout * t: Use fixtures explicitly in more tests to speedup runtime * Don't try to use return value from run function as exit code * Simplify OpenQA::Worker::_handle_client_status_changed * Fix description in 404 page for table APIs * t: Add specific fixture list for t/05-scheduler-restart-and-duplicate.t * t: Slightly simplify 33-developer_mode.t * Correct redundant newline in log_info in GRU- Update to version 4.6.1606497673.f3348bd43: * docs: Mention Dockerfile based container prominently * docker: Fix worker Dockerfile scripts permissions * cache service: Use DELETE journaling mode by default * client: Fix warning "Wide character in print" * Remove obsolete websockets module property "worker_status" * Mark exceptional websocket error handling as explicitly untested for coverage * Prevent line break in OpenQA::WebSockets with simple variable reuse * Delete likely not needed periodic worker status table reset * Fix UI build bar alignment broken on index page * t: Fix flaky/incomplete coverage in 05-scheduler-full with uncoverable statements * worker cache: Simplify error handling for uncovered, exceptional cases- Update to version 4.6.1606233578.6a2b83747: * cache service: Allow setting the SQLite journaling mode * cache service: Fix workaround for deleting broken database * Revert "Enable strict merge on Mergify" * Use TimeLimit from os-autoinst-common to get OPENQA_TEST_TIMEOUT_DISABLE * Dependency cron 2020-11-24 * systemd: Prevent error reports in journal of openqa-auto-update service * docker: Simplify worker Dockerfile with executable scripts * git subrepo clone (merge) --force git@github.com:os-autoinst/os-autoinst-common.git external/os-autoinst-common * worker cache: Also cleanup "*-shm" and "*-wal" files belonging to sqlite * worker cache: Try to prevent any process accessing still malformed database file handles * worker cache: Prevent hiding errors due to repair attempts in corrupted database- Update to version 4.6.1606027318.501936756: * Dependency cron 2020-11-22- Update to version 4.6.1605907861.e25dcaf93: * Partially revert "circleci: Strip down base image to prevent "cache" jobs failing" due to failures * Increase timeout of developer mode fullstack test (needs 56 seconds locally) * Add git email address for dependency bot * cache service: Do not perform re-indexing within a transaction * parse_url_settings: don't parse value for non-asset types * parse_url_settings: improve filename parse check * Don't set FOO from FOO_URL if FOO is defined but false * Handle placeholders after parsing _URL settings * cache service: Avoid throwing away database needlessly * circleci: Strip down base image to prevent "cache" jobs failing * cache service: Use defaults/property to store service PID / exit code * cache service: Simplify override for `reply.exception` helper * cache service: Stop server manager when preforking on exit after db error * cache service: Consider 'no such table/column' errors critical as well * cache service: Stop service after a critical database error * cache service: Extend checks for broken database * cache service: Move database repair to its own function * cache service: Have a reference to the cache model within the downloads model * Docker: Fix worker Dockerfile to be buildable on OBS * Makefile: Do not retry fullstack tests * .gitignore: Add current temporary files from tests * t: Mark all left uncoverable statements in OpenQA::SeleniumTest * t: Delete unused and uncovered function OpenQA::SeleniumTest::make_screenshot * t: Mark uncoverable statement in OpenQA::SeleniumTest * Remove log/ and log_test_postgresql from .gitignore which can confuse developers * Move .spec file to "dist/" as in os-autoinst and is common * Docker: Fix web UI Dockerfile to be buildable on OBS- Update to version 4.6.1605530208.6b910f3fc: * Use consistent "auto-update" instead of "auto-ugrade" * systemd: Fix wrong ExecStart path in openqa-auto-upgrade * docker: Fix web UI Dockerfile-lb to be buildable on OBS- Update to version 4.6.1605294814.ed6415c5a: * Show parent group name and id when getting job details * coverage: unconditional finished_handled timeout * Make message about clone error unique * Dependency cron 2020-11-13 * t: Bump timeout of 44-scripts.t after we test more scripts * Only install openSUSE specific files on openSUSE * docs: Add documentation for auto-upgrade systemd timer * docs: Order authentication sections in summary same as in text * docs: Fix level of authentication subsections * Add systemd timer for automatic system upgrades and reboots * Makefile: Simplify systemd service setup * Consider finalize jobs successful if the openQA job does not exist * cache service: Avoid purging assets which are currently being downloaded * docker: Simplify 'gzip ... | grep' to 'zgrep' * Adapt codecov target to current coverage of 95% * Delete old left-over db.sqlite file * .gitignore: Delete obsolete full-stack.d entry- Update to version 4.6.1605128979.b3fd45d8c: * Docker: Fix kvm-mknod script in worker container * docs: Fix documentation for "PARALLEL_CANCEL_WHOLE_CLUSTER" * Dependency cron 2020-11-10 * docker: Ask to not squash base image layers to fix circleCI download * cache service: Exclude currently downloaded asset from the cleanup * Cover much longer web UI unavailabilities in the cache service client * Remove infinite timeout the downloader test * Cleanup list concatenation in OpenQA::Worker::Job * Simplify OpenQA::Worker::Job::_stop_step_4_upload with turned around if-condition * Slightly simplify OpenQA::Worker::Job::_format_reason with ternary op * Dependency cron 2020-11-09 * Revert "worker: Use WORKER_HOSTNAME instead of real hostname" * t: Bump 01-compile-check-all.t timeout based on local execution runtime * Reduce execution time of t/25-downloader.t- Update to version 4.6.1604650398.c9956d642: * Revert "No empty IOLoop timer for 5 second wait" to fix current test failures * Speed up 25-cache.t * clone script: Allow cloning child jobs as well * docker: Improve complete README document * docs: Simplify the curl based bootstrap instruction * Retry on rsync error code 10 * Fix kvm-mknod.sh shellcheck * Add an easy way to run a pool of workers * FullStackUtils: More generous wait on developer console * Increase the performance returning the assets for the UI * Extend web UI docker setup to use nginx/docker-compose * Fix 16-activity-view.t to work locally and on Circle CI * activity view: Request events ordered by event ID- Update to version 4.6.1604426047.91baf7934: * Docker: Fix worker dockerfile * Makefile: Add back retries for full-stack.t after sporadic failure * t: Remove unused debug code to ensure 100% statement coverage in 34-developer-mode-unit.t- Update to version 4.6.1604127002.7df8de5ee: * Return wait_for_element based on the element * No empty IOLoop timer for 5 second wait * docs: Explain that test runtime limits are automatically scaled * Dependency cron 2020-10-30 * The cache service will now try to recover from corrupted SQLite files during startup * Add test for help popover next to "Submit comment" button * Speed up t/ui/15-comments.t * worker: Use WORKER_HOSTNAME instead of real hostname * Prevent failed 'finalize_job_results' Minion jobs for skipped jobs * Add descriptions for all checks in subtest 'finalize job results' * Fix help popup next to "Submit comment" * Dependency cron 2020-10-28 * Deprioritize jobs with broken directly chained dependencies * scheduler: Handle cycles in directly chained dependencies- Update to version 4.6.1603819052.0daa7dd96: * Dependency cron 2020-10-27 * t: Workaround for faulty JSON::Validator error handling * Avoid unhandled output in 26-controllerrunning.t and 31-client_archive.t- Update to version 4.6.1603626328.c21bec508: * spec: Exclude flaky 01-test-utilities.t from OBS checks * Avoid unhandled output in `t/25-downloader.t` * Prevent unhandled output in `t/14-grutasks.t` * Speedup `t/ui/10-tests_overview.t` * Stabilize and speedup `t/ui/16-tests_job_next_previous.t` * Show "link to overview fixed to the current time" and "link to latest jobs" * Add timestamp parameter to test overview to show only jobs older than that * Bump base OS version to Leap 15.2- Update to version 4.6.1603294467.b176715be: * Retry when rsync error code is 23 * branding: Set "blocker" flag automatically in bugzilla bug reports * Fix tour * Improve feature tour test * Add validation to feature tour route and actually respond- Update to version 4.6.1603211536.4498c99a4: * Scale timeout in t/01-test-utilities.t to prevent failures observed on OBS- Update to version 4.6.1602859323.3f1131b1b: * Document configuration of worker package diff * Test archive cli command options * tour: Introduce the activity view * Handle unknown options consistently with Mojolicious 8.63 in openqa-cli * Ensure all scripts exit non-zero in case of invalid parameters * Enable strict merge on Mergify * Dependency cron 2020-10-14 * Add testcase "failure" (singular) to XUnit parser * Mark full-stack.t as stable and faster after recent stabilization- Update to version 4.6.1602630091.729fcbe41: * Dependency cron 2020-10-13 * Fix wrong firewalld command in documentation * tools: Revert change f3b5dd95c that never fully worked- Update to version 4.6.1602412783.03de4fa69: * Dependency cron 2020-10-10 * docs: Update contribution hints for package impact * Use a worker with fast local host uploads and without in full-stack tests * Enable faster localhost uploads by default * Merge Jobs::deps_hash with dependencies * Add a personal activity view based on audit events * t: Reduce timeout of t/44-scripts.t again after stabilization * Dependency cron 2020-10-09 * Add simple "--help" test for all shell scripts in scripts/ * Try to fix instability in comment update detection * ci: Try to avoid common download problems with a different time of day * Improve coding style in render.js * Fix warnings in render.js shown by jshint * Fix details rendering if template snippet not available * ci: Retry on temporary zypper repository refresh problems * tools: Make 'retry' actually retry 3 times by default * ci: Use same zypper prio levels as in documentation for consistency * t: Remove obsolete test job database entry in all initializations * ci: Bring back error context in log view as well as show unhandled test output * Dependency cron 2020-10-06 * spec: Enable tests on Leap as well to prevent breakage on known supported versions * t: Bump timeout for t/api/04-jobs.t * Fix formatting error messages of download task * Fix check for existing assets if multiple asset destinations are specified * Prevent scheduler from assigning jobs while download tasks being created * Improve coding style for code related to enqueuing download jobs * t: Bump timeout for 44-scripts * t: Fix missing 'use lib' in 44-scripts.t * spec: Use higher timeout for tests within OBS due to performance fluctuations * t: Reduce back the test module specific timeout limits * Extract trivial _distri_key helper in OpenQA::Schema::Result::ScheduledProducts * Configure a timeout for javascript in webdriver * Handle services being stopped explicitely during tests * Add test for catching warnings in sub processes during tests * Catch Perl warnings in spawned workers as well * Fail tests when a Perl warning within a sub process occurs * t: Catch unhandled output in t/14-grutasks.t * t: Extract helper for client user agent initialization * t: Reuse existing schema variable in t/api/04-jobs.t * t: Simplify ui/17-product-log.t * Tweak test timeouts for full-stack- Update to version 4.6.1601184375.8f2898f37: * t: Optimize t/11-commands.t further with no database at all * t: Optimize t/11-commands.t by not relying on fixtures * t: Simplify connection to database in t/11-commands.t * t: Prevent redundant newline in log_info call * Fix warning in controller for workers table * docs: Add section about "Test runtime limits" * t: Add scaling parameters for OpenQA::Test::TimeLimit * Add specific error message for premature asset cache pruning * Make 'deploy' a real method * Improve name of method 'deployment_check' to prevent confusion * Tweak test timeouts for full-stack * t: Remove unused and useless 'skip_deployment_check' * Test clickable audit events * Render links to items in the audit log * t: Completely remove unused schema_hook functionality * t: Replace all schema hooks by more simple schema updates * t: Use more concise one-line Selenium driver initialization * Fix showing preview of modules rendered while the test was running- Update to version 4.6.1600793800.39e28c975: * Simplify code of function to cancel a job * Allow cancelling assigned jobs like scheduled jobs and prevent restart * Avoid duplicate force parameter when restarting jobs * Avoid worker assumed to be offline from interfering when it comes back after all * Speed up t/24-worker-overall.t by mocking the cache service client * t: Bump timeout for compile check * t: Bump timeouts of recent failure api/08-jobtemplates.t and api/14-plugin_obs_rsync.t * t: Bump timeouts of recent failures * Improve feedback of fullstack test in case of failures * t: Prevent duplicate test database initialization * t: Delete redundant copy-paste from 28-keys_to_render_as_link.t * t: Simplify and stabilize t/ui/13-admin-no-login.t * Fix id of products table in HTML document * t: Bump timeout for t/api/02-iso.t after recent failures in circleCI * t: Go back to previous time limit for 05-scheduler-full due to failures * t: Remove unreliable check for t_seen from t/04-scheduler * Try to stabilize 04-scheduler.t- Update to version 4.6.1600510794.174d32cb4: * ci: Prevent too early circleci timeout on no output * t: Add OpenQA::Test::TimeLimit to all test modules where applicable * Avoid restarting jobs which have a directly chained parent by default * scheduler tests: Take t_seen from the database * Makefile: Fix evaluation of failing unstable tests * Use wait_for_or_bail_out in fullstack test * Show changes between packages of openQA worker machines in investigation * scheduler: Provide help to users early to prevent failing later on misconfigurations * Allow scheduler to enqueue finalize jobs tasks when marking stale job as incomplete * Support finding job template by test suite name * Include t/ in our code coverage to prevent test coverage loss * Make schedule_one_job a wait with a timeout * t: Set time limit for 33-developer_mode.t * Re-schedule all assigned jobs in periodic stale job detection * Reduce worker timeout from 2 days to 30 minutes * Make the timeout to consider workers offline configurable * Allow testing with an app which has no log * Be sure to stop services after cache service tests * Tweak 18-test-details.t further * Strip down the number of test modules used within 18-test-details.t * Fix rendering tooltip "undefined" for expanded serial result boxes * Test rendering job modules when no modules are present when loading page * Fix showing job modules within details table of running jobs- Update to version 4.6.1600233111.d1ffb1b7d: * Dependency cron 2020-09-16 * Change auto-refresh selector * Make duplicate keys in Job Templates fatal * Revert "ci: Temporarily exclude broken OBS checks" * Add TimeLimit to more unit tests * Block related jobs when doing 'isos post' * Always emit jobtemplate_create with an ID- Update to version 4.6.1599905977.4ef824600: * Dependency cron 2020-09-12 * Use the new helper for all waits * Lower test cache service timeout and fail hard * Check option existence in developer_mode test * Show correct "last seen" time in case the worker disconnects gracefully * Remove 'Alive:' and 'Websocket connection:' info from worker page * Test whether scheduler preserves the "last seen" tracking for workers * Fix worker's online/offline status * Return results if the limit is hit * Search job templates by test module name * Use URLSearchParams instead of jQuery foreach * Lookup single product ID w/o parsing all args * Make use of query params in admin datatables- Update to version 4.6.1599827045.d7efb6eaa: * ci: Temporarily exclude broken OBS checks * Update to perltidy 20200907 * Surface errors from failed test tries * docs: Add simple hint about sass * Makefile: Prevent "make help" outputting make variable definitions * Introduce 't_seen' column to be able to fix worker's online/offline status * ci: Use more common 4-digit year format for dep id * Improve displaying serial results * Dependency cron 200908 * Use patterns for keys of the settings which rendered as links * Implement test case for show_filesrc controller * Implement feature in the settings with links in files * Select 'Found by' when creating new bugs in bugzilla * Dependency cron 200907 * Skip empty details JSON files when finalizing jobs- Update to version 4.6.1599223479.ee2fc8e22: * Import log_error used when removing asset from disk fails * Always emit table_create with an ID * Fix an issue when PRODUCTDIR includes specific word- Update to version 4.6.1599154152.074365e18: * Add generic phrase to 'died' reason if there's no more information * Fix tools/tidy * Treat as success when schedule_iso() cannot find product-arch combination * Emit worker_register event w/o caps or job ID's * Replace tools/update-deps with symlink to subrepo * Add external/os-autoinst-common subrepo * Unify code for displaying test modules * docs: Align gre tunnel script with real use case * Extract duplicate common worker result files definition * Render serial results inline when collapsed * Improve coding style in t/04-scheduler.t * Surface scheduled product not found in the web UI- Update to version 4.6.1598884221.1f13f38a9: * Add missing exit call to openqa-cli * Dependency cron 200831 * Fix nightly dependency checker * Display serial results similar to external parser results * Remove unused PNG icons * Simplify insertion of preview container within test details page * Emit jobgroup_create/update with an ID * Refactor tools/tidy * Refactor searching perl modules and job templates- Update to version 4.6.1598626423.017efa727: * Bump max_redirects in OpenQA::Downloader to 5- Update to version 4.6.1598542474.92e6c60c3: * Use find in find_most_recent_event to only get one result * Revert "Downgrade chromedriver to fix running Selenium tests within CI" * Fix scheduling directly chained dependencies when not all children restarted * Improve scheduler code (log messages, more compact style) * Deduplicate test distribution listings in search * Search job templates by name or description * Add IPv6 support for localhost uploads * Make localhost uploads from worker to webui faster * Fix PRODUCT issue when trigger a particular job * Add gru download assets by using job settings * packaging: do not abuse %{_libexecdir} for systemd directories * Merge module search results from the same file- Update to version 4.6.1598001550.b38db760a: * Dependency cron 200821 * Fix JavaScript warnings detected by jshint * Add example for restarting a job in help of client * Show the real dependency status on the web UI * Improve coding style in code for test overview row * Use data attributes to render dependency info in test result overview * Fix 'Use of uninitialized $filename' in search API- Update to version 4.6.1597912216.78e1dbb92: * Dependency cron 200820 * Omit files in the test root from test search * Make openqa-cli set a non-zero exit code on failures * Dependency cron 200818 * Make global search more responsive * Implement test search route and results view * Improve error messages when cloning a job * Simplify `can_be_duplicated`- Update to version 4.6.1597409476.5b230be31: * Streamline "duplicate" and "restart" routes * Do not hard-code source tree for API descriptions- Update to version 4.6.1597317239.6bef59ee4: * Dependency cron 200813 * Fix support for multiple params with the same name in api command * Add tests for GNU style arguments * Reduce number of fixtures loaded by several tests * Refactor t/05-scheduler-dependencies.t * Speed up cache client tests by mocking sleep * Rename skip_passed_children to skip_ok_result_children * Don't cancel directly chained parents/siblings as well * Add test for skipping passed child jobs when restarting a parent job * Update documentation of restart behaviour * cloning/restarting: Consider job failed if one of its children failed * Fix rendering dependency graph in some cases * Allow skipping passed children when restarting a job * Add retry feature to cache service client * Highlight dependency jobs in the overview page- Update to version 4.6.1597138547.40c3d2c81: * `make test-with-database`: add -I$(PWD)/t/lib back to PERL5OPT- Update to version 4.6.1596790814.ca2af820f: * Replace custom implementation of expiring jobs with Minion feature- Update to version 4.6.1596727008.bebda9b71: * Remove dead code from Job controller * Dependency cron 200806 * Dependency cron 200805 * Use CMake to build os-autoinst- Update to version 4.6.1596190499.d88f85256: * Dependency cron 200731 * Add test for API keys UI * Allow adding API keys without expiration date via the UI * Improve code for API keys page- Update to version 4.6.1596119585.a5800f1aa: * Prepare using CMake and ninja to build os-autoinst * Allow the worker to start ffmpeg to encode the video * Show job dependency on the Test overview page * Dependency cron 200729 * Make a few small optimizations to speed up the deletion of screenshots- Update to version 4.6.1595658530.ccadcf580: * Dependency cron 200725 * Add .jsbeautifyrc for editor support * Fix "last good" link introduced in 8fc2dc99a * Specify timeout for timeout to send KILL signal * Make prove aware of timeout- Update to version 4.6.1595521154.aa29e2427: * Add help popover for restart button * Allow skipping parents when restarting a job via API * Clone directly chained parents when restarting jobs * Improve error message and coding style when cloning a job * Fail Makefile targets if checks for certain tools fail * Add "tidy" make target calling Perl and JavaScript tidy * Make "last good" a link to a job instead of plain job ID * Render the dependency graph only while the tab panel element is visible * Avoid overriding explicitly specified tab/step when loading running jobs * Fix qcow image URLs being treated as text * t: Add test for content-type of qcow2 image * t: Delete obsolete disabled content from ui/07-file.t * t: Simplify 07-file.t using more Mojo::File * t: Add test for content-type of log archive and ISO media as well * t: Minor enhancements to comments * t: Move 'wait_for_worker' to only place where used * Allow to configure worker connect interval using env variable- Update to version 4.6.1595305429.43f8dce53: * Dependency cron 200721 * Use inclusive terminology "blocklist/passlist" * spec: Save time in package build tests * Add js-beautify checks and convenience make target * Tidy all javascript files with js-beautify (default config) * spec: Delete superfluous prove flag already included in PROVE_LIB_ARGS * Delete obsolete OBS_RUN variable assignment- Update to version 4.6.1595016885.fd322f928: * Add UI support for removing users * Add docs how to set the --no-cleanup parameter in the systemd units- Update to version 4.6.1594892785.5a3073ffd: * openqa-clone-custom-git-refspec: Fix curl+jq check for jq < 1.6 * Dependency cron 200716 * Fix user creation in OAuth2 plugin * Dependency cron 200715 * Improve code for collapsing investigation details * Collapse content of in investigation when content is too big * docs: Extend Networking chapter to cover non-qemu in general * docs: Fix and improve networking sections- Update to version 4.6.1594640971.bf4138e4b: * spec: Exclude flaky t/api/14-plugin_obs_rsync_async.t from tests * doc: Add hardware recommendations * mergify: Wait for OBS Package Build as well after we have it back * spec: Fix build missing "devel" package * spec: Prevent unresolvable on ppc64le with no-selenium-devel subpackage- Update to version 4.6.1594309120.bdb02d947: * deps: Fix nightly dependency bot job * Convert line endings .circleci/ci-packages.txt * worker: Allow video encoder to finalize the file * Improve appearance of custom time filter in needles table * Dependency cron 200708 * deps: Update Mojo-IOLoop-ReadWriteProcess * Remove obsolete jobs table column 'backend' * mergify: Add additional automatic merge on special label * mergify: Only merge automatically when there are no pending reviews * deps: Copy update-deps from os-autoinst * Expand the search range in used/match when querying needles * Test clone_job_get_job and error messages * Update Perl::Tidy to 20200619- Update to version 4.6.1594050210.78188dc41: * systemd: Prevent worker erroneously pulling in any local openQA webUI service * Add perl-Mojolicious-Plugin-OAuth2 dep * Document how to configure OAuth 2.0 * Capture output of Fake/OpenID cases and use tempdir * Add OAuth2 auth method with GitHub provider * Narrow down fixtures needed by toplevel tests- Update to version 4.6.1593790150.a010576f0: * Handle the case where a concurrent cache service Minion job failed gracefully * mergify: Also block merge on selected labels * Handle the case where the first cache service Minion job failed gracefully * deps: Make cpanfile targets configurable * openqa-clone-custom-git-refspec: Enhance error message when called with wrong certificates * Fix showing help for commands loaded via plugins- Update to version 4.6.1593683888.1074bc933: * .circleci: Rename dependencies.txt to describe the actual use case * Simplify code for reading JSON files * Test OpenQA::CacheService::Client status functionality * Add a job summary into the detail page * Extract renderTestSummary as a common helper to print the job summary * Test OpenQA::CacheService::Client info functionality * Test OpenQA::CacheService::Client enqueue functionality * Be more defensive and forward all cache service errors * Handle all cache service client errors consistently * Pass along cache service enqueue errors so they can be logged by the worker * Dependency cron 200701 * Copy update-deps script from os-autoinst * Narrow down fixtures needed by api tests- Update to version 4.6.1593514767.bedf7a0de: * Avoid errors when serving job module results while they have just been finalized * Update documentation regarding dependency handling * Skip reading text files when reading job modules for label carry over * Make details JSON globally readable when finalizing job module results * Improve tests for finalizing job results * Improve gathering job module results * Simplify and improve code for finalizing results to optimize job details loading * Add minion task to remove duplicate result text files * Unify test module text output loading * Optimize job details loading with empty disk cache * Narrow down fixtures needed by ui tests * script: Slightly simplify create_admin script- Update to version 4.6.1593255831.e90b9f499: * Dependency cron 200627 * Reduce common fixtures used in api/04-jobs * mergify: Provide hint when a conflict is present * mergify: Be safe by waiting explicitly for codecov as final check * mergify: Ensure also no open request for changes * README: Fix circleci badge to master branch * Mergify: configuration update * Downgrade chromedriver to fix running Selenium tests within CI * docu: Fix href of JobGroupDefaults.pm because of a7fb32a * overview: Show version when DISTRI differs- Update to version 4.6.1593091364.60cb15b8d: * Remove versioned chromedriver install again * Fix running Selenium tests within CI * Improve wording in Docker/CI-related documentation * Improve Docker/CI-related documentation * Use relative path in test-with-database target so it works easier within Docker- Update to version 4.6.1592865598.88eb8f02c: * Increase version requirement for some dependencies- Update to version 4.6.1592454623.560f44635: * Prevent schedule from being reread unnecessarily * Fix order of arguments in script/openqa-worker-cacheservice-minion * Fix logic for changed schedule * Reset locks when restarting the cache service Minion worker * t: Attempt to fix sporadic timeout in basic.t in circleci * Attempt to fix sporadically missing test modules due to 0d1061af- Update to version 4.6.1592287553.6689377a6: * Dependency cron 200616 * Update logo.png to the new SUSE logo- Update to version 4.6.1592022958.c44fca22c: * Dependency cron 200613 * Allow flock on temporary files to fix support for monitoring with Mojolicious::Plugin::Status * Add error message when openqa-clone-custom-git-refspec is called on invalid job- Update to version 4.6.1591782003.8d14b8990: * Mark flaky t/ui/26-jobs_restart.t as unstable * Allow OpenID login via POST request- Update to version 4.6.1591699942.8543386ed: * Dependency cron 200609 * Add notes about arbitrary reasons * Remove out-dated comments; stopping will no longer be delayed as stated * Use newly introduced constants for worker commands and stop reasons * Improve dealing with worker commands and stop reasons * Add missing copyright header in constants modules * Remove stop type 'scheduler_abort' which is not used anymore * Improve coding style in set_running * Prevent Perl warning in downloader code * Improve UI for selecting the display order of builds * Select interval checkbox for interval from query parameter if applicable * Improve wording in the index page form, mainly to improve consistency * Improve coding style in JavaScript/CSS/template files * Avoid accumulating `comments_page` query parameters when using pagination * Fix typo in pagination code * Add autorefresh in the index page (#3141) * Maintain pagination when an user role changes * Fix pagination in the group overview page * Dependency cron 200605 * Turn two schema functions into methods * Hide livestream when loading test details and job is currently uploading * Update out-dated comment; the image upload is async via Mojo::IOLoop->subprocess * t: Use Test::MockModule->redefine in t/28-logging.t * Only reload test schedule when test_order.json has been changed * Make restart button work again after the job state changed * Dependency cron 200604 * t: Allow to configure amount of unstable/rejective workers in 05-scheduler-full.t * t: Simplify worker startup in 05-scheduler-full with map * t: Improve test description strings in 05-scheduler-full * t: Fix warning in 28-logging.t with strict MockModule and Test::Warnings * Extract methods for "ignore_known_images" and "ignore_known_files" in Worker::Job * Simplify Worker::Job slightly * Remove unnecessary single-line step in Worker::Job * Use the more idiomatic ->find instead of ->single * Replace duplicate method OpenQA::Schema::Result::Workers::to_string * Delete unnecessary pre-declaration of log_warning in OpenQA::Log * Generalize handling the video * Remove dead code from OpenQA::WebAPI::Plugin::ObsRsync * doc: Improve virtio/svirt serial terminal docs * Fix tests on OBS when "ps" is not installed * Use :report_warnings feature of Test::Warnings * Mark "25-cache-service.t" as unstable test as observed in circleci * Mark old issues and pull requests as stale * Extract methods for "ignore_known_images" and "ignore_known_files" in Worker::Job * Simplify Worker::Job slightly * Remove unnecessary single-line step in Worker::Job * t: Fix "Dubious, test returned 9" in 05-scheduler-full.t * t: Fix unstable test 'Allocated maximum number' in 05-scheduler-full * t: Sleep only when necessary when waiting for worker * t: Fix sporadic test failures on mis-assignment of jobs in scheduling * t: Increase robustness of 05-scheduler-full with reduced scheduler tick * t: Prevent use of occupied port in all full-stack/scalability tests * Makefile: Bump timeout limit for various tests for slow circleci * t: Provide unique process name for worker in scalability test as well * t: More cleanup in t/05-scheduler-full.t- Update to version 4.6.1591092399.b9fb68988: * t: Make output nicer on time limit * Dependency cron 200601 * Avoid stopping the live log when the worker already works on different job * worker: Keep uploading results until logs and assets have been uploaded * worker: Log every 10th uploaded chunk to autoinst-log.txt as well * Keep 'live' tab shown while uploading for improved feedback * Avoid rendering 'live' tab when job is already done * Update comments in worker function _upload_result * Fix style issue in running.js so jshint shows no errors * Do not shadow $errors in utils-job-templates test * Capture base_state.json JSON error warning * Add '--merge' option to prove * Show an explicit warning when failing to wakeup scheduler * Prefetch parent job in JobModules::job_modules() * Capture screenshot created message in screenshot test * Dependency cron 200529 * t: Make process handling more robust with IPC::Run * Log errors when claiming OpenID identity * Fix visual artifact in audio result box * Use named tempdir in cli archive unit test * Add documentation for MAX_JOB_TIME taking ab743579 into account * Validate parameters passed to job API routes * Add link to latest test in ObsRsync Project list (#3052) * templates: Simplify calculation of build bar results with 'total' value * t: Use OpenQA::Test::TimeLimit in basic.t for a start * Add "by groups name" as option to organize the builds in parent group overview * t: Add test module to check for test runtime * t: Extend 28-logging.t to cover color codes * Define custom log color selection compatible with reverse video terminals * Slightly simplify OpenQA::Log * Add colors to log output when available * Enable NOVIDEO for jobs with increased MAX_JOB_TIME by default * Move computing max job time into own function and add tests * Job templates: Return full error message for invalid YAML * t: Simplify basic.t * t: Output port for scheduler service as well * Improve debug message for job-worker assignment * t: Add trivial test for OpenQA::Log::get_channel_handle coverage * t: Simplify stdout matching in 28-logging.t * t: Fix warning "Prototype mismatch: sub Time::HiRes::gettimeofday" * t: Fix a sporadic problem in 05-scheduler-full about jobs assigned to dead workers * Delete unused import in WebAPI::Controller::API::V1::Worker * Delete obsolete TODO in worker schema implementation * DRY in name/to_string within worker schema implementation * t: Provide unique process name for all forked processes * t: Use IPC::Run for gru service in t/api/14-plugin_obs_rsync_async.t * t: Simplify sleep, retry and loops in t/api/14-plugin_obs_rsync_async.t * t: Output port for websocket server same as we do for webapi * t: Ensure unavailable websocket server is seen by throwing exception * t: Sort external imports first in 43-scheduling-and-worker-scalability.t * Simplify use of Test::Output with bare blocks rather than sub refs * t: Delete obsolete/disabled code in api/04-jobs.t * Render job module results on client side * Job templates: Escape dot in regex * Try using exclusive locks explicitly to prevent SQLite file corruption * Move remaining clone job functions into CloneJob module- Update to version 4.6.1589882993.dd2749ac3: * update-deps: Fix script path * Depend on Mojolicious 8.42 for session security fixes * Pass the first line of an os-autoinst multi-line error instead of discarding it * worker: Improve retrieving extended reason from os-autoinst * t: Catch all output in config.t * spec: Move configure-web-proxy to web UI package where it is needed * Dependency cron 200517 * Improve coding style in t/ui/18-test-details.t * Fix showing needle info when symlinks are used * Show candidate needle's last match/seen in the needle diff view- Update to version 4.6.1589554725.a1ad83f83: * Allow hidden keys in job template YAML * Return error when creating a needle only contains ocr area * Do not share controllers as base classes between micro services * Move actions and helpers used by multiple micro services into the OpenQA::Shared namespace * Remove more dead code * WebAPI needs the developer controller * Remove unnecessary referer check * Separate OpenQA::LiveHandler and OpenQA::WebAPI code a bit more * Add help for 'fetchneedles', 'openqa-bootstrap', 'openqa-bootstrap-container' * Add '--help' for script/configure-web-proxy- Update to version 4.6.1589385688.c7582131b: * Stabilize 25-cache-service.t using Time::HiRes * docs: Describe the possibility for cloud instances explicitly * t: Extract 'start_worker' method to reduce duplicate code * Dependency cron 200513 * t: Delete unused 'stop_worker' in 33-developer_mode.t * t: Prevent perl warning when 05-scheduler-full fails * Remove references to Test::More::Color not adding benefit * Mark unstable/flaky t/ui/27-plugin_obs_rsync_status_details.t as such * Add MicroOS bug reporting URL * Makefile: Bump timeout for 't' for accepted slow runs- Update to version 4.6.1589279446.c80b4132b: * Simplify test code in generating jobs settings * Fix dynamically deactivating tabs in test details * Fix returning result of finished job * Decrease polling interval of web socket console to potentially speed up tests * Ignore further JavaScript errors to reduce number of false-positive tests * systemd: Get rid of obsolete dependency of worker on apache2 * t: Add possibility to overwrite full-stack temp dir for easier debugging * Avoid additional white-spaces in job settings table * Test scheduled products search * Provide CPU flags on worker information for debugging CPU instruction support * Make scheduled product IDs in the table links * Allow showing scheduled product results when not logged in * Tweak styling of scheduled products table * docs: Add various hints for saving time in local tests * t: Improve t/32-openqa_client.t * t: Enhance test messages in t/32-openqa_client.t * docs: Delete duplicate mention of 'tidy' * Add '--help' for tools/tidy * t: Change javascript_console_has_no_warnings_or_errors to only output once * Dependency cron 200510 * setup-db: Prevent 'could not change directory' warning * Write JS code for audit and product log in a more compact way * Add link from test details to scheduled product page * Show all scheduled products in the web UI * Show scheduled product on test details page * Avoid repeated calls to $job->clone_id * Fix the issue `_URL` in jobs post is different from that in isos post- Update to version 4.6.1589026701.ed65375c3: * Fix missing mojo mode in scheduler daemon startup file * docs: Update local docker test usage * Initialize timeago elements correctly when refreshing info panel dynamically * Fix updating SVG favicon (without page reload) * Fix autoscroll checkbox in live log * Dependency cron 200508 * t: Harmonize more test messages in full-stack.t * Try to stabilize ObsRsync unit test during stresstest * Add proxy detect for OpenQA::Client * docker: Use useradd -m (--create-home) * Use defaults already in startup scripts rather than systemd- Update to version 4.6.1588874206.b9aea9c2e: * docs: Update Contributing docs regarding dependencies * t: Remove "sleep 8" in full stack test after stabilization * Remove comments to fix syntax highlighting and unnecessary blank line from fullstack test * Adapt fullstack test to AJAX-based job status updates * Load autoinst-log.txt without page reload in details tab * Fix updating the info panel class and stopping the developer mode * Update favicon on job state transition (without page reload) * Avoid refreshing the whole test details page on job state transitions * Remove debug message leading to "Use of uninitialized value [...]" warnings * Fix get_last_test() in ObsRsync Plugin * Convert DISTRI into lowercase before replacing variables * Dependency cron 200507 * t: Delete obsolete 'full-stack.d' directory * t: Remove unnecessary 't' prefix in temporary dirs * t: Ensure full stack test run has not passed "shutdown" module * t: Abbreviate 'wait_for_developer_console_contains_log_message' for nicer line wraps * t: Properly export functions from Open::Test::FullstackUtils * Use Test::Most instead of Test::More for convenience * Let Mojo::UserAgent deal with WebSocket redirects * Dependency cron 200506 * Fix missing_assets to ignore repos, not 'hidden assets' * Add specific error messages for cache directory unspecified * t: Reduce runtime of 25-cache-service.t with lower sleep periods * t: Add timeout for cache service test internal wait * t: Add more unique test messages to 25-cache-service.t * Add convenience sub-package 'openQA-single-instance' * docs: Mention installation of openQA-worker explicitly * docs: Correct reference to main package as "openQA server package" * docs: Simplify reference to minimum Leap/Fedora version * The exporter is not needed for authentication modules * Improve openqa-validate-yaml * Prevent repeated import attempts in WebAPI::Controller::Session * Use explicit 'return undef' in WebAPI::Controller::Session * Validate job done event * Refactor jobs tests into subtests * Simplify WebAPI::Auth::OpenID * Simplify WebAPI::Controller::Session with early returns * Simplify WebAPI::Controller::Session * Remove unused imports in WebAPI::Controller::Session- Update to version 4.6.1588677155.c96a967f7: * Dependency cron 200505 * Makefile: Fix evaluation for 'test-unstable' as followup to a8537863d * t: Correct cache test wait loop condition in full-stack.t * t: Add wait for UI instrumentation instability in full-stack.t * t: Phrase test message positively to prevent confusion * Use more Mojo::File in t/full-stack.t * t: Use existing dataset as time reference for stability * t: Add test messages to javascript_console_has_no_warnings_or_errors in full-stack.t * t: Fix missing leading double quote in plan skip message- Update to version 4.6.1588418631.c4bd338ae: * t: Ensure all test code is executed in every environment- Update to version 4.6.1588266331.0a51f4d32: * Dependencies: Add Getopt::Long::Descriptive to client deps * Also mention the --verbose option of openqa-cli * Use an endpoint that actually requires authentication for the authentication example * Add another JSON example and fix an error in the authentication section * Mention that MOJO_CLIENT_DEBUG is an upstream feature and the output can change * The openQA REST API uses JSON everywhere now, so content negotiation is not needed * Add openqa-cli documentation * Add back t/ui/01-list.t to "unstable" as not reliable * Makefile: Fix evaluation of 'unstables' * Add Test::MockObject and Test::Exception to test dependencies * Make connection errors more obvious * Fix `TEST` is not replaced when using `isos post` * Add --verbose option to "openqa-cli api" * Add route for latest test outcome in ObsSync Plugin * Revert "Use defaults already in startup scripts rather than systemd (alternative to #2864 with shell wrappers)" * t: Fix 'QEMU_NO_KVM' incorrectly added in QEMU_NO_KVM=1 * Increase proxy timeout * Provide a '--help' option to all our scripts * t: Save 5s test execution time in full-stack.t with smarter timestamps * t: Delete potentially offensive and unhelpful TODO comment * Move existing client script code to a better place- Update to version 4.6.1588072966.ee098707b: * t: Use proper copyright header for OpenQA::Test::Database * Delete obsolete 'check_dependencies' script * Default to HTTPS in openqa-cli * Consistently use openqa.example.com for examples * Update documentation to use openqa-cli * Update openqa-cli usage messages and add --osd/--o3 options * Use openqa-cli in full-stack tests * Remove dead test code * More unicode tests for openqa-cli * Add new openQA client to openQA-client package * Implement openqa-cli archive subcommand * Add user friendly exception handling with color highlighting and pretty printing of JSON * Allow loading the request body and form data from a file * Turn JSON objects into form parameters with --form * Rework JSON handling and set a default Accept header * Allow key/value pairs to be passed as arguments * Move apibase handling to base class too * Use the new license header * Add an archive command to openqa-cli as a first example for extensions * Add basic openqa-cli structure * Allow to overwrite 'worker connect retries' by environment variable * Fix local runs of full-stack test failing on "Content has not changed" * t: Cover test output with Test::Output * Use defaults already in startup scripts rather than systemd * Rename old "slenkins" data to be more generic * t: Try to stabilize t/ui/01-list.t- Update to version 4.6.1587822981.75468e7ef: * Fix exit code returned by client * Rename YAMLRenderer plugin to YAML * Update all overlooked old copyright notices * Add soft failure support for JUnit log parser * Dependency cron 200424 * Fix a very sporadic issue of a wrong comment header applied * openqa-clone-custom-git-refspec: Prevent warning about empty variable * Improve warning about undefined empty arg on clone with quotes * Improve the check for missing assets * tests: deduplicate $schema->resultset('Jobs') in t/15-assets.t * Remove a small race condition in asset tests * Set the machine name before expanding specified variables * Extract duplicated code from generating job settings * Dependency cron 200423 * Check if there is a recent event before returning it * Correct creating directly chained dependencies when cloning job * Extend client test for JSON/YAML output and error handling * Cover client with more tests by extracting methods into lib/ * t: Split out Client::Archive test from generic client test * Add simple test for client script * Slightly simplify script/client * Fix repo in dirty status request in ObsRsync Plugin- Update to version 4.6.1587630471.ceb108926: * Improve tests for job restarting * Allow to force restarting a job via the web UI * Update build_dependencies.sh to work on dependencies.yaml * Run make update-deps * Add t/45-make-update-deps.t * Make an exception for Perl::Tidy * Add tools/update-deps and dependencies.yaml * t: Stabilize and simplify ui/02-list-group.t (again) * Speed up dashboard tests * t: Stabilize ui/02-list-group.t * spec: Sort dependencies * t: Improve test stack reporting by avoiding Test::More tests in helper libs * t: Extract common full stack function "schedule_one_job_over_api_and_verify" * t: Add timeout for loops in full-stack.t * Consider directly chained dependencies when registering assets * Dependencies: Remove commas from requirements in spec * Scripts should return 0 when called with --help * Add test running all perl scripts with --help * Select also script directory in CI * Dependencies: Sort cpanfile * Allow running tests within Makefile despite unclean environment * Return error when error happens in caching assets * t: Speedup full stack test with KVM when available * UI tests: Add message to wait_for_ajax calls * Show test details tabs only via hash if it makes sense for the job state * Add explicit tests for the job's has_* functions * Load test result tabs async on demand- Update to version 4.6.1587416201.4df4ad16d: * Fix load_templates --clean to wipe more than one entry per table * Partially revert t/ui/13-admin.t change * Fix missing import 'log_error' in WebAPI::Controller::Running * t: Stabilize ui/15-admin-workers.t * t: Stabilize ui/27-plugin_obs_rsync_status_details.t * t: Stabilize ui/13-admin.t * t: Stabilize ui/10-tests_overview.t * Remove duplicated line in CSS file * Revert "Extract duplicated code from generating job settings" * tools: Improve output of retry * t: Cleanup nonsensical notes and steps in ui/06-operator_links.t * t: Turn comments of 06-operator_links into explicit test notes * Delete obsolete reference to phantomjs * t: Delete obsolete FIXME * t: Stabilize ui tests waiting for ajax * t: Stabilize ui/14-dashboard-parents.t waiting for build results * t: Use descriptive string in wait_for_ajax rather than comment * Add output of each try in tools/retry * t: Replace busy-loop with small-interval sleep in 25-cache-service.t * t: Make test messages in 25-cache-service.t unambiguous * t: Speedup 25-cache-service.t * Extract method do_asset_caching for easier testing * t: Fix instabilities in ui/01-list.t on accessing /tests * Validate parameter passed to comment API routes * Validate parameters passed to Worker API routes * Cover asset_caching by tests * Pick up extended reason from state file if available * Use Mojo::File correctly in OpenQA::Client::Archive * Fix --with-thumbnails option of client --archive feature- Update to version 4.6.1586954096.7160d88d9: * t: Add test description strings for all 'click_element_ok' calls * docs: Add description of folder structure * Separate all "scripts" to be packaged from development "tools" * t: Allow to set custom test output message on wait_for_ajax calls * t: Reduce sleep time in "schedule_one_job" to save testing time * t: Extract method "find_status_text" for full stack utils * Replace all uses of mock with redefine * doc: Mention script/tidy script * doc: Mention test-unit-and-integration target * doc: Fix variable name * openqa-clone-custom-git-refspec: Allow '/' in branch name * Refresh details page only when the job state changes * Use same setup function for scheduled tests as for other "pre-done" states * Show settings by default also for assigned jobs * Extract duplicated code from generating job settings * Simplify Schema::Results::Jobs (map) * Simplify Schema::Results::Jobs overview preparation * Simplify Schema::Results::Jobs with early returns * Extract Schema::Results::Jobs logging method * Simplify Schema::Results::Jobs "add/remove_result_dir_prefix" * Simplify Schema::Results::Jobs "delete" method * t: Add simple test for job name/label/scenario * script: Ensure no left over .tdy files on aborted/failed tidy * Cut reason after 300 characters * Validate result when setting a job to done * asset cleanup: Consider all jobs which are not done or cancelled as pending * Do not re-generate settings when cloning a job * Handle the settings that start with `+` when creating a job- Update to version 4.6.1586679856.9abbce836: * Dependency cron 200412- Update to version 4.6.1586463829.b1aa1fe9b: * Add explicit API test for obsoleting job * bootstrap: Create symlink for sle tests to work- Update to version 4.6.1586355542.a1ef862a8: * Prevent warning when showing video without t parameter * Move log setup into log module * Allow restarting jobs with empty assets (instead of showing error) * Improve test for preserving pending assets * Add unit test scenarios for different needle property types * Makefile: Decrease limit for api tests after b72cccfca * Move ServerSideDataTable to only place where used * spec: Move subpackage specific files out of common package * Move JobGroupDefaults out of schema to be usable for worker * Prevent investigate request timing out * Adapt codecov target to current coverage of 93% * Remove perlcritic policy ConsistentQuoteLikeWords- Update to version 4.6.1586201785.538ad8205: * t: Provide info in 43-scheduling-and-worker-scalability.t also in non-verbose * Fix regression in b72cccfca about undefined mod results * t: Fix overly long runtime in api/02-iso.t * Fix missing method import "find_bug_number" * systemd: Fix path in openqa-enqueue-audit-event-cleanup.service after d509e69f4 * Dependency cron 200406 * Split off log functions into a new module * Store the entire result provided by os-autoinst * Improve Perl module search paths of some tests * Increase timeout of jobs in scalability test for stable CI runs- Update to version 4.6.1585918802.94bcc1cc4: * Add retry for worker-webui connection on 408+425 * Prevent more useless retries for worker-webui connect * Extend retry in worker-webui connect to cover rebooting hosts * t: Extend 24-worker-webui-connection.t to check different retry codes * t: Extract method for send in 24-worker-webui-connection.t * Cover broken needle code path in a unit test * Provide enqueue convenience scripts rather than systemd * Account freed disk space when deleting logs * Unify single/multi audit event rendering- Update to version 4.6.1585815597.24b98a95a: * docs: Mention the importance of synchronized clocks for remote worker machines * docs: Update "Run workers" to not only mention "virtual machines" as backend * The job result is a string and not a number * Turn warning about missing assets when restarting jobs into error * Harmonize License copyright format * Validate parameters passed to job group API routes * t: Fix sporadic failure in 10-tests_overview.t * worker: Test ignoring known images/files * Improve API test for updating status * Simplify API test for updating status * Prevent uploading non-screenshot results twice * Improve logging of result size accounting * Properly consider configured repo in ObsRsync check of dirty status- Update to version 4.6.1585581139.1203c5b7b: * Validate parameters passed to bug API routes * Skip detecting asset key when asset value is null * Dependency cron 200329- Update to version 4.6.1585334025.c496db1d6: * Revert "Improve the operation of 'jobs post'" * Rewrite asset list generation for cache service * Revert "Rewrite asset list generation for cache service" * Ensure final linebreak in job template editor * Do not re-generate settings when cloning a job * Handle the settings that start with `+` when creating a job * Dependency cron 200326- Update to version 4.6.1585161757.bb4097462: * Fix triggering ObsSync using repository * script/openqa-clone-job --help exits with 0 * Rewrite asset list generation for cache service * script/client --help exits with 0 * Add JSON::Validator, YAML::PP, YAML::XS to client_requires * Add openQA-client-test.spec * Refactor saving details/screenshots * Fix shellcheck complaint about sh/bash mismatch in t/dummy-isotovideo.sh * Fix shellcheck complaint about SC1091 in script/openqa-bootstrap * openQA.spec: Run style checks in %check to detect issues in other products * Return JSON for all API routes * Extend reason quit so its meaning is more clear * Add pointer to log details for incomplete jobs with reason "died" * t: Simplify 03-auth test * Add explicit test for auth with slight OpenID coverage increase * Remove untested and probably unused iChain authentification- Update to version 4.6.1584957320.c50fd7cfd: * Simplify 'prepare_data_function' as followup to #2793 * t: Bail out early on Selenium reported errors for concise log * t: Ensure necessary test dirs exist for ui/21-admin-needles.t * Extract common screenshot DB insertion function * Fix extracting compressed downloaded files * Validation for Asset controller- Update to version 4.6.1584727112.296692355: * Store size of job results in the database on upload * Prepare storing size of job results in the database on upload * Improve tests for job artifact upload * Validate parameters for artefact upload * Convert uses of `each` to `foreach` * Use validation_error helper in controller for saving needles * Adapt to Mojolicious 8.34; explicitly allow empty optional needle params * Dependency cron 200319- Update to version 4.6.1584559784.011f30866: * Makefile: Prevent unexpected self-test run time increases with timeouts * docs: Move growing "testing" section out of "commit rules" * docs: Delete obsolete remark about dependencies in docker container * Makefile: Add convenience variable "TESTS" for easier selection * t: Reduce default wait_until check interval to save testing time * t: Simplify "schedule_one_job" * Prevent possible DBIx warnings when updating job modules * Add parameter repository in ObsRsync sync * Take automatically added newline into account for the reference * Add route list of configured projects in ObsRsync * Configure dirty status checks per project in ObsRsync plugin * Avoid scalability test failures in the CI * Improve coding style of streaming controller functions * Prevent race condition when assigning and sending jobs to a worker * docs: Clarify users and expected errors during an import * Handle web socket errors in live/developer mode code * Makefile: Separate scope of "checkstyle" and "test-checkstyle" for clarity- Update to version 4.6.1584377052.a1f8cccba: * Prevent flooding PostgreSQL logs with errors when inserting job modules * Remove DBIx hooks for updating job module statistics of jobs table * Improve checks in test for creating custom job module * Improve bug cleanup test to collect coverage and use helper to run job * Remove unused and uncovered helpers * Refactor job status update to avoid uncoverable branch * Mark handling for database errors which are hard to test as uncoverable * Remove support for old workers relying on redirection for ws route * Remove unused and uncovered part_of_important_build function- Update to version 4.6.1584172463.88254ac92: * Rename the JobTemplates module to YAML * Slightly simplify code WebAPI::Controller::API::V1::Job and Worker::WebUIConnection * Mark uncoverage subroutine in OpenQA::Worker::WebUIConnection * t: Slighty simplify t/24-worker-webui-connection.t * t: Add explicit to stabilize test coverage for OpenQA::Worker::WebUIConnection * t: Fix warning '"my" variable %job_info masks earlier declaration' * Fix perlcritic issue * Fix t/40-script_openqa-clone-custom-git-refspec.t failing when github auth token defined * Fix use lib in script/* * Fix ARRAY in loaded job template settings * Split YAML out of JobTemplate API tests * Job templates test: update check for error message * Add explicit test coverage for OpenQA::Scheduler::Model::Jobs::_pick_siblings_of_running * Make parameters for splitting screenshot cleanup configurable * Add worker name to reason when stale job detection incompletes job * Fix the bug that only dereference the symlink needle in one page * Validate parameters passed to job template route consistently * Add test for re-scheduling only on 2nd idle status * Improve test coverage of worker * Enable scalability test in CI * worker: Avoid rejecting jobs when already working on them * Improve test coverage of the worker command handler * Format test of the worker's web UI connection in a more compact way * Revert condition for job-specific web socket messages * Add test for handling the quit message from the worker * Prevent race condition when assigning and sending jobs to a worker * Enhance scalability test * Have openqa-clone-custom-git-refspec parse PR for test URLs * Prevent scalability test from using port which is already in use * Use service_port for web socket server redirection * Add fullstack test for scalability * Tweak result upload of worker * Optimize _optimize_image- Update to version 4.6.1583409674.75be31485: * t: Add explicit coverage for "_read_result_file" to fix flaky reports * Check whether screenshot cleanup tasks only clean their range * t: Ensure reliable statement coverage for worker settings * Simplify and cover OpenQA::Worker::Job::_optimize_image in tests * Delete obsolete note from "_optimize_image" for resolved feature * Simplify read_test_modules to make test statement coverage reliable * t: Add explicit coverage for "worker stopping while uploading" * t: Fix grutasks taking excessively wrong while gathering coverage data * t: Use explicit wait functions where needed * t: Wait for ajax in wait_until as well * Fix script/retry for STABILITY_TEST preventing false-negatives * openqa-clone-custom-git-refspec: Add option to pass clone-job arguments * Fix script/retry for STABILITY_TEST preventing false-negatives * openqa-clone-custom-git-refspec: Allow to overwrite default clone args with env variable * Bootstrap: Install required dep qemu-tools * Split minion job for limiting screenshots * Clean up the route tree a bit for faster routing * Avoid warning about missing UEFI_PFLASH_VARS asset * Move all circleci test groups as convenience targets to Makefile * Dependency cron 200303 * Read build from Media lst files in ObsRsync Plugin * Add test for "openqa-clone-job" * t: Extract functions "run_cmd"/"test_cmd" for reuse in script tests * Split 'checkstyle' tests within circle CI to reduce overall runtime * Bring back elapsed time in CI tests for easier identification of time-hogs * Makefile: Sort 'test-unit-and-integration lower to keep top-to-bottom order- Update to version 4.6.1583157906.85e9020f0: * Fix permissions of script/setup-db to be executable * Dependency cron 200302 * Fix 'openqa-setup-db' on SLE12 builds * t: Update copyright for all changed test files * Harmonize shebang style * Add empty 'unstable_tests.txt' to prevent 'No such file' * Update license notice in each file to use URL rather than postal address * t: Avoid ambiguous meaning of 'kill' when we actually 'terminate' * t: Also check for warnings in full-stack- Update to version 4.6.1582908813.c5b7e89c0: * Makefile: Add KEEP_DB flag for optional, faster re-runs * Extract a script "openqa-setup-db" for local database setup * Make "developer" test as unstable based on recent results * systemd: Prevent error on repeated startup of openqa-setup-db * Improve shell style of t/test_postgresql based on shellcheck * systemd: Make worker also only depend necessary network related targets * Remove misleading log message of test setup * Make check for error message in fullstack cache test less specific * Refactor setup of fullstack tests * Initialize host of cache client via sub to ease test setup * Format test of the worker's web UI connection in a more compact way * systemd: Fix premature startup of services when network is not fully up yet * worker: Log only a debug message if a JSON can not be opened * Remove unused modules from scheduler fullstack test * Alleviate debugging of test_postgresql * load_templates: Remove query uses from table requests * load_templates: Create groups that do not exist * Prevent search popover icons from appearing on top of menus * Improve logging, error handling and notes for worker-server connection * Delete unused and uncovered method 'Worker::WebUIConnection::disable' * Delete unused and uncovered method 'Utils::append_channel_to_defaults' * Stop the worker as usual when handling 'incompatible' command * Update systemd/openqa-enqueue-bug-cleanup.timer * Align jobtemplate inline help to left * Fix openqa-enqueue-bug-cleanup.timer description- Update to version 4.6.1582671252.ca350bd34: * Revert "Merge pull request #2750 from Martchus/fix-scheduler-ws-race-condition" * Dereference symlink when displaying needle info * Declare YAML::XS properly as a runtime dependency for JSON::Validator * Log job duplication only at one place * Use prefix 'abandoned: ' for reason in stale job detection * Use consistent data structures in worker logs * Improve test coverage of the worker command handler * Format test of the worker's web UI connection in a more compact way * Stop the worker as usual when handling 'incompatible' command * Revert condition for job-specific web socket messages * Add test for handling the quit message from the worker * Prevent race condition when assigning and sending jobs to a worker- Update to version 4.6.1582356603.73b75d1a4: * Dependency cron 200222- Update to version 4.6.1582309642.4cf93ee9f: * Add merge key example to inline help * Add docs for merge keys * JobTemplates: Add tests with merge keys * Use YAML::PP for JobTemplates * worker: Add explicit test for last error of web UI connection * Avoid redundant code in worker job test * worker: Handle job duplication failures * Show warnings when restarting job and assets are missing * Add function to determine whether a job misses assets * Move check for hidden asset types into its own function- Update to version 4.6.1582278168.345f257f6: * Use unique git hash from vars.json for src links when possible * docs: Add hint about importance of using the same filesystem for cache+pool * Fix source code remote path for optional .git github links * Fix missing dependency 'perl(Archive::Extract)' for worker since e86f68b08 * Silence a warning in 24-worker-overall.t * docs: Replace dated styling/Mark systemctl command * Handle the case where there are no screenshots more gracefully (avoiding warnings in tests) * Redirect to remote code location for source view when using CASEDIR * Flatten the download conditions a bit * Do not capture and store all job output as a note * Log all download errors * Fail the job instead of throwing an exception * Add tests for OpenQA::Downloader * Use OpenQA::Downloader in download_asset task * Add downloader module and use it for the cache service * Use preferred explicit rendering in "src" method * Simplify "src" method showing source code of test modules * t: Fix and re-enable ui/03-source.t- Update to version 4.6.1582068800.bb5602a1e: * Simplify bugref counting with map * Add GRU task "limit_bugs" to cleanup orphaned bugs * worker: Simplify '->stop' call slightly * Remove redundant timestamp output in worker log * Fix custom variables escaping on clone_custom_git_refspec * Fix random failures in t/api/08-jobtemplates.t * Tweak Build regexp in ObsRsync- Update to version 4.6.1581660411.10959f77b: * Dependency cron 200214- Update to version 4.6.1581352297.ca1cecd07: * Revert "Have openqa-clone-custom-git-refspec parse PR for test URLs" * Dependency cron 200210- Update to version 4.6.1581075098.818ddb190: * Make test for worker registration error less specific * Let the current job continue after a fatal registration error * Simplify error handling of worker registration- Update to version 4.6.1581058621.9523164cd: * Dependency cron 200207 * Make help icon after search field fully clickable * Consistently store gru job output as a note * Only rebless jobs once * load_templates: better error handling * fetchneedles: Fix "no tracking information for the current branch" on self-repair * Have openqa-clone-custom-git-refspec parse PR for test URLs * Improve the format of execution time * Add final linebreak to jobtemplate yaml * Avoid re-scheduling accepted jobs before first status update * Make scheduler fullstack test more stable * Add test for aborting job during setup * Consider worker no longer immediately offline when ws connection finishes * Prevent passing the reason 'cancel' as it provides no extra information * Prevent worker from overriding reason set by web UI * Dependency cron 200205- Update to version 4.6.1580827995.3476c9f7b: * Move webapi templates from "templates/" to "templates/webapi/" * Avoid undefined $appname/$api_description errors by using the stash * Fix product log test which might fail when table slightly overflows * Trigger result cleanup daily instead of hourly * Use separate timer for enqueuing cleanup tasks * Reset the editor to the minimum viable YAML if empty * Use aliases in JobTemplate schema * Have test_once in clone-custom-git-refspec test report errors correctly * fetchneedles: Do not fail the script when we are on the correct branch * openqa-bootstrap: Fix indendation- Update to version 4.6.1580490152.07482738b: * Fix incorrect exit code in obs_rsync_update_builds_text Gru task * Limit ObsRsync task retries * Dependency cron 200131 * Support 'testsuite: null' in jobtemplates- Update to version 4.6.1580407290.340620ce0: * Read all keys from ini section of none is defined * Avoid hardcoded schema version in deployment test * Fix old database migrations * Fix old DB migrations by combining them into 76-77 * Set reason when stale job detection marks job as incomplete * Pass the worker's reason for stopping a job to the web UI * Improve test code for job duplication * Show reason in info panel * Allow passing a reason when marking a job as done * Test all DB migrations from version 76 and not just the last 2- Update to version 4.6.1580150954.a98528363: * Improve build info in ObsRsync UI (#2694) * Adjust parsing of project state in ObsRsync Plugin * t: Add more test strings * t: Fix typos in full-stack * Fix "Use of uninitialized value in numeric ne (!=)" in worker * Fix "Can't use an undefined value as an ARRAY reference" in worker * openqa-clone-custom-git-refspec: Provide option parsing with help text * Add retry script for testing with flag STABILITY_TEST * Slightly simplify JobModules * Replace references of "TRAVIS" with a generic term or CircleCI in cpanfile and tests * Treat all previously unstable tests as stable after proof of stability * t: Extract method for ajax/animation handling * Stabilize t/ui/14-dashboard-parents.t by relying on "collapsed" only- Update to version 4.6.1579943557.88a382a14: * Dependency cron 200125 * Simplify job#done * Add test in openqa-clone-custom-git-refspec for trailing '/' * t: Cover all current features of openqa-clone-custom-git-refspec- Update to version 4.6.1579790259.c018d5dc2: * Workaround api request in ObsRsync Plugin * Remove dead code * Use uppercase variables in OpenQA::Utils to make their scope immediately obvious * Replace compose_job_overview_search_args and param_hash methods with helpers * Move mark_job_linked function into the correct resultset * Move job_group_and_parents function into the correct resultset * Use :DEFAULT instead of importing twice * Replace global variables in OpenQA::Utils with functions * Remove unused export * Do not export variables from OpenQA::Utils anymore * Add OpenQA::App as a singleton container, replacing $OpenQA::Utils::app * Move worker specific code from OpenQA::Setup into OpenQA::Worker::App * Just use Mojolicious as a base class instead of trying to reinvent it * Parse Snapshot number in ObsRsync plugin * Add silent reload of dashboard contents for fullscreen mode * Dependency cron 200123 * Add dependency to client so asset download via SSL works * load_templates: fail early if host is unreachable * Log asset download error to autoinst log file * Fix asset status test so it works when the cache file does not exist * Dependency cron 200122 * Support batches in ObsRsync Plugin (#2653) * Use new format to store job module details * Set text mime in ObsRsync download * Use is_admin_js helper in asset table template * Show cached assets also when cleanup is ongoing * Add CLI tool to validate a job template YAML file * Fix ObsRsync mutex leak on errors- Update to version 4.6.1579529599.e032e3659: * Do not retry downloads in the cache service when there was a 4xx response * Unify retry handling for all 4xx/5xx and connection errors in the cache service * Dependency cron 200120 * Improve coding style in scheduler tests * Consider assigned jobs when duplicating jobs * Simplify auto_duplicate code * Avoid race condition in job scheduling- Update to version 4.6.1579272112.ccebff1bd: * Allow more than one keepalive connection per cache service worker * Update perltidy to 20200110 * Fix tidy in night job * Retry cache service downloads for many more errors- Update to version 4.6.1579176985.3721eca2e: * Add labels to auth, git and dependency PR steps in CircleCI * Show the execution time of job modules * Use `is_admin_js` on job templates page * Use sub-heading for job templates * Format YAML editor buttons uniformly * Improve general documentation on job templates page * Document the description syntax in the YAML guide * Show YAML guide also when not logged-in * Dependency cron 200115 * spec: Exclude flaky 17-labels_carry_over test- Update to version 4.6.1578936542.0e251d1f0: * Fix cache service log formatting * Test asset download of openqa-clone-job script * Fix support for symlinked cache dirs * Allow to skip removing documentation output * Improve referencing different setup documentations * Move "Development setup" to contributing * Improve documentation about db migration * Fix documentation for passing --from to openqa-bootstrap * Add further documentation from openQA-helper * Provide general info about making a devel setup, mention openQA-helper * Use job_template_name as the TEST when scheduling jobs- Update to version 4.6.1578688138.bc8a43167: * Don't have a default size limit on parent group level * Prevent old but newly cloned assets from being cleaned up immediately * Use a fallback to symlink assets if hardlinks fail * Use hardlinks for downloaded assets when possible * Test whether web UI actually works after db migration * Only fetch job groups when delivering HTML- Update to version 4.6.1578575737.d02ae56c3: * Add auto-cleanup for temp files created by web UI * Fix db migration for size_limit_db column of job_group_parents table * Be more defensive and accept more host formats * Hosts are passed to the cache service jobs without a scheme * Prevent jshint warning in test_result.js * Render investigation info as table * openqa-clone-custom-git-refspec: fix curl_github * Add test for Sync button in ObsRsync plugin * Rename TEST_SUITE_DESCRIPTION to JOB_DESCRIPTION * Prevent loading investigation tab contents twice * Support downloading assets with special characters like "#" and ":" in the name * Allow unsetting asset size limit in web UI * Assign job group asset limits explicitly * Extend asset cleanup tests to cover job groups within parents * Adapt tests for asset limit on parent level * Migrate default_size_limit_gb to size_limit_gb * Adapt group property editor to asset limit on parent level * Adapt asset table on admin page to parent level asset limit * Adapt asset list on admin page to parent level asset limit * Enforce asset size limit on parent group level- Update to version 4.6.1578338128.7d62398b0: * Asset download: fix return statement broken in f0d70f1 * Minor cleanups for job settings- Update to version 4.6.1577879607.68ae00aa4: * Dependency cron 191231 * Improve documentation about test flags (especially fatal)- Update to version 4.6.1577344382.5aaa6ced5: * Update Minion dependency (#2628)- Update to version 4.6.1576913552.acf2b6db3: * job investigation: Ensure consistent output with sorted hash keys * job investigation: Provide test+needles git log diff and files stat diff * job investigation: Skip "merge" commits with no helpful information in git log diff * Increase the inactivity timeout of the cache service client to be more consistent with other timeouts, such as the SQLite busy timeout * More concurrent download tests * Worker settings should be handled by the cache service application instead of a model * $a and $b are special variables in Perl, do not use them arbitrarily * Add description to job template editor * Use log level 'info' for message about groupless asset * Remove registered assets regardless of the type * Add description column to JobTemplates * Log asset downloads and rsync requests the same * Test concurrent rsync requests as well * Fix a race condition in 25-cache-service.t where a worker was kept alive too long * Connect parallel cache service downloads * Dependency cron 191218 * docs: Update use description of travis_test container * Delete obsolete travis.enc file * Fix serveral issues with OBS rsync plugin UI * job investigation: Give explanation on no test changes * Add details to ObsRsync Project List UI * Provide git log diff from tests in investigation * Ignore selected entries from vars.json files for investigation * t: Use more mojo Mojo::File instead of catfile/copy * Improve test for re-scheduling and marking jobs as incomplete * Improve scalability of job incompletion code * Fix substitution for job_templates schedule list * Refactor JobTemplates code * Improve video player * t: Save execution time in 18-tests-details by disabling wait timeout when expecting 0 needles * t: Add helper methods for selenium tests to disable/enable timeout to save time * Subside stale job detection * Trigger tasks for limiting assets and results/logs hourly- Update to version 4.6.1576340016.48aaffc06: * Fix step view for not-available video * Dependency cron 191214- Update to version 4.6.1576249179.0149ff62a: * Add actual error info to cache service availability error * openqa-clone-custom-git-refspec: Fix PR URLs specified with trailing '/' * Add test for openqa-clone-custom-git-refspec * t: Use more concise code in t/42-screenshots.t * Use more conventional variable name '$sth' for raw db calls * Remove "Jump to video" icon from "needle view" when video is unavailable * Prevent massive database errors on screenshot insertion * Use shorter name in CI nightly job * Let nightly job call script/tidy when needed * Update tidy to 20191203 * Return error when creating a job with invalid slash value * Dependency cron 191212000550 * Missing assets should not result in a connection timeout- Update to version 4.6.1576080365.3895c9109: * Fix regex and error message for prio * Parser::Format::IPA: Shorten test names * Avoid downloads from GitHub within 14-grutasks.t * Improve asset download * Use human readable size values in cache service logs * Clarify overlap between states CANCELLED and DONE * Improve consistency when dealing with job states/results * openqa-clone-custom-git-refspec: Add support for comma-separated job list * openqa-clone-custom-git-refspec: Fix github token authentication by removing quotes- Update to version 4.6.1575799153.4244d44fd: * Dependency cron 191208000552 * Update Mojolicious to 8.27 (#2576)- Update to version 4.6.1575653753.ea7f72d9a: * Fix height of embedded logfile * Use the correct new port in cache service monitoring tests * Provide investigation hints for failed jobs on request * templates: Use unicode character for three dots * Include the cache service when generating ports dynamically with OPENQA_BASE_PORT * docs: Replace all references of "TRAVIS" with a generic term or CircleCI * Refactor loop in test overview controller * Improve performance when loading test suite names for overview * Change TEST value to JOB_TEMPLATE_NAME * docs: Move whole .circle CI README into docs/ to include in generated and published content * docs: Focus on openQA-devel for easier test setup * docs: Fix reference to "docker/travis_test" * .circleci: Use common repo aliases * spec: Specify missing "chromedriver" in -devel * Allow monitoring of Minion jobs on every worker * travis_test: Add missing dictionary for os-autoinst- Update to version 4.6.1575490596.c17db72e0: * t: Add a description string for each step in 10-jobs.t * Avoid initializing test db twice in schema hook * t: Correct order of arguments for comment counting * Avoid creating 2nd Mojo::Test in details UI test * For the log context feature we require Mojolicious 8.24 or newer * Take all incomplete results into account in overview statistics * Support test suite setting start with plus- Update to version 4.6.1575276108.e1e4230d8: * t: Use a hash with default settings for the common "schedule_iso" calls- Update to version 4.6.1575043939.ce9ba48fe: * Increase SQLite busy timeout and reduce the number of concurrent SQLite connections * Show log content in test details tab on no module results * Fix asset definition of SVG icon for running jobs * Check generate-documentation if target branch exists * Calculate coverage explicitly in Selenium tests * Improve group property HTML template * travis_test: Add requirements for spellcheck in os-autoinst- Update to version 4.6.1574886568.694f13bc7: * Use the cache tmp directory for temporary download files created by the cache service * Use info instead of warn messages (so monitoring does not get triggered) and quote all string values * Allow for very quiet cache service tests * Be a little less verbose with init log messages * Allow from_worker to set attributes as well * Remove redundant error message * Format cache service logs to start with a newline * Improve cache service log messages to help with debugging issues of missing assets * Log all cache service output on both sides (cache service and worker) and fix many small test issues * Handle cache model logging through an attribute * Make resetting locks a little safer with a --reset-locks command line option * Change CI badge in README.asciidoc * Stabilize t/api/14-plugin_obs_rsync_async.t * Reset all leftover Gru locks after restart- Update to version 4.6.1574510263.217a2c530: * Bring back 'xorg-x11-fonts' needed for chromium startup- Update to version 4.6.1574454088.33c0b7556: * Remove likely unneeded dependency xorg-x11-fonts * Document the relevancy of file modifications for asset cleanup * Make architecture diagram color blind friendly * Fix worker cache in architecture diagram * Dependency cron 191122000544 * Make virtio_console1.log etc. show up as result files * openqa-clone-custom-git-refspec: Add syntax example for git branch * Dependency cron 191121000600 * Hide internal folders in UI * Tweak config of ObsRsyn Plugin * Take directory mtime of assets into account * travis_test: Fix Dockerfile based on tests in OBS * Document typical issues with migration of job groups * t: Hide all output from diag calls in tests * Prevent boilerplate text "$VAR1 =" in dumper output * Stabilize t/api/14-plugin_obs_rsync_async.t * Disable old job group editor admin functionalities in favor of YAML * docs: Describe YAML job templates editor as default with migration script from old * Remove unused option --check in Selenium * Migrate machine separator in dependency settings form ":" to "@" * Remove dead code from isotovideo client * travis_test: Try to fix container on OBS * Tweak markup and styling for step actions within external results * Detect documentation changes more reliably * Add deprecation notice for old job template editor pointing to YAML * Include external reporting template for parsed results too * Allow extra arguments to template loaded with bug_report_actions * Mark 05-scheduler-full.t as unstable due to recent instability * Use CI repo instead of openqabot in build-docs * Change favicon of test details page based on job state/result * Add generated png variants of state/result icons * Makefile: Extend icon generation to new ones with state/result * Add new icons for every interesting state/result * assets: Shift position of logo within frame to have more space * assets: Update logo.svg using new standard dpi as suggested by inkscape * Assume 25-cache-service.t to be stable since #2463 * Assume 15-admin-workers is "stable" since a6dd3fee5 * doc: Reword sentence about alias * Extend range for success status codes in client- Update to version 4.6.1574081651.5f93fbf7e: * fetchneedles: Fix missing usage of 'git_update_needles' in 2aadd3e56 * Dependency cron 191118000556 * .circleci: Fix ignored test results of unstable tests within loop * Reduce sleep times in 25-cache-service.t to slightly save testing time * fetchneedles: Try to repair needle git repos on detached HEADs * Ensure the job result is at least lower case (still allowing other than default values) * Dependency cron 191116000537 (#2508) * Add padding to icons on buttons * Hide YAML guide by default, expose via a button * Fix typos in comments * travis_test: Switch to supported Leap base after 42.3 is EOL * Makefile: Add YAML linter checks- Update to version 4.6.1573836985.cd1ad569b: * Makefile: Add 'help' target listing available targets * Treat all non-asset "_URL" settings as debug message only, not warning * Provide style check feedback earlier with parallel execution * Correctly format the age in days string * Fix flaky test 'ui/15-admin-workers.t' with proper waiting for popovers * Support configurable patterns for asset cleanup * Update Selenium::Remote::Driver to 1.36 fixing compatibility issues * Update perl-Mojo-IOLoop-ReadWriteProcess and os-autoinst * Straighten out asset clean-up semantics- Update to version 4.6.1573674965.36aeff76e: * Allow '@' separator to specify machine dependency * Add more MIME types so test assets do not get served as text/plain * Skip shellcheck on CHECKSTYLE=0 as well (#2476) * Show machine in dependency graph (#2477) * Fix error in nightly doc CI job (#2479) * Fix a bug in the fullstack test where it would not wait for the cache service to actually finish downloading * Document client's form parameter * Fix empty needles dir in openqa-clone-custom-git-refspec * Status updates can be a GET request now * Fix test coverage stats * Let the background jobs take total control of lock handling to reduce the chances of race conditions happening further * Fix copyright year and use a more obvious helper name * An inconsistently used retry without delay is not actually that useful for the cache service client * Significantly reduce the number of HTTP requests required for cache service status and info features * Use less code to do the same * The session token is not really needed, so we replace it with something much easier to understand * Store lock state in Minion instead of memory, removing the single process HTTP server requirement * The client method enqueue should have been targeting "/enqueue" instead of "/execute_task" * Remove some dead code * Dependency cron 191110000608 * Implement an expand feature for job group YAML- Update to version 4.6.1573412318.f4760c78f: * Ignore log file created by postgres test setup (#2470) * docs: Add description for 'uncoverage' annotations * Fix flaky coverage by use of uncoverable flag * codecov: Simplify format * Rename docs CI jobs to eliminate warnings * Install python-base in docs CI job * Dependency cron 191108000544 * docs: Mention new os-autoinst feature FORCE_PUBLISH_HDD_- Update to version 4.6.1573206130.f1d227eff: * Preserve GIT_ASKPASS between jobs in CircleCI * Unset PERL5OPT when executing isotovideo * Test/Coverage: Monkeypatch B::Deparse * docs: Clarify that the cache service needs full read permission in CACHEDIRECTORY * docs: Use consistent 'enable --now' parameter on all applicable systemd calls * openqa-bootstrap: Rely on service dependencies instead of explicit starts * Fix bug that cannot update job group using load_template * Fix URLs for needles in subdirectories (POO #58959) * full-stack.t: Add sleep before sending first command * spec: Use more common '>=' rather than '=>' * Remove fedmsg plugin * Makefile: Delete obsolete reference to deleted 'check_coverage' * Fix retry logic in make test * Prevent errors for requests to unknown resources in cache service * setup_workers should be part of the public API * Add controller and another model to cache service and remove some dead code * Turn cache service into a full Mojolicious app * Calculate cache dir size if it is a symlink * Deal with the error message when create/update job group * Updates in CircleCI testing environment * Move cache service into OpenQA::CacheService namespace * Use `croak` in OpenQA::Utils::log_fatal * Only log if test schedule has really changed * Enable regex search in 'Medium types' table * Pass PRJDIR to os-autoinst * OBS: Skip tests which are failing/flaky in OBS * Update spec: os-autoinst >= 4.6 * Update .circleci/autoinst.sha * Use a new file to exchange status with isotovideo * Fix OPENQA_CACHE_DIR environment variable * Remove dead code and make client a little easier to read * Remove circular reference and fix request encapsulation * Push documentation nightly to openqabot fork * Schema Profiler: override print method with log_debug * Do not waste resources to create unnecessary OpenQA::Worker::Cache::Request objects- Update to version 4.6.1571860277.da2de85d9: * spec: Fix package tests already failing on database setup * Fix VNC port info for ports > 99 in devel mode * Prevent logging needle problems twice * Provide default filename for needles from the name * Move needle_info() from Utils.pm to Step.pm * Fix missing 'qemu-kvm' in non-x86_64 package tests * Reduce use of project dir to be more flexible regarding custom test runs * Calculate coverage in Circleci in all branches * Move private function used across multiple classes into OpenQA::Utils * Log all installed packages instead of per-repo * Use Mojo::File to list cached files * Dependency cron 191022000544 (#2417) * fetchneedles: Make script fully POSIX sh compatible * fetchneedles: Avoid double-negation in symlink check * client: Fix the default host 'http://localhost' instead of https * There are many cache methods that do not need to be public * Disconnecting a random handle from the cache does nothing * fetchneedles: Save on execution time by skipping over needle dir symlinks- Update to version 4.6.1571651389.1516f15e7: * Extend filesystem documentation * Add local apparmor file to spec * Call script instead of bash in ObsRsync Plugin * Remove possibly localized quotes when checking PostgreSQL errors * Add default local apparmor profile- Update to version 4.6.1571253176.1a322744e: * PostgreSQL errors can be localized, so just use the name of the unique constraint * worker: Do not treat reconnect attempts as errors but with warning only * Remove wrong error handling code when sending ws messages * Prevent potential deadlocks in scheduler and ws server * Hide old job templates editor for new groups * Handle unique constraint correctly * Add missing resultset for screenshots and make a few small optimizations * Drop -v flag on test runs and avoid noisy job "name" * clone job: Support specifying a port in host URL * Add Dockerfiles from devel:openQA:ci (#2401) * Allow . for job template name/ test suite in schema * Remove openqa_dev from our spec file * Add a docs section elaborating on YAML by way of example * Fix openqa-load-templates example in documentation- Reset changes in test subpackages (useless duplication)- Update to version 4.6.1570902364.4f271c31: * Accept a list of machines in defaults and job templates * Collect coverage aretifacts in CircleCI * There should be no need to update the flags * Split data creation and update into two methods * Fix cgroup creation * Add unstable tests with retry to circleci * Make job template code for testsuites clearer * Lock test suites/machines/products used in YAML * Add RETRY parameter to test targets in Makefile * Add GLOBIGNORE to Makefile * Add coverage and build.docs to circleci * Add apparmor local overrides * Split off creation/ update of job templates * Dependency cron 191009000530 (#2380) * Recompute worker's broken state after job finished * Add test for refusing 'grab_jobs' when worker broken * Remove dead code from WebSocket server * Fix confusing test names in test for worker's QEMU check * Store test JUnit results for CircleCI * Update reference after saving YAML in editor * Make clickable links if a setting looks like a URL * Too many webui requests take more than a second to be processed, so limiting concurrency is much safer for now * Add note about plugins not to enable on typical production setups * apparmor: Update profile based on current o3 state * Elaborate on differences between table and YAML * Use fork for nightly circleci job (#2365) * Retry limit asset job on key constraint violations during scans * Improve job dependencies documentation * Consider 'not yet' as most recent when sorting running tests by 'Started' (#2369) * Dependency cron 191002000541 * Fix "Sync Now" button in OBS Plugin * Ignore errors loading dashboard if just navigating away * Update filter form label without page-reload * Correctly propagate job template name from YAML * Fix "timeago" rendering on AJAX-enabled dashboard * circleci: Remove whitespace at EOL * Fix publishing documentation via Travis * Don't silently exit doc generation if asciidoctor not available * Retry limit asset job on key constraint violations * Make t/37-limit_assets.t independent of t/14-grutasks.t * Load build results on dashboard via AJAX * Update perl-DBIx-Class-DeploymentHandler dependency to 0.002233 (#2359) * Move stale job detection from ws server to scheduler * Remove obsolete comment regarding offline workers * Rely on t_updated for the worker's online status in the web UI * Prevent failures in feature tour test * Set default check interval for wait_util to 1 second * Enforce same width for nodes in dependency graph * Move test helper embed_server_for_testing to test utilities * Add unit test for test schedule change processing * Avoid race condition if test_order.json changes too often * Reload test_order.json if it changes at test runtime * Refactor job result file path concatenation * Move incompletion logic when worker shows up again to scheduler * Add missing api tests to circleci * Explicitly specify constraint with JobTemplates->find_or_create * Update tidy to 20190915 * Update .circleci/dependencies.txt * Make the version number a simple link to the changelog * Enable nightly circleci dependency job on master (#2343) * spec: Fix missing dependency on IPC::Run in client (#2347) * Tolerate exceptions in OBS api call from ObsRsync plugin * Improve deleting a single asset in WebUI * Prevent loading arbitrary plugins in live view handler * Improve language of locking API documentation * Prevent the ws server to query itself * Clean up resource lock code a little bit * Move helper that had been accidentally placed in OpenQA::Utils to the helper plugin * Enforce consistent order for pending jobs of worker * Add colors for more job results in dependency graph * Use create instead of new/insert (overloads should still be fine) * Include more columns in unique constraint to be more future proof * Do not be lazy and use proper names for variables used more than once * Delete duplicate records before creating the unique constraint * Use a unique constraint to prevent a race condition that could result in the same module being added more than once under heavy load * Don't show nested folders in OBS plugin * Polish UI of OBS plugin * Reuse Mojo::UserAgent in OBS plugin * Don't parse XML with regex in OBS plugin- Update to version 4.6.1568795030.c377d780b: * Fix test failures on Leap 15.1 * Fix warning in 24-worker-overall.t * Test scheduler code for assigning multiple jobs to a worker * Sort directly chained children within same parent by test name * Adapt existing tests to adjustments for directly chained dependencies * Assign cluster of directly chained jobs to worker * Show assigned jobs as such under 'All tests' * Enforce consistent WORKER_CLASS when creating directly chained dependencies * Add compution of directly chained job hierarchy * Verify that inserting dependency cycles is prevented * Improve string formatting in scheduler code * Add circleci * Fix formatting of developer mode documentation * Update dep graph desc for START_DIRECTLY_AFTER_TEST * Update documentation for START_DIRECTLY_AFTER_TEST * Ignore SQL deprecate warning when querying job modules that are running- Update to version 4.6.1568387059.db88ff48d: * Add Storable dependency * Remove debugging * Create a deepcopy of the settings * Always sort keys to make behaviour reproducible * Demonstrate what's going wrong on staging yaml * Fix duplicate path name * Update YAML guide and schema to explain custom job template names * Publish API schema(s) along with other docs * Fix some issues in the doc markup reported by asciidoc * Always build docs and allow local generation * Fix warning caused by filename getting removed from reused form hashref in Mojo::UserAgent * Cleanup disabled code about 'Sereal' * Non-experimental YAML routes with explicit schema * Revert back to duplicating dependencies in dockerfile (#2315) * Extend the requires of openQA-devel and make them easier to review (#2313) * Implement optional defaults.settings key in YAML * Fix container image to use repository paths (#2310) * Improve test coverage for more background jobs * Increase coverage by allowing Devel::Cover to collect stats for background jobs * Fix printing usage when invoking openqa-clone-job --help * Remove codecov hack that was only added to increase coverage percentage, but does not actually test anything useful * Scenarios can have different settings * docker: Use devel package instead of spelling out duplicate dependencies (#2308) * Cut the test result directory shorter when its length is more than 255 * Support branch url on openqa-clone-custom-git-refspec * docs: Hint to 'openQA-devel' for pulling in dependencies * Delete unused screenshots in separate loop * docs: Render code correctly (#2306) * Allow CodeMirror to render off screen * Show context for REST-API errors to make debugging a little bit easier * Fix artefact upload errors to show the message instead of the hash address * Reduce coverage requirement a bit until we can make Devel::Cover include subprocesses in stats * Don't use 3rd set of names for passing dependencies to JS * Use capitalized names for module-scoped variables * Consider directly chained deps in several places * Support _START_DIRECTLY_AFTER_JOBS * Add dependency type for START_DIRECTLY_AFTER_TEST * Failed isotovideo status checks are fairly harmless, but a log message can be useful for debugging * Since we now expect there to be more subprocesses, there is no reason to log them as unexpected anymore * Do not try to reconnect the WebSocket connection in subprocesses * Make annoying log message debug level instead of info for now * Test API and upload errors * Test asset uploads too * Move artefact upload into a webui connection method so it can be easily mocked for testing * Add more worker upload tests * Fix fake WebSocket transaction to correctly defer callback execution * Improve test coverage of the worker job life cycle * Move all direct uses of Mojo::UserAgent from OpenQA::Worker::Job to client modules * Add new worker tests and an isotovideo client module that can be mocked easily * Perform isotovideo status checks non-blocking too * Try to defer all callbacks correctly to the next reactor tick * Handle exceptions in uploads * Make image uploads non-blocking too * Callbacks cannot be optional in an async application * Update mock worker tests to be able to deal with multiple processes handling uploads * Handle asset and logfile uploads in a subprocess * Split up upload handling into more manageable parts * Reuse t/test_postgresql in container test as well * Harmonize dependencies in cpanfile+openQA.spec * spec: Specify more dependencies needed for local development * spec: Fix test dependencies after os-autoinst removed dependencies * Move codemirror javascript file to javascript label (#2297) * spec: Fix 'devel' package (for real) with proper macro definition * spec: Fix error about python shebang * Fix 'devel' package * docs: Update openSUSE repos using $releasever, priorities, better names * spec: Add 'devel' package * worker job: Add log of second virtio console to upload list * Fix accidentally removed dependency * Add missing apparmor permission (#2285) * Remove shellcheck disable * Modernize bash tests * Fix test that did nothing * Fix argument handling of a function and turn background job into a real plugin * Remove print from test * Avoid using HAVING on ScreenshotLinks * No longer delete job modules one by one * Remove support for old migration * Use IPC::Run instead of IPC::Run::Simple * More code style fixes * Tidy developer mode test * Test assert_screen args with array of needle tags * Code style changes and unit test for current_api_function handling * Increase lock timeouts a bit because some jobs might just need a little more time and the risk or locks not getting cleared at the end is very low (#2280) * Show needle tags for assert_screen/check_screen * Validate tag input field in needleeditor * Render a diff of the job group YAML in preview/ save * Use purple for blocked jobs * Distinguish scheduled and blocked jobs on test result overview * Delete vim footer in files that still have it * Makefile: Allow again to select single test cases with PROVE_ARGS * Preserve QEMU PID file on pool dir cleanup if QEMU still running * Improve tests for triggering pool directory cleanup * Test support for non-ASCII chars in needle JSON only in description * Tweaks according to code review * Handle newline characters in form parameters correctly * Use single gru job * Always include the group property editor * Do not delete assets based on empty size * Remove useless quoting * Check finished job cout in async test * Increase timeout in async test * Remove unconditional sleeps from async test * Add Gru Test with Mock Api Server * Split Folders and Gru controllers * Add Rsync Queue UI * Use Gru for rsync * ObsRsync handle requests asynchronously * job cancel: Explicitly return a number to avoid warning * Fix warning about undefined $testresdir * Fix flaky test t/api/11-bugs.t * scheduler: Fix warnings about undefined variables * Fix rendering of the openqa.cmd * openqa-bootstrap: Fix logic of git clone * Add machine filter in 'Test result overview' * docs: Mention most simple installation instructions and "clone-job" first * docs: Add documentation for immediate bootstrap+clone * docs: Fix internal link * branding: Prevent undefined flavor in external_reporting.html.ep * apparmor: Allow virtio_console based on named PIPE * spec: Split out all dependencies properly per sub-package * apparmor: Allow loading of client.conf in usual home of geekotest * apparmor: Allow loading override templates in /etc/openqa/templates/ * branding: Prevent warnings about undefined $distri in external_reporting.html.ep * Test worker behavior if _upload_log_file fails * Improve needle editor test * Change iso scheduling behavior to not obsolete older jobs anymore * Improve calculating preferred machine * Fix error when saving needle JSON with non-ASCII characters * Modify workaround property to support adding reason * Fix 30-test_parser.t warnings * Remove exported functions from OpenQA::File and stop using private methods as part of the public API * docs: Fix explanation for masquerading which is needed on all involved zones * docs: Simplify firewalld commands by using the runtime variants * docs: Make the current "firewalld" approach more prominent than old SuSEfirewall2 * Fix PROVE_ARGS in spec file * docs: Remove obsolete section about "wicked < 0.6.23" * load_templates: fix --clean and reading perl templates * Do not handle arguments in reverse and move OpenQA::Files class into a proper package * Make worker retry-delay configurable * Test retry behavior of worker * Extend retry delay of worker to 60 seconds if web UI busy * Adapt codecov target to current coverage of 85% * Allow * placeholders in product names * docs: Fix marking for 2nd level list about "wicked pros" * Prevent over-escaping of bug titles in test result overview * Adjust web socket server test * Avoid 'return;' in web socket code * Fix sending web socket message when job not exists * Improve transaction handling in web socket server * AMQP: allow no message prefix * Fix '--no-cleanup' on worker start regression * Remove OpenQA::Schema::Result::Jobs::set_scheduling_worker * Replace Text::Markdown and HTML::Restrict with CommonMark for much better comment rendering speed and security * Adding a new parameter to support not schedule parent test suite * Timeout for wait_for_ajax * Let prove handle @INC for us * Expose saving and hiding of the legacy editor in the UI * Scrub dangerous HTML from comments * Abstract out markdown handling into a new class * worker: Consider ws disconnects as uncritical during job execution * Fix worker crash when sending job ID * YAML: don't merge scenarios with multiple machines with defaults * Add dependency on CommonMark, which will soon replace Text::Markdown for a 1000% performance increase (#2228) * Ignore cpu_modelname in worker test * Let worker pass current job ID on re-registration * Allow worker to pass its current job on registration * Improve test for checking job status and output * Improve error message when rejecting status update * Add YAML support to {dump,load}_templates * Add systemd timer to trigger daily audit event cleanup * Delete old audit events according to configured storage duration * AMQP: don't encode message body to JSON before publishing * Handle reusing existing connection in devel fullstack test * Improve documentation about running test of openQA itself * Timeout for wait_for_developer_console_contains_log_message * Override default exception handler in extra daemons * Fix default route of live handler to prevent template errors * Docs for the job group editor and YAML REST * AMQP: allow passing headers to publish_amqp * Add note about openQA's CLI interface * openqa-bootstrap: Fix lookup of configure-web-proxy * Improve rendering summary in test result overview * t/api/03-auth.t: don't actually wipe asset files from disk * Mojo::Pg 4.14 requires the "delete $dbh->{private_...}" feature from DBI 1.632 * Log errors when reading worker config * Add type/additionalProperties to products spec * spec: Fix SLE12 build with patched out python subpackage * Start a documentation section on how to build openQA plugins * templates: Update references to documentation in help texts * docs: Update references to target versions in our issue tracker * Document adding new dependencies * Improve doc section about starting webserver from Git * Move testing with production data to database section * Improve documentation about OPENQA_BASEDIR * Replay cmds in devel mode console only if connected to os-autoinst * Make sure all four levels of API access have named routes for plugins and tests * Add undef to return * Prevent cleaning pool directory in worker availability check * Add helper script 'openqa-label-all' * Set log for failing to stop cmd srv to info level * Do not fail fullstack test when connection closed * Split api request to own route * Extend unit tests for OpenQA::Worker * Do not stop current job twice when stopping during setup * Remove unused function from worker * Remove check for cpu_opmode from worker test * Stop job directly with reason 'api-failure' on API failures * Give the API authentication routes plugins will use names and test them * Log sent commands in the developer console as well * Replay commands send though developer console while offline * Add put method with disabled test * Fix test doing an equality check on an exception instead of a regular expression comparison * Fix html * Adapt codecov target to current coverage * Small tweaks * Default to HTTPS instead of HTTP with openqa-client * Add Operator menu item * Remove duplicate use * Small CR adjustment * Make routes restricted * Add ObsRsync plugin * Expand Machine and Medium Type settings when creating job with 'jobs post' When users created jobs using 'client jobs post', the jobs settings did not expand Machine and Medium Type settings. This PR is used to support to expand settings from Machine and Medium Type when creating jobs with 'jobs post'. * .travis.yml: Save travis CI some testing time * Add Test::More based error handler to SeleniumTest- Update to version 4.6.1563206570.e00d3964: * Make the websocket server tests less noisy * docker: Add back 'Test::Compile' as needed for os-autoinst * spec: Fix invalid '%perl' introduced with 3aadc34c * Test handling worker job status changes * Fix passing --no-cleanup worker CLI option * fetchneedles: Use subshells efficiently for dir changes * fetchneedles: Fix indention * fetchneedles: Prevent noisy output about auto-packing git repos * Ensure query in jobs API does not become too big * Remove group name from job templates example * Adapt order of job template example * Remove dead auth tests from a DBus refactoring 4 years ago * Give the authentication routes plugins will use names and test them * Improve and simplify compile check * Add Test::Strict to Docker container * Allow plugins to add links to the menu * Allow any suffix for TAP source files * .travis.yml: Make documentation generation an explicit job, only on master * .travis.yml: Give readable names to test jobs * .travis.yml: Put handling of cache dir together * Extend filter for new/updated admin table rows * Make log messages of worker tests less verbose * generate-documentation: Fix wrong script path introduced by 81df2fd * docs: Fix quotes and apostrophes for asciidoctor/github style * .travis.yml: Workaround flaky tests with 'travis_test' * Test kvm module, only if it is not built-in * Make containers non-x86 archs friendly and update to leap 15.1 * Remove another useless prototype and an unused function from OpenQA::Utils * Remove obsolete prototypes * Polish worker code * travis_test: Fix typo in 'python3-future' * Explicitly specify perl module 'Module::Pluggable' to fix warning * openqa-clone-job: Improve handling --from parameter * README: Clarify how releases are made * Adjust testrules.yml to changed worker tests * Post upload progress after ignoring known images * Remove dead code for handling known images * Improve formatting of comments for WebUIConnection attributes * Remove leftovers from interactive mode * Fix reporting number of images to send to liveview handler * Allow stopping worker during job setup * Rename OpenQA::Worker::Client to OpenQA::Worker::WebUIConnection * Improve use of attributes in worker code * Log specific message if ignoring job while already busy * Enable verbose option in compile check * Restructure worker * travis_test: Add dependencies for 'python-scripts' * Add YAML diff to jobtemplate_create events- Update to version 4.6.1562333920.03805636: * openqa-bootstrap-container: Fix package list passed as single string * Add Text::Diff dependency to spec and Dockerfile * Fix handling of unknown workers in the websocket server * Activate strictures in tests as soon as possible * openqa-clone-job: Add support for full test URLs * tidy: Apply to all regular perl modules and scripts * worker: Improve log messages, e.g. avoid contractions * worker: Do not use bare returns * docs: Point to wrapper client-script for shorter path * docs: Replace the confusing table of triplets with a simple scenario list * docs: Revamp the "job templates" section * docs: Combine "asset cleanup" with "asset handling" * docs: Stress older versions of Leap less * docs: Better classify the different installation methods * docs: Clarify job groups display on index page * docs: Ensure "Installation & Users guide" are prominently featured in "Getting Started" * docs: Include all feature descriptions from wiki * docs: Also explain "medium types" directly in the glossary * Delete unused helper "limit_previous_link" * t: Fix warning in full-stack.t * t: Output isotovideo log files in case of incomplete jobs within the full stack test * t: Delete superfluous setting delete * docs: Add hint how to get coverage for individual tests * Do not trigger test cleanup code from forked processes * Always use spaces in CodeMirror editor * fetchneedles: Go back to old, quiet mode * t: Fix warning in full-stack.t * t: Delete superfluous setting delete * docs: Add hint how to get coverage for individual tests * Move 'create_worker' method to single place where used * client: Prevent warnings when receiving no HTML status code at all * Add package self-test for worker as well * Add make target "test-with-database" for easier test database setup * t: Fix typo in testrules.yml * Makefile: Use explicit target name for non-travis specifics * Lock test suites in YAML-based groups for manual updates and deletion- Update to version 4.6.1562157181.8465317e: * Fix tests that were assuming Test::Mojo methods had special return values * script: Fix shellcheck issues with old shellcheck version * Fix shellcheck warnings on docker/openqa/entrypoint.sh * travis_test: Use consistent spaces instead of tabs * Make all shell scripts pass default level (style) of shellcheck * Make all shell scripts pass 'warning' level of shellcheck * fetchneedles: Use consistent spaces style * Makefile: Add test for shell scripts using "shellcheck" * openqa-clone-custom-git-refspec: Include further suggestions by shellcheck * openqa-clone-custom-git-refspec: Fix use of "-n" on GITHUB_TOKEN * Trim whitespace characters from both ends of string * Add script for simple setup of a single instance * Revert to usual wording "distri" in YAML schedules- Update to version 4.6.1561959871.3b6d67be: * Fix deletion of scripts during install * travis_test: Ensure shellcheck is installed as part of dependencies (#2136) * Strip unnecessary extension from scripts (#2138) * Integrate clone-job into bootstrap- Update to version 4.6.1561118372.b9b694d3: * Move websocket server helpers to the model * Prevent blank line in worker caching output * Fix missing dependency in package buildtime tests as well * Rename architectures to scenarios * Defer loading the schema in OpenQA::Schema::Profiler, so the worker does not trigger a migration * Fix missing runtime dependency on "DBIx::Class::DeploymentHandler" * apparmor: Allow unzip-plain to fix worker startup- Update to version 4.6.1560873517.08f60a7b: * Calculate elapsed time more correctly * Add some documentation for OpenQA::Schema::Profiler * Refactor DBIx::Class profiler to use current openQA best practices * Remove dead code and move rng functions still in use to OpenQA::Utils * docs: Fix shell code box rendering with line break * Support storing YAML job templates in the database * docs: Improve language of Networking document * docs: Consistently use QEMU, the offical way of writing- Update to version 4.6.1560549641.c09044ae: * docs: No need to start openqa-gru explicitly * Add support for OPENQA_BASE_PORT environment variable- Update to version 4.6.1560497112.f26a0400: * Don't take the full cluster as possibly blocked (#2109) * Make localhost authentication more testable * Treat IPv4 and IPv6 the same for local host authentication * Blocked by calculation: Fix cyclic behaviour (#2104) * Fix travis cache permissions for docker user * Fix a problem where an Mojo::RabbitMQ::Client::Publisher instance goes out of scope too early (#2107)- Update to version 4.6.1560026218.807c3c09: * Update MM setup documentation * Test the scheduler API * Cache: Fix missing download progress output and warning * Provide the script `openqa-clone-job` already in source * Remove dead code from OpenQA.pm * Remove imports that are no longer needed * Remove all remaining traces of D-Bus * Share authentication controller between websocket server and scheduler * Remove old script that had been broken for quite some time (and was therefore probably not used anymore) * Turn scheduler core into a model class * Replace D-Bus with HTTP * Remove imports that are no longer needed * Add a scheduler client * Update architecture diagram- Update to version 4.6.1559744346.36d65edf: * docs: Add note how to fix broken CSS * Remove tidy from spec file * Use the latest version of perltidy * Improve tests for admin tables * spec: Fix Perl::Tidy mismatch in build tests * Follow updated admin table rows * Clear admin table filter before adding new row * apparmor: Fix worker startup on openSUSE Leap 15.1 * Don't log jobtemplate_create event if in preview mode * docs: Harmonize use of no colon in titles- Update to version 4.6.1559047081.8050f3f0: * Fix filtering settings in admin tables * Document latest/scope{relevant,current}/limit in jobs- Update to version 4.6.1558532409.ab91f319: * Install qemu-uefi-aarch64 on aarch64 in bootstrap * Use less noisy perl style for $comment->label * Prevent accessing comment label without check for undef * Ensure that module names are escaped * List remaining failed modules on mouseover * Allow listing bugs by the time of reporting * Require YAML::XS >= 0.67- Update to version 4.6.1558084113.18c6f052: * Revert "Improve code for settings expansion" * Update documentation about job scheduling * Add job template settings when scheduling new jobs * Show job template parameter via regular REST API * Allow YAML import/export of job template settings * Support scaling MAX_JOB_TIME * Add job template settings table * Add test for saving needles via Git * Validate properties of OpenQA::Git before using them * Fix comparision of cluster ID for dependency graph (#2068) * Set user correctly in OpenQA::Git instantiation- Update to version 4.6.1557739992.f9fbeb06: * Avoid leaking GITHUB_TOKEN * Skip UEFI_PFLASH_VARS asset when UEFI is disabled * Add an own result jobs which exceeded the timeout * Split off git support into its own class * Adapt 13-admin.t to the new sorting-enabled tables * Fix remaining jshint warnings in admintable.js * Adjust sorting of admin tables so empty strings come last * Improve styling of help icon beside search box * Improve regex-enabled search of admin tables * Tweak sorting and filtering in admin data tables * Remove admin table code for column type settings * Make admin tables use DataTables correctly * Improve code for settings expansion * Move job settings expansion to its own module * Use CodeMirror with YAML editor * Inherit specified settings when create job with 'Jobs post' * Show an error message in the editor if the group changed * Clean up 08-jobtemplates.t * Do not add new testsuites when importing job templates * Add YAML-based template editor UI * Add non-trivial test suites to exercise YAML validation * Import of job template specification from YAML * Support click_point in needle editor controller code * Fix issues reported by jshint in shapes.js * Test adding/removing a click point * Allow only one click point per needle * Allow adding click coordinates in the needle editor * Improve JSON parse errors in openqa-clone-custom-git-refspec * Retry after rsync exits with status 24 * Add non-fatal messages during scheduling to results * Allow authenticated calls to the github api * Remove deprecated qemu-kvm and use qemu-arm, qemu-ppc and qemu-x86 instead * apparmor: rk permission on hdd contents- Update to version 4.6.1555478309.f6dfdd9b: * Clone only the latest revision of the SLE needles (#2048) * Revert "openQA.spec: multiline macros for services and dependencies" (#2051) * Update architecture diagram in accordance with PR 2043 * Fix the remaining issues of deleting workers * Get rid of a few warnings that make test results on Travis hard to read * Be a little more strict about WebSocket server response codes * There should be no need for AssetPack in the websocket server * Trust connections from localhost to the websocket server to avoid complex config file requirements * The websocket server is no longer a dbus service * Clean up tests and remove a few connection warnings * The websocket server is no longer a dbus service * Move ws_send from dbus to HTTP * Move ws_send_job from dbus to HTTP * Remove ws_send_all dbus function, which was actually unused * Remove first dbus function from the websocket server * Add an HTTP API to the websocket server * Don't return status 402 on worker deletion failure * Fix indentation in admin_worker.js * Make OpenQA::Events::emit_event a non-static member function * Update AppArmor profile for usrMerge (boo#1132350) * Add cacheservice as part of openqa-worker.target * openQA.spec: multiline macros for services and dependencies- Update to version 4.6.1554809752.3a77164a: * Fix mock session logins to use only public Mojolicious APIs and create users with a proper resultset * Prevent multiple limit_* tasks from running in parallel * Allow deleting offline workers via API and web UI * Don't duplicate settings in iso_create/cancel events * Adapt product log test * Add test for re-scheduling product * Migrate 'iso_create' events to scheduled products * Show scheduled products from new table in UI * Test async flag for iso post route * Move constants for job dependencies to their own file * Add API route to query scheduled product * Add async flag to ISO post route and table to keep track * Cleanup scheduling functions- Update to version 4.6.1553599469.57d6b3ca: * Properly escape bug titles * YAML output for job templates and schema validation (#1999) * Make the websocket server testable as a normal Mojolicious application * Add a model class to store worker state * Move more functions into helpers * Move dbus functions into helpers * Add controllers to the websocket server application * Install test distri deps on bootstrap * Turn websocket server into a real Mojolicious app * Use Mojo::Promise in enqueue_and_keep_track * docker: Add IO::Scalar dependency * doc: Reflect renaming virtio_screen.pm to serial_screen.pm * worker: Upload serial_terminal.txt for svirt backend * Unify schema access in OpenQA::WebAPI and fix the issue where the db helper was called on the application * Use result_p to track Minion job instead of timers * Improve logging non-scalar error info of GRU/Minion tasks * Extract common code for saving and deleting needles * Fix test for dependency graph * Don't let needle-related tasks fail if the cause is uncritical * Make needle deletion a Minion job * Setting to not cancel parallel parents with still-pending children * Add hints to fix dependencies when using devel- Update to version 4.6.1552567428.80082fe5: * Test create and delete events for job templates * Unify schema access with a singleton method * Use route placeholder types whenever possible for cleaner routes * Add link to relevant documentation in the job group settings * Cache result of OpenQA::..::JobGroup::load_properties * Allow disabling bug carry over on job group level * Remove dead validation code and replace it with route placeholder types * Pass affected_rows correctly in openqa_jobtemplate_create- Update to version 4.6.1552406543.b3e49dcb: * Remove check for $OpenQA::Utils::app * Move get_bug from Result::Bugs to ResultSet::Bugs * Add bug to db already on comment create or update * Add support for links to jira tickets * Rename tmp_schema to search_path_for_tests, which is a little more descriptive * Allow monitoring of Gru/Minion with a new public /admin/influxdb/minion API endpoint * Log job group events via audit log * Make openqa-webui.service depend on openqa-gru.service- Update to version 4.6.1552078716.6b292c9a: * Test deleting job from worker's job history * Move another class into its own .pm file and do not use private functions/methods across modules/classes anymore * Remove all uses of the enterprise operator and use a more consistent coding style in the affected classes * Add loading indication when saving needle- Update to version 4.6.1551963862.0a6b30be: * Prevent deletion of worker when deleting its current job * Prevent broken rendering of unknown result types * Add unxz/xz to apparmor profile to fix poo#48743 * Don't hardcode remote and branch names for saving needles- Update to version 4.6.1551797932.a5aadf24: * Remove safe_call from OpenQA::Utils since it is no longer needed * Cover more Gru special cases with tests * Remove resource allocator from architecture diagram * Mention the possible race condition in a comment * Bypass Gru special cases for non-Gru tasks * Use a completely new task for testing so we can replicate more edge cases in the future * Be a little more defensive with removing Gru tasks * Allow pure Minion jobs (without a Gru id) to bypass special case handling * Do not delete Gru tasks if they are not finished in Minion yet- Update to version 4.6.1551454083.e27d66d8: * Extend apparmor profile for all Git commands we use * Correct limit_assets task arguments * Allow test vars for openqa-clone-custom-git-refs * Fix updating needle Git repository * Fix uniform box widths of dependency graph in current Firefox * Move JSON::Validator and YAML::XS to t_requires * Drop the `cpanfile` changes * Add YAML::XS and JSON::Validator dependencies * worker: Skip announcing stop if isotovideo already exited * worker: Fix "final status update" * worker: Refactor _stop_job_kill_and_upload * worker: Remove extra handling for dead children * worker: Make API calls when stopping job non-critical * worker: Treat upload failures as API failures * Raise an exception if deploying the SQLite database fails and handle an existing database more gracefully * Do not reset the job queue every time the cache service is restarted * Test cache service migrations * Use Mojo::SQLite migrations to handle schema upgrades in the cache service gracefully * Remove unused imports and IPC objects * Remove the resource allocator * Move barrier handling out of the resource allocator * Move mutex handling out of the resource allocator * Remove first dbus method and use OpenQA::Schema directly * Declare the DBIx::Class dependency properly * Move OpenQA::Resource::Jobs handling from the resource allocator to the webapi- Update to version 4.6.1551101052.7f891940: * Use well-defined worker config for fullstack test(s) * Adapt tests to default WORKER_CLASS * Assign default WORKER_CLASS when posting job * Assign default WORKER_CLASS when scheduling ISO- Update to version 4.6.1550673294.3fb7464e: * worker: Log error returned by JSON API * Render error in all cases in create_artefact- Update to version 4.6.1550584043.5098c32d: * Log isotovideo startup more detailed- Update to version 4.6.1549966436.c3938033: * Revert support for ASSET_\d+_URL * openqa-clone-custom-git-refspec: make use of GROUP var * Improve error handling when changing priority- Update to version 4.6.1549799415.315b994a: * Fix modules filter wrong results while using comma * Show bug reporting links also on text results * Prevent download tasks for the same asset running in parallel * Improve Minion error handling when saving needle * Allow to run Minion jobs in UI tests * Migrate intermediate database changes * Don't use might_have relationship for job scenario * Show externally skipped module count in resultstats * Use same style for needle editor warnings as for regular flash messages * Save needles via Minion * Format Git errors more nicely when committing needle * Rebase needle directory before commiting changes * Use commit_git_return_error in Step.pm to propagate error * Skip result skipped on calculate overall result- Update to version 4.6.1549379724.2b90641c: * Split configured hosts by whitespace * stopping job: Proceed on errors during announcement * Let devel mode fullstack test also pass on state cancelled * stopping job: Change order of POST requests * Prevent error about cmd srv connection when test ends * Make code for engine startup more clear * Add architecture diagram- Update to version 4.6.1549026855.08485c7c: * Remove SQL files for 2017 * Update serial terminal function (#1982) * Remove image migration jobs that were only used for very old migrations * Lift the parallel job limit for the gru worker and add more fine grained limits to individual tasks- Update to version 4.6.1548936964.47070d70: * spec: Fix missing mention of 'openqa-clone-custom-git-refspec' in script/ * Add test check for scenario within error reporting * docs: Add documentation for triggering jobs based on any git refspec * Add script 'openqa-clone-custom-git-refspec' * Consider parent group comments for important builds * Cache result of function call * Add scenario description to infopanel of test * Fix typo in reference to DeveloperSessions * Fix another regression from c9735699 when no sync is needed * apparmor: Fix access to git templates * Switch to four spaces as requested, modify error ignoring * Fix flaky test regarding needle update * Improve error handling in worker cache /status route * openqa-bootstrap-container: do more error checking, fix a hang- Update to version 4.6.1548420629.e8e80a4b: * Fix regression of test caching failing introduced by c9735699 * worker: Fix two perl warnings- Update to version 4.6.1548078204.c9f60161: * Use nicer syntax for default vars * Add (carried over) bugref to job.done AMQP event- Update to version 4.6.1547830304.62f9aaaa: * Allow overwriting container bootstrap repo * Remove Failed modules filter from UI * Add UI tests for filter by module * Add search by module in all jobs of job group * Prevent github to think we have perl6 code * Better check for existing DBs in bootstrap * bootstrap: make errors fatal and deal with re-runs * apparmor: Further fixes for custom git clones * Fix external reporting if scenario description not present * Improve code for scenario description and add test * Add test suite description for bug reporting * apparmor: Fix custom git repo clone "env" denied * clone_job: Add convenience option '--within-instance' * Also set assigned jobs to parallel_failed (#1951) * Fix a few issues reported by jshint * Prevent the live log from becoming too long * Handle undefined `$text` in `find_bugref` and `find_bugrefs` * Wrap text in live log so long lines are readable * Allow custom CASEDIR/PRODUCTDIR/ASSETDIR- Update to version 4.6.1547114886.81dabdea: * 21-needles.t: Use `discard_changes` instead of re-calling `find` * Add bootstrap hint for Leap 15.0 * Fix "Can't locate object method new via package JSON" introduced by 95cb6601 * Check for correct perltidy version on execution * Fix if condition and leap repo prios for bootstrap * Improve a few details in worker code * worker: Improve handling API failures * Handle unexpected errors on status update more nicely * worker: Fix handling errors caused by connection issues with web UI * Show currently executed function in developer mode * Allow to pause on the next command- Update to version 4.6.1545406149.53968c1e: * Activate strict and warnings for all tests and do not use indirect object syntax * Add tool to bootstrap openQA with only one command * Fix comments and reference the usage messages of the minion job/worker commands in usage messages * Test setting last needle update * Add examples for run and list commands * Add Minion tests and make the run command a subclass of the worker command * Use better variable names in t/21-needles.t * Prevent wrong 'New needle ...' notifications in needle editor * Rename Docker-related targets and scripts * Improve documentation about running tests without Docker * Remove obsolete docker/testing * Improve documentation regarding Docker * Use --oneshot to make it more obvious what is happening * Improve job restart * Allow submitting margin and match level via return key * Hide tooltips when hiding developer mode elements * Remove 'Cancel job' button from developer mode * Reuse many more parts of Minion for Gru * Add a new OpenQA::WebAPI::Command namespace so there is no need for hidden classes in plugins- Update to version 4.6.1545230885.56b79eeb: * Use OPENQA_TEST_IPC mock in 37-limit_assets.t (#1935) * Reformat with new perltidy version * Adjust comment for pauseOnScreenMismatch * Allow test in devel mode fullstack test to pass * Remove 'Error from livehandler daemon' prefix * devel mode: Test version check * devel mode: Check whether os-autoinst is compatible * devel mode: Allow to pause on check_screen timeout * Improve and fix asset caching doc * Fix typos * Makefile: Prevent docker "build" and "run" to run in parallel * Add basic documentation for OpenQA::Events- Update to version 4.6.1545054233.21210ce3: * Use a fixed version of perltidy * Prevent 'Summary of HASH(...)' if multiple distris/versions specified * .travis.yml: Delete not necessary stage overrides * docs: Make commands to call more prominent with backticks * Makefile: Delete unused target docker-test-travis * Do not set the MOJO_LOG_LEVEL environment variable by default for more granular logging * Reformat everything for the latest version of perltidy * Support filtering by test in group overview again * worker: Validate job sent by web UI "job_grab" * Use localized signal handling instead of global sigtrap for modules * Set transaction isolation level for asset cleanup accordingly * asset cleanup: Check whether $res_max_job is set before comparing * Fix copyright year * Add license to new module * Move memory limit handling into a plugin * Move all global events to OpenQA::Events * Add OpenQA::Events module to replace random events being added to Mojo classes * Improve documentation for schedule control * Extend and improve asset documentation * Don't treat UEFI_PFLASH_VARS as asset if path is absolute- Update to version 4.6.1544609268.19a4cf68: * Fix test for popovers in 15-admin-workers.t for real * Improve "Refusing 'grab_job'" debug message * Test worker broken state * Add 'broken' state to the worker * Prevent worker to accept jobs if caching not available * Update specfile line for restarting apparmor- Update to version 4.6.1544510066.913d8f26: * Update license of test spec-file to current SPDX format (#1915) * Use the boring standard return value for all Perl modules * Merge hashes properly * Test handling of assets with invalid name * Prevent registering empty assets * Skip cleanup of assets with empty name- Update to version 4.6.1544166689.47296c23: * Disable INSTALL_FROM_CPAN by default (#1863) * Don't leave a limit_assets task hanging after 14-grutasks.t (#1882) * Do not require perlcritic on sle-12 (#1910) * When detecting asset keys, don't use the _URL form for ASSET (#1907) * Add Perl::Critic::Freenode to the test container (#1906) * Fix devel fullstack mode test * Make devel fullstack test more verbose * openQA.spec: Add missing runtime requirement for client (#1905) * doc: Mention select_serial_terminal() in serial terminal doc * Test rendering external table * Don't show categories in table for external results * Add filter for external results table * Use circle to display results in external table * Add separate table for external results from parser * Move logic for test detail steps from view into controller * Fedmsg: use Python 3 logger command * Extend documentation on the developer mode panel * Add WORKER_HOSTNAME to workers.ini template * Document re-needling workflow- Update to version 4.6.1543830229.359b5dd9: * Add Perl::Critic::Freenode to openQA.spec * Use Perl::Critic::Freenode to determine good coding style * Make all modules pass Perl::Critic::Freenode with severity level 4 (stern) * Activate strict and warnings consistently for all modules * Fix network dependency for cache service * Remove DEBUG and LOGDIR environment variables and change cache services to use the test mode * Test skipping timeout in developer fullstack test * devel fullstack test: Don't fail if renamed needles already there * devel mode: Allow to skip assert/check_screen timeout * Remove srand workaround that does nothing anymore since Mojolicious 5.76 (2015)- Update to version 4.6.1543400978.50e006bc: * Fix worker-cacheservice failing on startup due to no network * docs: Extend development tricks with dynamic test override * Fix typo in installation documentation * Replace Mojolicious::Commands with Mojo::Server::Daemon in test modules, make sure all test modules use strict, and fix a few issues caused by not using strict before * Restart openqa-worker-cacheservice on failure * Allow caching of externally downloaded assets- Update to version 4.6.1543249675.02bb8eff: * Exit worker with non-zero return code in error cases * Do not import from_json, there is already an inherited method with the same name * Add comments to point at Mojo::JSON being used to set up booleans * Debug 25-cache-service.t * Make perltidy happy * Convert a few cases back to Cpanel::JSON::XS that require special configurations (mostly for tests, but there might be underlying protocol requirements too) * Document steps to debug developer mode setup * Convert most uses of Cpanel::JSON::XS to Mojo::JSON, which will take care of using an optimized encoder and avoiding boolean warnings * Use fixed header for test result overview table * Check for JavaScript errors while waiting for result panel * Prevent selenium test to accidentally click on the VNC notice * Move note about VNC into developer panel * Update existing unique flash messages * Expand devel controls by default if paused and owning the session (#1880) * Add rsync BuildRequires and Recommends to RPM spec (#1881) * Add a new is_admin_js helper to generate JavaScript booleans for use in templates * Add a test for browsing the admin pages in readonly mode * Use OPENQA_TEST_IPC in developer mode unit test (#1868) * Add test to check link for entire build * Add link to test results for multiple job grops * Call _reschedule after schedule concluded * Remove unused variable $force in _reschedule() * Fix comment in scheduler code * Fix various uses of the is_admin helper in templates to generate JavaScript that resulted in empty lists, because the helper returns a Perl boolean value instead of a JavaScript boolean * Revert "Fix deprecation warnings regarding Mojo::Transaction::error" * Fix line break in failed module box * Fix formatting * Fix deprecation warnings regarding Mojo::Transaction::error * Combine multiple distri/version/flavor/build filter with logical or * Fix filter for architecture * Upload video timestamp file when it exists (#1873) * Fix formatting * Use Mojo::File::slurp in check_tabmode * Improve error handling of Step controller * Handle `app` and `tx` attributes of Controller being weakened * Do not check group name by dragging group * Minor fixes for WritingTests doc (#1865) * Add 2 new dependencies to the travis container: (#1864) * Update all uses of Mojo::Transaction::success to their Mojolicious 8.06 equivalent * Fix a few new uses of tempdir * Fix various incorrect uses of Mojo::File::tempdir * docs: Extend definition of *softfailed* to "known issues" (#1837) * Refuse updating job group name with empty or blank (#1844) * Apparmor: Add /dev/hugepages (#1857) * Fix broken in section of inter machine dependencies (#1859) * Wrap up and polish * Do not use wantarray in GRU's enqueue() * Update POD OpenQA::Worker::Cache::Client's SYNOPSIS * Avoid to race to get available minion workers * Drop PID from log * Move Minion workers under a single service * Cleanup * Fix typo * Adapt gru tests * Generate same lock for asset/host in the request object * Fix rsync output in minion task * Refactor and update Documentation * Use the cache service to perform rsync tests caching * Create Minion task for rsync execution * Use the host folder to cache tests/needles * Do not check if child is running if it's not there * Reduce the lock expiration time * Trim spaces from left and right in assets name * Hold the db handle during transactions * Add test for Minion task registration and execution * specfile: DBD-SQLite needs to be > 1.51, required by Minion::Backend::SQLite * Add tests and cover also subprocess execution * Add function to generate session token * Read and set limit from config file, defaults to 50GB * Makefile: install Worker Cache Service systemd unit * Add POD for Cache Service and extend docs/Installing.asciidoc * Add service file and adapt openQA.spec * Avoid useless quotes on hash key * Debug - adapt compile-check-all * Address to PR comments - also add test for checking output in cache-service.t * Drop unused function * Write cache output into os-autoinst log * Make possible to retrieve cache output * Add debug messages while enqueuing download * Asset path needs to be a string for vars * Make dequeue and status post * Adapt fullstack to cache path change * Extract domain parsing to _base_url and use it also in the client to resolve asset path * Adapt tests * Get the cache path right * Incomplete job if cache service is down * tests: Wait also for worker minion in fullstack * Use defaults in isotovideo engine * Update defaults and remove protoyped function from Cache::Client * tests: Add test for available_workers() * Add available_workers() to Cache::Client * Fullstack: move sqlite cache check up * Cache: make retry() return always the response object * Fullstack: Wait cache to be ready * Adapt tests and utils * Drop unneeded default * Use OpenQA::Worker::Client inside the cache task * Start to adapt fullstack test * Adapt to PBP * Add dep on Minion::Backend::SQLite * Move common testing functions to Test::Utils as they will be reused also in fullstack test * Add Mojo::SQLite dependency * Use the Cache service within the worker * Add accessors to retrieve asset path and check if exists * Remove unneded log line and cleanup check_limits() * Finishing porting the Cache.pm code to Mojo::SQLite * Rework cleanup strategy, avoid endless loops - update etag fails now * Use Minion Admin plugin with the cache service * Drop downloading, Cache.pm now records just etag and size * Use Devel::Cover in cache-service tests to enhance coverage * Adapt cache tests - still fails on size calculation * Move Cache.pm code to Mojo::SQLite * Add dequeue() and tests for it * Fix and test enqueued tasks * Do not use list_jobs from Minion to gather statuses, causes races * Add default usage tests and use minion lock to detect if it's in use * Fix test copyright header * Add standard client usage * Add Cache service client * Do not lock anymore on assets * Add test for cache service * Add script to start cache service * Create separate class for Minion Server and worker * Do not log an error when trying to unlink an nonexisting file (#1854) * Prevent filter on test overview to reveal old jobs * Allow to create dependency for jobs on different machines * Test that filtering overview does not reveal old jobs * Add dependency for test in os-autoinst (#1851) * Handle skipped test result in IPA parser * Show bug title on mouseover * Fix job templates JavaScript * Fix typo in networking documentation * Regenerate docs * devel mode: Suppress connection errors if no module running * Make 13-admin.t more verbose in case of failure * Use $LEAP_VERSION in documentation consistently * Use 'not yet' instead of 'never started' on /admin/workers/X (#1841) * Extend unit tests for developer mode UI * Don't replace preview container when updating results * Load new test details when paused in the middle of module * Add START_AFTER_TEST/PARALLEL_WITH to dep graph tooltip (#1840) * Allow to scroll up and down using arrow keys on test details (#1842) * Fix testhelper wait_for_session_info * Lazy-initialize devel mode when switching to live view tab * Make 'can't remove ...' warnings debug messages (#1836) * Create new db schema version * Add tests for test module flags * Add special icon for the always rollback flag * Add always_rollback flag description * Add regex filter for admin tables (#1831) * Simplify Schema::Result::Jobs::running_modinfo * Test progress bars on /tests * Fix progress bars on /tests * Fix prio field in /tests and add a test for it (#1834) * Hide cloned jobs from job dependency graph (#1833) * Add route to poll stats of running and scheduled jobs (#1829) * Allow softfail and softfailed as step result * Prevent rendering undef/refs as resborder * Move errors regarding developer mode into the devel panel (#1830) * Test error handling of status/image/progress upload * Recompute asset status after cleanup for /admin/assets * Fix misleading error message on non-UEFI jobs (#1825) * Save asset status cache under /var/lib/openqa/webui/cache * Don't serve assets table while cleanup is ongoing * Update apparmor profile for current Tumbleweed for x86 workers (#1827) * worker: Stop job if considered dead by the web UI (2) * worker: Stop job if considered dead by the web UI (#1824) * Prevent multiple limit_assets tasks to run in parallel * Spawn limit_assets task in a consistent way * Polish a few details on the /admin/assets table * Allow to trigger asset cleanup task on /admin/assets * Prevent warning when rendering assigned jobs on 'All tests' page (#1823) * Fix issues noted by jshint * Make displaying assets by group faster * Set asset table width to 100% * Show last update of assets table * Improve speed of /admin/assets * Fix dependencies of openQA-client package (#1819) * Use less-ugly gravatar icons already used in OBS and progress (#1822) * Fix padding of tabs in testresults * Polish code for dependency graph * Clean CSS * Ensure filter icon and last tab button don't overlap * Add help text to dependency graph * Rename part_of_cluster to has_dependencies * Remove old dependency table * Test dependency graph * Improve appearance of dependency graph * Compute cluster for dependency graph * Fix clipping and alignment of dependency graph * Make dependency graph a bit more fancy * Display dependency graph using dagre-d3 * Handle logging errors (#1815) * Use italic font to display default prio (#1818) * Fix openQA-client package for openSUSE (#1816) * Stop worker when an unhandled exception occurs (#1809) * Limit new needles sent to os-autoinst on resume to 100 * Use Mojo::File in t/ui/07-file.t * Add 'perl(File::Touch)' to Dockerfile * Test needle download * Allow command server to download new needles on resume- Update to version 4.6.1538413557.f9e2a131: * Adapt tests to logging behavior of Mojolicious 8 (#1814) * Use transaction when computing the asset status * Make only cleanup fail on inconsistent asset status * Print max job when detecting ongoing scheduling during cleanup * Fix removal of scheduling assets * Document asset cleanup- Update to version 4.6.1538057874.2d8d0618: * Update AppArmor profile for Leap 15.0 (#1810) * Allow overwriting job priority when posting isos (#1807) * Dump the JSON templates as ascii * Fix jobs fixtures * Increase debugging information in asset removal * Round the remaining days to make tests less blinky * Fix wrongly assigned states in existing data * Prevent setting the state to SKIPPED * Test whether t_finished is assigned when setting a final job state- Update to version 4.6.1537939546.7aa7ed58: * all tests page: Fix parameter passing for timestamp rendering (#1806) * Make asset cleanup more verbose (#1803) * Fix 'last_match' param of AJAX route for needle table (#1802) * Use AJAX for all tables on /tests * Don't pre-compute IDs for finished jobs when loading HTML * Optimize all tests page * doc: remove mention of openQA-devel package (#1800) * Make sure multimachine jobs get a worker eventually * Some code restructing in the scheduler function * Delete empty settings in clone job * Display progress bar when downloading asset * Cache infos about scheduled jobs * Limit logs and results for groupless jobs (#1798) * Release job networks more often (#1795) * Fix removal of untracked assets (#1796) * Enable the scheduler on updates (and the webui is enabled) (#1785) * docs: Write Leap installation repo in more timeless way (#1791) * Run inserting screenshots in a transaction (#1792) * Update AppArmor profile to allow worker to use cgroups * Set specific slice for worker service * Better detect of systemd slice * Inform worker about devel session to reduce posting status info (#1789) * Correct typo (#1790) * Require RabbitMQ::Client 0.2 * Make AMQP sending less fragile * Make web socket and livehandler daemons listen on IPv4 and IPv6 (#1787) * Prevent worker to endlessly retry non-critical API calls (#1788) * Fix typo in t/api/02-iso.t * Make asset download feature usable by both "jobs post" and "isos post" * docs: Cover different asset types and asset options- Update to version 4.6.1536756702.f75303c1: * Improve error log of AMQP plugin (#1784) * Treat failure when posting upload progress as non-critical * Allow regular HTTP and WS being passed though reverse proxy * Fix random failures in developer mode unit tests * Add unit test for posting progress upload * Add HMAC time stamp also on livehandler daemon * Store upload progress in database * Prevent use of uninitialized value when posting upload progress * Check for upload progress in developer fullstack test * Use API authentification for post upload progress route * Test handling of upload progress in UI * Show needle editor button not unless upload complete * Pass upload progress from worker via liveviewhandler to browser * Open needle editor in developer fullstack test * Fix one more corner case for blocked_by (#1781) * Simplify reschedule code * Make the overview page responsive again (#1780) * Sort scheduled jobs via database (#1779) * Fedmsg plugin: emit 'standardized' fedmsg (#1758) * Fix blocked jobs not appearing in scheduled table * Increase max execution time per job in fullstack test * fullstack.t: Distinguish between not found and wrong permissions * Add more checks in 15-comments.t to debug random failure * OpenQA::Parser::Format::JUnit include error and skipped details (#1778) * Update serial failures detection documentation * Prevent asset-releated tests being disturbed by unrelated files * Test computing asset status * Optimize querying asset status for admin table * Allow rendering asset table as JSON- Update to version 4.6.1536432963.ac9f540e: * Fix the vlan assignment and release * Remove debug that prints to STDERR * Clean up 05-scheduler-dependencies * Take the full cluster into account, not just the first level * Avoid undefined warnings from rescheduling * Do not reschedule cluster jobs multiple times * Do not require websocket in scheduler (#1777) * Extend the test coverage for blocked_by * Fixed blocked_by calculation not to create loops * Schedule the jobs manually in fullstack test * git clone only the HEAD of os-autoinst * Do only copy back the cache on travis * Make 2 debug messages in WS server info * Wait for the scheduler to reshedule job 3 * Die early in full-stack test * Don't output 'Scheduling new jobs' if there are 0 free workers * Add some means to debug full-stack test * Only talk about cpanm if it's actually true * Run chromium with --no-sandbox not to require admin caps * Revert PR 1747 * Allow to enable monitoring using mojo-status (#1763) * Catch misconfigured test suites creating cycles (#1775) * Make tidy fast by only looking at changed files (#1773) * Ignore file docker.env created by make target docker.env * Update docker-related documentation * fullstack/Docker test: Skip os-autoinst build only conditionally * fullstck test: Improve ignoring JS errors * fullstack test: Prevent auto page reload when waiting for result panel (#1770) * Improve help popover for job group/template prio * Prevent Firefox to misalign arrows of prio input * Disable job template prio editor for non-admins * Test using default prio from job group when scheduling ISO * Add tests for setting prio via job templates API * Improve error msg and response for update of job template API * Allow job template to inherit prio from group * Allow amending job template priority * Use default prio when adding new job template to existing medium * Avoid using Mojo::ByteStream directly when rendering JSON * Adapt t/16-utils-runcmd.t for e2771ee * Fix sorting worker jobs by finished * Make 33-developer-mode.t more stable * Prevent use of uninitialized $current_running in Worker/Jobs.pm * Test opening needle editor for running tests * Improve 404 error pages of needle editor for running jobs * Test pausing on assert screen timeout * Consider only new console messages in fullstack test * Adjust upload_status for pausing on assert_screen timeout * Fix typo occured -> occurred * Test UI changes for pausing on assert_screen timeout * devel mode: Hide executed modules when test status updated * devel mode: Show reason for pause * needle editor: Show 'back to live view' if in devel mode * devel mode: Allow to open needle editor when paused * devel mode: Add UI elements for pausing at timeout * Use git -C for commits * Don't check for .git directory when making git commits- Update to version 4.6.1534873283.be929573: * Remove entrypoint from specfile sources * Makefile: Build env file for docker with needed environmental variables * Fix Mojolicious version requirement * Emit parent group ID in AMQP comment event * Use subtests in AMQP test * Makefile: Avoid also to parse env with spaces to travis * tests: Fix builds on master * Adapt fullstack tests to changes in os-autoinst * Make javascript_console method less verbose when there are no errors * test: disable broken test * Do not call unblock introduced in 184d0c5d5 * Revert "Calculate blocked by jobs on creation in job resultset" * Do not display blocked count * Do not calculate blocked jobs * Drop unused import * Revert "Merge pull request #1729 from mudler/blocked_by" * Revert "Fix usage of $blocked in test results template (#1740)" * Revert "Merge pull request #1741 from coolo/fix_blocked_by" * Makefile: cleanup * tests: INSTALL_FROM_CPAN by default * docker: Pass environment to docker * docker: try to build our image with package upgrades and custom entrypoint while running tests * docker: Upgrade container packages before running tests * Fix suggested command for adding devel repo- Update to version 4.6.1533914931.14b73490: * Use the transaction to check if it's empty (and avoid warnings) * Upload: Keep the transaction around * Calculate blocked_by status of restarted jobs * Remove systemd dependencies on scheduler * Fix usage of $blocked in test results template (#1740) * Make limit for keeping untracked assets configurable * Test inheritance and overriding of job/parent group properties * Read default job/parent group properties for cleanup from settings * Update openQA documentation regarding serial failures detection * Make UEFI_PFLASH_VARS non critical on local workers * Print autoinst-log.txt after Travis testrun * Fix full-stack.t * Adapt test of group overview JSON route for parent comments * Test tagging on parent group level * Test commenting on parent group level * Allow pinned comments on parent group overview * Support commenting on parent-group level * Test overrides for job settings passed to clone job script * Reduce indentation in clone_job_apply_settings * Require at least IO Socket SSL 2.009 * Pass worker setting WORKER_HOSTNAME to web UI * Add tests for comments carryover if module contains bugref in details * developer mode: Don't show same error twice * Unify disable_bootstrap_animations and disable_bootstrap_fade_animation * Carry comment over if test suite failed with same serial failure * developer mode: Show flash messages on errors * Test processing state changes from os-autoinst * Consider fullpath as a valid asset * Minor refactor for clone_job.pl and add unit test * Add global settings support for clone job * Treat UEFI_PFLASH_VARS as non critical asset * Change striped name from IPA results * Remove debug leftover * Highlight blocked jobs with orange colour * Do not hide scheduled jobs if blocked * Calculate blocked by jobs on creation in job resultset * Release vlan networks only if other jobs in the same cluster aren't running anymore * Disable worker shuffling in 05-scheduler-* tests * Add scheduler function to disable worker shuffling during computation * Adapt job_grab tests * Adapt scheduler fullstack test to latest changes * Follow the rename of get_websocket_api_version * blocked_by calculation: Don't block on self * Fix timer reset on quit * Calculate blocked_by state later in the process * Reset the scheduler tick if not summoned * Simply scheduler logic - but a lot * Fix blocked_by for chained parallel jobs * Disable pp in IPC - a little too noisy on allocating * Filtering for scheduler * Prepare a hash of jobs * Select all scheduled jobs and filter them for free workers * Remove BUSY_BACKOFF and CONGESTION_CONTROL * Remove CAPTURE_LOOP_AVOIDANCE option * Remove OPENQA_SCHEDULER_FIND_JOB_ATTEMPTS option * Add UEFI_PFLASH_VARS to detect_asset_keys * Mark all restarted (cluster) jobs in UI * Add IPA format to OpenQA Parser * Improve logging in LiveViewHandler * Assign os-autoinst tx not before actually connected * Ignore 'Data frame received after close' for now * Extend unit tests for live view handler * Refactor LiveViewHandler * devel mode: Prevent endless, instant reconnects on error * Mention how to actually enable openqa-ssl.conf under openSUSE * Use wss protocol for websocket connection when page loaded via https * Fix javascript errors on running.js (#1719) * Update README.md- Update to version 4.6.1531161673.f7fc21dd: * Remove docker-tests during install * Don't display blocked jobs as scheduled * Make registering assets transactional (#1711) * docs: Add note on sending new lines to a serial terminal (#1714) * clone_job: Make _GROUP and _GROUP_ID override each other (#1716) * Add blocked_by to jobs - calculated on job changes * WIP: Move commands to run docker tests to separate script * Make parser test less verbose * Make error messages in setup_share_dir more specific * Allow to use a custom os-autoinst checkout * Remove print() leftover from debugging * ws proxy: Add tx after last client-specific error handled * Don't fail full-stack.t when already assigned * Prevent use of global variables in LiveViewHandler.pm * Make developer mode accessible to operators (#1707) * needle editor: Assign new background image instantly * developer mode: Show only modules which are still ahead * Adjust overflow behavior of dashboard progress bars * Use _GROUP_ID in clone_job.pl * Refactor test code for jobs post * Test specifying group by ID on jobs post * live view: Connect to ws server when testStatus.running is set * Fix bugs in form controls for devel mode * Show developer mode form only when connected via web sockets * Fix help popover in developer panel * devel mode: Handle case when module list still unknown * Never assume it is the own devel session when not logged in * Don't update developer mode controls until confirmed * Rephrase to avoid 'developer session' * Make full-stack test more stable (#1701) * Replace 'opened by' with 'owned by' * Prevent resetting the module to pause at on page load * Show link to ws console only in development mode * Remove useless debug printing in live view handler * Don't use Test::MockModule::redefine() * Improve error handling of livehandler daemon * Test UI controls also in developer fullstack test * Cancel job when quitting the developer session * Don't quit developer session when disconnecting from os-autoinst * Add tests for developer UI controls * Fix importing determine_web_ui_web_socket_url * Start developer session via submit button * Set status code when finishing ws connections * Avoid using Mojo::IOLoop->one_tick() in developer unit tests * Adapt to removal of waiting state * Fix style issues mentioned by @foursixnine in review * Extend unit tests for status-only route * Fix broken HTML on test details page * Check that VNC instructions are shown when test is paused * Document variables for developer mode * Hide entire developer panel when test not running * Adapt existing developer test to UI changes * Update module select for devel mode like modules under details * Handle reconnects in the client * Notify clients about removed sessions as well * Keep track of status-only and devel ws tx separately * Show VNC instruction only for running jobs * Pick the right route (either developer session or status only) * Add UI controls for developer session * Move methods to build proxy url to OpenQA::Utils * Remove deprecated ui test * Allow developer-instructions to be modified by status updates * Add status route to websocket proxy * Fix typos * Connect via livehandler proxy to isotovideo to get updates * Update service file for livehandler service * Remove unnecesary options for livehandler service * Update instructions * Expose VNC port to developer * Add UI controls for developer session * Fix formatting of Contributing.asciidoc * Document running UI tests with Docker in non-headless mode- Update to version 4.6.1530017682.0f384112: * Allow 'assigned' state in fullstack.t (#1699) * Move constants from Schema::Result::Jobs to a separate package (#1696) * Remove leftovers of interacitve mode (#1697) * Adapt fullstack test for the logging changes * Adapt tests for the display of pid in the log in debug mode * Print pids of processes in logs if log level is debug * Avoid db locks on asset_lookup * Treat the case when we could not update asset in critical section * More protection for critical section in the cache * Add other cache tests and more refactoring * Try to bring coverage back * Add locking test, and remove useless query in fullstack.t * Reduce the critical section * Avoid Perl 5.18 complain * No need to import getcwd * Do not run the cache test in parallel * Reduce parallel processes for concurrency test to avoid travis to crash * Wrap also toggle_asset_lock in lock_section * Flip download = 0 from the same function used to toggle on/off * Make the cache test more stable - add also option for stress test * Add concurrent test for cache * No need to init explictly anymore * No need to export get_asset anymore * Adapt cache and cache test to more OOP style * Use transactions and wrap rollbacks in eval calls for further debug. Also enable exclusive transaction in toggle_asset_lock * Fix wrapping of parser results (#1695)- Update to version 4.6.1529433451.a70c6e82: * Remove running_or_waiting method * Remove waiting state that was leftover from 5e65496f * Ensure proxy is connected to os-autoinst in devel test * Allow status as a ws_proxy command * Make waiting for paused more robust against disconnects * Remove unused parameter in wait_for_developer_console_contains_log_message * Let the web socket console automatically reconnect * Ensure ws connection won't timeout in fullstack tests * Improve check for developer console in fullstack test * Remove link to developer console * Use docker image from OBS (#1685) * Let tmpfiles.d create the mount point "share" (#1689) * Add basic barrier documentation * Improve documentation about mutexes * Remove $isodir from Utils (only used in tests) * Remove /tests/X/iso route * Remove hdddir and otherdir from Utils * Fix waiting for development session * Don't fake D-Bus when running the devel fullstack test * Propagate os-autoinst URL from worker to web UI * Fix CSS for developer console * Fix path for liveviewhandler in Apache config * Adapt execution of developer test to latest changes * Fix perl critic error * Open the 2nd window/tab in devel mode test correctly * Handle errors happening before dev session correctly * Add unit test for developer mode * Remove unneccassary D-bus env for livehandler * Refactor live view handler to use regular methods * developer console: Handle case when port is NaN * Refactor full-stack.t and 33-developer_mode.t * Add test for developer mode to Travis test matrix * Add test for developer mode * Workaround broken syntax highlighting of full-stack.t in Kate * Allow to start Selenium driver directly via start_driver * Improve passing parameter to OpenQA::Test::Database::create() * Fix ID of developer session info * Increase inactivity timeout for openqa-livehandler * ws client: Broadcast messages to all JavaScript client * ws proxy: Try/catch only JSON decoding * Allow login as a 2nd administrator via fake auth * Make logout accessible via regular GET * Install service file for openqa-livehandler * Use transaction to delete development session * Move ws connection for developer session to its own service * Keep track of developer session, limit to one session per job * Validate commands before passing to os-autoinst * Make the websocket proxy route basically work * Allow to use websocket console for proxy route as well * Add basic structure for developer mode web socket route * Make fullstack test more verbose * Prevent warning in fullstack test * Test pausing and resuming jobs * Add web socket console for isotovideo commands * Display incomplete jobs in next&previous tab (#1682) * Update documentation with NAT configuration using firewalld (#1683) * Categorize UEFI PFLASH drives as HDD assets (#1684) * Try caching * Easier way to pass exit status from docker-tests * Change message level when cgroups cannot be created (#1681) * Fix typo in the travis.yml and fix the grep regular expression for the status checking (#1679) * Adjust popover margin on audit log (#1678) * Change from su to sudo in the docker image * Docker shell scripts cleanup * Allow where parameter for mutex unlocking (#1677) * Documentation for running tests in docker * Enable codecoverage * Add support for os-autoinst * Add DBUS support. * Force user permissions 1000 to be compatible with opensuse * Moved the DB from the host to the container * First release of the dockerfile to create container to run unit and integration tests * Remove job_set_running - as jobs are no longer waiting * Remove job_set_waiting - jobs aren't WAITING anymore * Remove current interactive mode- Add Dockerfile and entrypoint.sh for development container - Remove _multibuild to pass source validator- Add files for livehandler daemon- Update to version 4.5.1528009330.e68ebe2b: * Remove uncovered as unused asset_list call (#1675)- Update to version 4.5.1527697506.2eedfb2e: * Add a little coverage to the admin/needle controler * Use the timestamp on admin/needles * Add migration to update the timestamp of the needle matches * Cascade set null to job_module IDs in needles * Add logggingPrefs to chromium to make sure we get browser logs (#1672) * Remove more references to first_seen * Remove job_module_needles table and first_seen_module_id * Remove scan_old_jobs job - no longer referenced * Drop Jobs::retry_avbl from DB * Scheduler: enable WAKEUP_ON_REQUEST by default and reduce default tick time (#1669) * Tidy previous commit * Reduce debug output for parser tests (#1668) * runcmd tests: handle differently-cased git error message (#1665) * Ignore cloned children during cluster calculation * Cancel the full cluster if a job fails * Rename jobs_to_duplicate to cluster_jobs * Add test case for cluster cancel (failing atm) * docs: WritingTests: Fix superfluous 'you' * docs: WritingTests: Add backend related test development tricks * docs: WritingTests: Split big section "Test development tricks" * Fix broken navigability with arrow keys in test details (#1664) * Fix test cases and make tests more reliable * Do not reuse scheduled jobs on cluster duplicate * Some sync between code and tests * Make Job::duplicate non-recursive * Always enable sql debugging if requested * Start the display with the current job * Small cleanup of variables * Extract create_clone from Jobs::duplicate * Remove support for retry_avbl * Remove limit option in next&previous tab UI- Update to version 4.5.1527149502.003be4d6: * Add error logging in gru (#1660) * Fix the alignment of the progress bars on group overview (#1659) * Add http-only config for nginx (#1526) * Disable needle selection if there's nothing to select * Reduce padding of lists in tool tips * Fix devider in job group navigation with Bootstrap 4 * Allow specifying group for isos post by name * Fix DataTable error under route /tests/latest (#1656) * Exclude external links in 22-dashboard.t (#1655) * Add _GROUP filter to isos post * Update documentation for multimachine tests setup- Update to version 4.5.1526551139.04373a1e: * Fix triples in job templates documentation * Update documentation about isos post in client help * Enable client to restart jobs 'from test result overview' * Add API route similar to test result overview * Refactor composing search args for test overview * Update documentation about isos post in client help * Show job results in results tab (#1614) * Show all badges and build numbers (#1650) * Limit special rendering for text results to parser results * Test rendering text results * Make the layout use 100% width (aka 'fluid') (#1646) * Ignore profiling data generated by nytprof * Improve rendering text results in test details- Update to version 4.5.1526033850.1ad9148d: * Add _source field to every detail generated by parsers implementations (#1647) * Fix links to #live not starting live view (#1648)- Update to version 4.5.1525548058.3f6bb61a: * Avoid appending multiple runs with --nocleanup (#1644) * Limit number of tasks for limit_assets and limit_results_and_logs GRU tasks * Add test for GRU enqueue limit option * Update apparmor profile for worker (#1645) * GRU: Add support to limit enqueuing by task * Update unit tests for TAP parser * Mark test suite as failed if test steps have failed * Add information about openQA internal results * Update TAP format documentation * Remove dots from filename * Ensure that the details description is set * Use a single result to contain all the test steps * Update changes to TAP format * Temporary version of the parser for TAP still failing * Log a warning when step data is not found * Allow LTP parser to load files that contain special characters * Replace extra dots in the filenames (#1642) * Increase the required coverage to 88.8 * Do not fail a pull request if there are unexpected changes * Use same width for each colored dep status span * Show parent and child deps on job page in nice tbl * Enhance unit tests for GRU TTL * Set 2 days of ttl for limit_assets and limit_results_and_logs when posting isos * Add unit test for GRU task TTL * GRU: Add TTL for Minion jobs * Use a smaller font for the 'ago time' to fix rendering (#1635) * Prefetch comment counts for /tests * Update bootstrap to 4.1.1 and fontawesome to 5.0.10 * Do not load full application to generate assetpack data (#1628) * Improve the duplication tests (#1627) * Hide categories when filtering test details * Ensure needles directory exists in 18-tests-details.t * Require 'Selenium::Remote::WDKeys' in CPAN file * Add test for filtering test details * Allow filtering test details- Update to version 4.5.1524586233.92db89bc: * Add unzip-plain to AppArmor profile (#1629) * Use current SUSE Logo (#1626) * Avoid skipping dependencies when cloning jobs. (#1623) * Improve some details in t/ui/18-tests-details.t * Randomize GET /tests/99946#step/yast2_lan/1 * Use usual prove flags on Travis as well * Hide failed modules on overview table for small screens * Fix positioning tooltips with Bootstrap 4 on overview page * Add Minion Link to navbar and move under admin * GRU: delete gru and deps on failure * Fix spacing of 'Build + Bars' rows on dashboard * Adjust padding and media break points for dashboard * Use exact same colors for cards/panels as before * Add unit test for job custom_module * Display GRU failure as job test module in openQA * Fix dropdown menus in fullscreen mode * Use full width in full screen mode * Make the gru service to be restarted on-failure * OpenQA::Task::* Die on fatal errors * Catch all tasks output also in case of error * Mark the jobs associated to the gru task incomplete in case of gru task failure * Adapt to new Minion::Job API introduced in Minion 9.0 * Remove unused Data::Dumper import * Use Minion::Command::minion::job to get jobs list * Enable the Minion Admin interface under /minion * GRU/Minion: Take account of failures * Use gru enqueue in controllers and keep relation with minion jobs * Adapt test and fix leak of memory * Gru: get dsn from DBI for Minion * Move GRU tasks to Minion- Require Minion >= 9.02- Update to version 4.5.1524056562.74e334c1: * Close candidate menu after selection * Fix positioning of dropdown icon under Firefox * Fix handling multi-tag tests * Adjust UI tests to handle new candidates selection * Implement full diff * Allow to show just the screenshot again * Add shortcuts to custom combo box * Make style for result preview part of openqa.scss * Use customized bootstrap dropdown instead of combo box * Workaround issue when clicking menu item in 21-admin-needles.t * Port card in overview correctly to Bootstrap 4 * Use same link color as before * Make badges look like before * Adjust colors * Fix paging of tables for running and scheduled jobs * Remove symlinks for Glyphicon fonts * Fix UI and fullstack test after Bootstrap 4 migration * Adjust media breakpoints * Fix grammar in tour * Upgrade tour to Bootstrap 4 * Restructure stylesheets * Fix live-view and other small issues under Bootstrap 4 * Make it look more like before under Bootstrap 4 * Fix permanentely moved links on dashboard * Fix overall appearance with Boostrap 4 * Fix filter panel on the main page * Patch bootstrap theme to be a little more like it was before * Remove hidden class * Port the navbar to bootstrap 4 * Start to migrate to bootstrap 4- Update to version 4.5.1523608608.fca0aa46: * Enforce sorting the results returned by the sql query to use in is_deeply (#1621) * Remove dead code in Worker/Jobs.pm * Update current test module details when cancelling running job * Prevent failures in worker reset_state() (#1618) * Group candidate needles by tag (#1606) * Test image selection of needle editor (#1617) * Fix 'Take image from' selection in needle editor (#1616) * Refactor needle editor code * Fix showing needle editor when no tags present * isotovideo: wrap log_ calls with eval * Require latest RWP * Start isotovideo inside a container using cgroups * Checks if failure status file exists before trying to slurp it * tests: cover case when one of the cluster jobs already running * Consider running jobs in filter_jobs * Fix fullstack test in case /usr/bin/isotovideo is present * Limit showing new needles to the 5 most recent ones * Use 'new' prefix when showing new needles * Add documentation about showing new needles in editor * Improve tests for needle editor * Show errors/warnings/info in needle editor with consistent margin * Show added/updated needles in editor * Add database entry for needles when saving via editor * Simplify save_needle_ajax code * Extend needle table with tags and timestamps * Capture serial patterns documentation * Don't show configure button for untracked assets * Fix mojo not handling max_size_limit when is a transaction * Allow optional overwrite of the productlog request depth with a query parameter (#1601) * Enable JSON representation of the test overview (#1600) * Add asset size limit option * Return reference for test result file lists * Make OpenQA::Client::Archive property of OpenQA::Client * Remove chdir that caused errors when downloading test files * Add file _download_file_at method for logs and uploaded logs * Move progress monitor code to a separate fuction * Ensure that uploaded test logs can be downloaded * Add first version of OpenQA::Client::Archive * Move test_uploadlog_list and test_resultfile_list to the model- Use Minion for GRU tasks, this requires Minion and Mojo::Pg as dependency- Fix handling UTF-8 when executing make install- Fix handling UTF-8 in update-cache.sh- Update to version 4.5.1520515419.c3df6f91: * Update the chromedriver url from 2.33 to 2.36 * Allow saving needles for OS with dots in the version * docs: Clarify some serial terminal terminology and other elaboration (#1596) * Do not reset the api version just because the worker is offline * Fix scheduler comment - now default MAX_JOB_ALLOCATION is 80 (#1595) * Always retry until chunk is uploaded and retrials exhausted (#1594) * Refactor and add error test * PARALLEL_CLUSTER is no more * Adapt scheduler_full test * Avoid to re-consider the jobs that are being allocating in a round * Do not take account of spaces in PARALLEL_WITH * Exclude allocating jobs from prefer_parallel cut * Consider allocating only when we have them * Bump MAX_JOB_ALLOCATION default to 80 * Exclude allocated when blocking dependencies * Consider the jobs allocated during the round as running in prefer_parallel * Prevent cluster tests to be allocated if their group is not allocated- Update to version 4.5.1520100590.2279151e: * Fix sort order of the review comments (#1593) * Expand the serial terminal console documentation (#1586) * Emit openqa_job_create events when an ISO is posted (#1584) * Replace die for 500 code and move global constants to OpenQA::Constants * Avoid circular dependencies when running the tests. * All the available free workers need to have the same websocket interface version * Move the interface verification to the worker ack- Update to version 4.5.1519929327.f726adcc: * Enable wrapping cells in overview table (#1591) * Perltidy * Protect during collected unsubscription * Prevent to determine job status from collected event when timout expires * Remove check backend timer * Fix check_backend detection * cpanfile: require at least Mojo::IOLoop::ReadWriteProcess 0.19 * Adapt jobs tests - we are not dying anymore * Don't fear the (sub)reaper * Add AMQP doc * Lock tidy version * Make prove verbose- Update to version 4.5.1519128406.810fb68b: * Show correct port for created job (#1578) * Use rwp also to call rsync (#1585) * Force a restart when the children or grand-children processes die * OpenQA::Parser::Format::JUnit mark testsuite failed if one of testcases fails * Replace the exec call with ReadWriteProcess module * Add use Mojo::DOM in JUnit and XUnit Parser (#1580) * Use the generated Mojo::URL as Client base_url * Add get_piece() in OpenQA::File to ease writing of downloader class * Add test for OpenQA::Files's prepare() * Make integration tests of uploader with fixed chunk size * Fire events inside subprocess before and after chunk processing. * Move uri checks inside common function in OpenQA::Client::Handler and guard from not configured scheme in host * Add test to check if retrials numbers are matching * Use subprocess for potential loop blocks * Adapt workers to error handling * Add tests for OpenQA::Client::Upload retrials on failures, and events propagation * Emit errors on OpenQA::Client::Upload * Swap multi-chunk uploader in worker with OpenQA::Client * Make OpenQA::Handlers EventEmitter(s) * Split OpenQA::Client * Wipe out content of written chunk, try only weak check and back to Storable * Do not always perform total cksum * Drop Mojo force to File asset, display stats of uploaded chunks * Write as we receive in a temp file * Avoid to relay too much on the serializer * Use C backend to read whole file when computing total cksum * Enhance error detection * Allow to chunks to dynamically grow and shrink * Make total checksum verification run faster * Let specify chunk size in config file, and default to 1000000 bytes * Also add API endpoint to inform of upload status, adapt tests * Do not make split() to load the file * Pass asset option in multichunk upload * Create empty file before writing it if doesn't exist * Try to swap current uploader with multi-chunked one for assets * Add spurt to OpenQA::Files * Add write_verify_chunks() and write_chunks to OpenQA::Files * Add methods to verify against chunks, also add test when joining/verifying in-place * Add serialize/deserialize also to single result of parser * Add OpenQA::File, wraps Mojo::File and adds seek capabilities * Add worker version check on the server. (#1552) * Add basic test for OpenQA::WebAPI::Description * Add POD documentation to Controller/API/V1 packages * Test 27-errorpages.t with a predefined API desc * Replace Pod::Tree for Pod::POM in WebAPI::Description * Add POD documentation to Controller/API/V1 packages * Move API description methods to its own package * Add POD documentation to Controller/API/V1 packages * WebAPI: Add API description from Controller's POD- Update to version 4.5.1518003872.3977d2f5: * Run perltidy again (#1577) * Fix perltidy complaints (#1576) * Give 404 rather than 500 on invalid asset route (#1575)- Update to version 4.5.1517920216.2250682a: * Take latest version of Selenium::Remote::Driver (#1570) * Big rework of the GRU limit_asset task (#1569) * Fix broken links in openQA documents * Update Installing.asciidoc * Add pager for comments on group overview (#1561) * Add help box for group filter * Fix testsuite descriptions if default config not present (#1554) * Test subgroup filter and form * Allow to expand nested groups by default * Add filter for subgroups * Check qemu pid before starting job (#1565) * Require < 1.21 of Selenium::Remote::Driver * Downgrading selenium drivers during test phase- add fonts for chromium test suite - and remove currently broken tests (https://progress.opensuse.org/issues/19652)- Update to version 4.5.1516716144.98db9c99: * Improve error handling in group overview (#1562) * Do not remove forwarded-for=https headers (#1558)- Update to version 4.5.1515767133.56cd6ee5: * Support nested OpenQA::Parser objects * If no parser format is supplied, return a OpenQA::Parser::Format::Base object * Add POD documentation for OpenQA::Parser::Result::OpenQA * Add documentation for OpenQA::Parser::Results and move search() in proper class * Move search_in_details() in a new class that inherits from OpenQA::Parser::Results as it is openQA specific * Add documentation of OpenQA::Parser::Result * Move methods and attributes from Parser to Base format * Simplify spec format definition and move common displayed fields to openqa specific result classes * Drop support for creating collections with package global variable (useless now) * Make possible to upload in all the supported format and add tests for it * Add other tests, bring back coverage and fix wrong Node val() assigment * Return a OpenQA::Parser::Result::Node object when getting unstructured data from result * Make parser now really recurive, add also support for nested data structure with unit test * Make LTP parser tests output compliant to openQA tests results * Run parser test in parallel * Add possibility to store / serialize file content too within the parsed result * Add test to check DB consistency with parser extracted results * Move format specifications to separated namespace * Add XUnit tests * Add basic XUnit parser and schema * Clean LTP and include schema inside parser file * Add support for nested Results collections (required for XUnit) * Use functional interface in exposed api * Make collections serializable for unstructured data * Add accessor for unstructured data * Ask to include result only if the specific parser can * Move include_result option to specific parser that needs it * Provide also functional interface * Serialize single Results object as seen by to_hash() and add tests * Add tests when parser errors * Support hashifications of unknown objects * Add unstructured data test * Add reset method to parser, add and cleanup tests * Make serializing possible for collections with different OpenQA::Parser::Results objects * Add possibility to export/import the Parser to JSON, add also tests * Add serialization tests for junit spec * Tidy OpenQA::Parser::Result * Hide name field in JSON encoding of OpenQA result - but keep serializing it * Add example of new format specification for LTP * Simplify LTP spec definition even more * Get hash representation automatically of attributes if they can be rendered as hash * Add backword support for v2 format and add unit tests * Rename subtest to avoid Perl 5.18 complaints * Refactor write of parser result data * Add optional extra list that can be filled by type spec parser * LTP specification: Environment is optional inside result in new format * Add support to serialize/deserialized nested data structure * Add serialization capabilities to parser, and add tests * As classes are representing merely what's the json content, include them in the LTP module file * Add test data example for LTP results format * Add support for LTP specification in OpenQA::Parser * Generalize parser results, and subclass to specific implementations * Adapt parser tests, since now default value for script is 'unk' * Generate test module result from parsable extra_tests * Parser: return unk for test script if does not exist * Add search between parsed tests, link results and tests * Draft for JUnit parser * Prevent worker status selection to sort (#1555) * Unify code for scheduled/running table and fix sorting (#1556) * Remove leftovers in t/api/02-assets.t (#1557)- Update to version 4.5.1515509269.fa07a084: * Remove assets from disk when deleting database entry (#1553)- Update to version 4.5.1513750232.be133588: * Add basic setup of multi-machine worker (#1544) * Allow deleting assets via web UI (#1551) * Deal properly with environment variables that can change logging (#1537) * Fix deletion of jobs referenced as last use of asset (#1549) * Show assets by job group * selenium test: Allow configuring mojo port * Split asset tables in used and untracked assets * Refactor data size rendering in JS and reduce precision * Set App mode in WebSocket server (#1548) * Fix repos gone too early: assign REPO_10 to jobs as well (#1547) * Retidy - Perl::Tidy 20171214 has different formatting (#1546) * Update installation steps for postgresql (#1538) * branding: openSUSE: Add Kubic (#1539) * Change the logs timestamp to ISO8601 (#1542) * Add documentation for postgresql migration (#1530) * Fully fix asset caching without test caching (POO #29208) * Fix job group update issue (#1533) * Hide worker properties if no login (#1534) * Switch to fontawesome 5 (#1531) * `limit_assets`: remove asset that breaks limit, not next one (#1536) * Remove all assets from DB that are gone (#1535) * Allow to query live data from api, adapt tests * Display additional information in the worker's table * Add panel and popover to show job detail * Make searchable field and fix DataTable loading * Add openqa-setup-db service that will create postgresql database (#1528) * Retrieve worker stats data * Do not query by default websocket server to display worker informations * Fix tests to expect new columns * Show size of assets exclusively kept by a group * Accumulate size of assets exclusively kept by a group * Document fast initialization of local tests (#1527) * Add column to groups with size of exclusively used assets * Also store if the asset is fixed in the DB * limit_assets: Use DBD::Pg directly for querying job asset * Check all columns in test for asset table * Show last use of asset in assets table * Ignore chromedriver logs * Show asset size * Write info about assets kept during cleanup to db * Improve comments in limit_assets * Fix PRJDIR error * Add support for colons on worker class * Add WORKER_CLASS to job_list filter * Fix caching of assets without caching of tests (#1521) * Accept a lower coverage - we removed code * Move worker log test to 24-worker.t * Schema.pm: Remove unused functions (increase coverage) * Remove SQL files for SQlite and for 2016 * Have our services require postgresql server to be up * Adopt generate-packaged-asset to use postgresql * Import log_error in OpenQA::IPC * Test: increment unstable_worker ticks and wait for each one to be ready * Remove more traces of Sqlite support * Provide t/test_postgresql to setup a temporary postgresql * Fix more test cases * Prepare a proper DB for the scheduler full test * Fix t/ui/22-job_group_order.t by providing sort_order in fixtures * t/ui/13-admin.t: Postgresql sorts RAID at the end * Sort table settings by key to have reliable tests * t/api/02-iso.t: Do not rely on hardcoded job number * Give WebSockets server its assets * Sort the previous jobs in worker table by ids * Skip all tests requiring a database * Test fixtures: restart the postgresql sequence * Fix t/17-build_tagging.t not to depend on Sqlite specifics * ui/04-api_keys.t: Don't rely on ids in fixtures * 14-grutasks: don't rely on DB sort order * Drop sqlite3 support * branding: Update SLE staging links (#1523) * Use log_info for worker activities (#1519) * branding: openSUSE: Add caasp (different bugzilla naming variant) (#1522) * Tidy the sources * Do not cast to int worker_status timer * Propagate error on IPC dispatch call * Use WORKERS_CHECKER_THRESHOLD to detect dead workers as well * Remove printing to debug the result of safe_call * Reduce OpenQA tests verbosity * limit_assets: don't wipe assets for PENDING jobs (#1518) * Allow same group name within different parent groups (#1507) * Apply log level correctly (#1516) * Check if job is valid before starting working on it. * Upload workers log to the webUI (#1502) * Only test basic tests on perl 5.26 (#1512) * Remove IDs from fixtures if they are in sequence (#1513) * Move the $shared_dir to setup_share_dir * Print project directory upon worker's init failure * Fix documentation generation script * Avoid warnings during test runs (#1511)- Add local-db subpackage to create local postgresql database for ease of use- Update to version 4.5.1511814842.53907890: * Make barrier option to automatically destroy the barrier if jobs belonging to it fails (#1498) * Improve web editor (#1510) * Remove outdated imports of JSON module (#1509) * Use Cpanel::JSON::XS in step/edit.html (#1508)- Update to version 4.5.1511709996.0670f622: * Use OPENQA_TEST_IPC for 12-admin-workers.t (#1506) * Poll status less often not to stress the server * Adapt coverage threshold * Mark workers dead when they disconnect from WS * Make full stack test more robust by adding more assertions * /tests/overview: Change sorting to show all machine variants together (#1489) * Use Cpanel::JSON::XS directly to avoid overwrite mess * Extend apparmor permissions for /usr/share/openqa/lib/** (#1504) * Test multiple perl versions in travis CI * Ignore specific 404 errors in the javascript console * Click away the feature tour in full stack * Make 21-admin-needles more robust * Clean VHD and VHDX images in cache * Treat VHD and VHDX images as HDD assets * Replace logrotate config with what we use in production (#1500) * Fix function names in ui tests * Rename PhantomTest to SeleniumTest * Remove support/work arounds for phantomjs * Use headless chrome instead of phantomjs * Use proper name and directory for PhantomTest * Update Cache documentation (#1495) * Make path of changelog configurable via config file * Add changelog for web UI * Avoid creating useless commits (#1497) * Add _ONLY_OBSOLETE_SAME_BUILD, _NOOBSOLETEBUILD -> _NO_OBSOLETE * Multiple loggings channels * Log Uniformization * Make sure /tests/overview shows test suite descriptions for all machines * Display job name on dependencies list * Worker: use population as scale_factor * Add websocket server test to cover errors when updating worker seen status and population update * Make threshold for worker_checker a constant, and tight the bond between the status timer and the timer for checking inactive workers * Use in_range from OpenQA::Utils in scheduler-full test * Best effort to let know worker population of different WebUIs * Move worker configuration reading to Worker::Common, making it easier to test and slim down the startup script * Remove already superseded default inactivity timeout from script/openqa-websockets * Remove keepalive message and introduce dynamic slot allocation for worker_status timer- adapt build dependencies to Cpanel::JSON::XS- replace phantomjs with chromium/chromedriver- Update to version 4.5.1509097496.8b8e8e20: * Prevent use of job_module_stats when showing jobs of worker * Fix sorting in table for previous jobs of worker * Remove all remaining uses of job_module_stats * Fix accessing job module stat 'unk' * Worker: Wrap asset_lookup() query in eval/if * Add API description for worker route * docs: Prevent parsing of '#' as markup * Allow admins to fetch the worker status by json * Fix name of the SUSE company * Prevent showing duplicated bugrefs twice * Fixing the package to build with newer assetpack (#1485) * Mention repos for Leap 42.3- Update to version 4.5.1508961373.6d2e83a0: * Scheduler: Add option to deal with slow workers that could be detected as dead. * Scheduler: Handle stop/restart cleanly * Respect log level configuration even when no log file is set (#1413) * More prominent color for closed bug references, old ones for open bugs (#1412) * Scheduler: implement retrials before declaring a job not accepted by a worker * Scheduler: add option to wakeup when we receive new jobs * Adjust full-stack tests scheduler default values * API/Worker: Get updates from job that match the worker id * Revert "Permit a dropped test coverage for now" as we are covered now * Worker: send worker_id when updating setup status * Job: Return error messages when worker doesn't send id * docs: Move label and bugrefs doc from wiki * docs: Add description of closed issue visualization * Use OPENQA_TEST_IPC in more tests due to scheduler changes * Scheduler: add code comments, refactorize and simplify code * Include '.' in INC for 24-feature-tour.t (#1420) * Scheduler: Remove EXPBACKOFF option and default to binary * Scheduler: Remove shuffle option. Is new default now, if we don't shuffle free workers we might go into starvation since they can keep failing * Scheduler: schedule() now returns allocated jobs and failures * Websockets: distinct error while dispatching job over ws * Improve error if a worker cannot connect to a WebSocket (#1416) * Conflict no-cleanup worker with normal worker (#1417) * Scheduler: Add basic unit testing * Scheduler: remove retrials and workers cache * Scheduler: use another state for jobs that have been assigned but are not yet in running status * Worker/Websockets: Make worker send status messages, and websockets reaping jobs that are not matching states * Websockets: print details of messages received from unknown workers * Websockets: remove (now) misleading debug message * Worker: do not die in the loop when current_host is not set * Scheduler test: simulate unstable workers * Workers: collect error if we fail dispatching commands to websocket dbus service * Scheduler/WebSockets/Worker: update job state to running from worker responses * Scheduler: now job allocation checks are not needed anymore inside scheduler * WebSockets: use set_running when updating job status (#1426) * Add support for custom links in footer * Fix staging link for CaaSP * Worker: increase keepalive timer * Seperate footer links from footer legal part * Add 'report Bug' for OpenQA product * Scheduler: sleep when we have nothing to do * Adapt scheduler tests to new sleep mode * WebSockets: reset to schedule state if we detect stale assigned jobs * Websockets: set default appname - which is used in error templates * Websocket: wrap database transactions in try catch so we can debug dbus service errors * Create base for fullscreen mode on group overview site * Include just show latest comment feature * Add disable comments feature in group overview * Add fullscreen to group overview and rewind comments part * Fix uninitialized value error and typos * Add autorefresh for builds and comments in group overview * Make auto refresh rate adjustable * Fix sporadic problem of systemd service start (poo#21004) (#1430) * Add description part for api routes at not_found page * Add a quick tour to openQA * Enable feature tour by changing database entry * Adjust ui test * Replace old DEPENDENCIES.txt references to cpanfile (#1423) * Templates: improve error handling in running_table (#1427) * Utils: Flush log output when we don't use Mojo::Log * WebSockets: finish connection when we don't have the worker registered * Workers: print debug output when connection is closed * WebSockets: enable required plugin on setup * Add tests for WebSocket disconnection handling * Add missing figure for closed ticket labels * Prevent use of job_module_stats when showing jobs of worker * Fix sorting in table for previous jobs of worker * Remove all remaining uses of job_module_stats * Fix accessing job module stat 'unk' * Treat ASSIGNED state as in execution * Subscribe start_job/stop_job events before we call send on websocket connection * Worker: reset internal state if we fail contacting the WebUI * Worker: Do not cleanup if pooldir is not set * Add support for multiple distri/version/group on /tests/overview * Websocket: Do not kill connections due to inactivity (meant mostly for browsers) * Dereference hashrefs before using 'keys' * Check whether description available before printing it * Cover the websocket server to avoid uncovered changes with CI builds * Include all relevant distros when linking overview * Use Mojo::Log for logging worker's output * Refactor worker status messages * Cover main OpenQA.pm, which was left with low coverage * Changes the log level to debug if --debug or --verbose is applied. Default is info level. * Fix use of undefined $email by using default icon instead (#1444) * Sync needles when caching is enabled * Use cache_tests from isotovideo engine * Better reflect job execution through states * Replace tabs with spaces and fix indentation. * Ensure CSS classes are used for Datatables * Add setup state to be polled and tidy up * Test 404 error page * Ensure use of symlinked applications for clone_job/dump_templates/load_templates * Trim less text in overview tables by using CSS instead of custom code * Disable live log/terminal by default * Untie live stream from live log * Make details the default tab also for running jobs * Ensure streams for live view are only consumed when tab is active * Allow info/debug messages in javascript_console_is_empty * Switch to live view by default in full stack test * Move read_test_modules to OpenQA::Utils * Add support for getting test results as json * Fix missing openQA::Client import introduced in 7c91a962 * Improve documentation for contributors * Log IPC errors * make Makefile non-bash environment friendly (#1465) * Add log function log_fatal * Allow filtering by result on 'All tests' page * Add query param for filtering 'All tests' table by result * Adapt bugzilla link to new SLE15 installer (#1466) * Fix filtering by result on 'All tests' page for some results * Test enabling result filter on 'All Tests' page via query * Fix regression introduced in https://github.com/os-autoinst/openQA/pull/1460 * Ignore .pc directory for perltidy (#1472) * Fix missing log_warning import on IPC.pm (#1473) * Cherry pick perltidy fixes from @henrich (#1475) * docs: Add hint about performance impact of VM snapshots (#1474) * Create ResourceAllocator DBus service * Split fullstack tests in different build matrix * Create exists_worker in OpenQA::Utils * Use schema from ResourceAllocator instance, refactor to use exists_worker * Adjust scheduler full tests after the split * OpenQA::ServerStartup: set also appropriate handle when setting up logging, since now FakeApp has STDOUT as default handle * Add safe_call to OpenQA::Utils * Switching to safe_call in ResourceAllocator * Make job update take into account of ASSIGNED and SETUP state * Worker: Reset state also when we loose current_host (due to failure contacting webserver) * Return 0 by default on worker's try_lock_asset() * Worker: Wrap asset_lookup() query in eval/if * Make heartbeat timeout for rabbitmq configurable (#1479) * Add API description for worker route * docs: Prevent parsing of '#' as markup * Allow admins to fetch the worker status by json * Fix name of the SUSE company * Prevent showing duplicated bugrefs twice- Provide clone-job, dump-templates, load-templates as symlinks in bin-path- Update to version 4.5.1501694730.25c355a8: * OpenQA::WebAPI::Controller::API::V1::Job: catch errors and return no jobs when we fail to contact dbus * Schedule jobs without polling * Make workers only accept one job from one webui - also check if we dispatched the job correctly to the worker * Update worker seen status from ws keepalives if thought dead * Set to running just when we are sure the job got dispatched to the worker * Improve error handling when we fail resetting scheduling state * Do not use in the workers next_tick anymore when accepting the job * Fix the keep alive timer handling in worker * We need more timers to be host specific * Scheduler: Be more strict with job states * Apache: SetEnv proxy-nokeepalive 1 * Permit a dropped test coverage for now * Scheduler: further optimizations and refinements * Get rid of notify_workers, and from the signal that was associated to it in the dbus scheduler service * Remove job grab from the API * Fix bugzilla links for CaaSP (#1395)- Update to version 4.4.1501432550.4c72a17b: * Some more permissions required for power8 worker (#1405) * schema: Add job module statistics to jobs table * Use job module stats from jobs table in 'All Tests' * Add . to INC for tests that use local modules (perl 5.26 doesn't) (#1406) * Update job module stats when module inserted/updated * Fix typo in networking documentation (#1407) * Add the job module statistics to the migration code (#1409) * SLE 'LeanOS' corresponds to 'Server' on bugzilla.suse.com (#1393) * Dynamic feature infos for users (#1388)- Update to version 4.4.1499449966.bd9ee915: * Replace die with log_error * Avoid edge case of asset sizes being incorrect. * Cache: resolve to current host when host URL cannot be resolved (#1352) * job templates: Fix removing options when finalizing row * job templates: Fix check for test selection when finalizing * job templates: Improve coding style in post * Fix bullet points in dashboard (#1356) * Provide a default (0) to max_rss_limit so that the config actually works (#1358) * Cache: Make each log message uniquely identifiable * Allow plugins to load specific configurations * Remove auth_config from OpenQA::WebAPI::Auth::* * Add fullscreen base into project * Add form entry for fullscreen view * Fix navbar to not hide if dropdown selected * Change help popover description in filtersection * Correct main controller and index page * Add error message for missing webserver * Also recognize kde bugrefs in Utils.pm (#1366) * Add link to CaaSP staging (#1360) * Also recognize fdo bugrefs in Utils.pm (#1367) * Database change for bug status * Improve assets log messages (#1365) * Documentation for GRE (#1369) * Extend sorting by time to parent group overview (#1362) * Add workaround for PhantomJS in needle edit test * Fix typo workround -> workaround * Prevent bugref_to_href replacement at end of title (#1372) * Refactor rendering response for server-side DataTable * Refactor server-side code for audit log * Refactor server-side code for previous jobs of worker * Test takeover of exclude areas in needle editor * Fix wrong HTML, input must not contain text * Show exclude areas in needle diff * Show exclude areas in needle editor always * Document areas * correct typo (#1379) * Enable INTEGRATION_TESTS (#1384) * Retrigger download retry for incomplete downloads * Fix perl structure printed in the logs * Check when asset has been removed by hand * Changing from using pure perl to Mojo::Asset::File * Allow the cache to use a configurable sleep time * Unlock the asset before the next download retry * Add unit test for cache * Add 25-cache.t to testrules.yml * Set sleep_time to 5 again * Remove unnecesary code from cache tests * Refactor server handling to avoid race conditions * Improve handling of logs and directories * Improve cache tests * Improve server_start and port handling * Remove unnecesary calls to Mojo::Asset::File * Fix test directory to share/tests (#1383) * Sort the failed modules on their timestamp not by their name (#1378) * Add test for "Server unavailable" * Inform user when OpenID login fails with no message from OpenID provider (#1380) * Increase the grace timeout to have uploads finish (#1385) * Notify the workers only when there are no errors * Create jobs from settings within a transaction * Increase information in logs if a wrong secret is used (#1374) * Avoid OpenID login to clutter log files (#1386)- Exclude not supported and not building i586 in spec file rather than project config - Use internal macro for %setup - Cleanup description and doc section- disable tests on tumbleweed as they hang - need to debug this regression first- Update to version 4.4.1496302635.5e9b3f9: * Replace die with log_error * Avoid edge case of asset sizes being incorrect. * Cache: resolve to current host when host URL cannot be resolved (#1352) * job templates: Fix removing options when finalizing row * job templates: Fix check for test selection when finalizing * job templates: Improve coding style in post * Fix bullet points in dashboard (#1356) * Provide a default (0) to max_rss_limit so that the config actually works (#1358) * Cache: Make each log message uniquely identifiable- Update to version 4.4.1496150882.49e14ecd: * Avoid OpenQA::IPC::ipc being called premetaure (#1185) * Add $prjdir prefix for relative filenames in Needles * Add option to change $prjdir on the fly * Adapt timers helpers for multi-hosts * Make api_call not to recurse into IOLoop, add callbacks * Adapt worker registration to multihost * Adapt jobs helpers to non recursive api_call and multihost * New multihost workers.ini * Per-host working directory support * Multihost commands parsing * Adapt worker tests for non-blocking api_call * Use OpenQA::Utils log functions in worker * Use share/factory directory instead of factory link * Replace dirs parsing by one liners * Remove dead code * Use testcasedir helper instead of removed static * Add some unit tests * Fix generate/packed-assets not to require dbus session (#1186) * Avoid 404 errors on scheduled jobs * Take 4 travis jobs as success * needle editor: Validate needles/tags in JavaScript (#1189) * Reduce the number of travis jobs (#1188) * Duplicate the job if the worker is terminated * Simplify selenium using code * Do not do any jsonfile path processing * Prevent uninit ws variable warning * Pass query params as params key for duplicate * Allow api_call to be called without callback * Change the Mojolicious version requirements (#1195) * Fix needle path check (#1196) * Fix the 12-needle-edit test to leave the data in place * Import log_error before using it * Introduce project share directory variable * Adapt test to use share directory * Switch test distro from pitux to tinycore (#1203) * Fix last remnants of global url and ua usage * Add image upload to full stack test * AMQP: Declare exchange passive and durable (#1202) * Fix an error when job result is "setup failure" * Prepend sharedir when looking for needles with relpath (#1205) * Add full stack test for setup failures * Fix 24-worker.t * Fix build lookup for single groups (poo#15988) (#1204) * Allow override of the usual setting precedence order (#1200) * Fix undefined warning for _stop_job_finish (#1207) * Shared worker documentation * Document referrer configuration and label:linked * Fix job_timeout timer not being removed after stop_job (#1209) * Add get_timer getter for worker timers query * Add tests if start_job set proper timers and stop_job removes them * Improve code preparing data for test overview * Synchronize 'TODO' filter with review badges * Add help popover for 'TODO' filter * Show help popover details link in new tab * Enhance jobs list in worker page (#1212) * docs: Ensure pool dir exists when starting worker manually (#1213) * Fix UI test skipping when modules not available (#1211) * Avoid creating duplicit dependencies (#1214) * Update documentation for a more obvious flow (#1218) * branding: Add casp reporting links (#1219) * Add notice to clone_job.pl help text (#1222) * Do correct DISTRI-VERSION case dir lookup * Fix AMQP SSL wide character JSON encoding (#1224) * Refactor test for scheduler dependencies (#1225) * Fix apparmor profile to let worker read from /other (#1228) * Update GettingStarted for some Fedora repo changes (#1229) * Fix time display regression introduced by f127654 * Harmonize running/scheduled time string also in UTC * Show absolute time in tests list for finished as well * Fix typo and make vhost config more readable * Update Pitfalls.asciidoc * Add pitfall for fake authentication method * docs: Correct asciidoc syntax for pool instance table * clone_job.pl: Display description with examples on '-h', too * Update create_admin script * docs: Improve language of 'using snapshots' section * Fix synchronization of TODO with badges * Add link from test details to assigned worker * Fix bugzilla links as CASP was renamed to CaaSP * docs: Delete reference to inactive stable repo (#1230) * needle editor: Fix errors appearing in JS console * needle editor: Show new tags in own line * needle editor: Display all tags in the same way * Allow configuration of how builds are sorted in web UI * Add id to comments over API to allow referencing * Fix needle editor when taking matches is disabled * Fix openqa_web docker instance running * Update Dockerfile to host openQA on Leap 42.2 * Change deprecated "MAINTAINER" instruction * Add instruction "LABEL version" * Use the default openID provider * docker: Remove pool volume unused by webui * Fix error when running the worker container * Fix dockerfile for webui * Fix dockerfile for workers * Update README.md for docker section * Document running selenium UI tests (under Leap) (#1250) * Make needle edit test case less specific * Prevent double machine tag output in 02-iso.t * Add option for 'isos post' route to deprioritize old builds rather than obsolete * needle editor: Format new tags bold * needle editor: Prevent adding empty tag * docs: Add documentation for 'triggering tests' * Harden loading of auth modules with whitespaces (#1253) * Allow redirects for clone_job requests (eg to ssl) * Allow annonymous read access to operator tables * Fix failing admin test * Fix bugzilla reporting links for CaaSP * [docs]: added documentation about setting up ssl (#1257) * client script: Don't encode URL twice (#1260) * Allow api_call to be called without callback * Add Cache * Enable caching on the worker * Improve Cache package and tidy up the code * Fix cache.db problems * Ensure the asset has the proper name * Add TESTPOOLSERVER variable for caching * Refactor to allow CACHEDIRECTORY to replace share directory * Simplify api_call nesting * Fix the ISO expansion for local assets * Let's set reasonable goal for codecov * Work on testing cache * Do not exclude .git from syncing * Harmonize the keys used for assets * Add newlines to log output * Improve cache directory * Catch errors on cache downloads * Fix perlcritic errors * We need Mojolicious 7.24 for max_response_size * Implement download_asset so we can actually test caching it * Remove -E option from flock - we do not check the exit status * Make sure assets in pool are handled correctly * Add support for multiple group, no build on /tests/overview * docs: Add hint about multiple groups, no build * Call rsync of tests in a child process and notify webui * Move OpenQA::Cache to Worker namespace * Trying to make workers.ini more descriptive * docs: Add explanation for job priority (#1262) * Schedule worker reregistration in case of api-failure * Add more logging to job notifications * Use host_port when parsing URL * Prevent various timer loops * Do job cleanup even in case of api failure * Ensure uploaded assets have correct perms (#1263) * Change $testpoolserver only if passed as option (#1264) * Set read permissions for downloaded assets (#1267) * Ignore module flag 'important' (#1266) * product log: Don't show actions when not at least operator * Make assets, workers and API help publicly available * needle editor: Fix inserting tag via middle mouse button (#1269) * Fix restarting jobs from worker page (#1272) * Merge 'Status' and 'Connected' columns in workers overview (#1273) * Add anchor for build results on index page (#1265) * Lower down quantity of automatic carryover * Add environmental variable to skip online tests * Be specific which text element we want to test * Fix hardcoded cache.db file * Fix assets not being removed * Force read_db after a write * Add subtest for Cache * Improve log output for label carryover * Ensure that label carryover is done correctly * Fix the recursive $db_file appending (#1279) * Tidy the code after last hot fix * Relax the regex for build values in tag: comments again * Don't obsolete jobs for VERSION-BUILD tagged builds * needle editor: Distinguish tag/area selection in check * needle editor: Test verification when not copying areas * Improve little triangle sign below a screenshot (#1285) * Add ignores for db.lock and phantomjs log (#1287) * Correct 'softfailed' reference to passed (obsoleted) * Ensure consistent naming of 'failed'+'softfailed' in all occurrences * Fix overriden shared $dir worker registration (#1291) * Add a Contributing section * Add explicitly index and current.pdf * Stop distinguishing softfailures * Fix typo 'parallel' (#1290) * Adjust grid wrapping in build tables (#1286) * Use space indendation consistently in javascript files * Delete w/s at EOL in javascript files * Add 'build-results' anchor for group-overview page, too (#1281) * Replace old 'important' behaviour with 'ignore_failure' (#1297) * Give failed screenshots back the red border (#1300) * Adjust test module flags on Details page for ignore_failure (#1299) * Document the 'norollback' flag in WritingTests (#1298) * Better error msg for openqa client (#1303) * Improve 'Downloading failed' message (#1302) * Refactor 05-scheduler-dependencies.t (#1306) * Shorten build-numbers with dots to prevent overlapping (#1305) * Fix "only tagged" for tags with version (#1296) * Do not upload empty serial_terminal.txt (#1274) * Makefile: Allow to skip checkstyle (#1304) * Fix missing space in log debug message (#1307) * Register job assets even if one of the assets need to be skipped (#1310) * Test whether admin table displays needles which never matched * Show needles in admin table which never matched * Improve logging in case of upload failure (#1309) * Improve product fixtures to prevent dependency warnings * Handle wrong/missing job dependencies appropriately * clone_job.pl: Print URL of generated job for easy access (#1313) * Allow lscpu to read all of /proc - but only lscpu (#1315) * clone_job.pl: Skip downloading generated assets in all cases (#1314) * Fix invalid HTML * Don't use name attribute on div element for markdown * Fix indentation in overview.scss * Fix showing long needle name in hover popup * Prevent DB exception when adding tests in job templates (#1318) * Remove duplicate "current step" (#1319) * Refactor Cache.pm to use SQLite instead of json * Update cache full stack test * Fix minor race condition * Increase test coverage * Use cache.sqlite instead of cache.db * Detect and set current version of openQA, display it in the footer (#1316) * Add service file for workers with "no cleanup" (#1320) * Prevent tags from getting cut by long build numbers (#1321) * clone_job.pl: Fix generated job URL to be the receiving host (#1326) * Unlink existing asset symlinks on syncing (#1323) * Move OpenQA::Test::* modules to test directory (#1325) * Improve admin test (#1327) * Fix makefile syntax (#1328) * Avoid line break after h4 in midori and co (#1333) * Implement a config option to restart workers that grew too big (#1339) * Allow cache to handle 5XX errors and retry 5 times (#1337) * Inspect failed modules in /tests/overview (#1335) * Fix print() on closed filehandle $log (#1334) * Replace file_content() with Mojo::File (#1331) * Disable printing time when logging to STDERR * Add more tests to configuration parsing * Fix bugzilla reporting link for SLE-12-SP1 (#1332) * Make 'TEST' the only proper mandatory test setting (#1126) * Avoid unit test to write on source code directory (#1341) * Fix breakage introduced by https://github.com/os-autoinst/openQA/commit/659464d19b02e541f2529bd313c39681c71adfcf (#1343) * Add scheduler test to cover OpenQA::Scheduler::FakeApp (#1345) * Fix documentation publishing on gh-pages * Make sure a valid up-to-date license in all files * Fix doc generation - testapi (#1347) * Add unit test to fix codecov "uncovered changes" (#1348) * Add direct link to video position (poo#19300) (#1342) * Avoid github and use a CDN for chosen.jquery (#1350) * Correct Typo in Firewall config file (#1351)- Prerequire needed group nogroup- Also provide systemd services for workers with '--no-cleanup'- Update to version 4.4.1495052041.c6a5bc94: * Remove duplicate "current step" (#1319) * Fix minor race condition * Increase test coverage * Use cache.sqlite instead of cache.db * Detect and set current version of openQA, display it in the footer (#1316) * Add service file for workers with "no cleanup" (#1320) * Prevent tags from getting cut by long build numbers (#1321) * clone_job.pl: Fix generated job URL to be the receiving host (#1326) * Unlink existing asset symlinks on syncing (#1323) * Move OpenQA::Test::* modules to test directory (#1325)- bump mojo requirement- Update to version 4.4.1489864450.251306a: * Make sure assets in pool are handled correctly * Call rsync of tests in a child process and notify webui * Move OpenQA::Cache to Worker namespace * Trying to make workers.ini more descriptive * docs: Add explanation for job priority (#1262) * Schedule worker reregistration in case of api-failure * Add more logging to job notifications * Use host_port when parsing URL * Prevent various timer loops * Do job cleanup even in case of api failure- Add the openQA.changes file to be distributed as public/Changes on the web-ui- Update to version 4.4.1484732113.4fb90841: * Document filtering * Fix documentation generation (#1177) * Fix corner buttons (#1176) * utils: Add kernel bugzilla bugref (#1175) * Do not run tests for GH_PUBLISH=true * Mojolicious 7.19 has broken SSL support - blacklist it * Switch to CDN for fontawesome * Fix missing images in documentation (#1180) * Do not even run the coverage target if GH_PUBLISH is true (#1183)- bump requirements to Mojo and AssetPack- add Sort::Version requirement- Update to version 4.4.1484213177.5ef2a6e4: * Add css class to click on action (#1147) * client: Support sending JSON data (#1150) * Test both phantomjs and chrome on travis * Exclude AssetPack >= 1.30 - it will break fonts * Sort build versions correctly (#1136) * Add optional profiling support using Mojolicious::Plugin::NYTProf (#1153) * Add tests for client script * Don't use config file as database lock file (#1157) * Fix build of the package: we need a db directory to lock now- remove YAML and Socket::IO::INET6 dependencies- Update to version 4.4.1482329765.866bba8: * Improve buttons in interactive mode * Fix command API route * Synchronize INTERACTIVE and STOP_WAITFORNEEDLE_REQUESTED * Change the format for developing with snapshots (#1093) * Fix sorting of needle table (#1092) * Add short route to individual job results '/t:testid:' (#1089) * doc: fix typo (#1096) * Fix AMQP reconnect timeout config var (#1098) * Add AMQP connection error msg to log (#1099)- add new require on time::parsedate- Update to version 4.4.1481828911.8296cb4: * Update worker apparmor file from production worker log (#1078) * Add brc (Red Hat Bugzilla) and bgo (GNOME Bugzilla) labels (#1083) * Auditlog: display event time on hoover * Auditlog: add page and rows query options * Switch audit log to server side processing * Use system user to create system events * Add new Time modules dependencies * Add page displaying single event * Improve search query parser to support multi-word queries * Don't bother with event data shortening- add bcond_with tests to run phantomjs optionally- Update to version 4.4.1481216307.2d2b18a: * worker: Prevent use of uninitialized value (#1066) * Copy over policies from os-autoinst * Fix usage of qw(SINGLE_VALUE) in use statements * Rework websocket server (#1057) * client: Respect --json also in case of an error (#1068) * client: Set 'Accept'-header in any case (#1070) * Return 404 on status update for job without worker * worker: Abort job if considered dead by web UI * Improve misleading comment * Comment events: Drop unneeded fedmsg conditional, include id (#1065) * Improve log message when job considered dead (#1075) * Disable carry-over for job 'labels' to support new use cases (#1071)- Do not package removed files script/migrate_images and backlog- Update to version 4.4.1479741639.90bdf0f: * external_reporting: Fix differing header level in description (#1012) * Add test for parents on index page and parent group overview (#1015) * Show build tags on parent-level (#1018) * Add a 120 column limit to .perltidyrc (#1017) * Fix a few formatting mistakes and remove repetitive method calls (#1020) * docs: Update openSUSE repos to current supported (#1021) * Fix URLs in dashboard when version/distri differ (#1024) * Show submenus on click (#1025) * Update bootstrap to 3.3.7 * Wait a bit in tests if there is an ajax call- update cache for bootstrap-submenu- Update to version 4.4.1478599354.3d748dc: * Fix job group overview without description (#957) * Don't free worker before artefacts are uploaded (POO #14378) (#958) * Improve override needle test (#962) * Use textareas in test suite editor (#961) * Fix worker error reporting when asset cannot be found (#963) * Make .json easier to use and include more data (#965) * Add API routes for job group parents (#952) * Hide empty job groups from index page (#967) * Optionaly inherit command line variables in parent (#951) * Add gzip and rsync to worker's AppArmor (#968) * Only store md5_dirname if the image is in /images (#959) * Fix malformed HTML * Fix malformed HTML (#970) * Prepare CACHEDIRECTORY example in workers.ini and provide profile (#969) * Implement Drag & Drop group editor * Add support for github 'bugrefs' * t: Delete unused (disabled) 'use Test::Output' * t: Ensure proper output catching * Improve usability of job group property editor * Replace all '...' with '...' in web UI * Add assert_script_run description * Allow '@' in asset name (#979) * Fix list of needle tags in needle info popover (#977) * Allow worker profile to access fixed assets * Fix download of fixed assets from web UI * Reindent 01-jobs fixtures * Use url helpers to map the asset path to URL * Add help text using popovers, title and placeholder (#983) * Add missing argument for hmac timestamp validation * Give tests without fails a no-TODO tag (#960) * Trying to make peace with adamw over locate_asset * Add a repository as test fixture to test subpaths * Show tags on index page * Add API auth tests * Improve help popups * isotovideo: Remove redundant '|| undef' (#989) * branding: openqa.suse.de: Update staging to current SP3 (#988) * Show parent groups in navbar (#974)- have openqa_worker own /var/lib/openqa/cache- Update to version 4.4.1477579540.21d4009: * Use textareas in test suite editor (#961) * Fix worker error reporting when asset cannot be found (#963) * Make .json easier to use and include more data (#965) * Add API routes for job group parents (#952) * Hide empty job groups from index page (#967) * Optionaly inherit command line variables in parent (#951) * Add gzip and rsync to worker's AppArmor (#968) * Only store md5_dirname if the image is in /images (#959) * Fix malformed HTML (#970) * Prepare CACHEDIRECTORY example in workers.ini and provide profile (#969)- Update to version 4.4.1477110901.763fe71: * Step controller: split init into 2 functions * Fix coverage skipping files with 't/' in path * Test source view from running * Treat #details tab as all the others to fix back button * Add test for switching tabs in tests result view * Some fixes for the new results / running page * Fix SQL query to query important jobs * docs: Update OBS references * Upgrade to Leap 42.1, and fix apache2 starting problem * Live view: simplify drawImage * Be way more careful with history manipulation on results page * Treat # and '' the same for history management * Allow sha1sum for os-autoinst:2144a20c * Allow git for os-autoinst:d29266f * clone_job.pl: Add option '--skip-download' * Give the user better hints on what we expect for the expiry date * Do not create a link_post for reschedule isos * Use the proper API to get the data of the selected row not the first row * Replace the broken PNGed SVG with the real one * Talk to os-autoinst through HTTP instead of the file system * Replace document.ready with $(fn) * Fix interactive buttons * Fix upload of images during needinput * Make sure the worker stops at signals * Fix spelling of existent * Add web UI controls to select 20/50/100/400 previous results * limit_assets: when sizelimit is exceeded, remove more * Be more graceful when stopping the backend * Always set a t_finished to now if the job has a final state * Sort the finished jobs by their finished time * Change the order of the tests in the list test * Set a t_finished time in fixtures to have predefined order of finished jobs * Sort the scheduled jobs based on time * Sort the running jobs by Start time * Benefit from the hashsum calculation for our icons too * Remove pauseplay class and image - no longer used * Add more icons to assets and remove what's left in public/images * Remove dead file * Add custom whitespace squish * Use manual whitespace trimming after squish was removed from Mojo7 * Mojo7 removed Mojo::URL::authority, use host_port instead * Add SUSE internal branding with more links * Refresh running modules in #details view * Deal with race conditions when refreshing #details * Create missing results tbl on #details * Reload broken thumbnails on test #details * Correct description for use of OPENQA_CONFIG * Fix build tagging when @ is used * Clarify comment in the dashboard test * Use correct job result in openqa events * Add command_enqueue to worker model as send_command * Export log_error helper in OpenQA::Utils * Add job_set_done and job_cancel to Jobs module and result set * Adapt tests for moved job_set_done and job_cancel * Remove scheduler dbus exports and subs job_set_done and cancel * Remove command_enqueue from scheduler and dbus * Check for user when emitting event * Log iso_cancel for canceled jobs due to new iso and allow job_cancel_by_settings event * Fix typo in worker check during job duplication * Fix counting of cancelled jobs * Update Jobs::cancel to accept $obsoleted option * Use ws_call using well known format to send messages to WS server * Sync property parsing to workers format * Make softfailed a proper final result * Add tests for showing softfails in prev results * Give user_restarted an explicit colour * Remove MySQL from deployments, we never test migrations or deployments * Resort to raw SQL instead of avoiding the schema and still use dbic * Fix DB access error when skipping scheduled children * Test both children skipping and stopping * Accept softfail result as passed * Add test scenarios for job result calculating * apparmor: Add missing /usr/lib/git/git * Make softfailed tests show the right colour * Make non-important failures at least a general softfail * Calculate softfailed at the very end to fix one specific case * Add more tests for corner cases * Carry over also for incomplete and softfailed * Add V1 API for comments * Use API for comments in web UI * Add comments without reloading page * Only redirect to running tab when no # is in url * Clear url hash on test step result preview close * Test for url hash cleanup after preview close * Fix incorrect 21-admin-needles test * Fix calculate_result (again): $overall should cover all * Improve error handling of comment API * Prevent needle editor flickering (progress #12984) * Enforce build order for group overview in tests * Remove unneeded functions of old comment API * Add 'latest' query route * Remove history for step navigations * Replace job_set_done by $job->done in dead job handler * Move dead worker check to websocket server * Add test for dead worker detection * Make build in previous view a link to tests overview * Add test for 'todo=1' query param * t: Fix typo in t/ui/18-tests-details.t * Fix deadworker timer function reference * Fix complex_query and its usage in last route * Render links on 'latest' route directly instead of redirect * templates: Simplify single line statements * Make title for 'previous results' a proper heading * t: 12-needle-edit.t: Try to find overwrite warning more often (poo#12980) * previous: Move current limit where other options are * Add web UI controls to select more builds in group_overview * Add web UI controls to filter only tagged or all builds * Fix workaround label * Fix taking over tags from a workaround needle * worker: Remove tons of work arounds and quirks in upload * Allow cksum to be called in the worker * Upload assets as temporary files and only rename after chksum check * Fix typo * Prevent use of non-existing route in upload_status * templates: live: Fix url_for over 'latest' route * Disable auto-duplication of jobs (poo#13042) * Avoid shift * Test handling deleted needles in needle editor * Ignore deleted needles when showing needle editor * Show warning about deleted/bad needles (needle editor) * Fix admin layout for test suites with long keys Currently test suites slenkins-tests-ceph-control and s390_hsi-l2 * Make apache follow symlinks for assets directory * Fix '0' duration for previous jobs on running or scheduled job * Add link to latest job in each scenario * Allow pinning comments as group description * Fix jobs templates layout * Also filter 'machine' on latest * Vertically align progress bar with build number * Re-add boundary hack * Make 'latest' link more explicit * Do not quote identifiers, solves problem with uppercase column (#838) * use /var/lib/openqa/share/factory/iso path (#849) * Add 'bash' to be able to run 'CMD' (#850) * Add filter from in test overview (#852) * Draw needle match labels after match boxes (#851) * Add lock barriers (#845) * Show custom error pages (#831) * README: Update coveralls icon by .svg version (#853) * Add new job state (#848) * Remove old comment code (#856) * Run optipng on the worker while uploading images (#858) * Add filter for all states and results * Distinguish comment events * Show results and states dynamically * Test whether job still exists in reduce_result * Split Logging support out of WebAPI (#860) * Give the scheduler a home (#862) * Log status update without worker (#861) * dead worker check: use 15 secs not 10, better names, comments (#864) * Fix the stale job calculation for uploading jobs (#865) * Fix path in docs about migrating db schema * Show filter on top and display current filter * Avoid HMAC timestamp mismatch during large file upload (#871) * Give Websockets and Scheduler the home of the webapi (#870) * Label builds where all tests passed as reviewed * Dont grab twice (#874) * Prevent detecting occurrences like bsc#2436346bla as bugref * Replace URLs with the appropriate bugref pattern * Do not rely on WebAPI to find home - require and use an harmless class (#876) * Prevent multiple bug refs per comment to yield incorrect URLs * Add 'match' query parameter for index page * Add 'group' query parameter for index page * Add more faking to FakeApp - so restarting jobs works again (#880) * comment the home detection for scheduler/websockets better * Allow bugrefs being separated by any non-word chars * Fix used needle indication when needles are in folders * Merge match and group parameter * Use $FindBin::RealBin to resolve links for client script (#889) * Fix previous jobs showing up for different machine (#885) * Remove FIXMEs and disabled code in t/ui/15-comments.t (#888) * notify workers when job with chained children done (POO #13746) (#883) * Pass encoded URL filter parameter correctly (#890) * Reintegrate job duplicate (#875) * Mark worker alive for all kind of artefacts (#894) * Small schema change to add an index (#895) * Add IPC debug to websockets too to debug hangs (#896) * update apparmor profiles for ppc64le (#892) * Try harder to avoid long running pre-processing (#897) * Increase session expiration from 1 to 48 hours (#900) * Make ws_send_all WebSocket call not waiting for results (#902) * Avoid DBUS dead locks (#901) * Do not manually render anything on websocket creation (#903) * Prevent error message in log as 'scheduled' jobs are also 'inprogress' (#906) * Add scenario params to limit URLs for previous results (#893) * Handle links to bugs already formatted correctly (#905) * Improve documentation about PosgreSQL (#904) * Test time_limit_days query parameter (#907) * Fix comments test (#908) * Split the images directory even more (#739) * Add anchor links to comments (#909) * Move comments.css to sass reduce copy&paste (#910) * Readd the lost name of the thumb_nail route (#911) * Refactor computing build results (#898) * Show incomplete/skipped bugs, show tooltip on progress bars (#912) * Add link to openQA review (#899) * Fix vertical alignment of progress bars in tables (#917) * Show progress indication in admin needle table (#918) * Track image assets better (#919) * Fix deletion of multiple needles at once (#921) * fix downloading assets to different filename * Fix sorting in admin needle table (#924) * Add JSON representation of index and group overview (#922) * Add filter form for index page (#923) * Add /index.json route and test it together with overview.json (#925) * Fix /index.json route to pass the format (#926) * Fix softfailed results not showing in tests list (#930) * Fix group filter on index when param is empty (#933) * Fix group overview when no builds shown (#932) * t: Add 'Test::Warnings' where missing; Catch all warnings in tests again (#931) * Extend schema of JobGroups (#914) * Fix typos (#935) * reuse a constant boundary to make debugging failed uploads a little easier (#934) * Some code cleanup and more tests (#937) * Fix test result info spacing (#938) * fix loch ness monster bug in 14-grutasks.t (#941) * Load step and needles for failedmodules link async (#936) * Complete API for job groups (#942) * Auto reload result page on state sched -> running (#940) * Update Installing.asciidoc (#927) * Go to bugzilla.suse.com also for bnc# (#943) * Fix going to bugzilla.suse.com also for bnc# (#946) * Improve error handling when deleting needle (#939) * Fix needle deletion via Git (#948) * WebAPI: Delete comments stating the obvious + delete unused routes (#947) * Render bugref links in thumbnail text windows * Test render bugref links in thumbnail text windows * Show job group description (#950) * Add 'fixed' asset subdirectories for fixed assets (#928) (#945) * use locate_asset in register_assets_from_settings (#954) * Rejig compressed asset download, don't leave compressed files (#955) * Fix registration of downloaded assets (broken by 0905559b) (#953) * List needle tags + step icons (#944)- Add missing dependency perl(JSON) for openqa-client- Add missing dependencies perl(Data::Dump) and perl(Getopt::Long) for openqa-client- Add symlink /usr/bin/openqa-client to /usr/share/openqa/script/client- Ghost /var/lib/openqa/share in common subpackage * solves issues when updateing worker with mounted NFS- Remove perl(Perl::Critic) build requirement, added by mistake- Package /var/lib/openqa/share for common subpackage - Pakcage /var/lib/openqa/share/factory/[iso|hdd|other|..] for openQA package- Update base version to 4.4 to express new API of isotovideo- Update to version 4.3.1466434215.021a11c: * No longer export the worker_id as hash entry * Remove job_get from the scheduler * Simplify our theme - split the sass theme from the specifcs * Set an explicit colour on cancelled * Use default bootstrap table class for striping * Use the theme colour in tables * Have our bootstrap theme based on https://bootswatch.com/paper/ * Fix comments test - h2 is the new h1- Update to version 4.3.1464792258.155f49e: + t: Use helper function to wait for ajax + Extend iso post TEST parameter to support a list of tests (poo#10482) + Test for "let TEST parameter support a list of tests" + Enable brackets inside keys in client script + Add first approach for editable comments + Make comments for tests editable, too + Fix indentation of flash and wells on test page + Fix minor mistakes in editable comments + Reduce code-dublication in templates + Add first approach to test editable comments + Test comment editing in test results, too + Check for current user in commenting functions + Adjust t/17-labels_carry_over.t to reflect changes + Add css class no_hover to all /thumbs/ + Improve TEST parameter to support a list of tests + needlediff: Improve similarity text look + Use the nice audio icon (with the correct size) + Use nice icon for wait_serial + add a config setting to specify asset types not to link to + Increase left padding of status icons + Prevent error in group_overview with '-important' builds + Check database configuration with better user feedback + Fix broken string compare slipping into wait_serial icon change + Fix non-ASCII characters in comments + Allow admins to delete any comments + Fix showing editing buttons + Fix regexp for multiple parent jobs + Fix typo in 05-scheduler-restart-and-duplicate.t + Improve log message about 'setup failure' + Support tests/export to get a text format for archives + Fix re-enabling current user role + Adapt to latest AssetPack- add perl(Archive::Extract) dependency (needed by PR#627)- create openQA-client and openQA-doc subpackages - remove DB handling, it's done by openQA itself now- adapt to adam's changes- remove user migration code. no such systems should exist anymore- update base version to 4.3- add modify_needle script- add create_admin script- add perl(IPC::Run) dependency (needed by PR#414)- we don't need JSON::RPC::Legacy::Client- fix rpmlint warnings- add openqa-scheduler.service and openqa-websockets.service- fix fileliist for missing service files- package dbus system policy config - add perl(Net::DBus) to requires- add openqa-gru.service- keep /lib/openqa/share in webui and the symlink in -common. So a plain worker owns no files in share- add --from=geekotest to chown call just to be on the safe side- create a 2nd user and migrate the worker from geekotest to _openqa-worker- run preparetool from the right %post- fix missing ini files link and package new config dir (boo#919548)- Changed path for fetchneedles in post-install echo- don't move ini files in spec, Makefile does it now- include fetchneedles in file list- Update to version 4.1424166204.2ca1601: + Refactor worker scripts and add locking support + Pass worker port to os-autoinst and remove :jobid check + assets replaced /diskimages long ago - get rid of it + avoid "openQA: openQA" as title on main page - looks just silly + remove lib/OpenQA from include path - not needed + fix make test to be coverable and use it in .travis.yml + switch default auth_module to Fake + adding a test to test /admin/machines using phantomjs + skip the tests if phantomjs is not installed- we don't need MojoX::JSON::RPC- reduce mojo require to 5.60- require qemu in worker to get kvm group - add geekotest user to kvm group in worker's %post as qemu is not required by the web ui- fix requires- make it version 4 and require os-autoinst of version 4 too- add BuildRequire perl(Test::Compile)- pre-require openQA-common to make sure the user is created- we don't require png2theora any longer - and actually openQA-worker never did- fix upgrade scenario from openQA to openQA-common- split to openQA, openQA-common and openQA-worker packages- fix post script - remove buildroot macro/bin/sh/bin/sh/bin/sh/bin/shobs-power9-15 1751463596  !"#$%&'()*+,-./012345789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~5.1749832158.cc746ea0-bp157.2.6.15.1749832158.cc746ea0-bp157.2.6.15.1749832158.cc746ea0-bp157.2.6.10.01  !!""##$$%%&&''(())**++,,--..//00112233445566778899::;;<<==>>??@@AABBCCDDEFFEGEHEIEJEKELEMENEOEPEQERESETEUEVEWWEXXEYEZE[E\E]E^E_E`EaEbEcEdEeeEffEggEhEiEjklmlnlolpppqrssrttruurvvrwwrxxryyrzzr{{r||r}}r~~rrrrrrrrrrrrrrrrrrrrrrrrrrapache2vhosts.dopenqa-common.incopenqa-ssl.conf.templateopenqa.conf.templateapparmor.dlocalusr.share.openqa.script.openqausr.share.openqa.script.openqalogrotate.dopenqanginxvhosts.dopenqa-locations.incopenqa-upstreams.incopenqa.conf.templateopenqadatabase.inidatabase.ini.dopenqa.iniopenqa.ini.dsystemopenqa-enqueue-asset-cleanup.serviceopenqa-enqueue-asset-cleanup.timeropenqa-enqueue-audit-event-cleanup.serviceopenqa-enqueue-audit-event-cleanup.timeropenqa-enqueue-bug-cleanup.serviceopenqa-enqueue-bug-cleanup.timeropenqa-enqueue-git-auto-update.serviceopenqa-enqueue-git-auto-update.timeropenqa-enqueue-needle-ref-cleanup.serviceopenqa-enqueue-needle-ref-cleanup.timeropenqa-enqueue-result-cleanup.serviceopenqa-enqueue-result-cleanup.timeropenqa-gru.serviceopenqa-gru.service.requiresopenqa-livehandler.serviceopenqa-scheduler.serviceopenqa-scheduler.service.requiresopenqa-websockets.serviceopenqa-websockets.service.requiresopenqa-webui.serviceopenqa-webui.confrcopenqa-grurcopenqa-livehandlerrcopenqa-schedulerrcopenqa-websocketsrcopenqa-webuidatabase.iniopenqa.iniopenQAREADME.asciidocopenqaassets3rdpartybootstrap-4-multi-dropdown-navbarbeta2.0cssbootstrap-4-navbar.cssjsbootstrap-4-navbar.jsassetpack.dbassetpack.defassetpack.ymlcacheace-02b04ba561.min.cssace-394a5911a1.min.cssadmin_api_keys-053cdfc632.min.jsadmin_assets-6051ee1b3d.min.jsadmin_groups-6cdb6822a2.min.jsadmin_needle-8341c3d15f.min.jsadmin_user-c434ec3c2a.min.jsadmin_worker-20448e44f5.min.jsadmintable-bb08263ec6.min.jsanser-import-d89db15703.min.jsansi-colors-95758c4877.cssansi-colors-95758c4877.min.cssaudit_log-aabd7c6f33.min.jsback_to_top-1db5e6fd41.min.jsback_to_top-1dcf83a504.min.cssbootstrap-4-navbar-2844368a65.min.jsbootstrap-4-navbar-be5a32db9d.min.csschosen-1ed04edac5.min.csschosen.jquery-282feee705.min.jscomments-fd70a709b5.min.jscreate_tests-58142dd7b6.min.jsdagre-d3-d73502d69e.min.jsdependency_graph-7bde0baf3f.cssdependency_graph-7bde0baf3f.min.cssdisable_animations-425e3fe3eb.min.cssdisable_animations-528b393467.min.jsdisable_status_updates-e630f2634d.min.jsfetch_status-7e1a3ba64b.min.jsfilter_form-956ff8b3ba.min.jsfullscreen-cabe45067b.min.jsindex-2e5d72d0d3.min.jsindex-faf8a76672.min.jsjob_next_previous-635281fa3e.min.jsjob_templates-142a8d4c53.min.jsjquery.timeago-d611b2e326.min.jskeyevent-590865e808.min.jsneedlediff-d5af99e8a7.min.jsneedleeditor-e88a660733.min.jsobs_rsync-cb04842743.min.jsopenqa-11c05faa4e.cssopenqa-11c05faa4e.min.cssopenqa-ddb12c1440.min.jsoverview-b07e1ef210.min.jsparent_group_overview-a4d036ba1e.min.jsrails-c10b8cc7ea.min.jsrender-cdb42a11a1.min.jsrunning-b156b39ab7.min.jsshapes-90ed81a726.min.jstest_result-b2db3d0c9a.min.jstests-18f8be5de9.min.jsvideo-6bdd217688.cssvideo-6bdd217688.min.cssws_console-37bbd17108.min.jsws_console-5a086c2a3a.cssws_console-5a086c2a3a.min.cssimagesaudio.svglogo-16.pnglogo-blocked-16.pnglogo-blocked.svglogo-cancelled-16.pnglogo-cancelled.svglogo-execution-16.pnglogo-execution.svglogo-failed-16.pnglogo-failed.svglogo-not_complete-16.pnglogo-not_complete.svglogo-passed-16.pnglogo-passed.svglogo-scheduled-16.pnglogo-scheduled.svglogo-softfailed-16.pnglogo-softfailed.svglogo.svgsuse.pngterminal.svgjavascriptsadmin_api_keys.jsadmin_assets.jsadmin_groups.jsadmin_needle.jsadmin_user.jsadmin_worker.jsadmintable.jsanser-import.jsaudit_log.jsback_to_top.jscomments.jscreate_tests.jsdisable_animations.jsdisable_status_updates.jsfetch_status.jsfilter_form.jsfullscreen.jsindex.jsjob_next_previous.jsjob_templates.jskeyevent.jsneedlediff.jsneedleeditor.jsobs_rsync.jsopenqa.jsoverview.jsparent_group_overview.jsrender.jsrunning.jsscheduler.jsshapes.jstest_result.jstests.jsws_console.jsstylesheetsace.cssadmin-pages.scssansi-colors.scssback_to_top.csscomments.scssdashboard.scssdependency_graph.scssdisable_animations.cssforms.scssnavigation.scssopenqa.scssopenqa_theme.scssoverall.scssoverview.scssparent_group_overview.scssresult_preview.scsstables.scsstest-details.scssvideo.scssws_console.scssdbicdhPostgreSQLdeploy100001-auto-__VERSION.sql001-auto.sql63001-auto-__VERSION.sql001-auto.sql64001-auto-__VERSION.sql001-auto.sql65001-auto-__VERSION.sql001-auto.sql66001-auto-__VERSION.sql001-auto.sql67001-auto-__VERSION.sql001-auto.sql68001-auto-__VERSION.sql001-auto.sql69001-auto-__VERSION.sql001-auto.sql70001-auto-__VERSION.sql001-auto.sql71001-auto-__VERSION.sql001-auto.sql72001-auto-__VERSION.sql001-auto.sql73001-auto-__VERSION.sql001-auto.sql74001-auto-__VERSION.sql001-auto.sql75001-auto-__VERSION.sql001-auto.sql76001-auto-__VERSION.sql001-auto.sql77001-auto-__VERSION.sql001-auto.sql78001-auto-__VERSION.sql001-auto.sql79001-auto-__VERSION.sql001-auto.sql80001-auto-__VERSION.sql001-auto.sql81001-auto-__VERSION.sql001-auto.sql82001-auto-__VERSION.sql001-auto.sql83001-auto-__VERSION.sql001-auto.sql84001-auto-__VERSION.sql001-auto.sql85001-auto-__VERSION.sql001-auto.sql86001-auto-__VERSION.sql001-auto.sql87001-auto-__VERSION.sql001-auto.sql88001-auto-__VERSION.sql001-auto.sql89001-auto-__VERSION.sql001-auto.sql90001-auto-__VERSION.sql001-auto.sql91001-auto-__VERSION.sql001-auto.sql92001-auto-__VERSION.sql001-auto.sql93001-auto-__VERSION.sql001-auto.sql94001-auto-__VERSION.sql001-auto.sql95001-auto-__VERSION.sql001-auto.sql96001-auto-__VERSION.sql001-auto.sql97001-auto-__VERSION.sql001-auto.sql98001-auto-__VERSION.sql001-auto.sql99001-auto-__VERSION.sql001-auto.sqlupgrade63-64001-auto.sql002-update.sql64-65001-auto.sql65-66001-auto.sql66-67001-auto.sql67-68001-auto.sql68-69001-auto.sql69-70001-auto.sql70-71001-auto.sql71-72001-auto.sql72-73001-auto.sql73-74001-auto.sql74-75001-auto.sql75-76001-auto.sql76-77001-auto.sql77-78001-auto.sql78-79001-auto.sql79-80001-auto.sql80-81001-unique_job_modules.sql002-auto.sql81-82001-update.sql002-auto.sql82-83001-auto.sql83-84001-auto.sql84-85001-auto.sql85-86001-auto.sql86-87001-auto.sql87-88001-auto.sql88-89001-auto.sql89-90001-auto.sql90-91001-auto.sql91-92001-auto.sql92-93001-auto.sql93-94001-auto.sql94-95000-warning.pl001-auto.sql95-96000-warning.pl001-auto.sql96-97000-warning.pl001-auto.sql97-98001-auto.sql98-99001-auto.sql99-100001-auto.sql_commonupgrade76-77001-migrate-audit-events-to-scheduled-products.pl82-83001-migrate-machine-syntax-within-dependencies.pl85-86000-backup-asset-size-defaults-of-parents.pl92-93001-migrate-jobs.pl002-set-finished-and-fix-state.pl003-initialized-worker-last-seen.pl_sourcedeploy100001-auto-__VERSION.yml001-auto.yml63001-auto-__VERSION.yml001-auto.yml64001-auto-__VERSION.yml001-auto.yml65001-auto-__VERSION.yml001-auto.yml66001-auto-__VERSION.yml001-auto.yml67001-auto-__VERSION.yml001-auto.yml68001-auto-__VERSION.yml001-auto.yml69001-auto-__VERSION.yml001-auto.yml70001-auto-__VERSION.yml001-auto.yml71001-auto-__VERSION.yml001-auto.yml72001-auto-__VERSION.yml001-auto.yml73001-auto-__VERSION.yml001-auto.yml74001-auto-__VERSION.yml001-auto.yml75001-auto-__VERSION.yml001-auto.yml76001-auto-__VERSION.yml001-auto.yml77001-auto-__VERSION.yml001-auto.yml78001-auto-__VERSION.yml001-auto.yml79001-auto-__VERSION.yml001-auto.yml80001-auto-__VERSION.yml001-auto.yml81001-auto-__VERSION.yml001-auto.yml82001-auto-__VERSION.yml001-auto.yml83001-auto-__VERSION.yml001-auto.yml84001-auto-__VERSION.yml001-auto.yml85001-auto-__VERSION.yml001-auto.yml86001-auto-__VERSION.yml001-auto.yml87001-auto-__VERSION.yml001-auto.yml88001-auto-__VERSION.yml001-auto.yml89001-auto-__VERSION.yml001-auto.yml90001-auto-__VERSION.yml001-auto.yml91001-auto-__VERSION.yml001-auto.yml92001-auto-__VERSION.yml001-auto.yml93001-auto-__VERSION.yml001-auto.yml94001-auto-__VERSION.yml001-auto.yml95001-auto-__VERSION.yml001-auto.yml96001-auto-__VERSION.yml001-auto.yml97001-auto-__VERSION.yml001-auto.yml98001-auto-__VERSION.yml001-auto.yml99001-auto-__VERSION.yml001-auto.ymlDBIxClassTimestamps.pmLiveHandler.pmResourceJobs.pmLocks.pmSchedulerClient.pmControllerAPI.pmModelJobs.pmWorkerSlotPicker.pmSchemaProfiler.pmResultApiKeys.pmAssets.pmAuditEvents.pmBugs.pmComments.pmDeveloperSessions.pmGruDependencies.pmGruTasks.pmJobDependencies.pmJobGroupParents.pmJobGroups.pmJobLocks.pmJobModules.pmJobNetworks.pmJobNextPrevious.pmJobSettings.pmJobTemplateSettings.pmJobTemplates.pmJobs.pmJobsAssets.pmMachineSettings.pmMachines.pmNeedleDirs.pmNeedles.pmProductSettings.pmProducts.pmScheduledProducts.pmScreenshotLinks.pmScreenshots.pmSecrets.pmTestSuiteSettings.pmTestSuites.pmUsers.pmWorkerProperties.pmWorkers.pmResultSetAssets.pmAuditEvents.pmBugs.pmComments.pmDeveloperSessions.pmJobGroupParents.pmJobSettings.pmJobTemplates.pmJobs.pmNeedles.pmScheduledProducts.pmScreenshots.pmUsers.pmWebAPIAuthFake.pmOAuth2.pmOpenID.pmCommandgrugru.pmlist.pmrun.pmControllerAPIV1V1.pmAsset.pmBug.pmComment.pmFeature.pmIso.pmJob.pmJobGroup.pmJobSettings.pmJobTemplate.pmLocks.pmMm.pmRoutes.pmSearch.pmTable.pmUser.pmWebhook.pmWorker.pmAdminActivityView.pmAsset.pmAuditLog.pmInfluxdb.pmJobGroup.pmJobTemplate.pmMachine.pmNeedle.pmProduct.pmTable.pmTestSuite.pmUser.pmWorkers.pmApiKey.pmAppearance.pmDeveloper.pmFile.pmMain.pmStep.pmTest.pmDescription.pmPluginAMQP.pmAuditLog.pmHelpers.pmMIMETypes.pmMemoryLimit.pmObsRsyncObsRsync.pmControllerFolders.pmGru.pmTask.pmtemplatesObsRsync_folder.html.epObsRsync_gru_index.html.epObsRsync_index.html.epObsRsync_logfiles.html.epObsRsync_logs.html.epREST.pmYAML.pmServerSideDataTable.pmWebSocketsClient.pmControllerAPI.pmWorker.pmModelStatus.pmPluginHelpers.pmnode_modulesace-buildscssace.cssmain-1.pngmain-10.svgmain-11.svgmain-12.svgmain-13.pngmain-14.pngmain-15.pngmain-16.pngmain-17.pngmain-18.pngmain-19.pngmain-2.pngmain-20.pngmain-21.pngmain-22.pngmain-23.pngmain-24.pngmain-25.svgmain-26.pngmain-3.pngmain-4.pngmain-5.svgmain-6.svgmain-7.svgmain-8.svgmain-9.svgsrc-minace.jsmode-diff.jsmode-ini.jsmode-perl.jsmode-yaml.jsanserlibindex.jsbootstrapdistjsbootstrap.bundle.min.jsscss_accordion.scss_alert.scss_badge.scss_breadcrumb.scss_button-group.scss_buttons.scss_card.scss_carousel.scss_close.scss_containers.scss_dropdown.scss_forms.scss_functions.scss_grid.scss_helpers.scss_images.scss_list-group.scss_maps.scss_mixins.scss_modal.scss_nav.scss_navbar.scss_offcanvas.scss_pagination.scss_placeholders.scss_popover.scss_progress.scss_reboot.scss_root.scss_spinners.scss_tables.scss_toasts.scss_tooltip.scss_transitions.scss_type.scss_utilities.scss_variables-dark.scss_variables.scssbootstrap-grid.scssbootstrap-utilities.scssbootstrap.scssforms_floating-labels.scss_form-check.scss_form-control.scss_form-range.scss_form-select.scss_form-text.scss_input-group.scss_labels.scss_validation.scsshelpers_clearfix.scss_color-bg.scss_colored-links.scss_focus-ring.scss_icon-link.scss_position.scss_ratio.scss_stacks.scss_stretched-link.scss_text-truncation.scss_visually-hidden.scss_vr.scssmixins_alert.scss_backdrop.scss_banner.scss_border-radius.scss_box-shadow.scss_breakpoints.scss_buttons.scss_caret.scss_clearfix.scss_color-mode.scss_color-scheme.scss_container.scss_deprecate.scss_forms.scss_gradients.scss_grid.scss_image.scss_list-group.scss_lists.scss_pagination.scss_reset-text.scss_resize.scss_table-variants.scss_text-truncate.scss_transition.scss_utilities.scss_visually-hidden.scssutilities_api.scssvendor_rfs.scsschosen-jschosen-sprite.pngchosen-sprite@2x.pngchosen.csschosen.jquery.jsd3distd3.min.jsdagre-d3distdagre-d3.jsdatatables.netdatatables.net-bs5cssdataTables.bootstrap5.min.cssjsdataTables.bootstrap5.min.jsjsdataTables.min.jsfork-awesomecssfork-awesome.min.cssfontsforkawesome-webfont.eotforkawesome-webfont.svgforkawesome-webfont.ttfforkawesome-webfont.woffforkawesome-webfont.woff2jqueryjquery-ujssrcrails.jsdistjquery.min.jstimeagojquery.timeago.jspublicChangelogfavicon.icorobots.txtschemaJobScenarios-01.yamlJobTemplates-01.yamlconfigure-web-proxycreate_adminfetchneedlesinitdbmodify_needleopenqaopenqa-enqueue-asset-cleanupopenqa-enqueue-audit-event-cleanupopenqa-enqueue-bug-cleanupopenqa-enqueue-git-auto-updateopenqa-enqueue-needle-ref-cleanupopenqa-enqueue-result-cleanupopenqa-gruopenqa-livehandleropenqa-livehandler-daemonopenqa-rollbackopenqa-scheduleropenqa-scheduler-daemonopenqa-websocketsopenqa-websockets-daemonopenqa-webui-daemonupgradedbtemplateswebapiadminactivity_viewuser.html.epapi_help.html.epassetindex.html.epaudit_logindex.html.epproductlog.html.epgroupgroup_property_editor.html.epindex.html.epjob_group_row.html.epparent_group_property_editor.html.epparent_group_row.html.epjob_templateindex.html.epmachineindex.html.epneedleindex.html.epneedle_search.html.epproductindex.html.eptest_suiteindex.html.epuserindex.html.epworkersindex.html.epshow.html.epworker_status.html.epapi_keyindex.html.epappearanceindex.html.epbrandingopenSUSEdocbox.html.epexternal_reporting.html.epsponsorbox.html.epopenqa.suse.decommenting_tools.html.epdocbox.html.epexternal_reporting.html.epsponsorbox.html.epplaindocbox.html.epsponsorbox.html.epcommentsadd_comment_form_groups.html.epcomment_row.html.eppagination.html.epdeveloperws_console.html.epexception.html.eplayoutsbootstrap.html.epcode_editor.html.eperror.html.epflash_messages.html.epinfo.html.epjs_editor.html.epnavbar.html.epmainbuild_progressbar.html.epchangelog.html.epcomment_area.html.epdashboard_build_results.html.epgroup_builds.html.epgroup_builds_functionality_view.html.epgroup_overview.html.epindex.html.epmore_builds.html.epparent_group_overview.html.eppinned_comments.html.epreview_badge.html.epspecific_not_found.html.eptest_result_overview_link.html.epnot_found.html.epsearchsearch.html.epstepedit.html.epsrc.html.epsrc.txt.epviewaudio.html.epviewimg.html.epviewtext.html.eptestautoinst_log_within_details.html.epbadge.svg.epcomments.html.epcreate.html.epdetails.html.epdownloads.html.epexternal.html.epinfopanel.html.epjob_next_previous.html.eplink_context.html.eplist.html.eplive.html.eplogfile.html.epoverview.html.epoverview_result_table.html.epresult.html.epresult_file_list.html.epsettings.html.eptr_job_result.html.eptr_job_result_details.html.eptr_job_result_failedmodules.html.epvideo.html.epdbimagesfactoryhddisootherrepoteststestresultswebuicacheopenqa/etc//etc/apache2//etc/apache2/vhosts.d//etc/apparmor.d//etc/apparmor.d/local//etc/logrotate.d//etc/nginx//etc/nginx/vhosts.d//etc/openqa//usr/lib/systemd//usr/lib/systemd/system//usr/lib/tmpfiles.d//usr/sbin//usr/share/doc/openqa/examples//usr/share/doc/packages//usr/share/doc/packages/openQA//usr/share//usr/share/openqa//usr/share/openqa/assets//usr/share/openqa/assets/3rdparty//usr/share/openqa/assets/3rdparty/bootstrap-4-multi-dropdown-navbar//usr/share/openqa/assets/3rdparty/bootstrap-4-multi-dropdown-navbar/beta2.0//usr/share/openqa/assets/3rdparty/bootstrap-4-multi-dropdown-navbar/beta2.0/css//usr/share/openqa/assets/3rdparty/bootstrap-4-multi-dropdown-navbar/beta2.0/js//usr/share/openqa/assets/cache//usr/share/openqa/assets/images//usr/share/openqa/assets/javascripts//usr/share/openqa/assets/stylesheets//usr/share/openqa/dbicdh//usr/share/openqa/dbicdh/PostgreSQL//usr/share/openqa/dbicdh/PostgreSQL/deploy//usr/share/openqa/dbicdh/PostgreSQL/deploy/100//usr/share/openqa/dbicdh/PostgreSQL/deploy/63//usr/share/openqa/dbicdh/PostgreSQL/deploy/64//usr/share/openqa/dbicdh/PostgreSQL/deploy/65//usr/share/openqa/dbicdh/PostgreSQL/deploy/66//usr/share/openqa/dbicdh/PostgreSQL/deploy/67//usr/share/openqa/dbicdh/PostgreSQL/deploy/68//usr/share/openqa/dbicdh/PostgreSQL/deploy/69//usr/share/openqa/dbicdh/PostgreSQL/deploy/70//usr/share/openqa/dbicdh/PostgreSQL/deploy/71//usr/share/openqa/dbicdh/PostgreSQL/deploy/72//usr/share/openqa/dbicdh/PostgreSQL/deploy/73//usr/share/openqa/dbicdh/PostgreSQL/deploy/74//usr/share/openqa/dbicdh/PostgreSQL/deploy/75//usr/share/openqa/dbicdh/PostgreSQL/deploy/76//usr/share/openqa/dbicdh/PostgreSQL/deploy/77//usr/share/openqa/dbicdh/PostgreSQL/deploy/78//usr/share/openqa/dbicdh/PostgreSQL/deploy/79//usr/share/openqa/dbicdh/PostgreSQL/deploy/80//usr/share/openqa/dbicdh/PostgreSQL/deploy/81//usr/share/openqa/dbicdh/PostgreSQL/deploy/82//usr/share/openqa/dbicdh/PostgreSQL/deploy/83//usr/share/openqa/dbicdh/PostgreSQL/deploy/84//usr/share/openqa/dbicdh/PostgreSQL/deploy/85//usr/share/openqa/dbicdh/PostgreSQL/deploy/86//usr/share/openqa/dbicdh/PostgreSQL/deploy/87//usr/share/openqa/dbicdh/PostgreSQL/deploy/88//usr/share/openqa/dbicdh/PostgreSQL/deploy/89//usr/share/openqa/dbicdh/PostgreSQL/deploy/90//usr/share/openqa/dbicdh/PostgreSQL/deploy/91//usr/share/openqa/dbicdh/PostgreSQL/deploy/92//usr/share/openqa/dbicdh/PostgreSQL/deploy/93//usr/share/openqa/dbicdh/PostgreSQL/deploy/94//usr/share/openqa/dbicdh/PostgreSQL/deploy/95//usr/share/openqa/dbicdh/PostgreSQL/deploy/96//usr/share/openqa/dbicdh/PostgreSQL/deploy/97//usr/share/openqa/dbicdh/PostgreSQL/deploy/98//usr/share/openqa/dbicdh/PostgreSQL/deploy/99//usr/share/openqa/dbicdh/PostgreSQL/upgrade//usr/share/openqa/dbicdh/PostgreSQL/upgrade/63-64//usr/share/openqa/dbicdh/PostgreSQL/upgrade/64-65//usr/share/openqa/dbicdh/PostgreSQL/upgrade/65-66//usr/share/openqa/dbicdh/PostgreSQL/upgrade/66-67//usr/share/openqa/dbicdh/PostgreSQL/upgrade/67-68//usr/share/openqa/dbicdh/PostgreSQL/upgrade/68-69//usr/share/openqa/dbicdh/PostgreSQL/upgrade/69-70//usr/share/openqa/dbicdh/PostgreSQL/upgrade/70-71//usr/share/openqa/dbicdh/PostgreSQL/upgrade/71-72//usr/share/openqa/dbicdh/PostgreSQL/upgrade/72-73//usr/share/openqa/dbicdh/PostgreSQL/upgrade/73-74//usr/share/openqa/dbicdh/PostgreSQL/upgrade/74-75//usr/share/openqa/dbicdh/PostgreSQL/upgrade/75-76//usr/share/openqa/dbicdh/PostgreSQL/upgrade/76-77//usr/share/openqa/dbicdh/PostgreSQL/upgrade/77-78//usr/share/openqa/dbicdh/PostgreSQL/upgrade/78-79//usr/share/openqa/dbicdh/PostgreSQL/upgrade/79-80//usr/share/openqa/dbicdh/PostgreSQL/upgrade/80-81//usr/share/openqa/dbicdh/PostgreSQL/upgrade/81-82//usr/share/openqa/dbicdh/PostgreSQL/upgrade/82-83//usr/share/openqa/dbicdh/PostgreSQL/upgrade/83-84//usr/share/openqa/dbicdh/PostgreSQL/upgrade/84-85//usr/share/openqa/dbicdh/PostgreSQL/upgrade/85-86//usr/share/openqa/dbicdh/PostgreSQL/upgrade/86-87//usr/share/openqa/dbicdh/PostgreSQL/upgrade/87-88//usr/share/openqa/dbicdh/PostgreSQL/upgrade/88-89//usr/share/openqa/dbicdh/PostgreSQL/upgrade/89-90//usr/share/openqa/dbicdh/PostgreSQL/upgrade/90-91//usr/share/openqa/dbicdh/PostgreSQL/upgrade/91-92//usr/share/openqa/dbicdh/PostgreSQL/upgrade/92-93//usr/share/openqa/dbicdh/PostgreSQL/upgrade/93-94//usr/share/openqa/dbicdh/PostgreSQL/upgrade/94-95//usr/share/openqa/dbicdh/PostgreSQL/upgrade/95-96//usr/share/openqa/dbicdh/PostgreSQL/upgrade/96-97//usr/share/openqa/dbicdh/PostgreSQL/upgrade/97-98//usr/share/openqa/dbicdh/PostgreSQL/upgrade/98-99//usr/share/openqa/dbicdh/PostgreSQL/upgrade/99-100//usr/share/openqa/dbicdh/_common//usr/share/openqa/dbicdh/_common/upgrade//usr/share/openqa/dbicdh/_common/upgrade/76-77//usr/share/openqa/dbicdh/_common/upgrade/82-83//usr/share/openqa/dbicdh/_common/upgrade/85-86//usr/share/openqa/dbicdh/_common/upgrade/92-93//usr/share/openqa/dbicdh/_source//usr/share/openqa/dbicdh/_source/deploy//usr/share/openqa/dbicdh/_source/deploy/100//usr/share/openqa/dbicdh/_source/deploy/63//usr/share/openqa/dbicdh/_source/deploy/64//usr/share/openqa/dbicdh/_source/deploy/65//usr/share/openqa/dbicdh/_source/deploy/66//usr/share/openqa/dbicdh/_source/deploy/67//usr/share/openqa/dbicdh/_source/deploy/68//usr/share/openqa/dbicdh/_source/deploy/69//usr/share/openqa/dbicdh/_source/deploy/70//usr/share/openqa/dbicdh/_source/deploy/71//usr/share/openqa/dbicdh/_source/deploy/72//usr/share/openqa/dbicdh/_source/deploy/73//usr/share/openqa/dbicdh/_source/deploy/74//usr/share/openqa/dbicdh/_source/deploy/75//usr/share/openqa/dbicdh/_source/deploy/76//usr/share/openqa/dbicdh/_source/deploy/77//usr/share/openqa/dbicdh/_source/deploy/78//usr/share/openqa/dbicdh/_source/deploy/79//usr/share/openqa/dbicdh/_source/deploy/80//usr/share/openqa/dbicdh/_source/deploy/81//usr/share/openqa/dbicdh/_source/deploy/82//usr/share/openqa/dbicdh/_source/deploy/83//usr/share/openqa/dbicdh/_source/deploy/84//usr/share/openqa/dbicdh/_source/deploy/85//usr/share/openqa/dbicdh/_source/deploy/86//usr/share/openqa/dbicdh/_source/deploy/87//usr/share/openqa/dbicdh/_source/deploy/88//usr/share/openqa/dbicdh/_source/deploy/89//usr/share/openqa/dbicdh/_source/deploy/90//usr/share/openqa/dbicdh/_source/deploy/91//usr/share/openqa/dbicdh/_source/deploy/92//usr/share/openqa/dbicdh/_source/deploy/93//usr/share/openqa/dbicdh/_source/deploy/94//usr/share/openqa/dbicdh/_source/deploy/95//usr/share/openqa/dbicdh/_source/deploy/96//usr/share/openqa/dbicdh/_source/deploy/97//usr/share/openqa/dbicdh/_source/deploy/98//usr/share/openqa/dbicdh/_source/deploy/99//usr/share/openqa/lib//usr/share/openqa/lib/DBIx//usr/share/openqa/lib/DBIx/Class//usr/share/openqa/lib/OpenQA//usr/share/openqa/lib/OpenQA/Resource//usr/share/openqa/lib/OpenQA/Scheduler//usr/share/openqa/lib/OpenQA/Scheduler/Controller//usr/share/openqa/lib/OpenQA/Scheduler/Model//usr/share/openqa/lib/OpenQA/Schema//usr/share/openqa/lib/OpenQA/Schema/Result//usr/share/openqa/lib/OpenQA/Schema/ResultSet//usr/share/openqa/lib/OpenQA/WebAPI//usr/share/openqa/lib/OpenQA/WebAPI/Auth//usr/share/openqa/lib/OpenQA/WebAPI/Command//usr/share/openqa/lib/OpenQA/WebAPI/Command/gru//usr/share/openqa/lib/OpenQA/WebAPI/Controller//usr/share/openqa/lib/OpenQA/WebAPI/Controller/API//usr/share/openqa/lib/OpenQA/WebAPI/Controller/API/V1//usr/share/openqa/lib/OpenQA/WebAPI/Controller/Admin//usr/share/openqa/lib/OpenQA/WebAPI/Plugin//usr/share/openqa/lib/OpenQA/WebAPI/Plugin/ObsRsync//usr/share/openqa/lib/OpenQA/WebAPI/Plugin/ObsRsync/Controller//usr/share/openqa/lib/OpenQA/WebAPI/Plugin/ObsRsync/templates//usr/share/openqa/lib/OpenQA/WebSockets//usr/share/openqa/lib/OpenQA/WebSockets/Controller//usr/share/openqa/lib/OpenQA/WebSockets/Model//usr/share/openqa/lib/OpenQA/WebSockets/Plugin//usr/share/openqa/node_modules//usr/share/openqa/node_modules/ace-builds//usr/share/openqa/node_modules/ace-builds/css//usr/share/openqa/node_modules/ace-builds/src-min//usr/share/openqa/node_modules/anser//usr/share/openqa/node_modules/anser/lib//usr/share/openqa/node_modules/bootstrap//usr/share/openqa/node_modules/bootstrap/dist//usr/share/openqa/node_modules/bootstrap/dist/js//usr/share/openqa/node_modules/bootstrap/scss//usr/share/openqa/node_modules/bootstrap/scss/forms//usr/share/openqa/node_modules/bootstrap/scss/helpers//usr/share/openqa/node_modules/bootstrap/scss/mixins//usr/share/openqa/node_modules/bootstrap/scss/utilities//usr/share/openqa/node_modules/bootstrap/scss/vendor//usr/share/openqa/node_modules/chosen-js//usr/share/openqa/node_modules/d3//usr/share/openqa/node_modules/d3/dist//usr/share/openqa/node_modules/dagre-d3//usr/share/openqa/node_modules/dagre-d3/dist//usr/share/openqa/node_modules/datatables.net-bs5//usr/share/openqa/node_modules/datatables.net-bs5/css//usr/share/openqa/node_modules/datatables.net-bs5/js//usr/share/openqa/node_modules/datatables.net//usr/share/openqa/node_modules/datatables.net/js//usr/share/openqa/node_modules/fork-awesome//usr/share/openqa/node_modules/fork-awesome/css//usr/share/openqa/node_modules/fork-awesome/fonts//usr/share/openqa/node_modules/jquery-ujs//usr/share/openqa/node_modules/jquery-ujs/src//usr/share/openqa/node_modules/jquery//usr/share/openqa/node_modules/jquery/dist//usr/share/openqa/node_modules/timeago//usr/share/openqa/public//usr/share/openqa/public/schema//usr/share/openqa/script//usr/share/openqa/templates//usr/share/openqa/templates/webapi//usr/share/openqa/templates/webapi/admin//usr/share/openqa/templates/webapi/admin/activity_view//usr/share/openqa/templates/webapi/admin/asset//usr/share/openqa/templates/webapi/admin/audit_log//usr/share/openqa/templates/webapi/admin/group//usr/share/openqa/templates/webapi/admin/job_template//usr/share/openqa/templates/webapi/admin/machine//usr/share/openqa/templates/webapi/admin/needle//usr/share/openqa/templates/webapi/admin/product//usr/share/openqa/templates/webapi/admin/test_suite//usr/share/openqa/templates/webapi/admin/user//usr/share/openqa/templates/webapi/admin/workers//usr/share/openqa/templates/webapi/api_key//usr/share/openqa/templates/webapi/appearance//usr/share/openqa/templates/webapi/branding//usr/share/openqa/templates/webapi/branding/openSUSE//usr/share/openqa/templates/webapi/branding/openqa.suse.de//usr/share/openqa/templates/webapi/branding/plain//usr/share/openqa/templates/webapi/comments//usr/share/openqa/templates/webapi/developer//usr/share/openqa/templates/webapi/layouts//usr/share/openqa/templates/webapi/main//usr/share/openqa/templates/webapi/search//usr/share/openqa/templates/webapi/step//usr/share/openqa/templates/webapi/test//var/lib/openqa//var/lib/openqa/share//var/lib/openqa/share/factory//var/lib/openqa/webui//var/log/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.opensuse.org/openSUSE:Maintenance:18969/openSUSE_Backports_SLE-15-SP7_Update/30b8694c23c614ddcb35e4452570bfc4-openQA.openSUSE_Backports_SLE-15-SP7_Updatedrpmxz5ppc64le-suse-linux           !"#$$%& '() **++++++++*++* , ,directoryASCII textC source, ASCII textcannot open `/home/abuild/rpmbuild/BUILDROOT/openQA-5.1749832158.cc746ea0-bp157.2.6.1.ppc64le/etc/openqa/database.ini' (No such file or directory)cannot open `/home/abuild/rpmbuild/BUILDROOT/openQA-5.1749832158.cc746ea0-bp157.2.6.1.ppc64le/etc/openqa/openqa.ini' (No such file or directory)UTF-8 Unicode textASCII text, with very long linesASCII text, with no line terminatorsUTF-8 Unicode text, with very long lines, with no line terminatorsHTML document, ASCII text, with very long linesASCII text, with very long lines, with no line terminatorsUTF-8 Unicode text, with very long linesHTML document, UTF-8 Unicode text, with very long linesassembler source, UTF-8 Unicode text, with very long linesUTF-8 Unicode (with BOM) text, with very long linesC source, ASCII text, with very long linesSVG Scalable Vector Graphics imagePNG image data, 16 x 16, 8-bit/color RGBA, non-interlacedPNG image data, 147 x 128, 8-bit/color RGBA, non-interlacedHTML document, ASCII textHTML document, UTF-8 Unicode textassembler source, UTF-8 Unicode textassembler source, ASCII textPerl script text executablePerl5 module source textPNG image data, 16 x 16, 8-bit colormap, non-interlacedPNG image data, 17 x 9, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 55, 8-bit/color RGBA, non-interlacedPNG image data, 5 x 5, 8-bit/color RGBA, non-interlacedPNG image data, 3 x 6, 8-bit/color RGBA, non-interlacedPNG image data, 3 x 5, 8-bit/color RGBA, non-interlacedPNG image data, 1 x 2, 8-bit/color RGBA, non-interlacedPNG image data, 14 x 28, 8-bit/color RGBA, non-interlacedPNG image data, 16 x 16, 8-bit grayscale, non-interlacedPNG image data, 16 x 16, 4-bit colormap, non-interlacedtroff or preprocessor input, ASCII textPNG image data, 52 x 37, 8-bit gray+alpha, non-interlacedPNG image data, 104 x 74, 8-bit gray+alpha, non-interlacedTrueType Font data, 13 tables, 1st "FFTM", 14 names, MacintoshWeb Open Font Format, TrueType, length 136120, version 0.0Web Open Font Format (Version 2), TrueType, length 109916, version 1.0Bourne-Again shell script, ASCII text executablePOSIX shell script, ASCII text executableempty  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~RRRRPPPPPPP P P P P PPPPPPPPPPPPPPPPPPP P!P"P#P$P%P&P'P(P)P*P+P,P-P.P/P0P1P2P3P4P5P6P7P8P9P:P;PP?P@PAPBPCPDPEPFPGPHPIPJPKPLPMPNPOPPPQPRPSPTPUPVPWPXPYPZP[P\P]P^P_P`PaPbPcPdPePfPgPhPiPjPkPlPmPnPoPpPqPrPsPtPuPvPwPxPyRRRRRRRRRRRRRRRRRRRRRRS>~8MEapache2apparmor-profilesapparmor-utilslogrotateopenQA-local-dbperl(IO::Uncompress::UnXz)perl(Mojolicious::Plugin::OAuth2)rsyncsystemd-sysvcompatutf-82f383ca06953d171e2882053eba8a931afe3e57d843a5fb8092e101287c760e6?@7zXZ !t/^ &]"k%WIN.E ^uabr TБk-ݘ()?@?K>[ˤZ&clf( 4 sh*iUA^x)ƶZ]VL"#?HrjX%ylu1ѷԐ`@]!{Ϫ3[9kv xa9*LST}~EO ,uj+ MURn:6ㄎPUmaZ!KǺ(rʌ QtpU66OVwGr"{@엹c4 ;"M^ں`tY=*yH@ى8u WzF0`"_e5"P0({1a` ?`rWj?"8v^^Om-F;[R$$*-6@t\PדyX?y+t=~ o1e )h CJ'1^Yl{]v?_)X%I]ULRv鐂#NS9zf?X[ջG4_/##D¢PNA)2D7QHA<fH<2~A[`}#% XI/,tC/ |%n2tt˧g+~,Ae JVB[@R.0r(9ds1q00˱t_ld9|P*E&4(dF}NviŀusͳhuAe3c(ݿmFxE2bYVpQz2l-,b;%D\W:))]E'"+RQ>*<.}3gqYؐuI|uQ}f!$ c/ѓ`f㼭 !ZJ`Qm#so}IO'R9ǝDL\b@x եN22=^`VuG:38GFw%1\d.[|Zh5sem%CҡқE}-|Q, 8,5"'𕊟Z*FrK3-/Pd鮥S1#e>:v}L j'鹈 ? M0˅/TEܧSLj AQ}eX1$HCW~7:kM5|ދZ4m ]."@<ǘ<ƣ=&!πqѾ6x@thsˤﳧleZJ"Vrm]х7ꞛDT E\ ɶ-#iyj-Dm7$IIO|hb4 G:焊XD p:-r5`Zez`/{ʣN"9qK !ƨ,&/LV$*z~̙ʺ]OP+N\h3lI=;Z۽Sj}}C4ŎT_7WYfbHG6J) P(l-?V{=‡iW*բM_C{c{zMńl',K<\G(Eqt1GZaa)1^r48qo=CsH]2@tG@!'p;XA!)SMۃ 6)f߄CtrpUtn1?vW:\m$xLMME*Vby+]n@o*KYZ>I8z\>Q,&bWU/ 8,s4\ސ)6Dꘟ^'~iM,(e@BK SvR _<z=4W ]|ш_qɘҼ%_Z $3Y R^YKsD^7\ѓlGnS~V>&aʇ?dS=b9D UFaU`A+~s ^`Itjjn}Vų.vd+3j6b fUaVa`.˕F{ǁnH7Cظ܊Į< q4oGN+ZTKPkhlw3smdM^dXM|(6.Rf6OCMaK,e%S*Xĕ|mo\3iSi3;@_<ں nW73rfmK>Il.;u<'(J|ƾB%Ah1pNWsTemMK_Ա82#Nxb(&K} aE?hK"^> ^ZpZr@s`CWHw퀎71d.psޱ|u+5~tQ,xy`st k}QV =/#^E:8| ękTTGb\@g`Ir~ʎS~{X. .Vi$L/8QCԞʝ{(rwRO-?ܖ^]^v =j dI|@ 8Qۡ!\ø=)LyQ9./ G.[|d!:) ƞviRz֓hMz6fZv裂D:EFbvgr\%M+0FHԶEUrۇ-+FZ5s@[=ndg{yVI 1zzT zpۡAʙnGcEΈt-jN6Ⱦ ˸;6ԫgMt̃å}7e4AY =+Q;DB,Bi*^4–~[p oz͈ !$hiZ"Kj5y|pK.Ah R@o%9HK;69lL%V<\@u~Qq㽐B'zlpcsU [P '{K˗yj Ϋ>f*sl>Û'چsgPmkÝKIf%l3 Ɖaz۳Z7u|HڡXB42Vq7ŀGfi dJF>$ Čn$ySEx Kx-h"DW(vʒG`ïTnP:y (^mކ([2HP`9kfgt?K v c/di?)M:&Pf;kѕJqbws#sPjܹ|lBt :MQTK=}8,cr5P?+/+m Y Gm7*!-/I + cM͢l@X3PlQLK3R{'^diS~_x]h>#V(}u "X!3!!+fD.S9[dʝ(SA|d^ugO>dY|^SSᗺ9AKTSx$DLL-l'󊪭O'5E5}j;:DCceo^ZCY셻@Zk^5T\dgjr[ }`ѡ< L U{L{*wр׳B/^oERӸxtzuGI`A\ŵz^gEϖWSYXC badq e N[d!I :{Ls-NL-{1L>Uh+R]vW!? :TUC^{os׍mv'>{uXϠ\=J+5[v=>tr%c82X+۟AKZHRNjJ*=ZdsC'iyR yBVGGP.z.ClD>-"Z Ms`3D[.Y|$\WPw~hL>Q r ߈M'm}Q#XLKu]!V [;mt_W#y7T:Z$=Mm+X~=^@F,eeu))P~tjaތ!SRÝ?K2Ay9`N8{8@4MOB;!Z܀n_6;rzf<>qCP:mgU1xBqεM|ǮqV]*HR gGsXژ8я ^aRLxK_lg |bL)U#l?V BrfzWxEBnnfb_ߒK@ vxUAGb bS>.3u<xtQ$[J5J^Ϫ0QM b ג~F*cY=jMSR@X O+S,xϼO%)@)[~W [ gQXp&I(>P/nujmBbϙr2xdTk3"ݑMg@ `HӸ>6*y%N5- N5'TIFQBltj%/Jp+18'~(ʙPHYhv3NɌgb!1|ڏ̍@_E%>ѧ *nփf< k"m:"SWe~rox)U8rVA诳&̈Z 'm\LiЕ< bO0?t_"FߜmAg+"**R|/ه05Dp]CIV(O3{"[CZ~Yk{Pj>'=)i OW1u[Ay"/|qs>l⩉`0sC(^ /|̖<ǎ`{hm3hOئwa+4vIrPQ]F̿';RI{rZ"7:6 '9DyE+*'1)f/1s3?l*s}o%KD29}kk\xXSe*xL֊KꙒxyOmØ\y?ȮZV0lP)qc̰$ ;ތ{#cYXecx$B_&-Yo5;g(R\ ZYek}ó> PTk`z=>~Hn"lorgȪ}S#m{y׆I{&+EޱjNA^3MylwZYV*3]@~в4x{#Yqs;L~[{Pfdh2"ftm#? ŷ!7.˯ n*^NfVϗYE @wSED>(lTV61%(]WL76X0Ӝ'jm+Pe{<,wWuuƺw[,_2 Z8&$7,6v2`S+cvZ:{y^NyϿYViXJ*,RդFwfxL4qKs%1R]n9b ]Kjn{F;gl|}IԍG <9*/7hnsp5E3-gˆ{GCɍ #ڶ%$}eѳOs*K1,R9qZ9metּʈ\V ėOՊh$9Թ'mn{%X93Ĵ.|qz@%K[1ݶC=9GijJ,2eL=CXڎ{ɏ 4tVUk'*MWȦ YZ