cinder/cinder
Zhiteng Huang 7e95b05b93 Fix possible race condition for accept transfer
Accept transfer API workflow is currently like this:

  call volume_api.accept_transfer()
    |
    --- RPC cast to volume manager
          |
          --- volume manager calls volume driver accept_transfer()

  update volume's DB record

Given the non-blocking nature of RPC cast, what happens in volume
manager and volume driver can happen in parallel with the DB update.
If volume driver relies on original DB record to do things, then
DB record shouldn't be updated until volume driver finishes its job.

So this patch change volume RPC API accept_transfer() from cast
to call to make sure the workflow is in serialized manner.  Also
elevated the context when volume manager tries to update the DB
record when driver has done accept_transfer().

Change-Id: Ieae52e167aa02967338e0be5d78d570d682faa7a
Closes-bug: #1357432
2014-09-08 08:54:52 -07:00
..
api Deprecate the V1 API 2014-09-04 20:24:37 -07:00
backup During a restore send the restore request to the right host 2014-09-03 19:07:14 +01:00
brick Remove redundant temporary_chown from IetAdm 2014-08-19 15:59:50 -04:00
common Deprecate the V1 API 2014-09-04 20:24:37 -07:00
compute debug level logs should not be translated 2014-06-18 09:03:02 -06:00
consistencygroup Consistency Groups 2014-08-27 01:47:31 -04:00
db Support Volume Backup Quota 2014-09-02 18:09:04 +08:00
hacking Add hacking check for use of LOG.audit 2014-08-09 10:22:03 -05:00
image Fix LOG string formatting in image_utils 2014-08-17 11:00:45 -06:00
keymgr Adds barbican keymgr wrapper 2014-08-18 09:38:57 -04:00
locale Imported Translations from Transifex 2014-08-18 06:07:42 +00:00
openstack Merge "Update oslo policy and its dependencies" 2014-09-01 19:49:46 +00:00
replication Add support in Cinder for volume replication - driver approach 2014-08-23 15:53:55 +00:00
scheduler Pool-aware Scheduler Support 2014-08-31 16:27:02 -07:00
testing updating testing readme with more current information. 2014-02-26 09:21:13 -05:00
tests Fix possible race condition for accept transfer 2014-09-08 08:54:52 -07:00
transfer Use oslo.i18n 2014-08-08 17:26:41 -05:00
volume Fix possible race condition for accept transfer 2014-09-08 08:54:52 -07:00
zonemanager Add Cisco FC Zoning plugin to the FC ZoneManager 2014-08-29 20:15:04 -04:00
__init__.py Remove vim header 2013-12-30 18:53:02 -06:00
context.py Allow backup-to-swift to take swift URL from service catalogue 2014-08-21 08:01:26 +00:00
exception.py Add Datera driver for Cinder 2014-09-03 10:24:41 -07:00
flow_utils.py Put result in quotes 2014-08-14 17:02:32 -07:00
i18n.py Use oslo.i18n 2014-08-08 17:26:41 -05:00
manager.py debug level logs should not be translated 2014-06-18 09:03:02 -06:00
policy.py Update oslo policy and its dependencies 2014-08-29 13:56:30 +02:00
quota.py Support Volume Backup Quota 2014-09-02 18:09:04 +08:00
quota_utils.py Use oslo.i18n 2014-08-08 17:26:41 -05:00
rpc.py Integrate OSprofiler and Cinder 2014-08-21 02:19:36 +04:00
service.py Integrate OSprofiler and Cinder 2014-08-21 02:19:36 +04:00
ssh_utils.py Make ssh-host-key-policy configurable 2014-08-29 22:44:03 -05:00
test.py Update oslo policy and its dependencies 2014-08-29 13:56:30 +02:00
utils.py Update oslo policy and its dependencies 2014-08-29 13:56:30 +02:00
version.py Remove vim header 2013-12-30 18:53:02 -06:00
wsgi.py Use oslo.i18n 2014-08-08 17:26:41 -05:00