Merge "Timeout triggers failures running tempest for ZFSSA driver."

This commit is contained in:
Jenkins 2014-09-21 13:38:28 +00:00 committed by Gerrit Code Review
commit aed4878ac5
5 changed files with 18 additions and 7 deletions

View File

@ -36,7 +36,7 @@ class FakeZFSSA(object):
def login(self, user):
self.user = user
def set_host(self, host):
def set_host(self, host, timeout=None):
self.host = host
def create_project(self, pool, project, compression, logbias):
@ -265,6 +265,7 @@ class TestZFSSAISCSIDriver(test.TestCase):
self.configuration.zfssa_target_password = ''
self.configuration.zfssa_target_portal = '1.1.1.1:3260'
self.configuration.zfssa_target_interfaces = 'e1000g0'
self.configuration.zfssa_rest_timeout = 60
def test_create_delete_volume(self):
self.drv.create_volume(self.test_vol)

View File

@ -276,7 +276,11 @@ class RestClientURL(object):
try:
response = urllib2.urlopen(req, timeout=self.timeout)
except urllib2.HTTPError as err:
LOG.error(_('REST Not Available: %s') % err.code)
if err.code == httplib.NOT_FOUND:
LOG.debug('REST Not Found: %s' % err.code)
else:
LOG.error(_('REST Not Available: %s') % err.code)
if err.code == httplib.SERVICE_UNAVAILABLE and \
retry < maxreqretries:
retry += 1

View File

@ -59,7 +59,10 @@ ZFSSA_OPTS = [
cfg.StrOpt('zfssa_target_portal',
help='iSCSI target portal (Data-IP:Port, w.x.y.z:3260).'),
cfg.StrOpt('zfssa_target_interfaces',
help='Network interfaces of iSCSI targets. (comma separated)')
help='Network interfaces of iSCSI targets. (comma separated)'),
cfg.IntOpt('zfssa_rest_timeout',
help='REST connection timeout. (seconds)')
]
CONF.register_opts(ZFSSA_OPTS)
@ -95,7 +98,7 @@ class ZFSSAISCSIDriver(driver.ISCSIDriver):
msg = (_('Connecting to host: %s.') % lcfg.san_ip)
LOG.info(msg)
self.zfssa = factory_zfssa()
self.zfssa.set_host(lcfg.san_ip)
self.zfssa.set_host(lcfg.san_ip, timeout=lcfg.zfssa_rest_timeout)
auth_str = base64.encodestring('%s:%s' %
(lcfg.san_login,
lcfg.san_password))[:-1]

View File

@ -57,10 +57,10 @@ class ZFSSAApi(object):
return vdata['version']['asn'] == pdata['pool']['asn'] and \
vdata['version']['nodename'] == pdata['pool']['owner']
def set_host(self, host):
def set_host(self, host, timeout=None):
self.host = host
self.url = "https://" + self.host + ":215"
self.rclient = restclient.RestClientURL(self.url)
self.rclient = restclient.RestClientURL(self.url, timeout=timeout)
def login(self, auth_str):
"""Login to the appliance"""
@ -375,7 +375,7 @@ class ZFSSAApi(object):
optional - volblocksize, sparse, compression, logbias
"""
svc = '/api/storage/v1/pools/' + pool + '/projects/' + \
project + '/luns'
project + '/luns'
arg = {
'name': lun,
'volsize': volsize,

View File

@ -2269,6 +2269,9 @@
# (string value)
#zfssa_target_interfaces=<None>
# REST connection timeout. (seconds) (integer value)
#zfssa_rest_timeout=<None>
#
# Options defined in cinder.volume.manager