From 7ed9fb866bb8b06ef745f0b834e683a493410279 Mon Sep 17 00:00:00 2001
From: huangpeng <1298695987@qq.com>
Date: Tue, 23 Jul 2024 20:57:31 +0800
Subject: [PATCH 1/2] 1.Driver do not report provision capacity. 2.Driver set
qos to unlimited.
---
.../.customization_for_suyan.py.swp | Bin 0 -> 16384 bytes
.../driver_api/check_update_storage.py | 4 --
.../driver_api/customization_for_suyan.py | 55 +++++-------------
3 files changed, 15 insertions(+), 44 deletions(-)
create mode 100644 Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/.customization_for_suyan.py.swp
diff --git a/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/.customization_for_suyan.py.swp b/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/.customization_for_suyan.py.swp
new file mode 100644
index 0000000000000000000000000000000000000000..6d028184bede8d6584c1230fbd8cf4156eecaaab
GIT binary patch
literal 16384
zcmeHNZEPGz8Qz4JmWGxJB!mP)!-dLcdf9VQ5Rp-kT*qlGoU`%S4N(ZodUx(_l)atH
ze&lkEA`(PfM
rRcJ%hCbUfvhy<#r`6`sJf35hB#4nV)Iw}5&CeUS?lp|Jo_($|^YPn^mve>@a2|=`wJz#}
zo3`2`bgg>D8n4shjyPo8FGoDEtJIoqQ2e%?eb)AX9iTyRr|mP(E>@UFEmsy^X*b@r$oLBCbuffdFr+cz7nwG7MT83XTk2I8o)
zY3tqd4{X^yB3#{=`waQmN9W(~UT6Mg3}g&s3}g&s3}g&s3}g&s3}g)SFc3BFFusNV
z>vfrxP|4YkDy8L3F{9P^ohAv;PZ;;&QpIW|0%fHzt|A&^BwftJ2
z{2eX7N6YWg4kh|^arTulkTH-kkTH-kkTH-kkTH-kkTH-kkTH-k@PEmGjTd?Gs{9l2
zqKy6j&mT67tH5JG1)#t~zz$#n_$2W52E#Z9P+$iz4CH}zz@P3ij3wX%un#B!d0;)z
z{*Yn(7B~rbz&>Cb@Co4ecN)g;fEKVFc;^no_zm!D;0M4#;LE_fdfMhg
z>QxG)rz9L6HDqnkBA`(m_*%T5hZgfIyemE2{Uz$=A|BbE#dssMLh9s3$;cr2LMx)(
z3WaVBWkGTavW*<-if%^4@=MRRAHUWW*WH8}f!YNfJsbdYy+)M9^beal^GEDk|qi1K+OG;jVeq3+ZV0U)snCsBUC6
zYt+BB5>_ETkBHDNC^iwMd=59YbFfJ06jvezJJPNi^%^uV_s2A7Nl!#mYoR3#9AIf;
zd(vL`5jJdx$_8oFmD8f9tgImq+dxS^bv~_XI}VTi$YL(UhO`$SsXXP-a=2e%RcT<@
zz^S61`l4N6vyc*c(4jIg=A?hX_Ly51Jw6XoL+)>*L15LxYHEmRs0-nqmCvdBsje%S
zBNdx@1jmI4Q~Gd+1`i_QaYr5{GIOam9S&)|?3pqkL#l<9vu%&(O
z+nr}mcV0f*Ieo0X_)L58hwW=uRf@ux0_pth1(nh0r1B2eFCXtbeLcPQ#F
z|Ke;?to|87ySN4p4xKYsI>*mnfA!3bBi~ou-;xw#+-NUe>YV(!yg_ebKw?OJ_(&WO
z14SAyJw}M$qr$a%fS3zn+SM{O{g5eoVm^0hiqQFm^CvtJ5idm=626aSlj1jCnoyLu|#6HQ9u)0q_2q+(qbirOrE
zVhn)!@!k`GIB6JQ+{H5uL-(+$dyVY&`84P%TxkGSCA@`)1eL>?%5RYpD|89jL9-xkE`rgQ{1Fp
zuN&IPx;%btvdvrlq?V;rC`nS-orUOjJoGr8|J6i}pLkhNj^bHXGd7CRDfV3&kf=t<
z6mzH_Qd5=de{vQgq~dWZjyDqz-o=84D#zhypZQe+N9rsTXQ)GB`!4ZVoken@5-Mf8
z#%5>7N^_GFWimZW#-~f$C+8-oOZc~gjFoniuS}M<7YJpzQ6T0zfnZKdf9eg7QP(78
zN`;L|o6Eu|U<+|X-PPt37Lwiy+=oddH&!N-$#pvLYh+|4dngNU8H+nL!L``%!W1~_f2qm>BYK#_(
z&1TcIF=MS!lLyrz^a*yu;?(5$M5#QnX^T0MG_&zwZ?p)n^u~eMky0uiFfnGCQ4Ow%
zL+EeyjX)0g3xsa~uLC~@
z_5ee`oxmln@sSPu%h`DMjVrZ18l|Z=)t5)__)hUn>
ob0lRyQ6|2%LM%qOH&-R4N=dq>utJLne7C*WG*Fhv;^BhvA9lQPGXMYp
literal 0
HcmV?d00001
diff --git a/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/check_update_storage.py b/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/check_update_storage.py
index 1432f95..45b8fc9 100644
--- a/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/check_update_storage.py
+++ b/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/check_update_storage.py
@@ -95,18 +95,14 @@ def update_storage_pool(self, data, free_pool):
result = self.helper.query_pool_by_id(pool_id)
if result:
total = round(float(result['totalCapacity']) / 1024, 1)
- allocated = round(float(result['allocatedCapacity']) / 1024, 1)
used = round(float(result['usedCapacity']) / 1024, 1)
free = round(float(total) - float(used), 2)
- provisioned = used
pool = dict(
huawei_smartpartition=True,
huawei_smartcache=True,
pool_name=result['storagePoolName'],
qos=True,
compression=True,
- provisioned_capacity_gb=provisioned,
- allocated_capacity_gb=allocated,
free_capacity_gb=free,
total_capacity_gb=total,
reserved_percentage=reserved_percentage,
diff --git a/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/customization_for_suyan.py b/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/customization_for_suyan.py
index 671cc80..66d7ffd 100644
--- a/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/customization_for_suyan.py
+++ b/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/customization_for_suyan.py
@@ -146,22 +146,10 @@ def _get_max_band_width_qos_config(self, extra_specs):
苏研单独的qos 参数设置与读取,其支持的参数如下:
“total_bytes_sec”:总吞吐量,单位Byte/s
“total_iops_sec”: 总IOPS,单位个/s
- 此处解析 max_band_width,从total_bytes_sec获取
+ 此处解析 max_band_width,从total_bytes_sec获取
"""
- # the total_bytes_sec is Byte/s the pacific need MB/s
- tmp_max_band_width = extra_specs.get('pacific:total_bytes_sec')
- if tmp_max_band_width is None:
- self.qos_config['max_band_width'] = constants.MAX_BAND_WIDTH
- elif (tmp_max_band_width.strip().isdigit()
- and 0 <= int(int(tmp_max_band_width.strip()) / constants.BYTE_TO_MB)
- <= constants.BAND_WIDTH_UPPER_LIMIT):
- self.qos_config['max_band_width'] = int(math.ceil(float(
- tmp_max_band_width.strip()) / constants.BYTE_TO_MB))
- else:
- err_msg = _("The total_bytes_sec in share type "
- "must be int([0, %s]).") % constants.BAND_WIDTH_UPPER_LIMIT
- raise exception.InvalidInput(reason=err_msg)
-
+ self.qos_config['max_band_width'] = 0
+
def _get_max_iops_qos_config(self, extra_specs):
"""
苏研单独的qos 参数设置与读取,其支持的参数如下:
@@ -169,16 +157,7 @@ def _get_max_iops_qos_config(self, extra_specs):
“total_iops_sec”: 总IOPS,单位个/s
此处解析 max_iops,从total_iops_sec获取
"""
- tmp_max_iops = extra_specs.get('pacific:total_iops_sec')
- if tmp_max_iops is None:
- self.qos_config['max_iops'] = constants.MAX_IOPS
- elif tmp_max_iops.strip().isdigit() \
- and 0 <= int(tmp_max_iops.strip()) <= constants.MAX_IOPS_UPPER_LIMIT:
- self.qos_config['max_iops'] = int(tmp_max_iops.strip())
- else:
- err_msg = _("The max_iops in share type "
- "must be int([0, %s]).") % constants.MAX_IOPS_UPPER_LIMIT
- raise exception.InvalidInput(reason=err_msg)
+ self.qos_config['max_iops'] = 0
def _create_qos(self):
qos_name = self.namespace_name
@@ -219,21 +198,17 @@ def _get_update_qos_config(self, qos_specs):
LOG.error(err_msg)
raise exception.InvalidShare(reason=err_msg)
- tmp_max_band_width = str(qos_specs.get('total_bytes_sec'))
- if int(tmp_max_band_width) == 0:
- self.qos_config['max_band_width'] = constants.MAX_BAND_WIDTH
- elif (tmp_max_band_width.strip().isdigit()
- and 0 <= int(int(tmp_max_band_width.strip()) / constants.BYTE_TO_MB)
- <= constants.BAND_WIDTH_UPPER_LIMIT):
- self.qos_config['max_band_width'] = int(math.ceil(float(
- tmp_max_band_width.strip()) / constants.BYTE_TO_MB))
-
- tmp_max_iops = str(qos_specs.get('total_iops_sec'))
- if int(tmp_max_iops) == 0:
- self.qos_config['max_iops'] = constants.MAX_IOPS
- elif tmp_max_iops.strip().isdigit() \
- and 0 <= int(tmp_max_iops.strip()) <= constants.MAX_IOPS_UPPER_LIMIT:
- self.qos_config['max_iops'] = int(tmp_max_iops.strip())
+ # total_bytes_sec and total_iops_sec must be integer
+ tmp_max_band_width = str(qos_specs.get('total_bytes_sec')).strip()
+ tmp_max_iops = str(qos_specs.get('total_iops_sec')).strip()
+ if not (tmp_max_band_width.isdigit() and tmp_max_iops.isdigit()):
+ err_msg = "total_bytes_sec and total_iops_sec must be integer, " \
+ "the qos_specs is {0}".format(qos_specs)
+ LOG.error(err_msg)
+ raise exception.InvalidShare(reason=err_msg)
+
+ self.qos_config['max_band_width'] = int(math.ceil(float(tmp_max_band_width) / (1024 ** 2)))
+ self.qos_config['max_iops'] = int(tmp_max_iops)
def _create_qos_when_update_qos(self, qos_name):
try:
From 0e25c23c44be0865fa0708aede06ea62e0d40bde Mon Sep 17 00:00:00 2001
From: huangpeng <1298695987@qq.com>
Date: Tue, 23 Jul 2024 21:02:58 +0800
Subject: [PATCH 2/2] 1.Driver do not report provision capacity 2.Driver set
qos to unlimited.
---
.../driver_api/.customization_for_suyan.py.swp | Bin 16384 -> 0 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
delete mode 100644 Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/.customization_for_suyan.py.swp
diff --git a/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/.customization_for_suyan.py.swp b/Manila/file_driver_dir/huawei/oceanstorPacific/driver_api/.customization_for_suyan.py.swp
deleted file mode 100644
index 6d028184bede8d6584c1230fbd8cf4156eecaaab..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 16384
zcmeHNZEPGz8Qz4JmWGxJB!mP)!-dLcdf9VQ5Rp-kT*qlGoU`%S4N(ZodUx(_l)atH
ze&lkEA`(PfMrRcJ%hCbUfvhy<#r`6`sJf35hB#4nV)Iw}5&CeUS?lp|Jo_($|^YPn^mve>@a2|=`wJz#}
zo3`2`bgg>D8n4shjyPo8FGoDEtJIoqQ2e%?eb)AX9iTyRr|mP(E>@UFEmsy^X*b@r$oLBCbuffdFr+cz7nwG7MT83XTk2I8o)
zY3tqd4{X^yB3#{=`waQmN9W(~UT6Mg3}g&s3}g&s3}g&s3}g&s3}g)SFc3BFFusNV
z>vfrxP|4YkDy8L3F{9P^ohAv;PZ;;&QpIW|0%fHzt|A&^BwftJ2
z{2eX7N6YWg4kh|^arTulkTH-kkTH-kkTH-kkTH-kkTH-kkTH-k@PEmGjTd?Gs{9l2
zqKy6j&mT67tH5JG1)#t~zz$#n_$2W52E#Z9P+$iz4CH}zz@P3ij3wX%un#B!d0;)z
z{*Yn(7B~rbz&>Cb@Co4ecN)g;fEKVFc;^no_zm!D;0M4#;LE_fdfMhg
z>QxG)rz9L6HDqnkBA`(m_*%T5hZgfIyemE2{Uz$=A|BbE#dssMLh9s3$;cr2LMx)(
z3WaVBWkGTavW*<-if%^4@=MRRAHUWW*WH8}f!YNfJsbdYy+)M9^beal^GEDk|qi1K+OG;jVeq3+ZV0U)snCsBUC6
zYt+BB5>_ETkBHDNC^iwMd=59YbFfJ06jvezJJPNi^%^uV_s2A7Nl!#mYoR3#9AIf;
zd(vL`5jJdx$_8oFmD8f9tgImq+dxS^bv~_XI}VTi$YL(UhO`$SsXXP-a=2e%RcT<@
zz^S61`l4N6vyc*c(4jIg=A?hX_Ly51Jw6XoL+)>*L15LxYHEmRs0-nqmCvdBsje%S
zBNdx@1jmI4Q~Gd+1`i_QaYr5{GIOam9S&)|?3pqkL#l<9vu%&(O
z+nr}mcV0f*Ieo0X_)L58hwW=uRf@ux0_pth1(nh0r1B2eFCXtbeLcPQ#F
z|Ke;?to|87ySN4p4xKYsI>*mnfA!3bBi~ou-;xw#+-NUe>YV(!yg_ebKw?OJ_(&WO
z14SAyJw}M$qr$a%fS3zn+SM{O{g5eoVm^0hiqQFm^CvtJ5idm=626aSlj1jCnoyLu|#6HQ9u)0q_2q+(qbirOrE
zVhn)!@!k`GIB6JQ+{H5uL-(+$dyVY&`84P%TxkGSCA@`)1eL>?%5RYpD|89jL9-xkE`rgQ{1Fp
zuN&IPx;%btvdvrlq?V;rC`nS-orUOjJoGr8|J6i}pLkhNj^bHXGd7CRDfV3&kf=t<
z6mzH_Qd5=de{vQgq~dWZjyDqz-o=84D#zhypZQe+N9rsTXQ)GB`!4ZVoken@5-Mf8
z#%5>7N^_GFWimZW#-~f$C+8-oOZc~gjFoniuS}M<7YJpzQ6T0zfnZKdf9eg7QP(78
zN`;L|o6Eu|U<+|X-PPt37Lwiy+=oddH&!N-$#pvLYh+|4dngNU8H+nL!L``%!W1~_f2qm>BYK#_(
z&1TcIF=MS!lLyrz^a*yu;?(5$M5#QnX^T0MG_&zwZ?p)n^u~eMky0uiFfnGCQ4Ow%
zL+EeyjX)0g3xsa~uLC~@
z_5ee`oxmln@sSPu%h`DMjVrZ18l|Z=)t5)__)hUn>
ob0lRyQ6|2%LM%qOH&-R4N=dq>utJLne7C*WG*Fhv;^BhvA9lQPGXMYp