From ba0af01668c19e9d271a36c893e041ee0e672088 Mon Sep 17 00:00:00 2001
From: OMD site cmk16x <thl-cmk@outlook.com>
Date: Thu, 29 Apr 2021 15:16:07 +0200
Subject: [PATCH] update project

---
 checkpoint_raid.mkp    | Bin 5471 -> 5303 bytes
 checks/checkpoint_raid | 201 ++++++++++++++++++++---------------------
 2 files changed, 97 insertions(+), 104 deletions(-)

diff --git a/checkpoint_raid.mkp b/checkpoint_raid.mkp
index 22f498f239d229041f6dfdb9a320678a48857df6..b1c036349e8dbccd317b74201e8e6779db9347dc 100644
GIT binary patch
delta 5220
zcmV-q6r1bcDz_;HABzYGma&lrD1ZHP+Q^dmnX3ICW}V6jZUIZ;!w&cSu81KHwKn)L
zPA<>uqGU8+orT2d!ylLO|9;&w`j#++7iVi<P4C8_nf{pR?&)cXnUP`5?KiIsGC;f8
zWS;=pPepFG-zZJFskRz&TW!CA61jcwhRAPz0{E_{IfVR>P9{6|7lCh*=6`#)wj*_j
zFHLUir*%^HZq3?kd3U9G*S7DOwtaV{+urreURI=PiAXwiXO6M*4BKL4OWQI$+abrd
zbaqG1ZNu`2wpy8nX3Z!WcL%*cEKX=YSf;J%Q{ORxQo8lLRcC)ckXOI8SDszBoy9)G
zo*O200qvVKL&i%DrCsrh6@LnuI+~$N*MJ)XuXeY=e4sZBZDslk!*chR)N_oPyPqMe
zub!k7VZ<OLe9%0*i0b+oyJ2Zdik;22hSmAYY1qvs7I=ndQl`}P%4C%H)N#4~B~?}x
z7(DOm_j0|FtgJ5$YwFPd^$myWh^f@o`r*xC3TLIw?zBZ%->%CmMSo2p_^x(i(y4EG
z1{!T>TlD#jfPWD%ApY0?$F;3LGycQ(bo^IjwISmFPl^9~EdK04nB9Yb2%lGbn*-ur
zmF#VZetXw|69#U^HiHu*xW(1aP+t_u0DCWpWY`XjuUM3&hblg`VddtT4e?p@MfCN-
z7txZ_7-FxT#`Y3DNPmV=AhLYZ#Kwmcz#dKjF?JZ0d0%-{PH@BGRM=<Dil=3)-)2_c
zd*%kH!x;Fp#(zsL82?I35##@7KxWjuw*8fZW{ZEe8-c3SgM))cY<~snm4?#(+3_Dn
zuF`&dK~Wp(|Dy2r*L~l0_HPVpfAs{>(ki_rwSTV>YRzojuzwbiihA?f;eU|TQ_Zk+
zYI!w#K6j}H@d^=3Z-L;{m{H569da_fBq!9Oj%Jc`|Hd?CVI8?w8ETh><PKRMi2><y
zd<yw>hhSiJiy|vyrOHaXCbw!01yEm(cCJ15SjgjKhc&rTlMjJxcB@$sW{GPpSHzuZ
z7Mc6j3`1xFQ-5h7rma&lGpT0zt7Kh^33q57L6vKAJ1?e|7Xz4zQd4BWbm-E)2h0_9
z=DOx-P@e)#*P#~YTw=3OPvG0kw&updhek-o!otSrh6^`Ab@CBZLLar|%A^EwZz;K0
zYK~V^NK0wSq}+8J?TOrKE>Tp{L#k?4<c;qEt@%XS9DjjmAi&_vbUN33(*p*M{s85?
zJ4#J%*3|c`J2*X)xnnO$BGjNgSiE6;Y?6sW%)BmdHLC1EGw(<lZam1nZTi4(pLh>8
z?_`A`le$uGz&xqcoA6I<t8yKu%>(#P3I3DG5g808{geK<LzK-lYL-UcOw-8HsGDh;
zJJ7Up{eOAiQk%`gma+wLdxwr4?4ZEIfaXN=7qp>v$os|yDs=}_se!S+M}_JR=H)c%
zchfX>kkiP@*+K`+9pp53kQ2Jz#bi7fo<N@2opf24*xQCy-I=zXm3uM48^__9EH@gp
z_y0KCiii47^Ek-0V<<PbqEmOGJ1iLLjh5O{+JA@J5UaZrzu&>5-tRC%6nO_hK(vFT
zd~lJsBU5)FQ+Er1VU$UeCFewZXv40ruC9DZk*dU(WcF80{Eg>?1Oi6}j?(oto9VM0
zl7GYD$u6>Eg%^Sohr$BK%5ed*SSZgfuEI7Z8>PIK%<F5WzS3NqL5lb^h3wUX)Yi>C
zA%C6*>5MB~gZ{s<hrU5ZHRTyqhe%Sj^js>H0F|sX$EDK@lQLST(qY7S%~KZdX+<NR
z2r{t3jI<^vo-Qk4q0&#3s!?g8un`nal_Y~^h}ujPw!*?zqOctnwiAU1QDKtlVMHI6
zf&zH=9;Uo|Zk1gyB|$ftgCa&y3q@DgtbZWHfJ=5ghXgf9>L3+NFziI)c>&&hJXXUC
zJ^Y4xtrE*$+H=O*wovC`?NWO*Z?y0V?({qwUd&Bx;YKya|DkpGMJbYO%#*_FhN~M3
z!z))hsh<M^7InDYpq5_#CM9UVVZblSiIPg;Zwc{_3SkG+l=^mLs0|=YyIp-jy?=7d
z3yUh7*ku(Ov?g1;U8}eiQXS$&+mSP~rKnlScErrgK%6xCRzkre(lVi7gUIJf?9-^E
z(4(2cVxPgwz?<=F?9r?u_ykSgP$$3ux3YupE63J-xN{899C~ly13`Wjx;qodo&ArL
z*ud#o{gX8daM&du0r)lL|50Ptd4E46j(tDE50n>Ozo<JYsfYySR^HELCds(+wvfma
z3xo+RZ=#6|5Rk<N*+d!IDj<wZw}~z_eBy%5-AfLf=z23*IAmgn*(fOVrKGU1Y>Rfr
zV=cU_lr|4DHv8gK5=}vjn$I&1^?b+TIKgafSYTq70Ay!uh86gAni;U?EPo<bx2<5h
zil#IeB__4PFi|1D9>L@uwLd+<<tDep1gA$c5R2IHOpsQF;n5{vN}oB?ce+I0MJ!U7
z$vBjWL75TG1*QgJg&ZA4Y&(VKNa-UC0a#dBk6z~wxC+po3~K7EcUATyb6_=Qt9*{d
z(7-g>(yfxD{o=Wgd0#H)8h@Qn24~&VOw!fspNzY`elL@Cee4cSqrxcZ2?emhkrOZ+
z4f`4H{bBdRX^#1ST@Lye$EjkL)b%gE4v*npgPe~?CvbI<$?raoPA|{;fY3dj3_kZW
ziQaHDA;+WP$HB?vIK>+izRL@^_hh#*<G~pj_m4-P`{S?VY}D&#vwy&TxA&EN9F1eF
z(RqK|oeW09OltULJOZZYpT1rUj=QI%H-<)$FWn2EJU{KGJNO>(yII`91;JKBcR|AG
zS8V>Ue>_PMDyZ5|-Er?rcg!fTP2^J_8Z<mf;wecyYy~1BUYZ>m;P`Sp?hhv*vH#!a
z{b4V|sS#-NYkxwzpMSv<(1=NdCNpCHvfpEhVoWa5`ccp%XM>Y*uAOL(!P$8?+fP*f
z=;O!JLE4K@(Z{F#?l@+X@W&{+=iPmn<-{6vaglD08hH*hX);K66cy1MTpW|sa0uOT
zFdR$<-P6H8(i~fHKfn<{O&61#J92)7)u@KcVeH7{WHjoLi+}UWA-O!yIN%z*-ssCP
z<9aE~58b?jjV2f8;5b=_;(l6S7Itga|8O}t?PXmjr!3|#$D{MFAG*iCCw1Rqx|)0f
zhfa&gSa|DrGrF7rCxUTgyO;w*WbpB8+JMb43KTbnO;_obT*3_CWSVknKSX5#2aM`4
z->}}4gN&4YOn(!<U?;N7L@CaDQarT=`oP42eXk@l*Pu2v87DG>oJ2MU$}tOSy0nv<
zPak<wZ!Kt9uCjSQ-}Fl1Jj>hjZ=|e{zx|CoX7hw1>|FC6$!|od5W^*w?Xg+1vo=vm
zs_i$>+dH?4nZiqqi}aMhENx1V@V4Khk6vsh)3z42?|-fQL|O8IO5#a?F%RbRxJwyK
zUd?lr)Ki%%u&&hIl?k^eQdO#y{*=6I9;9YRWG~9i_7b^S-c(y8Xq%F>UpFObYcj7K
z?%P-!bK5O);Jgla&i|4p^Q2C#M(HY_rQW&dikVc6ab7DVpHt=sXj-bAk=of!Y+e<i
zmj|PY#D58Rk^y@bQ`tbRbKB&3<Q~9m=5+F5T~pW%RzXh^qZ4`jVP)0D8UB-Y%1D`j
zUSi%`>n+3OEwSgpn1NwNc2Z!5<ppSoG25uf4UFLaoSc5>BCmCff_wUntUhA24jng|
zH1quUJ$t2^y*nu!=t0OS8s<!4Q^T5SY+V41>wh&Uwq+U?eF1?7XuS|)%eWV%8R_U(
zXv-i*;k4*_4u9;VS5QE5rq~c7<Bo&wm9@Chqm5kC;s+t?A7JF7`Q|8^kEXZ~gA97i
zT~ooW96m%$-4-xmg;Fc)8@fKe#;z1c+Mq>IgMNH_a?Zz$v=%)V+}^p|>B`_!@AOKC
z4S&sYoX<v$!sm^F^HsKGe~}NF+w^v8_TX4(?2vys@%UDHCvDFs8{;y~Dvod4#<?`J
zwJ~lDyU*+aY^=jf&cmP8Zq4nSKbIwt7p>tKKgr#i={R_1yN+e_h<9s_#Q{FeH5J^W
zf?^Rb588BSE*?KYd`iv&N2zhQDd&2p?|*}X@ugy%A_@c{i)u#1_a}Giu7Y0ZZ=jaH
zznskSE(T%)n$Qy>CV4Rtah$d#e4$h-@duq)Td;E}{yCbXh06z}PVocMYVg~2^vF9w
zu=Y84K*WF5P7oCS%pD*HznD)=dJiU>-fND5>)Z=AJjFk*2c#}_?u{9prni$x7k}Ye
zO&k;f>cX-8)tXIIjFq)qO>tdive~A#ywNpcV+1I}-?9`fyoeT!;ccU*IiCAqc()0J
z)XEG+ZPXQ*pl#>HxhVlVNIR4dRJQO-0kjIyEWNagtaQWca&T{K;$xU{TD*I2K_=!~
zy2cb%N$L{a5I4uI;~cE<1MXLt27erX>L34pJ{k-swX?y8P6utn?<M+{=R8F{VQV}9
zKdv9(Z-a5Ynyc@{m5ppA-b%#PO<oO&|7gxe=g1msiJwHIR+j!udxZHbMrdad*sLDc
zA7txU^p5KfbM!Euvg+%?U%_6|uKKcev4d&dW`0;pXc}?Tdd}dgY22LVGg0V`4C}Rs
z%{1bW{Vcl<xs_=IoA1{lx6{bMWWT;82Wk9p9$$xkm`2a|Ne20S8aeGVS*yrt<g^22
zkux^LB=BYK8AC?ymxk-gHLhV2n;!*}Fcltu;9m&B6FOh>1jv`qe^i?V=RY>v;{4a2
zXaApZ{$pESbN-{;P#f|2kBx&SJO2^fMV$Zm6M!9g+aW!FxqRYF2?<04veFim)QIm=
zooFuc=yGM^qHbKdZ_$Ss)7MP51jv@>c8F<M{$rIq7?y57xK*MVaOK*j<`{5wyTZzU
zd)%-+cPPDa^(s5vuQby<&9oOC;!;YMw(gtM-46=ut0yLOWxK9%V^VUjnLc$(W_0A_
z`DsZvT+cCXe2*>7<qIO0ccsL_!cK|w*wqasx6}c;vQi-rx0=U}G34FRW*&6Md?LDy
z``gNDh4_|E9l$eYw<R(&oSDA_f3aqN)Fp;T7Jx?{G{-Wm#Xd0ijG1NvVWYxHh)!{Z
zBR?_G^;av~@u*%RH&3xtKyOxX5o+9y;Gkn51C8LOHxCblWXCPDHHe;VoA4#7jLv^#
z3;Dux9>J{_)FZdH>(xso+?tkD0%EvNmZv@9QbV$&8g>FV)kN)(T)v?V^;IW-=Z<}E
z=#+qhN^A|Qvkb*ia0#lr*a?1UC^VeAM$jQ#Z%DrJqlU?EN6)w|<J(d*toriqxn3eC
z#yv2$!jmfNgbb4U055dOH+JwmIwLp~<>v&H5XmAY)qvji(Uu0(Q?>#WIvw!CZ69yB
zkg$aLR9bDxHU)i7wc=KDkxiO^C|vJa<t<qxWH1p>8Yr-Y#4Z>lJTjB7n8njCn=-RO
zTgFpA!L2=L@7%V-1+!D`^5h6SMXmx`h4IoX8@M}b8pOT4lvwPG9Os7V0m%`$B75ME
z)PX`gIy(HW?vd+KDLi{L=`SmX&J35D+;jN>D_PHBJismR#MQ7JZYiOELYG>)%hU>k
zhcA4_ovbNB6kIK`Ybjyas8^|RZ9gzsQDta>&<kzn4y1o!BNP1xSUwo0iH(^<$okLp
z=l~xFwPTa)dD#9HC}D2QN*SfIjj0qg%gmW-12pz3uD&jTlIMowvIChaonUuuAdywX
z%$NyDIoub^`C}wutD$LFys#Amv=1IvLGH{c$`}u=MN&ZME@}4Iyi{LU3#aK--Pl%K
zw~h^tRJ1Vd8yw)p-e=E)laTCiC@nGgY2e!sL0nK01;t~hVQ@R4>7H2kz|~-!)W!Nl
zk`f$~KotdlU|V>gH?RBh?>D=w|CF2U1F`<|X8>PT=I$@4=NL10KeHaRzIyth_Agrh
z*;K&h>GhxO11J*fKYs$`-v9l}cfJ4|@PFC*72pB#=9hr~vdvq-5vhmk9|4KKkGok@
zlt4!EMc~ovze(Wc!D>o|3V(hm1oCw{$1{q3%kcPrYQu0<9k2hvB44{3q27K%N4Tis
zgHYKi-c$IL`H`r<@FOePB4(*Wre$_eGCP}<$Wo;m)T0sb^w4)wSTeIs_To25QT8<~
zedapcO1QFFxU!XSH7Wd6%(v85k-czjBJbZTSuR+3&0Qr>-*kCbD?H6M&_!&}4*4eG
z%i;@vkB*J7s^qzvAyu{_#j_NjUsKg=4WmsKj<&i*oxkD`VKSJLMlW8>J7aMG#B;;h
z0qwpUyJ%oCJn;3GQhYe+OIDCHhiVarm+?{cQY}Srjb2}Q?Wl#GU$bj$x$CQiUAB0c
ziAY(bEP<A1cT~qyTzRLz#mbU`H?>N5NVVpFNC`bkE?q2fKLwiOB^z8Pi9FlWOo_dj
zIw%gu$&Zw(Y?k^<>AF%8_f>zj{Qp7o>{m(tH|PIK>p;%t|7t@O`Tw7i|9@xt&t5~n
zUGmRRH>dvFWd4j5o8YErzmtU9;zWnO>yj_s$tXzk+1uaWmP!s?7%s+Xo|(kED#|Q>
zbh-Ww+gUNSsE2z+p!e0pnftj@=QDFGKewK}X^7YN47OcGbDqjk#Jr{E>Iev>#ChP<
zq%86tU6s;@gQwqdmOjXNLLa?L%K#(Ma{h>CmIk046FSWHuh`3FayOaI-`2wRt8g(=
z(Fx^Yb0@g33jX(9I`>VJ-3G99qKhwoRdD$RuchI-xD$xKuFW*=Xt)*aVyQV^O(89%
zCD+M>?Q6kuY3&jB5`XgqhzvKFK%-HrqVfd$#`kc?7IFzURDIGM{Q)<S;6K|kpGcd(
zrJ-Kfx76;cBivn9fTWqG{V=7=mG^Y?Q8V2vPVz<S*ZgZx5;I(C-t2aYQ|}Q8<g7Cf
eOj!||TazypB$F={4h_I}!T$p-kBUtI$N&IdS6zny

delta 5407
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
JNooMd002UrtUCYz

diff --git a/checks/checkpoint_raid b/checks/checkpoint_raid
index 9293e03..38bbd07 100644
--- a/checks/checkpoint_raid
+++ b/checks/checkpoint_raid
@@ -67,15 +67,15 @@ factory_settings['checkpoint_raid_defaults'] = {
 
 def parse_checkpoint_raid(info):
     raidvolumetype = {
-        0 : 'RAID-0',
-        1 : 'RAID-1E',
-        2 : 'RAID-1',
-        3 : 'RAID_10',
-        4 : 'RAID-4',
-        5 : 'RAID-5',
-        6 : 'RAID-6',
-        7 : 'RAID-60',
-        8 : 'RAID-50',
+        0: 'RAID-0',
+        1: 'RAID-1E',
+        2: 'RAID-1',
+        3: 'RAID_10',
+        4: 'RAID-4',
+        5: 'RAID-5',
+        6: 'RAID-6',
+        7: 'RAID-60',
+        8: 'RAID-50',
     }
 
     raw_volumes, raw_disks = info
@@ -86,14 +86,14 @@ def parse_checkpoint_raid(info):
         volumeindex, volumeid, volumetype, numofdisksonraid, volumemaxlba, volumestate, volumeflags, volumesize = volume
 
         if volumeindex.isdigit():
-            volumes.append({'volumeindex'     : int(volumeindex),
-                            'volumeid'        : int(volumeid),
-                            'volumetype'      : raidvolumetype.get(int(volumetype)),
+            volumes.append({'volumeindex': int(volumeindex),
+                            'volumeid': int(volumeid),
+                            'volumetype': raidvolumetype.get(int(volumetype)),
                             'numofdisksonraid': int(numofdisksonraid),
-                            'volumemaxlba'    : int(volumemaxlba),
-                            'volumestate'     : int(volumestate),
-                            'volumeflags'     : volumeflags,
-                            'volumesize'      : int(volumesize),
+                            'volumemaxlba': int(volumemaxlba),
+                            'volumestate': int(volumestate),
+                            'volumeflags': volumeflags,
+                            'volumesize': int(volumesize),
                             })
 
     for disk in raw_disks:
@@ -101,17 +101,17 @@ def parse_checkpoint_raid(info):
         diskflags, disksyncstate, disksize = disk
 
         if diskindex.isdigit():
-            disks.append({'diskindex'    : int(diskindex),
-                          'diskvolumeid' : int(diskvolumeid),
-                          'diskid'       : int(disknumber),
-                          'diskvendor'   : diskvendor,
+            disks.append({'diskindex': int(diskindex),
+                          'diskvolumeid': int(diskvolumeid),
+                          'diskid': int(disknumber),
+                          'diskvendor': diskvendor,
                           'diskproductid': diskproductid,
-                          'diskrevision' : diskrevision,
-                          'diskmaxlba'   : int(diskmaxlba),
-                          'diskstate'    : int(diskstate),
-                          'diskflags'    : diskflags,
+                          'diskrevision': diskrevision,
+                          'diskmaxlba': int(diskmaxlba),
+                          'diskstate': int(diskstate),
+                          'diskflags': diskflags,
                           'disksyncstate': int(disksyncstate),
-                          'disksize'     : int(disksize)
+                          'disksize': int(disksize)
                           })
 
     parse = [volumes, disks]
@@ -140,16 +140,16 @@ def check_checkpoint_raid(item, params, parse):
     }
 
     raidvolumeflags = {
-        0 : 'NONE',
-        1 : 'ENABLED',
-        2 : 'QUIESCED',
-        3 : 'RESYNC IN PROGRESS',
-        4 : 'VOLUME INACTIVE',
-        5 : 'NOT CONFIGURED',
-        6 : 'USING INTERIM RECOVERY MODE',
-        7 : 'READY FOR RECOVERY OPERATION',
-        8 : 'WRONG PHYSICAL DRIVE WAS REPLACED',
-        9 : 'A PHYSICAL DRIVE IS NOT PROPERLY CONNECTED',
+        0: 'NONE',
+        1: 'ENABLED',
+        2: 'QUIESCED',
+        3: 'RESYNC IN PROGRESS',
+        4: 'VOLUME INACTIVE',
+        5: 'NOT CONFIGURED',
+        6: 'USING INTERIM RECOVERY MODE',
+        7: 'READY FOR RECOVERY OPERATION',
+        8: 'WRONG PHYSICAL DRIVE WAS REPLACED',
+        9: 'A PHYSICAL DRIVE IS NOT PROPERLY CONNECTED',
         10: 'HARDWARE IS OVER HEATING',
         11: 'HARDWARE WAS OVERHEATED',
         12: 'CURRENTLY EXPENDING',
@@ -162,21 +162,21 @@ def check_checkpoint_raid(item, params, parse):
     }
 
     raiddiskstate = {
-        0  : 'ONLINE',
-        1  : 'MISSING',
-        2  : 'NOT COMPATIBLE',
-        3  : 'DISC FAILED',
-        4  : 'INITIALIZING',
-        5  : 'OFFLINE REQUESTED',
-        6  : 'FAILED REQUESTED',
-        7  : 'UNCONFIGURED GOOD SPUN UP',
-        8  : 'UNCONFIGURED GOOD SPUN DOWN',
-        9  : 'UNCONFIGURED BAD',
-        10 : 'HOTSPARE',
-        11 : 'DRIVE OFFLINE',
-        12 : 'REBUILD',
-        13 : 'FAILED',
-        14 : 'COPYBACK',
+        0: 'ONLINE',
+        1: 'MISSING',
+        2: 'NOT COMPATIBLE',
+        3: 'DISC FAILED',
+        4: 'INITIALIZING',
+        5: 'OFFLINE REQUESTED',
+        6: 'FAILED REQUESTED',
+        7: 'UNCONFIGURED GOOD SPUN UP',
+        8: 'UNCONFIGURED GOOD SPUN DOWN',
+        9: 'UNCONFIGURED BAD',
+        10: 'HOTSPARE',
+        11: 'DRIVE OFFLINE',
+        12: 'REBUILD',
+        13: 'FAILED',
+        14: 'COPYBACK',
         255: 'OTHER OFFLINE',
     }
 
@@ -208,7 +208,6 @@ def check_checkpoint_raid(item, params, parse):
     volumes, disks = parse
     infotext = ''
     longoutput = ''
-    perfdata = []
     ignore_disks = []
 
     if params:
@@ -228,16 +227,16 @@ def check_checkpoint_raid(item, params, parse):
                 else:
                     yield 0, 'Volume state: %s' % raidvolumestate.get(volume.get('volumestate'))
 
-                infotext += '%s, '       % volume.get('volumetype')
+                infotext += '%s, ' % volume.get('volumetype')
                 infotext += '%d disks, ' % volume.get('numofdisksonraid')
-                infotext += '%d GB, '    % volume.get('volumesize')
+                infotext += '%d GB, ' % volume.get('volumesize')
 
                 longoutput += '\nVolume state: %s, ' % raidvolumestate.get(volume.get('volumestate'))
-                longoutput += 'Type: %s, '           % volume.get('volumetype')
-                longoutput += '# of disks: %d , '    % volume.get('numofdisksonraid')
-                longoutput += 'Size: %d GB, '        % volume.get('volumesize')
-                longoutput += 'max LBA: %d, '        % volume.get('volumemaxlba')
-                longoutput += 'Flags: %s'            % getflags(volume.get('volumeflags'), raidvolumeflags)
+                longoutput += 'Type: %s, ' % volume.get('volumetype')
+                longoutput += '# of disks: %d , ' % volume.get('numofdisksonraid')
+                longoutput += 'Size: %d GB, ' % volume.get('volumesize')
+                longoutput += 'max LBA: %d, ' % volume.get('volumemaxlba')
+                longoutput += 'Flags: %s' % getflags(volume.get('volumeflags'), raidvolumeflags)
 
                 # disk infos
                 disks_in_array = 0
@@ -255,22 +254,17 @@ def check_checkpoint_raid(item, params, parse):
                             disks_online += 1
 
                         longoutput += '\n%s disk (id %d): ' % (raiddiskid.get(diskid), diskid)
-                        longoutput += 'State: %s, '         % raiddiskstate.get(disk.get('diskstate'))
-                        longoutput += 'Sync: %d%s, '        % (syncstate, '%')
-                        longoutput += 'Size: %d GB, '       % disk.get('disksize')
-                        longoutput += 'max LBA: %d, '       % disk.get('diskmaxlba')
-                        longoutput += 'Vendor: %s, '        % disk.get('diskvendor')
-                        longoutput += 'Product id: %s, '    % disk.get('diskproductid')
-                        longoutput += 'Revision: %s, '      % disk.get('diskrevision')
-                        longoutput += 'Flags: %s'           % getflags(disk.get('diskflags'), raiddiskflags)
-
-                        # perfdata.append(('disk_id_%d' % diskid, syncstate, None, None, 0, 100))
+                        longoutput += 'State: %s, ' % raiddiskstate.get(disk.get('diskstate'))
+                        longoutput += 'Sync: %d%s, ' % (syncstate, '%')
+                        longoutput += 'Size: %d GB, ' % disk.get('disksize')
+                        longoutput += 'max LBA: %d, ' % disk.get('diskmaxlba')
+                        longoutput += 'Vendor: %s, ' % disk.get('diskvendor')
+                        longoutput += 'Product id: %s, ' % disk.get('diskproductid')
+                        longoutput += 'Revision: %s, ' % disk.get('diskrevision')
+                        longoutput += 'Flags: %s' % getflags(disk.get('diskflags'), raiddiskflags)
                     else:
                         disks_ignored += 1
 
-                # remove last ', '
-                # infotext = infotext[:-2]
-
                 if disks_in_array == disks_online:
                     yield 0, '%d/%d Disks online' % (disks_online, disks_in_array)
                 else:
@@ -279,42 +273,41 @@ def check_checkpoint_raid(item, params, parse):
                 if disks_ignored > 0:
                     yield 0, '%d Disks ignored' % disks_ignored
 
-                yield 0, infotext + longoutput # , perfdata
+                yield 0, infotext + longoutput
 
 
 check_info['checkpoint_raid'] = {
-    'check_function'          : check_checkpoint_raid,
-    'inventory_function'      : inventory_checkpoint_raid,
-    'parse_function'          : parse_checkpoint_raid,
-    'default_levels_variable' : 'checkpoint_raid_defaults',
-    'service_description'     : 'Soft RAID %s',
-    'group'                   : 'checkpoint_raid',
-    # 'has_perfdata'           : True,
+    'check_function': check_checkpoint_raid,
+    'inventory_function': inventory_checkpoint_raid,
+    'parse_function': parse_checkpoint_raid,
+    'default_levels_variable': 'checkpoint_raid_defaults',
+    'service_description': 'Soft RAID %s',
+    'group': 'checkpoint_raid',
     'snmp_scan_function': lambda oid: (oid('.1.3.6.1.2.1.1.2.0').startswith('.1.3.6.1.4.1.2620.1.6.123.1') or
                                        oid('.1.3.6.1.2.1.1.2.0').startswith('.1.3.6.1.4.1.8072.3.2.10')) and
                                       oid('.1.3.6.1.4.1.2620.1.6.1.0', '').lower().startswith('svn foundation'),
-    'snmp_info'               : [('.1.3.6.1.4.1.2620.1.6.7.7.1.1', [  # CHECKPOINT-MIB::raidVolumeEntry
-                                  '1',   # raidVolumeIndex
-                                  '2',   # raidVolumeID
-                                  '3',   # raidVolumeType
-                                  '4',   # numOfDisksOnRaid
-                                  '5',   # raidVolumeMaxLBA
-                                  '6',   # raidVolumeState
-                                  '7',   # raidVolumeFlags
-                                  '8',   # raidVolumeSize
-                                  ]),
-                                 ('.1.3.6.1.4.1.2620.1.6.7.7.2.1', [  # CHECKPOINT-MIB::raidDiskEntry
-                                  '1',   # raidDiskIndex
-                                  '2',   # raidDiskVolumeID
-                                  '3',   # raidDiskID
-                                  '4',   # raidDiskNumber
-                                  '5',   # raidDiskVendor
-                                  '6',   # raidDiskProductID
-                                  '7',   # raidDiskRevision
-                                  '8',   # raidDiskMaxLBA
-                                  '9',   # raidDiskState
-                                  '10',  # raidDiskFlags
-                                  '11',  # raidDiskSyncState
-                                  '12',  # raidDiskSize
-                                  ])],
-}
\ No newline at end of file
+    'snmp_info': [('.1.3.6.1.4.1.2620.1.6.7.7.1.1', [  # CHECKPOINT-MIB::raidVolumeEntry
+        '1',  # raidVolumeIndex
+        '2',  # raidVolumeID
+        '3',  # raidVolumeType
+        '4',  # numOfDisksOnRaid
+        '5',  # raidVolumeMaxLBA
+        '6',  # raidVolumeState
+        '7',  # raidVolumeFlags
+        '8',  # raidVolumeSize
+    ]),
+                  ('.1.3.6.1.4.1.2620.1.6.7.7.2.1', [  # CHECKPOINT-MIB::raidDiskEntry
+                      '1',  # raidDiskIndex
+                      '2',  # raidDiskVolumeID
+                      '3',  # raidDiskID
+                      '4',  # raidDiskNumber
+                      '5',  # raidDiskVendor
+                      '6',  # raidDiskProductID
+                      '7',  # raidDiskRevision
+                      '8',  # raidDiskMaxLBA
+                      '9',  # raidDiskState
+                      '10',  # raidDiskFlags
+                      '11',  # raidDiskSyncState
+                      '12',  # raidDiskSize
+                  ])],
+}
-- 
GitLab