{"push_id":1364251444,"size":12,"distinct_size":2,"ref":"refs/heads/parent_group_editor_exp","head":"79ca7293f44b81567481869cb1ad0faa21e7fc93","before":"9c7b86bf4496e4c8a656d378d69e8fc83a4a51eb","commits":[{"sha":"774d4b8475f2514df9ae58327817f055f9c17e0e","author":{"name":"Marius Kittler","email":"833259852cf81a3130264be96e506a097f9b2927@suse.de"},"message":"Render bugref links in thumbnail text windows","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/774d4b8475f2514df9ae58327817f055f9c17e0e"},{"sha":"84a0e4cd9039093362f4df8777e11abd7fb121b3","author":{"name":"Marius Kittler","email":"833259852cf81a3130264be96e506a097f9b2927@suse.de"},"message":"Test render bugref links in thumbnail text windows","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/84a0e4cd9039093362f4df8777e11abd7fb121b3"},{"sha":"4e2ae48b51f52f7fc3e7349fdb66a8c9c1b3a4d1","author":{"name":"Ondřej Holeček","email":"227da5590d8b10cfa4b7ede6ec1c36ec9180f00d@aaannz.eu"},"message":"Merge pull request #949 from Martchus/bugrefs_in_textres\n\nBugrefs in textres","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/4e2ae48b51f52f7fc3e7349fdb66a8c9c1b3a4d1"},{"sha":"baac24bcae7618c9fd6014cc6f3e6f1dc2609159","author":{"name":"Adam Williamson","email":"8644032b318bb67907dd349051d793bd7ced6774@happyassassin.net"},"message":"Add 'fixed' asset subdirectories for fixed assets (#928) (#945)\n\nThis adjusts all the places that look for asset files to check\r\nboth in the current location and in a new possible location,\r\nwhich is in a 'fixed/' subdirectory of the normal asset folder\r\nfor that asset type. It also adjusts the `limit_assets` gru\r\ntask to ignore files in the 'fixed' subdirectories. This\r\nreplaces the current special-casing of disk image assets created\r\nby user '0'. That approach has become problematic now both SUSE\r\nand Fedora are testing disk images that come from the distro\r\ncomposes; these disk images are never getting cleaned up and\r\nthat causes disk space exhaustion. This also allows for 'fixed'\r\nISO and other assets, which the current approach does not.\r\n\r\nAs part of this change, we do a bit of refactoring to avoid\r\nduplicating the code for constructing the possible file paths,\r\nand have the worker code use the asset path definitions from\r\nUtils rather than duplicating them.","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/baac24bcae7618c9fd6014cc6f3e6f1dc2609159"},{"sha":"877db25064ea25968f85fa3433c2e1cda52d2ee2","author":{"name":"Adam Williamson","email":"8644032b318bb67907dd349051d793bd7ced6774@happyassassin.net"},"message":"use locate_asset in register_assets_from_settings (#954)\n\nThis is a follow-up to baac24bc; I found another place where\r\nwe're checking for asset existence.","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/877db25064ea25968f85fa3433c2e1cda52d2ee2"},{"sha":"deaad166ca6879e5d9ada6ab0bbc91e78ee63a74","author":{"name":"Adam Williamson","email":"8644032b318bb67907dd349051d793bd7ced6774@happyassassin.net"},"message":"Rejig compressed asset download, don't leave compressed files (#955)\n\nThere's two problems with the current compressed asset download\r\ncode:\r\n\r\n1) The compressed files will never be cleaned up\r\n2) Specifying FOO and FOO_DECOMPRESS_URL will not work\r\n\r\n1) is because the compressed file is download to the asset\r\ndirectory then uncompressed and left there; because the\r\ncompressed file itself will never be a job asset, the asset\r\ncleanup code will never clean it up.\r\n\r\n2) is because the current compressed asset download code always\r\nuncompresses the compressed file to the same file name with the\r\nfinal extension removed, even if you passed in a completely\r\ndifferent file name as the FOO parameter. In this situation,\r\nwe should uncompress the downloaded data to the name given as\r\nFOO in the appropriate path.\r\n\r\nThis should fix both problems. Instead of passing the path for\r\nthe compressed file from `schedule_iso` to `download_asset` and\r\nthen having `download_asset` decide the final uncompressed file\r\nname, we always pass the ultimately desired asset path, the\r\ndownload URL, and the uncompress flag from `schedule_iso` to\r\n`download_asset`. If decompression is requested, the downloaded\r\ndata is moved into a temporary file first and then uncompressed\r\nto the requested final asset path and the temp file removed. If\r\nnot, the downloaded data is directly moved to the requested\r\nfinal asset path.\r\n\r\nWe also extend the `schedule_iso` testing a bit to cover these\r\nsituations (and do stricter checking of some existing ones).","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/deaad166ca6879e5d9ada6ab0bbc91e78ee63a74"},{"sha":"e895466b19c7db83e9371faf210f7d3bae51a22b","author":{"name":"Adam Williamson","email":"8644032b318bb67907dd349051d793bd7ced6774@happyassassin.net"},"message":"Fix registration of downloaded assets (broken by 0905559b) (#953)\n\nThe change in 0905559b which made `parse_assets_from_settings`\r\nskip any setting with a `_URL` partner was a bad idea. It was\r\nan attempt to fix a real problem, but it went too far.\r\n\r\nWhen `schedule_iso` is run, it calls `parse_assets_from_settings`\r\nand attempts to register all the discovered assets. The problem\r\nis that when an ISO is POSTed with, say, both `KERNEL` and\r\n`KERNEL_URL` specified, `parse_assets_from_settings` will find\r\nthe `KERNEL` asset and so `schedule_iso` will try to register\r\nit, but because the download has not run yet, the asset does not\r\nexist yet. The `Schema::ResultSet::Assets->register()` method\r\nwhich `schedule_iso` calls checks whether the asset file exists\r\nand logs a warning if it doesn't.\r\n\r\nThe problem with fixing it this way is that every subsequent\r\neffort to register the assets associated with a job runs through\r\n`Schema::Result::Jobs->register_assets_from_settings()` - and\r\nthat runs through `parse_assets_from_settings`. Because that now\r\nignores any asset setting with a `_URL` partner, we *never*\r\nregister downloaded assets.\r\n\r\nSay we post an ISO with just an `ISO_URL` setting. On the first\r\nregistration attempt, at the start of `schedule_iso`, there is\r\nno `ISO` setting at all, so `parse_assets_from_settings` will\r\nnot find an ISO asset. So we don't register it there. Next,\r\n`schedule_iso` parses the `ISO_URL` setting and generates a\r\n`ISO` setting from it...but it does not remove the `ISO_URL`\r\nsetting when it does this (this is intentional and I believe\r\ncorrect, I don't think we should change that). So from then on,\r\nthe job has both `ISO` and `ISO_URL` settings, so the asset will\r\nnever be registered because `parse_assets_from_settings` will\r\nalways skip the `ISO` setting because of the existence of the\r\n`ISO_URL` setting.\r\n\r\nNote that `register_assets_from_settings` actually includes its\r\nown check for the asset file's existence, which doesn't log on\r\nfailure. So calling `register_assets_from_settings` for assets\r\nwhich may not actually exist is safe (it won't fail or generate\r\nany logs). It's only calling `parse_assets_from_settings` and\r\nregistering the discovered assets directly, as `schedule_iso`\r\ndoes, that causes the log messages.\r\n\r\nSo I think we should leave `parse_assets_from_settings` as it\r\nwas and instead address the `schedule_iso` case more precisely.\r\nThis fix just lets us tell `ResultSet::Assets->register()` to\r\nsilently ignore assets that don't exist, instead of logging a\r\nwarning for them, and has `schedule_iso` do that. We could also\r\nhave `schedule_iso` check for the asset file's existence before\r\nregistering, but I don't like that, we should avoid duplicating\r\nthat work in too many places.","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/e895466b19c7db83e9371faf210f7d3bae51a22b"},{"sha":"763fe71d0f1da6d52fbf45101e9dde31c3fba58b","author":{"name":"Oliver Kurz","email":"f6669e9dfd52034482738d6a1608ca21ec38e3f5@suse.de"},"message":"List needle tags + step icons (#944)\n\n* List the needle tags that openqa was looking for\r\n\r\n* Use an icon for detailed needles info, too\r\n\r\n* Provide 'create new needle' on viewimg as icon\r\n\r\n* Make detailed needle info a bootstrap popover","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/763fe71d0f1da6d52fbf45101e9dde31c3fba58b"},{"sha":"ac9bef6898b6aa9d861abcddf7d4f8d7529660ca","author":{"name":"Stephan Kulow","email":"3f86d14d815c8be71b985f903c7c9de11edaffc5@kde.org"},"message":"Fix job group overview without description (#957)\n\nStash a scalar variable not a function","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/ac9bef6898b6aa9d861abcddf7d4f8d7529660ca"},{"sha":"1f44aeb7b7c8f9c9f9ef970c61a13f88908d0d52","author":{"name":"Adam Williamson","email":"8644032b318bb67907dd349051d793bd7ced6774@happyassassin.net"},"message":"Don't free worker before artefacts are uploaded (POO #14378) (#958)\n\n0b78fc5f broke artefact uploading on job cancellation. Because\r\nthe job `cancel()` method now frees the worker (so far as the\r\nschema is concerned) immediately after telling the worker to\r\ncancel the job, by the time the worker process reaches the\r\nartefact upload bits of `_stop_job()`, the schema job instance\r\nhas no worker, and when the worker process tries to upload the\r\nartefacts, the schema job instance `create_artefact()` method\r\nthrows a 404 because so far as it knows, it no longer has a\r\nworker.\r\n\r\nThe change was intended to mitigate a problem caused by the\r\ndbus deadlock issue, where the server never actually handled\r\nthe `set_done` API call the worker process sends at the end\r\nof `_stop_job`, so the worker was never freed - but as the dbus\r\ndeadlock issue has now been addressed, we shouldn't need to\r\nworry about that any more.","distinct":false,"url":"https://api.github.com/repos/Martchus/openQA/commits/1f44aeb7b7c8f9c9f9ef970c61a13f88908d0d52"},{"sha":"39b6316ece21c6dd9b4b7b886a53f6dfb6b6ce67","author":{"name":"Marius Kittler","email":"833259852cf81a3130264be96e506a097f9b2927@suse.de"},"message":"Add API routes for job group parents\n\n* Works in the same way as the API for\n  regular groups and shares the same code\n* When deleting a parent group, all groups\n  inside remain parentless\n* Still TODO\n  * List all job groups inside a parent\n  * List all jobs inside a group","distinct":true,"url":"https://api.github.com/repos/Martchus/openQA/commits/39b6316ece21c6dd9b4b7b886a53f6dfb6b6ce67"},{"sha":"79ca7293f44b81567481869cb1ad0faa21e7fc93","author":{"name":"Marius Kittler","email":"833259852cf81a3130264be96e506a097f9b2927@suse.de"},"message":"WIP","distinct":true,"url":"https://api.github.com/repos/Martchus/openQA/commits/79ca7293f44b81567481869cb1ad0faa21e7fc93"}]}
{"actor":{"display_login":"Martchus"}}