commit 3657c26ccc6b11c86c83f3063fa5d528a7feb896
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Mon Nov 7 16:39:19 2016 +1000

    Automatic commit of release 23.3

commit 0127976daf1dca3829419cb957b812643df4e2a7
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Mon Nov 7 15:43:07 2016 +1000

    release notes for 23.3
    
    Change-Id: I16a7baf381aae154aeec6e7078b14bad8effd0a2

commit f3417026208a3deebe71a7406d4c183ea31bea63
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Thu Nov 3 15:16:28 2016 +1000

    fix race condition in test for returning a reservation
    
    The test was incorrectly waiting for the disappearance of a button
    labelled "Return the reservation" but the button had already changed to
    a loading state with the label "Returning..." at that point.
    
    Also fixed a typo in the wording of the button.
    
    Change-Id: I1efced8ae7f373f1c389104119ff0b829b026565

commit af954de3f686e9b7f04a54b4f5a2f45c1635176f
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Thu Nov 3 11:03:21 2016 +1000

    remove usage of Flask absolute URL properties
    
    If we let Flask generate an absolute URL for us based on the WSGI
    environment, it won't take into account the tg.url_domain or
    tg.url_scheme config settings.
    
    Under most circumstances, the WSGI environment will have the right
    values anyway, but for example when using an SSL-terminating reverse
    proxy tg.url_scheme will be set to "https" but the WSGI environment may
    indicate that the scheme is "http". In this case Flask will produce
    incorrect absolute URLs.
    
    In all cases we need to either use our absolute_url() utility function
    (which obeys the settings) or avoid using absolute URLs.
    
    Bug: 1390412
    Change-Id: Ie0c2ee984dee629d600f076b7038799144060b94

commit bc3a8af2ec6aa9a5f354629b60579606840f08cb
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Thu Nov 3 10:28:05 2016 +1000

    tests: fix race condition in reserve workflow tree selection
    
    Changing the distro selection re-populates the distro_tree_id select,
    but this test could end up loading the options before they have been
    re-populated, resulting in a failure like this:
    
        Traceback (most recent call last):
          File "/usr/lib/python2.7/site-packages/bkr/inttest/server/selenium/test_reserve_system.py", line 77, in test_no_lab_controller_distro
            self.assert_(not any('i386' in option.text for option in options), options)
        [...]
        StaleElementReferenceException: Message: Element not found in the cache - perhaps the page has changed since it was looked up
    
    Change-Id: I6eb7fa48570ab5bf8da565241887ec6a90c03860

commit e05f7fa214c385efb2c20ada8c541b6099025e6f
Author: Róman Joost <rjoost@redhat.com>
Date:   Mon Sep 19 10:49:16 2016 +1000

    Move from vagrant to virt-install
    
    This is reflecting the changes to beaker-in-a-box not using vagrant, but
    virt-install.
    
    (cherry picked from commit b1ca1096b336c6045fbfd217cfc9814e7f5ab7e9)
    
    Change-Id: Id0cab82e08f77ef76ac87d6268ca2da04e1368d8

commit 8e1ec7de65c506a4295ff29319253598fc5de586
Author: Róman Joost <rjoost@redhat.com>
Date:   Wed Jul 13 15:13:11 2016 +1000

    Use a local connection instead of ssh
    
    There is no need to setup a passwordless ssh key authentication. Using
    local as a connection type works equally good and avoids any potential
    ssh pitfalls.
    
    (cherry picked from commit fada4d171ce6a7b307e22f6f0bee15d290180754)
    
    Change-Id: I397d261521216fea848cf1f2674f61c6f4ceb604

commit e236aa5c3ce8d34b20439954ae52f7d6b98c2c48
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Thu Oct 20 17:00:11 2016 +1000

    only consider previous power command when enforcing quiescent period
    
    If we need to delay for a quiescent period, we want to consider the time
    since the last *power* command, not since the last command of any kind.
    
    Bug: 1083648
    Change-Id: I510a903251f74a54c2df47ad53ff4f10c88877e0

commit 3350a63faeb313a2922bf52107a41caf1749f244
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Thu Oct 20 17:10:22 2016 +1000

    fix validation logic for quiescent period
    
    Zero is acceptable, as the error message itself says.
    
    Bug: 1387109
    Change-Id: I8605aa62baedba443d5b9b251dde7deddf9d56f5

commit b05acff06838018a08b17bdb229e9f55559e537b
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Mon Oct 10 15:47:18 2016 +1000

    bkr job-modify --whiteboard
    
    Bug: 1298055
    Change-Id: I004eeacadc52bf1433e341b2f661557e916b1853

