Remove QoS settings from SolidFire attributes
There's a limit in the number of parent key objects that are stored on the SolidFire cluster object attributes (10). While we're not hitting the limit yet, we're getting dangerously close, so this patch removes the unnecessary QoS keys that are currently added. These keys can safely be removed because they are stored by Cinder already and can be retrieved via the type setting, or in the case of retype, the retype info that's stored on the volume attribute. Other keys shouldn't be modified at this time because they are used internally by the driver to make various decisions, and turning them into sub-keys or removing them altogether will involve more far reaching changes that aren't necessary in the short term to fix this particular bug. Change-Id: I617ba41331e95c45f86a08440e24e6c407033a46 Closes-Bug: #1530212
This commit is contained in:
parent
0f5e61bf6e
commit
0bce0a001e
@ -500,23 +500,18 @@ class SolidFireDriver(san.SanISCSIDriver):
|
||||
raise exception.SolidFireAPIException(msg)
|
||||
|
||||
sf_volume_id = data['result']['volumeID']
|
||||
qos = self._retrieve_qos_setting(vref)
|
||||
|
||||
# NOTE(jdg): all attributes are copied via clone, need to do an update
|
||||
# to set any that were provided
|
||||
qos_params = {'volumeID': sf_volume_id}
|
||||
params = {'volumeID': sf_volume_id}
|
||||
create_time = vref['created_at'].isoformat()
|
||||
attributes = {'uuid': vref['id'],
|
||||
'is_clone': 'True',
|
||||
'src_uuid': src_uuid,
|
||||
'created_at': create_time}
|
||||
if qos:
|
||||
qos_params['qos'] = qos
|
||||
for k, v in qos.items():
|
||||
attributes[k] = str(v)
|
||||
|
||||
qos_params['attributes'] = attributes
|
||||
data = self._issue_api_request('ModifyVolume', qos_params)
|
||||
params['attributes'] = attributes
|
||||
data = self._issue_api_request('ModifyVolume', params)
|
||||
|
||||
model_update = self._get_model_info(sf_account, sf_volume_id)
|
||||
if model_update is None:
|
||||
@ -1070,9 +1065,6 @@ class SolidFireDriver(san.SanISCSIDriver):
|
||||
attributes = {'uuid': volume['id'],
|
||||
'is_clone': 'False',
|
||||
'created_at': create_time}
|
||||
if qos:
|
||||
for k, v in qos.items():
|
||||
attributes[k] = str(v)
|
||||
|
||||
vname = '%s%s' % (self.configuration.sf_volume_prefix, volume['id'])
|
||||
params = {'name': vname,
|
||||
@ -1539,9 +1531,6 @@ class SolidFireDriver(san.SanISCSIDriver):
|
||||
|
||||
if qos:
|
||||
params['qos'] = qos
|
||||
for k, v in qos.items():
|
||||
attributes[k] = str(v)
|
||||
params['attributes'] = attributes
|
||||
|
||||
self._issue_api_request('ModifyVolume', params)
|
||||
return True
|
||||
@ -1576,9 +1565,6 @@ class SolidFireDriver(san.SanISCSIDriver):
|
||||
'is_clone': 'False',
|
||||
'os_imported_at': import_time,
|
||||
'old_name': sfname}
|
||||
if qos:
|
||||
for k, v in qos.items():
|
||||
attributes[k] = str(v)
|
||||
|
||||
params = {'name': volume['name'],
|
||||
'volumeID': sf_ref['volumeID'],
|
||||
|
Loading…
Reference in New Issue
Block a user