commit 6fe36a3746c4131552700f2f024f1bfc2ac0ddc3 Author: Dan Callaghan Date: Fri Sep 29 21:27:14 2017 +1000 Automatic commit of release 24.4 commit 3faadf9007c158ed57e2d47c9a0584519976443f Author: Dan Callaghan Date: Wed Sep 27 15:42:32 2017 +1000 tests: fix timing issue in test_group_link_escapes_uri_characters The test case was doing a search for the group, before finding the name and clicking it. But the group is *already* present on the page before the search, and so WebDriver might find the old element which then disappears before it can click it. We can just drop the search step from the test, since the group will always be present on the page. Change-Id: I915e8633c58677042b396fefc2a5cc91d027fcd2 commit 414c5acf8afcc096ca414944c6aea3c1992ac2f5 Author: Dan Callaghan Date: Thu Sep 21 16:50:27 2017 +1000 release notes for 24.4 Change-Id: I4b9bfdfdf8c32104dbfd0c519d383b1a7b73db02 commit 4fb646fb4acfea5e67909445eefc9401791de3de Author: Dan Callaghan Date: Thu Sep 21 13:47:41 2017 +1000 generate_release_notes.py: add mapping for Anwesha Change-Id: I7c7b155b526a90399ca8b84555d96da4f25cbcd5 commit 5fb655653c87e9d1d04a279333303be169045365 Author: Dan Callaghan Date: Thu Sep 21 11:48:19 2017 +1000 don't filter out dirty jobs in scheduler queries Bug: 1470959 Change-Id: If1c0ac852942a7a0d806745e37dada8183ae8c6d commit 86686335a4a301cd5b114f17b4adb04ef6299ce8 Author: Dan Callaghan Date: Wed Sep 20 13:54:36 2017 +1000 more targetted re-rendering for Reservation tab Currently the tab is re-rendering itself any time anything in the recipe changes (which is very often). We can listen to more specific change events instead. This also fixes a timing issue in the tests, which can fail like this because the Reservation tab ends up re-rendering itself again for no reason *after* the Edit Reservation modal is closed. ERROR: test_authenticated_user_can_request_reservation (bkr.inttest.server.selenium.test_recipes.TestRecipeViewReservationTab) ---------------------------------------------------------------------- Traceback (most recent call last): File "/usr/lib/python2.7/site-packages/bkr/inttest/server/selenium/test_recipes.py", line 869, in test_authenticated_user_can_request_reservation self.assertEqual(tab.find_element_by_xpath('div/p').text, File "/usr/lib64/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 70, in text return self._execute(Command.GET_ELEMENT_TEXT)['value'] File "/usr/lib64/python2.7/site-packages/selenium/webdriver/remote/webelement.py", line 457, in _execute return self._parent.execute(command, params) File "/usr/lib64/python2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 233, in execute self.error_handler.check_response(response) File "/usr/lib64/python2.7/site-packages/selenium/webdriver/remote/errorhandler.py", line 194, in check_response raise exception_class(message, screen, stacktrace) StaleElementReferenceException: Message: Element not found in the cache - perhaps the page has changed since it was looked up Change-Id: I61baca25a5a188b814cf94d06a0c07a2d255c40d commit cec7240266233b4c97cff48b8cc952dd4b940654 Author: Dan Callaghan Date: Wed Sep 20 17:37:26 2017 +1000 fix usage of _set_hostport for proxied XMLRPC connections The _set_hostport private method was removed in Python 2.7.7. In that case we need to call through _get_hostport to achieve the same port parsing. This patch is based on the upstream Kobo fixes: https://github.com/release-engineering/kobo/commit/8aa03e6acb53a3d7a47c26cb1266e00f9e59a12b https://github.com/release-engineering/kobo/commit/ff02e42f371acb982919e57e65044f11d8d9b52c Bug: 1344889 Change-Id: Ibab407bb896961e560dbd24e13514b1d4debd5f4 commit 53335ad8448060010116b05f0503c9ea99322d7a Author: Dan Callaghan Date: Tue Sep 19 16:31:47 2017 +1000 fix missing URI encoding for group links If the group name contained a URI delimiter like # or ? the link would include it literally, which meant it would give back a 404 when you clicked it. These characters need to be URI-escaped in URLs. Change-Id: Ifeb30b78cfff45bd25bf53e417e51303d5b3b2b5 commit b4f231c110e114f9144d5fb98101c5f483e1c347 Author: anweshac Date: Mon Aug 28 16:24:08 2017 +1000 Do not report panic if recipe is reserved Bug: 1340566 Change-Id: I3cd1078008ad9dbaffc14677618163f6912c1f8b commit c3259628bb43bfebf49dee59fcdac6b65abcd759 Author: anweshac Date: Thu Aug 10 13:13:40 2017 +1000 Move remaining time tracker from the view to model Keeping the watchdog time tracker in the model means that the extend reservation modal has access to the latest (correct) time remaining rather than the value with which the server was last updated. Separate watchdog time remaining view from the rest of recipe runtime. Update time remaining display in the UI to be populated from the RecipeWatchdogTimeRemainingView render() method, and update the test accordingly to cater for changes to the HTML Bug: 1358619 Change-Id: I071332e0828214d2936dba4b2b20bd45168beebc commit d6a787e48763e9306f72dec6933644f6ca8e287a Author: Dan Callaghan Date: Fri Aug 18 16:01:27 2017 +1000 exclude i386 and RHEL3-5 trees from EFI GRUB menu Since we know those don't actually have x86 EFI support, we can exclude them from the menu to save a bit of space. Bug: 1420471 Change-Id: I9e3308ad0741874a57d73c6c185e7869e9d0f87d commit 7d5ffb803352e52b9e4d8dd27edd615ef59205c6 Author: Dan Callaghan Date: Fri Aug 18 16:38:10 2017 +1000 flush before returning from XMLRPC handling code A lot can go wrong in the final flush, which is where most database operations actually happen -- including the lock wait timeouts we are seeing in bug 1097861. By putting an explicit flush inside this try: block, it should mean that a more specific XMLRPC fault will be given back to the client, instead of just failing the whole request with a 500. And the timing claimed by the log message will now include all database operations, which are currently not being counted. Change-Id: Id91acb47b7140b45c0e744d1af1958aa1034db9e commit 9c963d813423cde8a4bc5f2173f8e45153643cb5 Author: anweshac Date: Fri Aug 18 15:32:42 2017 +1000 tests: fix race condition in commit 6a713ec4 Change-Id: I18c58b8d1eeedb7c988e3cdf5a5c25915ee0a2cb commit 6a713ec4c282474ba9723247ec8bf3706b8d69b6 Author: anweshac Date: Tue Aug 8 11:16:12 2017 +1000 Modal is hidden only after refresh recipe complete Change .done to .then in update_reservation to ensure that the modal is closed only after the model has finished fetching updated recipe details, as otherwise the UI displays stale information Bug: 1358619 Change-Id: Ief184b82541d31b119375ddbe4e7236b5b5ca016 commit a0e3248e523777fc23b7d0ba36289f5562674e02 Author: Dan Callaghan Date: Tue Jul 25 16:52:25 2017 +1000 accept install_done call with missing fqdn If something goes wrong with the kickstart %post snippet to figure out the FQDN, we are better off going ahead and marking the installation as done even if the FQDN is left as NULL. Without this patch we are just rejecting the call entirely, which makes it look like the installation never finished at all. Bug: 1412897 Change-Id: Ifdc77915fd70935da9c221de0a18d74dee75d541 commit d8c6b6a57698cf27d663137399b7d524f1fb53a3 Author: Dan Callaghan Date: Tue Jul 25 16:28:08 2017 +1000 hostname -I option does not exist on older RHELs We can use hostname -i, which exists everywhere. But on RHEL5 and earlier it just returns 127.0.0.1, so in that case we have to get even hackier and scrape the output of 'ip addr' instead. Bug: 1412897 Change-Id: I2a45415554c49d166f7413d50c2af9d8c9500237 commit da1182a1b0270a66821770da0aec8f4446b5130a Author: Dan Callaghan Date: Tue Jul 18 14:41:14 2017 +1000 pylint: pass WSGIHandler.read_request param explicitly Even though taking and passing positional *args works fine, pylint 1.7 is unable to figure this out and gives a false error: E:137,17: No value for argument 'raw_requestline' in method call (no-value-for-parameter) We can just pass the parameter by its real name. (cherry picked from commit c1badf462df860440b85b04fd26d28201df844ef) Change-Id: I4a2a00c696d8647628808be017bac085427d56d6 commit d8e3c6c8a95a28fb22ca21f6642d93d694ea8051 Author: Dan Callaghan Date: Mon Jul 17 15:53:08 2017 +1000 pylint: doesn't detect threading.Lock as a context manager Known false positive: https://github.com/PyCQA/pylint/issues/782 (cherry picked from commit fe7bbdef950628f7d5129250afdaa413b37ad3fe) Change-Id: I077ba4685fdfb6476e5655571041e2b42335889c commit 01578ca54465ce5579afedc3e38b7560728b5dce Author: Dan Callaghan Date: Mon Jul 17 15:52:27 2017 +1000 use correct pylint binary on Fedora (cherry picked from commit 804254ac2eafb2584274c38afde90d5279648376) Change-Id: If0a1aa3497f4978b3f214bdf6f6fcbe5144fa6b9 commit 3cecbb6942e227644d8d1a90e2a6ff0f93ee017f Author: anweshac Date: Thu Aug 3 10:57:42 2017 +1000 Set basepaths in dev server config to writable dir Set paths for rpms, repos, logs and harness to a directory with write access for non-root user Change-Id: Icd718f93caffbed42b00afcfe92c069d30c4bf85 commit 8bf3d05d6e0dd5efcc86e1d0323f5c21a3a15e08 Author: Dan Callaghan Date: Tue Aug 1 12:48:27 2017 +1000 docs: fix duplicate target warnings in Sphinx 1.6 These option declarations which repeat the --format option twice are now triggering a warning message in Sphinx 1.6, like this: Duplicate explicit target name: "cmdoption-bkr-distros-list--format". The comma-separated options are only intended for alternative spellings of the same option name. The way we were using it, to show alternative values, was apparently not correct. Change-Id: Idc726c16ea697d4e70d2b1b78fc0258193af4bfc commit 84a24d6121ea50153cc620b33f96cf64caf71841 Author: anweshac Date: Mon Jul 24 17:46:52 2017 +1000 Checkbox conditionally disabled if anonymous user Only logged in users can set reviewed state Bug: 1473135 Change-Id: I391275142c4b55e4b4324716e7d17d971c49e8d9 commit e739e0943bf75a9939738aea06a97e089d47f11c Author: anweshac Date: Fri Jul 21 09:40:32 2017 +1000 Update error thrown when no task specified Throw a more user friendly error When no specified tasks are found from running workflow-simple command, or when the specified package/s do not have any runfor tasks. Docstring updated. Update error to be more user friendly when no params passed to the command. Bug: 1473067 Change-Id: Ie269b692e1d8b22b046e81c59c90e17ebb3eaa50 commit b9204ba4d144a5dd97185de1f957d65d7db618e5 Author: anweshac Date: Tue Jul 18 15:56:53 2017 +1000 Add check for recipe status prior to response The recipe page polls the recipe data every 30 seconds, but the json response is sent prior to setting the reviewed state of the recipe based on recipe completion status. Reordering this. Bug: 1360589 Change-Id: I980731f96babfc3359105a9da562c5941e5ba0d1 commit 8bb4503ec5884d4c8aead40c35693bd5ab8e1b8f Author: Dan Callaghan Date: Tue Jul 18 15:56:13 2017 +1000 fix tag_is_not_filter for Distro and DistroTree It was referring to distro_table which hasn't existed since the Declarative refactoring in Beaker 0.16. Also replaced the hacky IN (...) implementation with the usual NOT EXISTS (...) which should perform better. Bug: 1472070 Change-Id: If15e279834ece7f12215189f891a1b98b12d0ce2 commit 7e1de35cda66bf191769fe007bf4546626400c01 Author: Dan Callaghan Date: Wed Jul 12 14:45:56 2017 +1000 COALESCE(hypervisor, '') before comparing it to a value The hypervisor field requires special handling, because we use NULL to mean "not virtualised" which corresponds to a value of "" in the host filter XML. But in SQL, NULL compared to anything is NULL (not true or false). Bug 886816 fixed the particular case of op="!=" but this approach using COALESCE() fixes it for any operator and any arbitrary nesting of , , . Bug: 1464120 Change-Id: Id448f3339991df89fc56af93af85debd3f9ef75e commit a79f4a62113fbe80e93e5d9d44213722c4917fff Author: anweshac Date: Wed Jul 12 14:48:09 2017 +1000 added check to enforce validations in lazy_create The JSON API for a post request to /groups/ url calls lazy_create with group_name parameter, which results in skipping associated sqlalchemy validations for group_name defined in model/identity.py, which otherwise would've been triggered if created the normal way (i.e. Group()). Added a check in lazy_create that now ensures any sqlalchemy validation functions are called for relevant parameters. Removed check for osmajor in distrolibrary.py Bug: 1469345 Change-Id: If57f0a8c9c2d5846166ba6bee98467e90c1472e4 commit cbe476c6c200aa8c0d41e2c96f818434cebe349e Author: anweshac Date: Mon Jul 10 16:54:33 2017 +1000 If ldap is not enabled throw appropriate error Bug: 1043772 Change-Id: I9afc4a83a97ddc0c9cbb68e6f06b58f8fa2be206 commit 85da8460a2edfd81edd9ec963933a19cdf442db0 Author: Dan Callaghan Date: Thu Jun 1 14:08:25 2017 +1000 watchdog: use lxml instead of xmltramp xmltramp does not correctly handle input in the form of XML serialized to unicode with non-ASCII characters, which is what Beaker gives back in its XMLRPC APIs. Let's just replace the last remaining usages of xmltramp with lxml, which does handle this, as we have done everywhere else. RIP aaronsw. Bug: 1457606 Change-Id: Ib46d6a29d02b994f36d8c48fffd6f9d8dcb6ce45