commit 6fe36a3746c4131552700f2f024f1bfc2ac0ddc3
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Fri Sep 29 21:27:14 2017 +1000

    Automatic commit of release 24.4

commit 3faadf9007c158ed57e2d47c9a0584519976443f
Author: Dan Callaghan <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
Date:   Thu Sep 21 16:50:27 2017 +1000

    release notes for 24.4
    
    Change-Id: I4b9bfdfdf8c32104dbfd0c519d383b1a7b73db02

commit 4fb646fb4acfea5e67909445eefc9401791de3de
Author: Dan Callaghan <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <achatter@redhat.com>
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 <achatter@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <achatter@redhat.com>
Date:   Fri Aug 18 15:32:42 2017 +1000

    tests: fix race condition in commit 6a713ec4
    
    Change-Id: I18c58b8d1eeedb7c988e3cdf5a5c25915ee0a2cb

commit 6a713ec4c282474ba9723247ec8bf3706b8d69b6
Author: anweshac <achatter@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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 <achatter@redhat.com>
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 <dcallagh@redhat.com>
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 <achatter@redhat.com>
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 <achatter@redhat.com>
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 <achatter@redhat.com>
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 <dcallagh@redhat.com>
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 <dcallagh@redhat.com>
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
    <not/>, <and/>, <or/>.
    
    Bug: 1464120
    Change-Id: Id448f3339991df89fc56af93af85debd3f9ef75e

commit a79f4a62113fbe80e93e5d9d44213722c4917fff
Author: anweshac <achatter@redhat.com>
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 <achatter@redhat.com>
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 <dcallagh@redhat.com>
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