diff --git a/Dockerfile b/Dockerfile index abf5ce2..111101b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,7 +84,7 @@ RUN zypper in -y -C \ 'perl(JSON::XS)' \ 'perl(JavaScript::Minifier::XS)' \ 'perl(LWP::Protocol::https)' \ - 'perl(Minion)' \ + 'perl(Minion) >= 9.13' \ 'perl(Module::CPANfile)' \ 'perl(Module::Pluggable)' \ 'perl(Mojo::IOLoop::ReadWriteProcess)' \ @@ -121,7 +121,7 @@ RUN zypper in -y -C \ 'perl(Socket::MsgHdr)' \ 'perl(Test::Warnings)' \ 'perl(Text::Diff)' \ - 'perl(Text::Markdown)' \ + 'perl(CommonMark)' \ 'perl(Time::ParseDate)' \ 'perl(XSLoader) >= 0.24' \ 'perl(XML::SemanticDiff)' \ diff --git a/cache.txz b/cache.txz index aaa5967..f4cbdfa 100644 --- a/cache.txz +++ b/cache.txz @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a2a9fcb564cf7f1b17be279cb04e7a942fbc81a6475c26a741d1ec6138f0d354 -size 1785921 +oid sha256:357516010799083f3202f85da84adb1b963a98f5ff64b64d99ed8898cdb6f028 +size 1748019 diff --git a/openQA-4.6.1563206570.e00d3964.obscpio b/openQA-4.6.1563206570.e00d3964.obscpio deleted file mode 100644 index c745c93..0000000 --- a/openQA-4.6.1563206570.e00d3964.obscpio +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2095049923889017556da1586c38c7b0c50ada40ed359c3a15e206513cc5efcb -size 9747469 diff --git a/openQA-4.6.1568387059.db88ff48d.obscpio b/openQA-4.6.1568387059.db88ff48d.obscpio new file mode 100644 index 0000000..fe466a9 --- /dev/null +++ b/openQA-4.6.1568387059.db88ff48d.obscpio @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eb60bdd7a1b980f69af792cea784de648415d7a0eefa124a8f0ab0459407f270 +size 10089997 diff --git a/openQA-test.changes b/openQA-test.changes index 61f79ba..f84857a 100644 --- a/openQA-test.changes +++ b/openQA-test.changes @@ -1,3 +1,233 @@ +------------------------------------------------------------------- +Tue Sep 17 11:09:08 UTC 2019 - coolo@suse.com + +- 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 + ------------------------------------------------------------------- Mon Jul 15 16:24:19 UTC 2019 - coolo@suse.com diff --git a/openQA-test.spec b/openQA-test.spec index c90e3cf..5309f90 100644 --- a/openQA-test.spec +++ b/openQA-test.spec @@ -18,7 +18,7 @@ %define short_name openQA Name: %{short_name}-test -Version: 4.6.1563206570.e00d3964 +Version: 4.6.1568387059.db88ff48d Release: 0 Summary: Test package for openQA License: GPL-2.0-or-later diff --git a/openQA-worker-test.changes b/openQA-worker-test.changes index 2c754b1..21bfe78 100644 --- a/openQA-worker-test.changes +++ b/openQA-worker-test.changes @@ -1,53 +1,361 @@ ------------------------------------------------------------------- -Mon Jul 15 16:24:19 UTC 2019 - coolo@suse.com +Tue Sep 17 11:09:08 UTC 2019 - coolo@suse.com -- 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.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 + +------------------------------------------------------------------- +Thu Aug 22 17:14:16 UTC 2019 - coolo@suse.com + +- Update to version 4.6.1566476274.5f4e21fe: + * 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 + * Handle newline characters in form parameters correctly + * Always include the group property editor + * Do not delete assets based on empty size + * 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 + * 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 + * 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 diff --git a/openQA-worker-test.spec b/openQA-worker-test.spec index f5e9cfe..eef7bd2 100644 --- a/openQA-worker-test.spec +++ b/openQA-worker-test.spec @@ -18,7 +18,7 @@ %define short_name openQA-worker Name: %{short_name}-test -Version: 4.6.1563206570.e00d3964 +Version: 4.6.1568387059.db88ff48d Release: 0 Summary: Test package for %{short_name} License: GPL-2.0-or-later diff --git a/openQA.changes b/openQA.changes index 1dc2e9d..00373cb 100644 --- a/openQA.changes +++ b/openQA.changes @@ -1,3 +1,233 @@ +------------------------------------------------------------------- +Tue Sep 17 11:09:08 UTC 2019 - coolo@suse.com + +- 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 + ------------------------------------------------------------------- Mon Jul 15 16:24:19 UTC 2019 - coolo@suse.com diff --git a/openQA.obsinfo b/openQA.obsinfo index 44a6ad1..e96e95e 100644 --- a/openQA.obsinfo +++ b/openQA.obsinfo @@ -1,5 +1,5 @@ name: openQA -version: 4.6.1563206570.e00d3964 -mtime: 1563206570 -commit: e00d3964e4c9563c3db14f1d651f0e41bc05c113 +version: 4.6.1568387059.db88ff48d +mtime: 1568387059 +commit: db88ff48d65421d03959b543fe826cbddaca846e diff --git a/openQA.spec b/openQA.spec index 046e8d9..4cdceda 100644 --- a/openQA.spec +++ b/openQA.spec @@ -17,7 +17,7 @@ # can't use linebreaks here! -%define openqa_services openqa-webui.service openqa-gru.service openqa-websockets.service openqa-scheduler.service +%define openqa_services openqa-webui.service openqa-gru.service openqa-websockets.service openqa-scheduler.service openqa-enqueue-audit-event-cleanup.service openqa-enqueue-audit-event-cleanup.timer %define openqa_worker_services openqa-worker.target openqa-slirpvde.service openqa-vde_switch.service openqa-worker-cacheservice.service openqa-worker-cacheservice-minion.service %if %{undefined tmpfiles_create} %define tmpfiles_create() \ @@ -33,10 +33,34 @@ %else %bcond_with tests %endif +# SLE < 15 does not provide many of the dependencies for the python sub-package +%if 0%{?sle_version} < 150000 && !0%{?is_opensuse} +%bcond_with python_scripts +%else +%bcond_without python_scripts +%endif # runtime requirements that also the testsuite needs -%define t_requires perl(DBD::Pg) perl(DBIx::Class) perl(Config::IniFiles) perl(SQL::Translator) perl(Date::Format) perl(File::Copy::Recursive) perl(DateTime::Format::Pg) perl(Net::OpenID::Consumer) perl(Mojolicious::Plugin::RenderFile) perl(Mojolicious::Plugin::AssetPack) perl(aliased) perl(Config::Tiny) perl(DBIx::Class::DeploymentHandler) perl(DBIx::Class::DynamicDefault) perl(DBIx::Class::Schema::Config) perl(DBIx::Class::Storage::Statistics) perl(IO::Socket::SSL) perl(Data::Dump) perl(DBIx::Class::OptimisticLocking) perl(Module::Pluggable) perl(Text::Diff) perl(Text::Markdown) perl(JSON::Validator) perl(YAML::XS) perl(IPC::Run) perl(Archive::Extract) perl(CSS::Minifier::XS) perl(JavaScript::Minifier::XS) perl(Time::ParseDate) perl(Sort::Versions) perl(Mojo::RabbitMQ::Client) perl(BSD::Resource) perl(Cpanel::JSON::XS) perl(Pod::POM) perl(Mojo::IOLoop::ReadWriteProcess) perl(Minion) perl(Mojo::Pg) perl(Mojo::SQLite) perl(Minion::Backend::SQLite) +%if %{with python_scripts} +%define python_scripts_requires python3-base python3-requests python3-future +%else +%define python_scripts_requires %{nil} +%endif +%define assetpack_requires perl(Mojolicious::Plugin::AssetPack) => 1.36, perl(CSS::Minifier::XS) perl(JavaScript::Minifier::XS) +%define common_requires perl(Config::IniFiles) perl(Cpanel::JSON::XS) perl(Cwd) perl(Data::Dump) perl(Data::Dumper) perl(Digest::MD5) perl(Getopt::Long) perl(Minion) => 9.09, perl(Mojolicious) >= 7.92, perl(Try::Tiny) perl(Regexp::Common), perl(Storable) +# runtime requirements for the main package that are not required by other sub-packages +%define main_requires %assetpack_requires git-core perl(Carp::Always) perl(Date::Format) perl(DateTime::Format::Pg) perl(DBD::Pg) >= 3.7.4, perl(DBI) >= 1.632, perl(DBIx::Class) => 0.082801, perl(DBIx::Class::DeploymentHandler) perl(DBIx::Class::DynamicDefault) perl(DBIx::Class::Schema::Config) perl(DBIx::Class::Storage::Statistics) perl(DBIx::Class::OptimisticLocking) perl(File::Copy::Recursive) perl(Net::OpenID::Consumer) perl(Module::Pluggable) perl(aliased) perl(Config::Tiny) perl(Text::Diff) perl(CommonMark) perl(JSON::Validator) perl(IPC::Run) perl(Archive::Extract) perl(Time::ParseDate) perl(Sort::Versions) perl(BSD::Resource) perl(Pod::POM) perl(Mojo::Pg) perl(Mojo::RabbitMQ::Client) => 0.2, perl(SQL::Translator) perl(YAML::XS) perl(LWP::UserAgent) +%define client_requires git-core perl(IO::Socket::SSL) >= 2.009, perl(LWP::UserAgent) +%define worker_requires os-autoinst < 5, perl(Mojo::IOLoop::ReadWriteProcess) > 0.19, perl(Minion::Backend::SQLite) perl(Mojo::SQLite) openQA-client optipng +%define build_requires rubygem(sass) %assetpack_requires + +# All requirements needed by the tests executed during build-time. +# Do not require on this in individual sub-packages except for the devel +# package. +%define test_requires %common_requires %main_requires %python_scripts_requires %worker_requires perl(App::cpanminus) perl(Perl::Critic) perl(Perl::Critic::Freenode) perl(Test::Mojo) perl(Test::More) perl(Test::Strict) perl(Test::Fatal) perl(Test::MockModule) perl(Test::Output) perl(Test::Pod) perl(Test::Warnings) perl(Selenium::Remote::Driver) perl(Selenium::Remote::WDKeys) ShellCheck os-autoinst-devel +%define devel_requires %build_requires %test_requires rsync curl postgresql-devel qemu qemu-kvm tar postgresql-server xorg-x11-fonts sudo perl(Devel::Cover) perl(Devel::Cover::Report::Codecov) perl(Perl::Tidy) + Name: openQA -Version: 4.6.1563206570.e00d3964 +Version: 4.6.1568387059.db88ff48d Release: 0 Summary: The openQA web-frontend, scheduler and tools License: GPL-2.0-or-later @@ -48,30 +72,12 @@ Source0: %{name}-%{version}.tar.xz Source1: cache.txz Source101: update-cache.sh Source102: Dockerfile -BuildRequires: %{t_requires} +BuildRequires: %{build_requires} BuildRequires: fdupes -BuildRequires: os-autoinst -BuildRequires: systemd -# critical bug fix -BuildRequires: perl(DBIx::Class) >= 0.082801 -BuildRequires: perl(Minion) >= 9.09 -BuildRequires: perl(Mojo::RabbitMQ::Client) >= 0.2 -BuildRequires: perl(Mojolicious) >= 7.92 -BuildRequires: perl(Mojolicious::Plugin::AssetPack) >= 1.36 -BuildRequires: rubygem(sass) -Requires: perl(Minion) >= 9.09 -Requires: perl(Mojo::RabbitMQ::Client) >= 0.2 -Requires: perl(YAML::XS) >= 0.67 -# needed for test suite -Requires: git-core +Requires: %{main_requires} Requires: openQA-client = %{version} Requires: openQA-common = %{version} -# needed for saving needles optimized -Requires: optipng -Requires: perl(DBIx::Class) >= 0.082801 -# needed for openid support -Requires: perl(LWP::Protocol::https) -Requires: perl(URI) +Requires: perl(Minion) >= 9.13 # we need to have the same sha1 as expected %requires_eq perl-Mojolicious-Plugin-AssetPack Recommends: %{name}-local-db @@ -83,26 +89,11 @@ Recommends: apparmor-utils Recommends: logrotate # server needs to run an rsync server if worker caching is used Recommends: rsync -BuildRequires: postgresql-server BuildArch: noarch ExcludeArch: i586 %{?systemd_requires} %if %{with tests} -BuildRequires: chromedriver -BuildRequires: chromium -BuildRequires: glibc-locale -# pick a font so chromium has something to render - doesn't matter so much -BuildRequires: dejavu-fonts -BuildRequires: google-roboto-fonts -BuildRequires: perl-App-cpanminus -BuildRequires: rsync -BuildRequires: perl(DBD::SQLite) -BuildRequires: perl(Perl::Critic) -BuildRequires: perl(Perl::Critic::Freenode) -BuildRequires: perl(Selenium::Remote::Driver) >= 1.20 -BuildRequires: perl(Test::MockObject) -BuildRequires: perl(Test::Strict) -BuildRequires: perl(Test::Warnings) +BuildRequires: %{test_requires} %endif %if 0%{?suse_version} >= 1330 Requires(pre): group(nogroup) @@ -127,10 +118,18 @@ revision of the operating system, reporting the errors detected for each combination of hardware configuration, installation options and variant of the operating system. +%package devel +Summary: Development package pulling in all build+test dependencies +Group: Development/Tools/Other +Requires: %{devel_requires} + +%description devel +Development package pulling in all build+test dependencies. + %package common Summary: The openQA common tools for web-frontend and workers Group: Development/Tools/Other -Requires: %{t_requires} +Requires: %{common_requires} Requires: perl(Mojolicious) >= 7.92 %description common @@ -140,13 +139,8 @@ openQA workers. %package worker Summary: The openQA worker Group: Development/Tools/Other -Requires: openQA-client = %{version} -Requires: os-autoinst < 5 -Requires: perl(DBD::SQLite) > 1.51 -Requires: perl(Minion::Backend::SQLite) -Requires: perl(Mojo::IOLoop::ReadWriteProcess) > 0.19 -Requires: perl(Mojo::SQLite) -Requires: perl(SQL::SplitStatement) +%define worker_requires_including_uncovered_in_tests %worker_requires perl(SQL::SplitStatement) +Requires: %{worker_requires_including_uncovered_in_tests} # FIXME: use proper Requires(pre/post/preun/...) PreReq: openQA-common = %{version} Requires(post): coreutils @@ -164,22 +158,24 @@ The openQA worker manages test engine (provided by os-autoinst package). %package client Summary: Client tools for remote openQA management Group: Development/Tools/Other +Requires: %client_requires Requires: openQA-common = %{version} -Requires: perl(Config::IniFiles) -Requires: perl(Cpanel::JSON::XS) -Requires: perl(Data::Dump) -Requires: perl(Getopt::Long) -Requires: perl(IO::Socket::SSL) >= 2.009 -Requires: perl(LWP::UserAgent) -Requires: perl(Mojolicious) -Requires: perl(Regexp::Common) -Requires: perl(Try::Tiny) Recommends: jq %description client Tools and support files for openQA client script. Client script is a convenient helper for interacting with openQA webui REST API. +%if %{with python_scripts} +%package python-scripts +Summary: Additional scripts in python +Group: Development/Tools/Other +Requires: %python_scripts_requires + +%description python-scripts +Additional scripts for the use of openQA in the python programming language. +%endif + %package local-db Summary: Helper package to ease setup of postgresql DB Group: Development/Tools/Other @@ -209,6 +205,7 @@ Covering both openQA and also os-autoinst test engine. %prep %setup -q -a1 +sed -e 's,/bin/env python,/bin/python,' -i script/openqa-label-all %build make %{?_smp_mflags} @@ -227,11 +224,14 @@ rm -f t/00-tidy.t #make test rm -rf %{buildroot}/DB export LC_ALL=en_US.UTF-8 -make test-with-database OBS_RUN=1 PROVE_ARGS='-rv' TEST_PG_PATH=%{buildroot}/DB || true +make test-with-database OBS_RUN=1 PROVE_ARGS='-l -r -v' TEST_PG_PATH=%{buildroot}/DB || true rm -rf %{buildroot}/DB %endif %install +%if !%{with python_scripts} +rm script/openqa-label-all +%endif export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8 %make_install @@ -245,6 +245,9 @@ ln -s %{_datadir}/openqa/script/openqa-clone-job %{buildroot}%{_bindir}/openqa-c ln -s %{_datadir}/openqa/script/dump_templates %{buildroot}%{_bindir}/openqa-dump-templates ln -s %{_datadir}/openqa/script/load_templates %{buildroot}%{_bindir}/openqa-load-templates ln -s %{_datadir}/openqa/script/openqa-clone-custom-git-refspec %{buildroot}%{_bindir}/openqa-clone-custom-git-refspec +%if %{with python_scripts} +ln -s %{_datadir}/openqa/script/openqa-label-all %{buildroot}%{_bindir}/openqa-label-all +%endif cd %{buildroot} grep -rl %{_bindir}/env . | while read file; do @@ -380,6 +383,8 @@ fi %{_unitdir}/openqa-gru.service %{_unitdir}/openqa-scheduler.service %{_unitdir}/openqa-websockets.service +%{_unitdir}/openqa-enqueue-audit-event-cleanup.service +%{_unitdir}/openqa-enqueue-audit-event-cleanup.timer # web libs %dir %{_datadir}/openqa %{_datadir}/openqa/templates @@ -415,6 +420,8 @@ fi %ghost %{_localstatedir}/lib/openqa/db/db.sqlite %ghost %{_localstatedir}/log/openqa +%files devel + %files common %dir %{_datadir}/openqa %{_datadir}/openqa/lib @@ -479,6 +486,12 @@ fi %{_bindir}/openqa-load-templates %{_bindir}/openqa-clone-custom-git-refspec +%if %{with python_scripts} +%files python-scripts +%{_datadir}/openqa/script/openqa-label-all +%{_bindir}/openqa-label-all +%endif + %files doc %doc docs/*