Fix VxFlexOs KeyError after upgrade
A long time ago the driver was changed to store volume_id in the nova database and use that. Previously it would use the volume_name and make a call to get the volume_id. Both should be supported, but as the code path currently throws a KeyError it will never reach the backwardscompatible code. This makes sure that the driver works even after an upgrade from Mitaka. Change-Id: Ic389e1a8f0f43ef410eee89202fef19d554fce90 Closes-Bug: #1648629
This commit is contained in:
parent
c88071dc19
commit
6b60614afa
|
@ -276,7 +276,7 @@ class VxFlexOsConnector(base.BaseLinuxConnector):
|
|||
try:
|
||||
self.volume_id = connection_properties['vxflexos_volume_id']
|
||||
except KeyError:
|
||||
self.volume_id = connection_properties['scaleIO_volume_id']
|
||||
self.volume_id = connection_properties.get('scaleIO_volume_id')
|
||||
d_option_used = True
|
||||
if d_option_used:
|
||||
LOG.warning("Deprecated: scaleIO_volname and scaleIO_volume_id "
|
||||
|
|
|
@ -171,6 +171,13 @@ class VxFlexOsConnectorTestCase(test_connector.ConnectorTestCase):
|
|||
"""Successful connect to volume"""
|
||||
self.connector.connect_volume(self.fake_connection_properties)
|
||||
|
||||
def test_connect_volume_without_volume_id(self):
|
||||
"""Successful connect to volume without a Volume Id"""
|
||||
connection_properties = dict(self.fake_connection_properties)
|
||||
connection_properties.pop('vxflexos_volume_id')
|
||||
|
||||
self.connector.connect_volume(connection_properties)
|
||||
|
||||
def test_connect_with_bandwidth_limit(self):
|
||||
"""Successful connect to volume with bandwidth limit"""
|
||||
self.fake_connection_properties['bandwidthLimit'] = '500'
|
||||
|
@ -191,6 +198,13 @@ class VxFlexOsConnectorTestCase(test_connector.ConnectorTestCase):
|
|||
"""Successful disconnect from volume"""
|
||||
self.connector.disconnect_volume(self.fake_connection_properties, None)
|
||||
|
||||
def test_disconnect_volume_without_volume_id(self):
|
||||
"""Successful disconnect from volume without a Volume Id"""
|
||||
connection_properties = dict(self.fake_connection_properties)
|
||||
connection_properties.pop('vxflexos_volume_id')
|
||||
|
||||
self.connector.disconnect_volume(connection_properties, None)
|
||||
|
||||
def test_error_id(self):
|
||||
"""Fail to connect with bad volume name"""
|
||||
self.fake_connection_properties['vxflexos_volume_id'] = 'bad_id'
|
||||
|
|
Loading…
Reference in New Issue