From 1830efeafee2d9ba376b018c4eaf3addd559839e Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Tue, 7 Sep 2021 22:30:03 +0200
Subject: [PATCH] update project

---
 agent_based/checkpoint_vsx_system.py |  39 +++++++++++++++++++++++++++
 checkpoint_vsx_system.mkp            | Bin 4946 -> 5296 bytes
 2 files changed, 39 insertions(+)

diff --git a/agent_based/checkpoint_vsx_system.py b/agent_based/checkpoint_vsx_system.py
index d7281d4..e60509b 100644
--- a/agent_based/checkpoint_vsx_system.py
+++ b/agent_based/checkpoint_vsx_system.py
@@ -44,6 +44,45 @@
 # .1.3.6.1.4.1.2620.1.16.23.1.1.12.3.0 = STRING: "7074"
 # .1.3.6.1.4.1.2620.1.16.23.1.1.13.3.0 = INTEGER: 0
 #
+# sample section
+# section = {
+#     'VSXGateway': CheckpointVsx(
+#         vsxStatusVSId='0', vsxStatusVsType='VSX Gateway', vsxStatusMainIP='10.10.2.3',
+#         vsxStatusPolicyName='Policy1', vsxStatusVsPolicyType='Active',
+#         vsxStatusSicTrustState='Trust established', vsxStatusHAState='Active',
+#         vsxStatusVSWeight='0', vsxCountersConnNum=31, vsxCountersConnPeakNum=140,
+#         vsxCountersConnTableLimit=14900,
+#         metrics_rate=[
+#             ('packets_processed', 315101), ('packets_dropped', 23),
+#             ('packets_accepted', 315078), ('packets_rejected', 0),
+#             ('bytes_accepted', 196127045), ('bytes_dropped', 1380),
+#             ('bytes_rejected', 0), ('loggs_send', 534)]
+#     ),
+#     'VSSwitch': CheckpointVsx(
+#         vsxStatusVSId='2', vsxStatusVsType='Virtual Switch', vsxStatusMainIP='N/A',
+#         vsxStatusPolicyName='InitialPolicy', vsxStatusVsPolicyType='Initial Policy',
+#         vsxStatusSicTrustState='Trust established', vsxStatusHAState='N/A',
+#         vsxStatusVSWeight='0', vsxCountersConnNum=0, vsxCountersConnPeakNum=0,
+#         vsxCountersConnTableLimit=900,
+#         metrics_rate=[
+#             ('packets_processed', 0), ('packets_dropped', 0),
+#             ('packets_accepted', 0), ('packets_rejected', 0),
+#             ('bytes_accepted', 0), ('bytes_dropped', 0),
+#             ('bytes_rejected', 0), ('loggs_send', 3)]),
+#     'VirtualSystem': CheckpointVsx(
+#         vsxStatusVSId='3', vsxStatusVsType='Virtual System',
+#         vsxStatusMainIP='10.10.30.33', vsxStatusPolicyName='Standard',
+#         vsxStatusVsPolicyType='Active', vsxStatusSicTrustState='Trust established',
+#         vsxStatusHAState='Standby', vsxStatusVSWeight='0', vsxCountersConnNum=58,
+#         vsxCountersConnPeakNum=575, vsxCountersConnTableLimit=999900,
+#         metrics_rate=[
+#             ('packets_processed', 9632), ('packets_dropped', 119),
+#             ('packets_accepted', 9513), ('packets_rejected', 0),
+#             ('bytes_accepted', 1494138), ('bytes_dropped', 3524),
+#             ('bytes_rejected', 0), ('loggs_send', 98)]),
+# }
+#
+
 import time
 from dataclasses import dataclass
 from typing import List, Dict, Optional, Tuple
diff --git a/checkpoint_vsx_system.mkp b/checkpoint_vsx_system.mkp
index 3ab7595473ac4307d89f75482355bae06fd67ae3..7ba13e66108c46971d51de73b77d46b78da104dc 100644
GIT binary patch
delta 5230
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

