LP#1664386: fix certain subrequests that control DB transactions collab/kmlussier/webstaff-sprint-4-5
authorGalen Charlton <gmc@equinoxinitiative.org>
Mon, 13 Feb 2017 22:18:28 +0000 (17:18 -0500)
committerMike Rylander <mrylander@gmail.com>
Mon, 13 Feb 2017 23:00:41 +0000 (18:00 -0500)
commit4bbeb179234bd9f6c9591be0bed04c6edfc26273
tree37f24fb3ae71c14cc490ce6ce3bfb608618598f4
parentb1f09c2fc608f8c9e2b4e49053cdd7b1fd6a59ad
LP#1664386: fix certain subrequests that control DB transactions

This patch removes all cases where the current OpenSRF client
object is passed to

$self->method_lookup('open-ils.storage.transaction.{begin/rollback}')->run()

This idiom is no longer needed, as session information required to
generate a transaction ID is reliably passed to subrequests. Without
this patch, current Evergreen master and OpenSRF master will cause
the following methods to return not only their results, but also
"1" from each use of this idiom:

open-ils.storage.actor.user.checked_out
open-ils.storage.booking.reservation.resource_targeter
open-ils.storage.action.hold_request.copy_targeter

To test
-------
[1] Be running current Evergreen master and OpenSRF master
    (or the 2.5 alpha)
[2] Run (say) open-ils.storage.actor.user.checked_out in srfsh:

srfsh# request open-ils.storage open-ils.storage.actor.user.checked_out 13

Received Data: 1

Received Data: 1

Received Data: {
  "out":[

  ],
  "claims_returned":[

  ],
  "long_overdue":[

  ],
  "overdue":[
    "55",
    "56",
    "57",
    "58",
    "59",
    "60"
  ],
  "lost":[

  ]
}

[3] Note the extraneous 'Received Data: 1' sent prior to the substantive
    response.
[4] Apply the patch and rerun step 2; note that this time
    only the desired response is sent.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/action.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm