Skip to content

Commit fa566b6

Browse files
authored
Resolve Vstore users do not have permission which cause cinder driver initialization failed problem.
Resolve Vstore users do not have permission which cause cinder driver initialization failed problem.
2 parents a2ab8bb + b2bf13d commit fa566b6

15 files changed

+30
-325
lines changed

Cinder/Mitaka/constants.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -289,30 +289,3 @@
289289
THIN = 'Thin'
290290
INITIATOR_TARGET_MAP = 'initiator_target_map'
291291
URL = 'url'
292-
293-
HUAWEI_DISK_DICT = {
294-
"-1": "",
295-
"0": "fc",
296-
"1": "sas",
297-
"2": "sata",
298-
"3": "ssd",
299-
"4": "nl_sas",
300-
"5": "slc_ssd",
301-
"6": "mlc_ssd",
302-
"7": "fc_sed",
303-
"8": "sas_sed",
304-
"9": "sata_sed",
305-
"10": "ssd_sed",
306-
"11": "nl-sas_sed",
307-
"12": "slc_ssd_sed",
308-
"13": "mlc_ssd_sed",
309-
"14": "nvme_ssd",
310-
"16": "nvme_ssd_sed",
311-
"17": "scm",
312-
"18": "scm_sed",
313-
"19": "capacity-optimized ssd",
314-
"20": "capacity-optimized ssd sed",
315-
"21": "capacity-optimized ssd",
316-
"22": "capacity-optimized ssd sed"
317-
}
318-

Cinder/Mitaka/huawei_driver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ def do_setup(self, context):
163163
self.sn = self.client.login()
164164
self.client.check_storage_pools()
165165
self.is_dorado_v6 = huawei_utils.is_support_clone_pair(self.client)
166-
self.client.is_dorado_v6 = self.is_dorado_v6
167166

168167
# init hypermetro remote client
169168
hypermetro_devs = self.huawei_conf.get_hypermetro_devices()

