]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Update volume status AFTER terminate_connection is done
authorZhiteng Huang <zhithuang@ebaysf.com>
Tue, 7 Jul 2015 08:31:32 +0000 (16:31 +0800)
committerZhiteng Huang <zhithuang@ebaysf.com>
Wed, 26 Aug 2015 09:05:57 +0000 (17:05 +0800)
commitbf5d39277e7c02df3994f3a5019b60f7a64f9b07
tree5fe329a3220dd33890db0049543d5dc758354fea
parent52fa97ce941c38812464d5aeb223de6b97c3f2c0
Update volume status AFTER terminate_connection is done

Current volume API terminate_connection() updates volume's status in
DB before volume driver finishes terminate_connection().  In cases
where volume driver needs some time complete terminate_connection(),
it means volume becomes 'available' before volume driver done cleaning
up.  This fix changes the order of 'unreserve_volume' (updating DB)
and driver's terminate_connection to make sure when volume is marked
'available' the client has done cleaning connection.

Note that terminate_connection volume RPC API is a synchronized call,
but volume manager/driver doesn't return any value to caller.  What's
more, when volume API extension calls volume terminate_connection API,
it doesn't expect return values, so this change removes unnecessary
return values from volume API.

Closes-bug: #1488857

Change-Id: If79f7ce9a7d238b41be4c6befa0f3cac30ab06a3
cinder/volume/api.py