LP#1664386: fix certain subrequests that control DB transactions user/gmcharlt/booking-fixes
authorGalen Charlton <gmc@equinoxinitiative.org>
Mon, 13 Feb 2017 22:18:28 +0000 (17:18 -0500)
committerGalen Charlton <gmc@equinoxinitiative.org>
Mon, 13 Feb 2017 22:55:56 +0000 (17:55 -0500)
commitd13a6a8812425072f8a0589014729ca2db3fa5b3
tree1c6e00d4d3894516b145f430079e4c4e9598af94
parent7522169af4647c5bc4d304f1754948ed1219f643
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