commit a930ff32c43bf6f137736e798176d8f05f112436
Author: Jon Orris <jorris@redhat.com>
Date:   Tue Aug 23 16:54:36 2016 -0400

    Fix missing beaker_url_prefix prefix
    
    Bug was reported as
     "/bkr" prefix is missing from the pool URL in system page
    
    Fixed that instance and two others I found.
    
    Bug: 1364311
    Change-Id: I0a5797b56be0c39bba8fab70b7b4815bac02f221

commit fbd924eaeb40f9848c65cc7c71b0f1a75eece1b9
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Tue Oct 4 17:18:38 2016 +1000

    record priority bumping in recipe set activity
    
    This will give people a greater chance of figuring out what is going on,
    instead of thinking they are just going crazy or Beaker is randomly
    discarding their priority settings.
    
    Bug: 1369599
    Change-Id: I3775e33dd036289626c33b395bdafb3c91e7411e

commit d3063228dbec52f14379ae7b772fe17ca6037449
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Tue Oct 4 15:56:21 2016 +1000

    don't implicitly mark a recipe as reviewed if it's still running
    
    Bug: 1376645
    Change-Id: I70b8da341b5f4cfe137b80fb218d9473fa5548fe

commit ab966fb811a1d3fa63f3f73b5d5a69cd84b63d98
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Wed Sep 28 13:58:12 2016 +1000

    avoid DNS lookups in absolute_url() if possible
    
    Bug: 1379565
    Change-Id: I9a6e68ae4829ef9442b04502a827c731517d1f68

commit 25f174c147d816049fd918a772a9cf91c93345cb
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Fri Sep 30 15:42:27 2016 +1000

    always set forward_url parameter for /login
    
    /login will ignore the Referer header, because redirecting back to that
    will do the wrong thing if the Referer was outside Beaker (for example
    when authenticating through Ipsilon).
    
    Bug: 1380600
    Change-Id: Idadad6b6b914c63dc20743cdb4d2967e1eb22dfa

commit 74aba3513b1126002cf885e6bf48ff463a16dd3b
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Thu Sep 29 10:31:40 2016 +1000

    tests: fix timing issue with recipe page refresh
    
    The recipe page automatically re-fetches its state every 30 seconds. So
    the test needs to wait slightly *more* than 30 seconds, otherwise there
    is a chance it will start looking at the page while it's being
    refreshed, leading to failures like this:
    
        ======================================================================
        ERROR: test_page_updates_itself_while_recipe_is_running (bkr.inttest.server.selenium.test_recipes.TestRecipeView)
        ----------------------------------------------------------------------
        Traceback (most recent call last):
          File "/usr/lib/python2.6/site-packages/bkr/inttest/server/selenium/test_recipes.py", line 147, in test_page_updates_itself_while_recipe_is_running
            b.find_element_by_xpath('//div[@class="recipe-summary"]/p[1]').text,
        [...]
        StaleElementReferenceException: Message: Element not found in the cache - perhaps the page has changed since it was looked up
    
    40 seconds should be a generous amount (30 seconds polling interval + 10
    seconds for the request to finish which is the maximum we allow in
    general in WebDriver tests).
    
    Change-Id: Idf6eb179d956f6a3aa62baebe2d765cae4387ba2

commit a898f126453a9a5b46ddb77fcca840b28f9bb057
Author: Jon Orris <jorris@redhat.com>
Date:   Thu Aug 25 15:34:23 2016 -0400

    ignore presence of alembic_version table when checking if the db is empty
    
    If the alembic_version table is present because beaker-init --check
    had created it, but the database is otherwise empty, we want beaker-init
    to populate it from scratch. Currently it gets confused and tries to
    upgrade the database, which fails because the tables are all missing.
    
    Bug: 1350302
    Change-Id: Id762bc3c3195f334078ebdd414a42fabcb337c5b

commit ba44e410733aea7b697a0531f7cb38de4cf96722
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Tue Sep 20 11:26:21 2016 +1000

    job page: fix FQDN shown in recipe summary row
    
    Commit 1a7f2c44 changed "resource" from a plain object to
    a RecipeResource instance, this template should have been updated to
    match.
    
    Bug: 1362596
    Change-Id: I7dbe96a401432450c863cc4662af76d0641d68ea

commit 09c0cf2b1652192c5bc2b69d064c79f4c9153223
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Mon Sep 19 13:49:52 2016 +1000

    don't mark systems Broken when configure_netboot fails to fetch images
    
    If beaker-provision fails to fetch netboot images when it's trying to
    configure netboot for a system, we do need to fail the command and abort
    the recipe because something is wrong with the lab mirror -- but it's
    not a misconfiguration with the system itself, we don't mark it Broken
    in that acse.
    
    Bug: 874387
    Change-Id: I5d73f719911921c8019cc5af8f39cb425a110a4c

commit c59211860c647908a9a5356c20f3693b414219c2
Author: Róman Joost <rjoost@redhat.com>
Date:   Wed Jul 27 16:00:12 2016 +1000

    Use better name for event listener
    
    The event listener firing when a system status is mistakenly named as a
    validator, but it only populates SystemStatusDuration rows when a new
    system status is set.
    
    Change-Id: I15863926b6b5dd64991d5178b0b9b38b0db265d4

commit 88cda311fe30807eda87b5d7d7a5d9a3f3b4d460
Author: Róman Joost <rjoost@redhat.com>
Date:   Thu Sep 15 13:58:30 2016 +1000

    Reserve system if recipe is in waiting state
    
    If a user has scheduled short running tasks and the system is on high
    load, beakerd might not be able to set the recipe to running after a
    successful installation before tasks have completed. This results for
    the recipe finishing as completed without reserving the system.
    
    This patch includes the possibility that a recipe could be in a waiting
    state and therefore honours the reservation request.
    
    Bug: 1375035
    Change-Id: I00efda65444d7fa091c4741e6cdd63faefb16f1b

commit e9540e0272d53c2e350e4a8f78f70a763c3b05eb
Author: Jon Orris <jorris@redhat.com>
Date:   Thu Aug 18 16:44:26 2016 -0400

    Change 'hide naks' in matrix report
    
    Nacks have been renamed to Waivers elsewhere,
    changed to 'hide waivers' for consistency.
    
    Bug: 1362598
    Change-Id: Ieeed6aa902917f93d88012b15e5ca4c87ccaf237

commit 146379f00a997c5a1d17a311892ed1365566740e
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Mon Aug 29 15:11:34 2016 +1000

    remote extraneous space after host recipe ID on recipe page
    
    The sentence appeared as:
    
        Guest recipe hosted by R:123 .
    
    due to the trailing newline on the recipe-toHTML JST template.
    
    Change-Id: I6c2183b675ec9dfac5302e3c44d2ae4736b6bfa7

commit 6263ae09783a43eeebeba6e18ea17326bfaf787c
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Mon Aug 29 14:36:23 2016 +1000

    tests: try to fix more timing issues with system grid
    
    In dogfood R:15730 we hit a failure in the last line of
    show_all_columns:
    
        NoSuchElementException: Message: Unable to locate element: {"method":"xpath","selector":"//table[@id=\"widget\"]/thead/tr/th/a[text()=\"System-Name\"]"}
    
    The corresponding access log entry shows that the browser actually
    fetched an empty search *without* any custom columns selected, even
    though we had clicked on "Select All" before submitting the search:
    
        ::1 - - [28/Aug/2016:23:16:58 -0400] "GET /bkr/?systemsearch-0.table=System%2FName&systemsearch-0.keyvalue=&systemsearch-0.operation=contains&systemsearch-0.value= HTTP/1.1" 200 37065 "http://localhost/bkr/" "Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Firefox/45.0"
    
    My theory is that WebDriver hit the submit button before the JS behind
    "Select All" had a chance to execute.
    
    Change-Id: I533d638e67a3e7bdd682cf788878b570f57406fd

commit 70d8e8d472ab7e95fbf4a18ef61ee209d27a5f34
Author: Dan Callaghan <dcallagh@redhat.com>
Date:   Mon Sep 5 16:45:16 2016 +1000

    tests: fix timing issue with comment text
    
    Trying to avoid intermittent failures like this one:
    
        Traceback (most recent call last):
          File "/usr/lib/python2.6/site-packages/bkr/inttest/server/selenium/test_jobs.py", line 579, in test_html_in_comments_is_escaped
            self.assertEqual(comment_paragraph.text, bad_comment)
        AssertionError: u'' != '<script>alert("xss")</script>'
    
    which I suspect are happening because WebDriver is grabbing the text
    content of the p while the comments view is still rendering itself.
    
    Change-Id: I600e5a330e929268a618f7eff80218bbe8f07f81

commit 260134ed5149f1b23a0a4b0f1b50a8fd8fd0feda
Author: Róman Joost <rjoost@redhat.com>
Date:   Thu Jul 14 13:38:01 2016 +1000

    Set systems to broken when de-associating with LC
    
    If lab controllers are removed, attached systems should not remain in
    'Automated' since it will lead to confusing test errors. This patch
    marks them as broken so the schedule will not consider them for use.
    Additionally, we validate before setting the system to automated, that
    the a lab controller is associated.
    
    Bug: 1347239
    Change-Id: I6c08e529a6ef9b5d01d13511f8c56eb83b4fb5d5