]> review.fuel-infra Code Review - openstack-build/cinder-build.git/commit
Add retry for tgtadm update when tgt exists
authorJohn Griffith <john.griffith@solidfire.com>
Thu, 15 Jan 2015 15:56:28 +0000 (08:56 -0700)
committerJohn Griffith <john.griffith@solidfire.com>
Thu, 29 Jan 2015 06:36:50 +0000 (00:36 -0600)
commit4dc367f7d736ae506db9532270e92977c8b3954d
tree819e887d408d604966fcd0ea2d3589c65d892dd9
parent59b4123043f3fd9d3f05a3e8bfb969b81c3f7db6
Add retry for tgtadm update when tgt exists

For target creation using tgtadm driver, we create a persistence
file for the target, then send a tgt-admin --update 'name' where
name is the specific persistence file we want to read in and update
from.

It turns out that we can hit race conditions where the persistence
file is written, and an update is requested but target has already
done work to make it believe that the target has already been created.

One thought was to just use "update ALL" but this still seems to have
issues, and changes the error to an account exists failure.

This patch takes the brute force approach and adds the cinder.utils
retry decorator to the tgt-admin --update command.  To do this
we just break out the tgt-admin --update call into it's own method
and add the decorator to it.

Closes-Bug: #1398078

Change-Id: Ic72fb5f4fca70a7e7d1c306efe19674fd7e42cd6
cinder/volume/targets/tgt.py