@@ -201,7 +201,7 @@ def details1(num):
201
201
h .add (li , 0 , n + 5 )
202
202
bb = CompactButton ('返回' )
203
203
h .add (bb , 0 , 14 )
204
- rc = h .runOnce (44 ,3 )
204
+ rc = h .runOnce (43 ,3 )
205
205
if rc == "ESC" or "snack.CompactButton" in str (rc ):
206
206
return ADPSelect ()
207
207
elif li .current () == 1 :
@@ -279,7 +279,7 @@ def pdinfo(num):
279
279
if 'None' in pdforeign [n ]:
280
280
li .append (str (i ).strip ('\n ' ).replace ('Slot Number' ,'槽位' ) + "\t 大小: " + str (pdsize [n ]).strip ('\n ' ) + "\t 状态: " + str (pdstate [n ]).strip ('\n ' ).replace (' ' ,'' ), n + 1 )
281
281
else :
282
- li .append (str (i ).strip ('\n ' ).replace ('Slot Number' ,'<Foreign>槽位' ) + "\t 大小: " + str (pdsize [n ]).strip ('\n ' ) + "\t \ t 状态: " + str (pdstate [n ]).strip ('\n ' ).replace (' ' ,'' ), n + 1 )
282
+ li .append (str (i ).strip ('\n ' ).replace ('Slot Number' ,'<Foreign>槽位' ) + "\t 大小: " + str (pdsize [n ]).strip ('\n ' ) + "\t 状态: " + str (pdstate [n ]).strip ('\n ' ).replace (' ' ,'' ), n + 1 )
283
283
n = n + 1
284
284
g = GridForm (screen , "物理磁盘信息" , 1 , 10 )
285
285
g .add (li , 0 , 1 )
@@ -301,7 +301,7 @@ def pdinfo(num):
301
301
f .add (li2 , 0 , 1 )
302
302
bb2 = CompactButton ('返回' )
303
303
f .add (bb2 , 0 , 2 )
304
- rf = f .runOnce (44 ,3 )
304
+ rf = f .runOnce (43 ,3 )
305
305
if rf == 'ESC' or 'snack.CompactButton' in str (rf ) :
306
306
return pdinfo (num )
307
307
elif li2 .current () == 1 :
@@ -401,11 +401,12 @@ def vdinfo(num):
401
401
if int (vdhsp [selectDG ]) != 0 :
402
402
li2 .append ("查看" + str (vdshow [selectDG ].replace ('SPANNED DISK GROUP' ,'组合磁盘组' ).replace ('DISK GROUP' ,'普通磁盘组' )).strip ('\n ' ) + " 的热备盘" , 3 )
403
403
li2 .append ("指定" + str (vdshow [selectDG ].replace ('SPANNED DISK GROUP' ,'组合磁盘组' ).replace ('DISK GROUP' ,'普通磁盘组' )).strip ('\n ' ) + " 为BOOT磁盘组" , 4 )
404
+ li2 .append ("设定" + str (vdshow [selectDG ].replace ('SPANNED DISK GROUP' ,'组合磁盘组' ).replace ('DISK GROUP' ,'普通磁盘组' )).strip ('\n ' ) + " 的缓存策略" , 5 )
404
405
f = GridForm (screen , "请选择" , 1 , 10 )
405
406
f .add (li2 , 0 , 1 )
406
407
bb2 = CompactButton ('返回' )
407
408
f .add (bb2 , 0 , 2 )
408
- rf = f .runOnce (44 ,3 )
409
+ rf = f .runOnce (43 ,3 )
409
410
if rf == 'ESC' or 'snack.CompactButton' in str (rf ) :
410
411
return vdinfo (num )
411
412
elif li2 .current () == 1 :
@@ -460,7 +461,7 @@ def vdinfo(num):
460
461
bb = CompactButton ('返回' )
461
462
h .add (Textbox (55 , 15 , gethsp , scroll = 1 , wrap = 1 ), 0 , 1 )
462
463
h .add (bb , 0 , 2 )
463
- rq = h .runOnce (44 ,3 )
464
+ rq = h .runOnce (43 ,3 )
464
465
return vdinfo (num )
465
466
elif li2 .current () == 4 :
466
467
setbootdrv = os .popen (megacli + " -adpbootdrive -set -l" + str (selectDG ) + " -a" + num + " -nolog" ).read ()
@@ -469,6 +470,42 @@ def vdinfo(num):
469
470
return vdinfo (num )
470
471
warwindows (screen , "警告" , "BOOT磁盘组设置失败" )
471
472
return vdinfo (num )
473
+ elif li2 .current () == 5 :
474
+ currentcachepolicy = os .popen (megacli + " -ldinfo -l" + str (selectDG ) + " -a" + num + " -nolog | egrep 'Current Cache Policy|Disk Cache Policy'" ).read ()
475
+ CachePolicyRB = RadioBar (screen , (("强制打开" , " -ForcedWB" , 0 ), ("打开" , " -wb" , 0 ), ("关闭" , " -wt" , 1 )))
476
+ RAPolicyRB = RadioBar (screen , (("打开" , " -ra" , 1 ), ("关闭" , " -nora" , 0 ), ("自适应" , " -adra" , 0 )))
477
+ DiskCachePolicyRB = RadioBar (screen , (("关闭" , " -DisDskCache" , 1 ), ("打开" , " -EnDskCache" , 0 )))
478
+ bb = ButtonBar (screen , (("确定" , "ok" ), ("取消" , "cancel" )))
479
+ g = GridForm (screen , str (vdshow [selectDG ].replace ('SPANNED DISK GROUP' ,'组合磁盘组' ).replace ('DISK GROUP' ,'普通磁盘组' )).strip ('\n ' ) + " 缓存策略" , 4 , 10 )
480
+ g .add (Textbox (40 , 5 , "当前缓存状态:\n " + currentcachepolicy , wrap = 1 ), 3 , 6 )
481
+ g .add (TextboxReflowed (10 , "RAID卡缓存" , flexDown = 5 , flexUp = 10 , maxHeight = - 1 ), 1 , 2 )
482
+ g .add (CachePolicyRB , 1 , 3 )
483
+ g .add (TextboxReflowed (10 , "预读选项" , flexDown = 5 , flexUp = 10 , maxHeight = - 1 ), 1 , 4 )
484
+ g .add (RAPolicyRB , 1 , 5 )
485
+ g .add (TextboxReflowed (10 , "磁盘缓存策略" , flexDown = 5 , flexUp = 10 , maxHeight = - 1 ), 2 , 2 )
486
+ g .add (DiskCachePolicyRB , 2 , 3 )
487
+ g .add (bb , 3 , 7 )
488
+ rc = g .runOnce (25 ,3 )
489
+ if rc == 'ESC' or bb .buttonPressed (rc ) == 'cancel' :
490
+ return details1 (num )
491
+ CachePolicy = str (CachePolicyRB .getSelection ()).strip ('\n ' )
492
+ RAPolicy = str (RAPolicyRB .getSelection ()).strip ('\n ' )
493
+ DiskCachePolicy = str (DiskCachePolicyRB .getSelection ()).strip ('\n ' )
494
+ k = []
495
+ if CachePolicy == ' -wb' :
496
+ k .append (megacli + " -LDSetProp -NoCachedBadBBU -l" + str (selectDG ) + " -a" + num + " -nolog" )
497
+ k .append (megacli + " -LDSetProp" + CachePolicy + " -l" + str (selectDG ) + " -a" + num + " -nolog" )
498
+ k .append (megacli + " -LDSetProp" + RAPolicy + " -l" + str (selectDG ) + " -a" + num + " -nolog" )
499
+ k .append (megacli + " -LDSetProp -Direct -l" + str (selectDG ) + " -a" + num + " -nolog" )
500
+ k .append (megacli + " -LDSetProp" + DiskCachePolicy + " -l" + str (selectDG ) + " -a" + num + " -nolog" )
501
+ for i in k :
502
+ success = os .popen (i ).read ()
503
+ if "success" not in success :
504
+ warwindows (screen , "警告" , "设置失败" )
505
+ break
506
+ return vdinfo (num )
507
+ warwindows (screen , "完成" , "已重新设置磁盘策略" )
508
+ return vdinfo (num )
472
509
else :
473
510
warwindows (screen , "警告" , "还未创建磁盘组" )
474
511
return details1 (num )
@@ -502,7 +539,7 @@ def CommandList(num):
502
539
g = GridForm (screen , "命令清单" , 1 , 10 )
503
540
g .add (li , 0 , 1 )
504
541
g .add (bb , 0 , 2 )
505
- rc = g .runOnce (44 , 3 )
542
+ rc = g .runOnce (43 , 3 )
506
543
if rc == 'ESC' or 'snack.CompactButton' in str (rc ) :
507
544
return ADPSelect ()
508
545
elif li .current () == 1 :
@@ -534,12 +571,13 @@ def AddSDG(num):
534
571
li .append ("\t Raid-10" , 1 )
535
572
li .append ("\t Raid-50" , 2 )
536
573
li .append ("\t Raid-60" , 3 )
537
- li .append ("\t 返回" , 4 )
538
574
g = GridForm (screen , "选择RAID级别" , 1 , 10 )
575
+ bb = CompactButton ('返回' )
539
576
g .add (li , 0 , 1 )
540
- rc = g .runOnce (44 ,3 )
577
+ g .add (bb , 0 , 2 )
578
+ rc = g .runOnce (43 ,3 )
541
579
SelectRaidLevel = li .current ()
542
- if li . current () == 4 or rc == 'ESC' :
580
+ if 'snack.CompactButton' in str ( rc ) or rc == 'ESC' :
543
581
return CommandList (num )
544
582
if li .current () == 1 :
545
583
if diskcount < 4 :
@@ -609,7 +647,7 @@ def AddSDGR10(num):
609
647
g .add (ct , 0 , 2 )
610
648
g .add (Label (" " ), 1 , 2 )
611
649
g .add (bb , 0 , 3 , growx = 1 )
612
- rc = g .runOnce (44 ,3 )
650
+ rc = g .runOnce (43 ,3 )
613
651
else :
614
652
warwindows (screen , "警告" , "剩余磁盘不足" )
615
653
return CommandList (num )
@@ -755,6 +793,8 @@ def AddSDGR10(num):
755
793
g .add (CachePolicyRB , 1 , 4 )
756
794
g .add (bb , 3 , 2 , growx = 1 )
757
795
rc = g .runOnce (25 ,3 )
796
+ if rc == 'ESC' or str (bb .buttonPressed (rc )) == "cancel" :
797
+ return AddSDG (num )
758
798
arraygroup = ''
759
799
for i in j :
760
800
arraygroup = arraygroup + str (i ).strip ('\n ' )
@@ -990,6 +1030,8 @@ def AddSDGR50(num):
990
1030
g .add (CachePolicyRB , 1 , 4 )
991
1031
g .add (bb , 3 , 2 , growx = 1 )
992
1032
rc = g .runOnce (25 ,3 )
1033
+ if rc == 'ESC' or str (bb .buttonPressed (rc )) == "cancel" :
1034
+ return AddSDG (num )
993
1035
arraygroup = ''
994
1036
for i in j :
995
1037
arraygroup = arraygroup + str (i ).strip ('\n ' )
@@ -1225,6 +1267,8 @@ def AddSDGR60(num):
1225
1267
g .add (CachePolicyRB , 1 , 4 )
1226
1268
g .add (bb , 3 , 2 , growx = 1 )
1227
1269
rc = g .runOnce (25 ,3 )
1270
+ if rc == 'ESC' or str (bb .buttonPressed (rc )) == "cancel" :
1271
+ return AddSDG (num )
1228
1272
arraygroup = ''
1229
1273
for i in j :
1230
1274
arraygroup = arraygroup + str (i ).strip ('\n ' )
@@ -1486,7 +1530,7 @@ def ADPSelect():
1486
1530
li .setCurrent (adpl )
1487
1531
h .add (li , 0 , 1 )
1488
1532
h .add (bb , 0 , 9 )
1489
- rc = h .run (25 ,3 )
1533
+ rc = h .run (24 ,3 )
1490
1534
if "snack.CompactButton" in str (rc ) or rc == 'ESC' :
1491
1535
return mainform ()
1492
1536
else :
@@ -1513,7 +1557,7 @@ def QCCMDList(num):
1513
1557
g = GridForm (screen , "命令清单" , 1 , 10 )
1514
1558
g .add (li , 0 , 1 )
1515
1559
g .add (bb , 0 , 2 )
1516
- rc = g .runOnce (44 , 3 )
1560
+ rc = g .runOnce (43 , 3 )
1517
1561
if rc == 'ESC' or "snack.CompactButton" in str (rc ):
1518
1562
return ADPSelect ()
1519
1563
elif li .current () == 1 :
@@ -1661,7 +1705,7 @@ def mainform():
1661
1705
g .add (Label (" " ),0 ,3 )
1662
1706
g .add (Label ("[LSI RAID卡]" ),0 ,4 )
1663
1707
g .add (Label ("[配置程序]" ),0 ,5 )
1664
- screen .pushHelpLine ("<Version 0.91 beta> Powered by Patrick Zheng...请使用TAB在选项间切换" )
1708
+ screen .pushHelpLine ("<Version 0.92 beta> Powered by Patrick Zheng...请使用TAB在选项间切换" )
1665
1709
rc = g .run (1 ,3 )
1666
1710
mainl = li .current ()
1667
1711
if rc == 'ESC' or 'snack.CompactButton' in str (rc ) :
@@ -1709,4 +1753,4 @@ def main():
1709
1753
print "MegaCli/StorCli路径无效,请使用-s参数重新指定"
1710
1754
except :
1711
1755
print "指定的参数无效"
1712
- usage ()
1756
+ usage ()
0 commit comments