Cinder/Mitaka/rest_client.py

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,17 @@ def __init__(self, configuration, san_address, san_user, san_password,
9595

9696
@staticmethod
9797
def _get_disk_type_by_storage_pool(pool_info):
98-
"""
99-
The method for the storage pool to obtain the disk type is as follows:
100-
If disk type information exists in 'TIER0CAPACITY','TIER1CAPACITY', 'TIER2CAPACITY',
101-
separate them with commas ',' and return them.
102-
"""
98+
"""Get disk type of the pool."""
10399
pool_disk = []
104100
for i, x in enumerate(['ssd', 'sas', 'nl_sas']):
105101
if (pool_info.get('TIER%dCAPACITY' % i) and
106102
pool_info.get('TIER%dCAPACITY' % i) != '0'):
107103
pool_disk.append(x)
108104

109-
return ','.join(pool_disk) if pool_disk else None
105+
if len(pool_disk) > 1:
106+
pool_disk = ['mix']
107+
108+
return pool_disk[0] if pool_disk else None
110109

111110
def init_http_head(self):
112111
self.url = None
@@ -1438,10 +1437,7 @@ def _get_disk_type(self, pool_name, result):
14381437
if not pool_info:
14391438
return None
14401439

1441-
if not self.is_dorado_v6:
1442-
disk_type = self._get_disk_type_by_storage_pool(pool_info)
1443-
else:
1444-
disk_type = self._get_disk_type_by_disk_pool(pool_info)
1440+
disk_type = self._get_disk_type_by_storage_pool(pool_info)
14451441
LOG.info("The disk type is %s", disk_type)
14461442
return disk_type
14471443

@@ -3258,33 +3254,6 @@ def _get_target_ip_list(roce_info, target_ips):
32583254
if target_ip.strip():
32593255
target_ips.append(target_ip)
32603256

3261-
def get_disk_pool_by_id(self, disk_domain_id):
3262-
url = "/diskpool/%s" % disk_domain_id
3263-
result = self.call(url, None, "GET")
3264-
self._assert_rest_result(result, 'Get disk pool by id error')
3265-
return result.get('data')
3266-
3267-
def _get_disk_type_by_disk_pool(self, pool_info):
3268-
"""
3269-
The method for disk pool to obtain the disk type is as follows:
3270-
Check whether diskTypeList contains disk type information.
3271-
If diskTypeList contains disk type information, separate disk types with commas ','.
3272-
If diskTypeList does not contain disk type information,
3273-
use the disk type returned by TIER0DISKTYPE.
3274-
"""
3275-
pool_disks = []
3276-
disk_pool_info = self.get_disk_pool_by_id(pool_info.get('PARENTID'))
3277-
if disk_pool_info.get('diskTypeList'):
3278-
for disk_type in json.loads(disk_pool_info.get('diskTypeList')):
3279-
if constants.HUAWEI_DISK_DICT.get(disk_type):
3280-
pool_disks.append(constants.HUAWEI_DISK_DICT.get(disk_type))
3281-
3282-
if not pool_disks:
3283-
pool_disks.append(constants.HUAWEI_DISK_DICT.get(disk_pool_info.get('TIER0DISKTYPE')))
3284-
return pool_disks[0]
3285-
3286-
return ','.join(pool_disks) if pool_disks else None
3287-
32883257
def _get_target_ips_by_initiator_name(self, initiator):
32893258
target_ips = []
32903259
for info in self.roce_info:

Cinder/Newton/constants.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -289,30 +289,3 @@
289289
THIN = 'Thin'
290290
INITIATOR_TARGET_MAP = 'initiator_target_map'
291291
URL = 'url'
292-
293-
HUAWEI_DISK_DICT = {
294-
"-1": "",
295-
"0": "fc",
296-
"1": "sas",
297-
"2": "sata",
298-
"3": "ssd",
299-
"4": "nl_sas",
300-
"5": "slc_ssd",
301-
"6": "mlc_ssd",
302-
"7": "fc_sed",
303-
"8": "sas_sed",
304-
"9": "sata_sed",
305-
"10": "ssd_sed",
306-
"11": "nl-sas_sed",
307-
"12": "slc_ssd_sed",
308-
"13": "mlc_ssd_sed",
309-
"14": "nvme_ssd",
310-
"16": "nvme_ssd_sed",
311-
"17": "scm",
312-
"18": "scm_sed",
313-
"19": "capacity-optimized ssd",
314-
"20": "capacity-optimized ssd sed",
315-
"21": "capacity-optimized ssd",
316-
"22": "capacity-optimized ssd sed"
317-
}
318-

Cinder/Newton/huawei_driver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ def do_setup(self, context):
163163
self.sn = self.client.login()
164164
self.client.check_storage_pools()
165165
self.is_dorado_v6 = huawei_utils.is_support_clone_pair(self.client)
166-
self.client.is_dorado_v6 = self.is_dorado_v6
167166

168167
# init hypermetro remote client
169168
hypermetro_devs = self.huawei_conf.get_hypermetro_devices()

Cinder/Newton/rest_client.py

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,17 @@ def __init__(self, configuration, san_address, san_user, san_password,
9595

9696
@staticmethod
9797
def _get_disk_type_by_storage_pool(pool_info):
98-
"""
99-
The method for the storage pool to obtain the disk type is as follows:
100-
If disk type information exists in 'TIER0CAPACITY','TIER1CAPACITY', 'TIER2CAPACITY',
101-
separate them with commas ',' and return them.
102-
"""
98+
"""Get disk type of the pool."""
10399
pool_disk = []
104100
for i, x in enumerate(['ssd', 'sas', 'nl_sas']):
105101
if (pool_info.get('TIER%dCAPACITY' % i) and
106102
pool_info.get('TIER%dCAPACITY' % i) != '0'):
107103
pool_disk.append(x)
108104

109-
return ','.join(pool_disk) if pool_disk else None
105+
if len(pool_disk) > 1:
106+
pool_disk = ['mix']
107+
108+
return pool_disk[0] if pool_disk else None
110109

111110
def init_http_head(self):
112111
self.url = None
@@ -1438,10 +1437,7 @@ def _get_disk_type(self, pool_name, result):
14381437
if not pool_info:
14391438
return None
14401439

1441-
if not self.is_dorado_v6:
1442-
disk_type = self._get_disk_type_by_storage_pool(pool_info)
1443-
else:
1444-
disk_type = self._get_disk_type_by_disk_pool(pool_info)
1440+
disk_type = self._get_disk_type_by_storage_pool(pool_info)
14451441
LOG.info("The disk type is %s", disk_type)
14461442
return disk_type
14471443

@@ -3258,33 +3254,6 @@ def _get_target_ip_list(roce_info, target_ips):
32583254
if target_ip.strip():
32593255
target_ips.append(target_ip)
32603256

3261-
def get_disk_pool_by_id(self, disk_domain_id):
3262-
url = "/diskpool/%s" % disk_domain_id
3263-
result = self.call(url, None, "GET")
3264-
self._assert_rest_result(result, 'Get disk pool by id error')
3265-
return result.get('data')
3266-
3267-
def _get_disk_type_by_disk_pool(self, pool_info):
3268-
"""
3269-
The method for disk pool to obtain the disk type is as follows:
3270-
Check whether diskTypeList contains disk type information.
3271-
If diskTypeList contains disk type information, separate disk types with commas ','.
3272-
If diskTypeList does not contain disk type information,
3273-
use the disk type returned by TIER0DISKTYPE.
3274-
"""
3275-
pool_disks = []
3276-
disk_pool_info = self.get_disk_pool_by_id(pool_info.get('PARENTID'))
3277-
if disk_pool_info.get('diskTypeList'):
3278-
for disk_type in json.loads(disk_pool_info.get('diskTypeList')):
3279-
if constants.HUAWEI_DISK_DICT.get(disk_type):
3280-
pool_disks.append(constants.HUAWEI_DISK_DICT.get(disk_type))
3281-
3282-
if not pool_disks:
3283-
pool_disks.append(constants.HUAWEI_DISK_DICT.get(disk_pool_info.get('TIER0DISKTYPE')))
3284-
return pool_disks[0]
3285-
3286-
return ','.join(pool_disks) if pool_disks else None
3287-
32883257
def _get_target_ips_by_initiator_name(self, initiator):
32893258
target_ips = []
32903259
for info in self.roce_info:

Cinder/Ocata/constants.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -289,30 +289,3 @@
289289
THIN = 'Thin'
290290
INITIATOR_TARGET_MAP = 'initiator_target_map'
291291
URL = 'url'
292-
293-
HUAWEI_DISK_DICT = {
294-
"-1": "",
295-
"0": "fc",
296-
"1": "sas",
297-
"2": "sata",
298-
"3": "ssd",
299-
"4": "nl_sas",
300-
"5": "slc_ssd",
301-
"6": "mlc_ssd",
302-
"7": "fc_sed",
303-
"8": "sas_sed",
304-
"9": "sata_sed",
305-
"10": "ssd_sed",
306-
"11": "nl-sas_sed",
307-
"12": "slc_ssd_sed",
308-
"13": "mlc_ssd_sed",
309-
"14": "nvme_ssd",
310-
"16": "nvme_ssd_sed",
311-
"17": "scm",
312-
"18": "scm_sed",
313-
"19": "capacity-optimized ssd",
314-
"20": "capacity-optimized ssd sed",
315-
"21": "capacity-optimized ssd",
316-
"22": "capacity-optimized ssd sed"
317-
}
318-

Cinder/Ocata/huawei_driver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ def do_setup(self, context):
163163
self.sn = self.client.login()
164164
self.client.check_storage_pools()
165165
self.is_dorado_v6 = huawei_utils.is_support_clone_pair(self.client)
166-
self.client.is_dorado_v6 = self.is_dorado_v6
167166

168167
# init hypermetro remote client
169168
hypermetro_devs = self.huawei_conf.get_hypermetro_devices()

Cinder/Ocata/rest_client.py

Lines changed: 6 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -95,18 +95,17 @@ def __init__(self, configuration, san_address, san_user, san_password,
9595

9696
@staticmethod
9797
def _get_disk_type_by_storage_pool(pool_info):
98-
"""
99-
The method for the storage pool to obtain the disk type is as follows:
100-
If disk type information exists in 'TIER0CAPACITY','TIER1CAPACITY', 'TIER2CAPACITY',
101-
separate them with commas ',' and return them.
102-
"""
98+
"""Get disk type of the pool."""
10399
pool_disk = []
104100
for i, x in enumerate(['ssd', 'sas', 'nl_sas']):
105101
if (pool_info.get('TIER%dCAPACITY' % i) and
106102
pool_info.get('TIER%dCAPACITY' % i) != '0'):
107103
pool_disk.append(x)
108104

109-
return ','.join(pool_disk) if pool_disk else None
105+
if len(pool_disk) > 1:
106+
pool_disk = ['mix']
107+
108+
return pool_disk[0] if pool_disk else None
110109

111110
def init_http_head(self):
112111
self.url = None
@@ -1438,10 +1437,7 @@ def _get_disk_type(self, pool_name, result):
14381437
if not pool_info:
14391438
return None
14401439

1441-
if not self.is_dorado_v6:
1442-
disk_type = self._get_disk_type_by_storage_pool(pool_info)
1443-
else:
1444-
disk_type = self._get_disk_type_by_disk_pool(pool_info)
1440+
disk_type = self._get_disk_type_by_storage_pool(pool_info)
14451441
LOG.info("The disk type is %s", disk_type)
14461442
return disk_type
14471443

@@ -3258,33 +3254,6 @@ def _get_target_ip_list(roce_info, target_ips):
32583254
if target_ip.strip():
32593255
target_ips.append(target_ip)
32603256

3261-
def get_disk_pool_by_id(self, disk_domain_id):
3262-
url = "/diskpool/%s" % disk_domain_id
3263-
result = self.call(url, None, "GET")
3264-
self._assert_rest_result(result, 'Get disk pool by id error')
3265-
return result.get('data')
3266-
3267-
def _get_disk_type_by_disk_pool(self, pool_info):
3268-
"""
3269-
The method for disk pool to obtain the disk type is as follows:
3270-
Check whether diskTypeList contains disk type information.
3271-
If diskTypeList contains disk type information, separate disk types with commas ','.
3272-
If diskTypeList does not contain disk type information,
3273-
use the disk type returned by TIER0DISKTYPE.
3274-
"""
3275-
pool_disks = []
3276-
disk_pool_info = self.get_disk_pool_by_id(pool_info.get('PARENTID'))
3277-
if disk_pool_info.get('diskTypeList'):
3278-
for disk_type in json.loads(disk_pool_info.get('diskTypeList')):
3279-
if constants.HUAWEI_DISK_DICT.get(disk_type):
3280-
pool_disks.append(constants.HUAWEI_DISK_DICT.get(disk_type))
3281-
3282-
if not pool_disks:
3283-
pool_disks.append(constants.HUAWEI_DISK_DICT.get(disk_pool_info.get('TIER0DISKTYPE')))
3284-
return pool_disks[0]
3285-
3286-
return ','.join(pool_disks) if pool_disks else None
3287-
32883257
def _get_target_ips_by_initiator_name(self, initiator):
32893258
target_ips = []
32903259
for info in self.roce_info:

Cinder/Pike/constants.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -289,30 +289,3 @@
289289
THIN = 'Thin'
290290
INITIATOR_TARGET_MAP = 'initiator_target_map'
291291
URL = 'url'
292-
293-
HUAWEI_DISK_DICT = {
294-
"-1": "",
295-
"0": "fc",
296-
"1": "sas",
297-
"2": "sata",
298-
"3": "ssd",
299-
"4": "nl_sas",
300-
"5": "slc_ssd",
301-
"6": "mlc_ssd",
302-
"7": "fc_sed",
303-
"8": "sas_sed",
304-
"9": "sata_sed",
305-
"10": "ssd_sed",
306-
"11": "nl-sas_sed",
307-
"12": "slc_ssd_sed",
308-
"13": "mlc_ssd_sed",
309-
"14": "nvme_ssd",
310-
"16": "nvme_ssd_sed",
311-
"17": "scm",
312-
"18": "scm_sed",
313-
"19": "capacity-optimized ssd",
314-
"20": "capacity-optimized ssd sed",
315-
"21": "capacity-optimized ssd",
316-
"22": "capacity-optimized ssd sed"
317-
}
318-

Cinder/Pike/huawei_driver.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,6 @@ def do_setup(self, context):
163163
self.sn = self.client.login()
164164
self.client.check_storage_pools()
165165
self.is_dorado_v6 = huawei_utils.is_support_clone_pair(self.client)
166-
self.client.is_dorado_v6 = self.is_dorado_v6
167166

168167
# init hypermetro remote client
169168
hypermetro_devs = self.huawei_conf.get_hypermetro_devices()

0 commit comments

Comments
 (0)