delta 4853
zcmV<R5(@3GDbgkeABzYGAj**jGk>^}{ds}?ANaC(kbQ6*`6Ethzz^4#?zKVNv}m&F
z0a-&(WZKrNEcqlkX%OUpzu}ieQIsXSZSMAg)7>N%XNJR>;c!SvV?UfnFMcxE0HfiM
z{svHg_fAIr7rkMxcYHEDwuf-NXZHrZ7s!6`46sR3HwICD#31Ft{YBu>a(_4JGK#G+
zvaXih_g&OVm%*X8`g-H0(`b_hQS|j@7Nt`!TD7gtFUXqV#EboP>PI1=`VfVF8pR0o
zm~Ijj&C#77ryDmw$wQLjRf7Bwoh`BV6@7~QFhzICx1+lxNRaglQo!;8um_I2e}<Yy
z?L~BmycoMFhOR@5JlfG5<bT0;IDSxM>7q&=lx`6L8yH;bdqCr>LlI;26BI_NM*aiq
zm6!T=*g_zHb(y;1?DhfVKG60VMBxH7yxyc}0YnL!;nej(F;sllTdLAm3BO_{NYM4=
zf2$&U(Iy0qYPH?+qA<iBv1D?zcD=7SO^$9KK$k~Bv`E^dLu&EpK7R}%cjj#3fS7!l
zrt4&Ubi_TSyNuRp)Q#c=#h&{CP5=#DYk|YmxpfmfgU>e>Rq~oRfdfw9@KLQFtZ7FU
z&br696n`CT7Cwl!!fEV#$x$VJr!+RgMv&jTX;e)+eIi1K?h2EkY0>Dg!p+JNLmQ9_
zsh<XvMs{vufugg34}S<FP(I+637<NByWg{4+9%z+uH7BDa&vd(hfa+DXXD3Ic~&1#
z>;eWc7-)DVICX(hZ&*OtB<^j19q8OAhP!|n@>HDvKE(g-zmh2YKaBswQvC1PCnFR8
zpC$euu=sy4MhErr|Db~or0`FO_7DGgtp79IIg0Navi0$KzkgudH1akGvsAHClqH(2
zjIsooMk2rh`{h9vKHnTv1-gSNkU?anNKGRv>8eo}J%BKZ4oDOwqHD1TFB&rmM&p=C
zsCYOdbV|sSS_=`AqLPRyBZz=0_^^N}W61Fmu)<9ckWq=q50?f{FaE7S@}4dUgwG%U
zkLlmV_}}l_Lw^(hp98Aq^G~vW?__wwejgumRrN>qU?A+@AD#5U{>S#o;5qG&(2LuR
zAI!Gk)wTac;kUmXZIbxt)(?+xc!$;xkPL)_Uw`=x9sUO_vC+&A7h|+Z=ZB}{3N(<m
z_r8b21dq|1i$BmC9O4+3y-%Cl!1qKOy6bb~S2V#GqkrnWf?)me`90+9V^q275v13U
zArPcKIM5;dXCL!Elmr8vvD|{MCmiX!Qx(n!dOtn1;lIHck`On9B?TqnYK;=l4bglP
z(xqO;>=Ddp28m68-Egz+Aa^!HeDP(7ef!WJ0dA4yp@wC@cWA!^<S~lzJtRIU4r!8d
z_Te3ZHGi*wbTTGA0kbc!u0B#MmNk(DcIGEuMAIvozYH-Z3;GPr<7kD7kpiU=(#8(1
zBO?608+=8HyIKdBU+wm~gYF1^4&nd)sBgos-l*H}li#$_MicbL-7N5+4`!~X>F+@^
z;53(4pU*GeKr-<5^Z7wN*-$0B=H7G3(wlk?$A2n^9<&b$&Y%JHNTsIvs~gW6(4MHY
zEDvr#d8$%g#V{8ThDij|Jz3%=-M`d|e*4gX6jY>G*sgJ=f!;BOc0JKRB|04q>#2q+
zRd4vxZqQrF9Y!yQ$1e}+2}_>PAKJ$a=t^ENI<b$34G2q4U^gHt8GYFApPr8T4M;Pi
zXMeOO{o%055PQ9SMD6uU{n;l?6w?zPbAEC4`<vfC3-9z->nKi9>aQU5(eOEQQ`ZaJ
zB!R6ZZ_O@ol=NW@tF35#?<Z*oz4kr$`H^n7UD%9VZD=&*6l8%UxqFxI(YkUvFa7Pf
zYrlKf6Rcam{=&lh!Y9jGhkd-n@g1z){D0GDoNR(rG{K4~8ZIwBe7cIU_~-_K6V3St
zl1rt@y`L^cYxt12!rsgc68_->UHtfm1%@TW4K~<GV1dTc)j03?4NgD9r{Ci^5+c(T
z$O-TrrhMD`sig~w$IcAT6GcI<#R^$a2F(x@^~7MfE3$WFQjmZDDVdl4VuW<Pynjx<
zjTtE{oR>5mxxPG~jX{C2dOf)U>2xh0Tt7Vjq-*&UK_d2W0c*FOBWthXd+B>L##5u~
z5Z=D3Y`VVug8juZEw-KUlaRA03@<jTG2~gPw(%2ozivgKI)3l3{8Yl>c@*`PF`YLz
zbei0N3>|_toidYviP74P6YOYHmw#45?dXt|4H!vQZKK0~WRviQ%t^+(VA1I`x2YpC
z$_aXWVpr)oQkX)z1zBdHr(d(vYiN}|mHeY48<Ci|qxwllb&rnDD>~@Us$L}D=v25w
zr{oEpvIBH9cGq>Qv3{r8=!K?F>?Eyl?R6Zj*LZdnr6gEZclXNk@H)*9rGJ*s_+Qx5
zw)~Tv*eQh7Jy7hTIBIKkSMQ_6f?o#@qF$4Cguf9H&^3vdG#Dx_6XSFfhxs+h9d8u>
znF9BM54W~>-=ye^l^#TVXQKLL1vYciiR!c!*trK!bY9)Srzd((ub?cr{iI?xRM7IN
zF)7WJN)5A#GbvA{t&;{O%zp%I*D7Cbcbd#L9WigJVUSNt9gn<KWg~~{$<42&TX!vs
zpOHK3IP!2p?jF)G-YQT2w#vN7V8-TOnOvTjH9TBC<I7A6v7m-a%;$QUOCbtWaG^H~
zwn$PAO<NgNs-+aPwz8=nQ#rg<FbW{hB~F4v4HGE{mZ+!F=eEdZNq^Xrqg}q}XGa|s
z3qK?U?h00tgx#eXqpBsICIU)YIL_Diub8dwj7=9lCaty<p8dIKyMeZ8SBa9{AiBqK
zt4(+?k#4NJ#3AXaHC3YggO7um$k|(E-TE-D33Q@SJ7tZDiYJfOnnpo>`&%!ZoH$rZ
z*CFR;)!01FJr(<H=YPgvNxR+<MCuOO%^Xrb&UI8wqsVF1BomhOFy;FZwvfKV59%_?
zl*@Rw=x`@=P~AT+-d%kBa?v3-6G872>zv%RB6k+&;I%ViII=&YTRW?rGZbqwy8>=N
zNI<Zzeo>Jf;l@hU6PJQBRLR;B9z?G>iSIeksZ(In&IfXNet$-VlH1#ozy)E;?h1}t
zI7@};Y!SsTpznM4p^?PhkMA;h<`z3uLm}P8JQA}#$r|0tB-yN1Zu|gTNJ4?gF6pr_
z0G4O$!|?hNoxfJuk%Z_8hRp97Pps?Wtze*N+?A?;ly1`=HTr+b4OHb-d@>d-<+6L=
zV4;NH0oMnYT7RE{SU_9~_(4p#rS6m~>g~}h#Dq|#7ZE~M32fkTLm?D{H0x)(n&f0q
ztE)W~#DXhTk{`mQAW&xAMT8g*%G*_G1xqPXPto5d#SzF`e)OAQ%5NoXk-fY+)Q*NT
zCF3YlXWq*MqSIH1F@}h{rYQk><eU%kLD44&SQLG%7=PN6rCC%on#$IwvYxWD3s4gA
z9E$gY^#t8F)6u2ed9Ix!t_7hZF&xm)QH6(Z(M!W%1K~f>&Z5G?^t5{z69+<S#AMg^
zU?_Rkc#Es-%U2(7^Z1~Ili$RC29f<tem#ut9di5&sR#MhB|ln{Oww^DpeP5RGNRZn
ztz$g*Nq;7zKBH*K;_xiA!}yaJMg~$iAuIYy`N%1gj>|=eTJq^Enp=-Wsh%F8PqF}t
zQS)S;5J9wyT|dDNNtx#mTqod8xLxd%r(*IE?-r?S-9%*v$}Qp+U`$0vLO#l2LVtG9
zEtzI+?Bit8vODzY$aaNo>BC5>L*=(c`4O~wdVj(?V~(Vrh3WRh4i{e4uJrtvr4X`?
zoek{R;t2~FT`(H#tfU6Vy-lKE0|BwEC#OrEj+{1ZA$M<aFtN_6<%?l!2OP*9=1JhL
zZf7pK8xse*8+YyblZvi0NpY*E8iAX=QrFp`V!dviHQ>r|BTswvCmZM=$R2O;#Y&;%
z6MxMHas>oa2&QC8&zVe@vs!H)ygOqq-qrS0cUPu6ENSGQxE<Cd&n`H8zsRRFHB!~X
z;S7b{SP+j=Ot#!-5I4&<Ff|iA17DX;!IVzq38MC25f)UmG<N56-`j@5PpP({Fii>!
zasD#LskfYnTY^&jBlp)Pmj31`#9;`nXMb;hKYRD-<N3wa;fM2oj>phRP9FKQL_Hg{
z#1jF89vBq7PLDcZT`8yDdfZ_NmpGmt_gKMY+etm{NWsl>6g~b)Nsc`C&{Lc$6b1Lz
zle|<&cp_P$a9b6LCvPe`fAS*3R@OW{`ap}$!?vDes3pmRs-Eh&M8yx0_2{D#x_^8y
zs;4<A(G(74^+cy7qQc3kp6F$XsC)*jr<AN&dF)$3+0#=t5Vu!$3h8(^r^)t9Gn@j?
z344A(iYxgO2CY20h)2Q5$jULNkhQSK6_iAcJ($pl;i-K>o)zg6HLBTAiH#KX$VbZU
z^7;b(7tM0$3v})BL3W!zLXfRTEPush&oVS$j}mq?%yLSLJY&yS*}rE|JU<rCmaUqT
z@)F?;&s|uC9r;XIT13R@^|=0kkWoFAdWbgxPGB3t#!(}mRd_HY8`YL0=K?{^XsS<A
z$Ee>aAu7jXS{&^O(KbwRvM@$HZI9*lr@|16>a0{Ec;E{I1`HT5V8DO@1CweL8-M@*
z;U3@qw7QQ1cCY_vANP+<{m18kriEa?+x{cFqW&W^4MyDlgOff{At_%sGW8#y1OBr0
zA4&Pe!`?ts|B;pxW+fiQ>pRTL31ZQ|DRovdYO(RVe(y9CRiK<goh{NT>PZQ{#d1;n
zB_2{zT~x4&-Stwwu*UH`qE8lztAF%SPl@to+f)9eUJHL9F)KgswB+}15PxA+JXdOM
zLO-R2?a5=e;_*oM6tM4n=#P$Ea`maP5bQ0P29mJ1X`0H>+gT3wR!jpy`0FzbB^l(B
zY?q~6rKCa@{+Kz+5lgc4j*_w@y?!H|sKridq!4J$Wa#fELsp`sMu-frnST_6-K5A0
zlhjC&;Wd+D*l*|=O1YK_Dd@BFTQtEc#OwTG&`2A_S}$9LsPu_S8Tz}(P-hP&M71?4
zr5FqvT12WdQy~L+9U(y!qv7lvN`2>ney{jlT)oCfexWjxhA%qgS^E6J?^b<;>>w-f
z!{W=Et=a&;D-|JdW9()G;(rw}EAiaGjdzfHOuo(m_<?5VU+tzcjPKnzWQ6puc1f0q
z*YI<+%B<IA&aTev;+49lCg(9}S95FXOEs`txjxnoL{b^59jN45UPZELy)tP4Xsk*a
zPIgsfsiakdv8mOx8k1D2uz@Z}D8t)hSxF-h+;&z-p){9XN+p}^x__XDaMo&(w^6|A
zgpl_jzeU4e2qLw=T$tX=mGW*X6HoJHOjYl@F5O_xswV&uJx=J_ay$OEjzS!!(t9=H
zotPgYm&V1vU%F}gSzf_u^yMx;?)*oy|L^sBgJJgl552+Y1!?UaoBhAp|5xw-#rGT3
z?%)e;bQ&gW?3D^V(|@qy#-d!_75<jKN<7~epGiGo{`Yy9;zd?9n}4YUs7WsGc@?{1
zGLK^MdLb!Fe71~OdF^)PxdNGmifA;Je-iH_ekO14f&5<}KAq=pFUI_`!`>Oqh9S`3
z#L;G5<dj_C^gfEeg5V91vyz7#_idD<0zWT#O{)9l?@l_Iwtp*%{fWwmymDivGwJQz
z+%W1Zy8&K7&`k6NMD@i_G^LoBVKvpASZy4#q)uQ#{osD{SDO_IH>+D5lWz{0`!T+E
zg8+G&RJ{aC9IOeStEHb%W5GrP_McQfc07@gFVskv7<rpGhJi_4Nj(4t7-z9WRz*i*
zQE{b0iJ7e3YJUN@sWSua_^nJWUm(dQ73*Dcx`I}I$O@j=9Yl6c1f!sx%HFli&%}4S
zeJ}TERqau2iJR|m5<mPIPD17TH*k_$7|73blUw}V9aMQr^?TnsPRfc<>o=?loIgjT
zU=9DC!a^0!I)}+S<mK%4;3eLCXPWEl(6%Z^dDs1i>VGA#(?^EG4!Dm*>B_ydqvMF!
zH$!b_`n_t>zV81+l@;a{B@?-*<UVTJmDdl_jwoU9<Ma}RVjxmI%AIvWzB6n$Mn#46
z_L)^bMHy=4%RN=moXtLpDAf2CHM-P9w=1foG)k8x4Y6t%3zF+P4XUZIyLo^-*(s-{
zw*}qQTYu6rD5QLem&z<P$?~Lm1}!mSHf9y}bZ0=K>WZvnQU=bUT?)Ev+mo-aQsEd{
zdKMN~!J{pw{kf=h#nwgI@9^R<<V#Wt2T|ohF~!1j$_blXMTX#lz~ZBVD7f7FV37h}
zc14d4cBbFmoul(B(s9_n+n79!sW(^swntRk(M?USd<R+^Cay0LvkPRK!kG0DLMaZo
z0|$?al}s{+Xck4bWuYY>+KMYXP*rO9^Fo%qmu~G6ZPZP9U9j1yf>Kt%l*OdR(_4xS
b=IJ_<U=&1?fD{G{w!{AdC$+AW0LTCUC##Cs

-- 
GitLab