Dell EMC PS: Optimize parsing of capacity info from backend
The backend api returns large amounts of information and times out when there are lots of volumes. Accelerated the process by terminating the parsing after the capacity info is retrieved. Closes Bug: #1661154 Change-Id: I1f0adaa8e25cd3ec74084b22bbe1573b92713959
This commit is contained in:
@@ -138,10 +138,11 @@ class PSSeriesISCSIDriver(san.SanISCSIDriver):
|
||||
1.4.2 - Enable report discard support.
|
||||
1.4.3 - Report total_volumes in volume stats
|
||||
1.4.4 - Fixed over-subscription ratio calculation
|
||||
1.4.5 - Optimize volume stats information parsing
|
||||
|
||||
"""
|
||||
|
||||
VERSION = "1.4.4"
|
||||
VERSION = "1.4.5"
|
||||
|
||||
# ThirdPartySytems wiki page
|
||||
CI_WIKI_NAME = "Dell_Storage_CI"
|
||||
@@ -301,13 +302,12 @@ class PSSeriesISCSIDriver(san.SanISCSIDriver):
|
||||
data['reserved_percentage'] = 0
|
||||
data['QoS_support'] = False
|
||||
|
||||
data['total_capacity_gb'] = 0
|
||||
data['free_capacity_gb'] = 0
|
||||
data['total_capacity_gb'] = None
|
||||
data['free_capacity_gb'] = None
|
||||
data['multiattach'] = False
|
||||
data['total_volumes'] = 0
|
||||
|
||||
provisioned_capacity = 0
|
||||
data['total_volumes'] = None
|
||||
|
||||
provisioned_capacity = None
|
||||
for line in self._eql_execute('pool', 'select',
|
||||
self.configuration.eqlx_pool, 'show'):
|
||||
if line.startswith('TotalCapacity:'):
|
||||
@@ -322,6 +322,10 @@ class PSSeriesISCSIDriver(san.SanISCSIDriver):
|
||||
if line.startswith('TotalVolumes:'):
|
||||
out_tup = line.rstrip().partition(' ')
|
||||
data['total_volumes'] = int(out_tup[-1])
|
||||
# Terminate parsing once this data is found to improve performance
|
||||
if (data['total_capacity_gb'] and data['free_capacity_gb'] and
|
||||
provisioned_capacity and data['total_volumes']):
|
||||
break
|
||||
|
||||
global_capacity = data['total_capacity_gb']
|
||||
global_free = data['free_capacity_gb']
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
---
|
||||
fixes:
|
||||
- Dell EMC PS Series Driver code reporting volume stats is now optimized
|
||||
to return the information earlier and accelerate the process. This change
|
||||
fixes bug 1661154.
|
||||
Reference in New Issue
Block a user