From 8efbed9e1261be1178f465c0f223842da91d6c46 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Mon, 3 Mar 2025 07:42:15 +0100
Subject: [PATCH] link cluster object to core

---
 README.md                                     |   2 +-
 mkp/vsphere_topo-0.1.0-20250222.mkp           | Bin 0 -> 8482 bytes
 .../vsphere_topo/agent_based/vsphere_topo.py  |  26 +++++++++---------
 source/packages/vsphere_topo                  |   2 +-
 4 files changed, 15 insertions(+), 15 deletions(-)
 create mode 100644 mkp/vsphere_topo-0.1.0-20250222.mkp

diff --git a/README.md b/README.md
index 14c416a..9ccee5f 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[PACKAGE]: ../../raw/master/mkp/vsphere_topo-0.0.9-20250116.mkp "vsphere_topo-0.0.9-20250116.mkp"
+[PACKAGE]: ../../raw/master/mkp/vsphere_topo-0.1.0-20250222.mkp "vsphere_topo-0.1.0-20250222.mkp"
 # vSphere Topology Visualization
 
 This plugin uses the data from the _VMware ESX via vSphere_ special agent to create a topology of the vSphere environment.\
diff --git a/mkp/vsphere_topo-0.1.0-20250222.mkp b/mkp/vsphere_topo-0.1.0-20250222.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..23979032d346c76d7070473dbad8cef938b2454b
GIT binary patch
literal 8482
zcmbW)(?TVT0zlz7VQSLOO}1^@-r2To+qP}nlP25d&Tew&e};3p-r!pV(Xe1V3M1wa
z-&cH}&YK;LubTeQ=PqHYH1ka#iJ}in>Z@+3v+IrdS0(O1)n8=F?6ZK%q!hG#h0o1h
zdVa|OD5~{Wi+Xf(RFxwma9WJ+=n;BQcrs|6qmSF+>gsZ?-vRyGjYnI1w#`lN($>{o
z@3Lnt?9|))Hryr8H{3d}L>>Xi|9;bhk6@m+BicAmGP)e=YJ|el3%7B2b~PXsKF^C-
z1ajLGKXbs7%NDN|LRgg<Z4{9Cq#Ra;X*?~_6JEfL-_o72>sceQWQ`62z4eKS%O7--
z!k<~MO8sVzET;N&b$LBxV!|nL!2Uah`z|k-W6dBNc}A9h)g5xsItGrAj!8kM%Y}VA
z6TjGrwx(k4a~M9?HH>Q<oLu(Aw3M>U-!r7Avx_D`WV|7j9&_y-vh`c=Pftd|bG}CU
z=wo{(tLwDY_gO$I&aMa?h`lp1Ddqda0iHvVuhiy|3W0d6_0%z-q*rQDb76Dqh{R}H
zw3)T3=*8<{Ljlsfg{$vww0&`Nnup@K*t3bMEB>(@i^6Y@EZ}@F;J)p!OAx{vW2*iW
znE(l)bJ%Pzp8d3vfOO>&KboO;>A+YpkK6EV_`s#dc7jn_A}{QU+s%yeaaA82$O}X4
zWvML8rb8GjVt&4Fks6UdMA*pTqos3aDYUx-PVhjr)Yw)d-@SQu?bfwj_py@oR`}cd
zJLA3al-Oc*qm8?m4%+M_#y-&Fkq^Py+l$A#TnUg6x7^AN58`zc4>X?@!7>fA3op`U
z&8w~d9-V~wwExTz-S3zGw!a$at@_p{e9`*$NBZm+DqRw{FQzPE*TSV-zl|kb+p8@3
z-ak&S{7!ZGoQV1~et}Bu&GHNLbH;}ERXcY5qD~$LQ^6QU&7oZePy6W#Cz!SfFbIca
zv_{0I<5+R1APt6?@JZwY2UV~&&U>#>;-ca94vLr31^%vP21MOh)dUb*q((6e0nct?
z_l@p$>AxpQEDL!*{O<j$Wp2=4`<J(Oyc^TLcMq#_n)SUu);;V8!J7NK8S)~JzoW0{
z<Gz1IEN)|N>tgx$yyhJ$j5p73A#LGwnBMpouRiSB&Ln#{ABAV@c}ST3E6^Ld8g*Xy
z63LDs!5p@ZpIVf9C*!x|4d<ZXr<@(WNaVQLN#@W4jT8*bo)!-fM7tl=$q4<cY&%c1
zqJtK^VURcYyG)Y00cY?_D3t^Ow3X|2D%RZ$gQOqKJrthGyJewhZHxyE-i}IZ&Px8}
zf-yqH<!Z(P(u>ZSQCVsm*-bAf=ykYkjp#52&1qq9ZoRssAyX70*}CJ;4Co2PW($<`
zYy8cG^nH*hy5;&XVHhwwm<=Fhxx`2j$Bp<j5<KH$R{+zSHopz(h5O(^TI0;6(A+%{
zI@f=zbVm*)y5MmM{>*z>eON0zGMJ6il`ogY)DXs`#9>j{EW${pFa2)v_cYPZ&COpw
zeOI?%zkj=Yoa^J{={D-0$z98A(hlL_@_tDEwEKRnShirtL0rvFux4nT-+=12Gm~Ez
zB<+p4oyMm_Kopup0GHA)ipR$FCve%Q&v|Bezv}mG;cpYz_#^POW3iwN!2s~oU<DOR
z0nqe*-iaguGdh2KMCxR+xh~wrTC4`Rjd5=al;<`e$@^om&mSNZr}RV%*Oz->i9Q8K
z9T3pZ?&9m>A%@TOW#QoDK%DXZV#&$zihE~?V3HO@`@Tpdjny8o3xKW|$MzN^5HHRT
zBnVq-3x(;85mn^7qTzisCnx!x5J=Q$5Foo!MGzM^bM>cr@$=BVWz{MkUAB2ZLGBN8
zR`4%-0WuTp)4|P8cl(0;0V%psx|MF0Y(CqQ@i7DR`_-G-*?9Vi5Deg~ISV5wyDN#p
z+`pCvTQt8)+DwkP9~Bn^eKryeYWOFr!XUeIQVG$x`HYeMfj@b#U+3y6rbK<bzm3}M
zFZ-ooj{uZ?i!37-45Sw?!=oqC2Pq(5`i*|QDw3F#wek4<Mhx+TsZNrDzCAp%vsIG-
z^skbksJmU*RgwOK3!;y~GQr~)2?tXD4VpWdK%@zl*!K8VL1^}76khJn$-ncK(K;i}
z^_6t-5v`?2@p?D?0-ajmp>=RMi@W-Ixw%e&lz5k8&2Sj)KM=WSr*VIcbab;j60VM|
zXfxw&Fx65HS)*>wz!Z~CTsGF$3j7(sf9eMPloeJ-(b-G%1Pw{Q{u2&4G)kaDu+_kh
zBF@%$JqcDm9U2OMhWrvRu$$ix;!d|{)gVz5#J)~OQZYYDyo*H}3c}7322B;WG*N!|
z(aM;tXqGO&P<rcw_#lRgFX3K?@z7F2Iyr)#p7LFNO;j#}e#I>1#mGPb8?D{gGfAZx
zIpE7f3SqIh^HM;*R)`slKY^}YlnWjYMAa6CfCh~Ljs~x`vUV_guY6xc_<37`*OVDC
zkMueH5vP13M##&h_nfRwB9Yf>Dh>PdE#{Tx{dCBaP|cHejNk(>KJHZ-kA%+HHO6fP
zNP!+Q+@7r;zZO;2kW{%wdX+T+S^QWIjHFbBCB#dV9Wxv82dI&yhNGraZ4lZ*M5pAT
zRAB4~j3m{})q<rYtf{g49dTCqACF;K8JxL>N|3^y=sTv)$w8Yftjo|c9gOO{6^d0F
z=^WD*S}6mOR8lgX;fki>7XC$U{4@<cNuCh^rgFce06{>`t`F1?dDT7VWTg^?Ny#P4
zHmKSU(sG!3O7$?G8egQh7&JkwreK{x#AUcam`F~8X%Yr`C$4a3KB4SXE_vvA1HOUd
z0*f#p(+&k5iQ2Vy$CbN-hh0mAqZ5RGxHL~gvJ3OYtKeJ}>qiP_mg5PI?Es?SxiHjH
zFdW+ug@vEYaec6b368%(QBx$kEG;2x8gsVDIy|-s+fg-bax5bl2VDjgeX_-LnWA`&
zG@#vYT>C%)KQMel6(QY7RtfND3d>!{Prm#gGn$2q^9|L}N<tQAVfB=-Pw$!uyriZb
z-0~l`L{=?}NoFamZBM4<AF|{J5K^~>by3GV+lNik8&g|WraVRGTJcymXF~18n77V3
zbaH2Ej}D2^>LXK12&9*4`nCaGh1H5(_OK8qg3~^58Lr@Kg`C!@tp>RXH0S2x9)Vq1
zCsx(f-Z@WQK@+cLlgbe3?R`Kis(ye*iY;iau<pl@58|x>-hdX&@MNyL6v6S%kL1=+
zceK+`+xNo!jkZjWLD6&muNKrjPMw={Uci9varnufqDm?xX|<-}5R`_s#|6i_&~gyA
zki+D5N$G$VbJSYVU2P5GY2kM#1(9rd^Rx%P9WfI^rb0@aD#DX<)oz6QDHNk82dX`9
zd~Ym7#BFHcBV2~U3<Qs1@^)LJjW;tARVhclLSTc+H)ck)?HrPA)V#vYW&zBp-a;IC
zOMr4PUz`prcPONoZ3pQ?K<pRHD&hW9zM>%^aio^VAP$zsR%>P&#9uo_URb_-@Ix=1
z!HAy}_-x6B3-e}zvl{z)k$jHlM3gfEVCq%pmWP~1V`HsEV0a^r07#Oa@ZEy<wR4O{
z-iln)*~TAnJIoys;~qglqci1tgTQfKX=cjb%Q!~-SZ%R+Cdf6Bwu_Nn1LZL$y**W8
zg@}@DKI=vo7$ET<R)f<m!)E784Qq-SNH0IFmKSCmAa)1U8ldss*_Os8u_^_giafJ~
zqIYp#Mv5wNHPzy#+2*D{`I%w~aUg?RGeiUhhCIuEynHK)D`oYOA%JS<4|7M9aAJ$W
zFcw;P4OFx%=%6?FpOc`{)IrEs4^4u+&pkz|wgify4{fwwNO&k)hKN6n#e6Ii7=vz~
z=XPVQs4X-?JHtjYSY36J9b+7W1XC#3z|~NjFRga&`~ICv*b^zh!E=RuS>kOkd`!O1
zjA%;c7e)->l9$IAj)K<likqX=430;p%AlRS<2Xb#k4}+sg5qkSx==$0`6Pz&xhuG!
z^mgc$5*s8VZm1Naw<pVtuA!-H6cI@O;k+$3MKZQw3BUR0e=*D_C<xU;N;}r3bc#Kv
zuyvpZ6k?iBfoYa~0MiA<>CScc*kzTLsAsJICNt35;WR4YfTgY@hrLp%X6Aa+0^>{I
zPlCBx0kG=v+l~P5sn<cwHfjWyp=aG}PnXau`&-N6ja;&(IdoW9Sm?0>aPKxoD|Vu_
zfMa8UC*^QzRIy;8*cdDjeBmcBVLTLpK$mQ4Nr#mci#nUQ0Rbw?klYbL4I`l`TMW&%
z5Lpf#zIrM6%3F(01ND4BzzOlTS!p^Un7T^EPW2okjjK;Rd`IxhV83I41kWU}_b*oX
z413G&a!`?gqWIPca%g9Q$6c<#a~|h!kF#=xlrFCSL`y=xyKmr1|21XV<@2jyK|k>@
z-AUOp<E-OoQP7?oowEyQ07|MXNpeyeONfD5z8s6}3W0=4k%7Lwt!6APL2+vR5YrOU
znn+tBpnfdmhIG0$O(wi0?~+1(U*))W_C#a;6N_&AiUCPrB{+~3snV>uOY&1S2ea$M
zfYx?JU{7-Y7YDu1dH`8uZplC50)h>UZ7<tZDZ3m_x9fTM>~I5ntmqM=H5*={FNwIx
zce^`*+$+8ghT(6pE$%P#-`^_O-_1bWZ^(0UNe|IT0L)S7LnW*(SI|2~W;p*i@-zFy
zkX8V)AHrw=`T0pJ0XH~o$6;`@`*V13vAeniCf~D*V0+78l86Yz=0SWVFbgX-`X7bF
z^YMHt>aCD(#7L9$FDVhnf~o@I@?i_ub^zcMkpSxeoAy=J-L#N@L{6<&(-bx`PW3&Y
znh@;<AQktelFgv&LoLqeMEwSJskDPwV3a^#juR{JAhgHUKp9j+toOWk^l6G-=~<KH
z`w+Q~82+yQ?lwIa6KruUU68JBjwzufSqDIS=YH;)qijpP2Bl|bjWq!ho2Kn>+dE>r
z?C$2=f00Naq!5BLX5Ftvmu{EWSz^5Q)qDd04r6*K3p@Q#dVMbrK8i}P6KnFs5o6Ib
zg=nQtQ&ROVhga*zslKmh38#-uu<?r%^4DmO-b|oFj++L{Q>;yA7mNH}KU;sw^oM#8
zn=J(0`#fuj<Vaujf!qBQxrOLr4haFZlyK%}P@XiVni_m0HAd%CPv(`l%GfD(80|*|
zm>37#+WX=sL7a_z9dSkv6Lo=R#F{C#%jj@Ee0ZUWm?Dns4~TZKzauFaS<zH##6P2{
z1A|gUxcGw?kpu?*lFSYjMG4x>j}U4Is-Ofx(=owf;H!ZZ2pL}bhJyNxlmC>_i2m@X
zD!<uQO=zbCd@x0D){|n?`Ed(Wf%>;R;lnn>C=y~u+hf1${`S6v-R&~Cxw$pJd|zGf
zuuQ@3?&xj$Tff(He|fi0d?kBklp8al-Fn*bx_Na-4_C1GpC<xJtRk3L8q#7v8xcCl
zz{UbkhxKH6w^ShpNWpt(V=~0DBY0W0(}&3Q4t`X1xr0^Ya#=V~Kp*%<9cWX;ofOJ2
z#TPs^(2CANc_qMMrL=1-`iS4hTBRva2n&-d?RhyC;%KNz6qCa9y7=L~*G;nDl97hB
z84{b*e?kRIPr;^d2$J1#zWZ*N6iU<yWO`s3k8Zady)ahVP8b6GSe0w&MBrceb8zmF
zT}F^e3H#=uBo;n)x1xPL!ot87#thx3NE2l2{|y}FaCQ{R!9@P}hFeU#{sX^Y2nZ#y
zFeZhfD!v`ki<d3tnVsI6&Q7YgRe9o`a}ZCAXrS^O<@m{;2;r*%&8r`4>w6;fFCcmU
z@aExIZfD}!E<ONNG%hyx=tnLWf&Aat;2F9$XGvS`&S4s%Jqz-znM=H(D^dtIR0F9N
zS!HUd0Fz;(v<PhP)t%Ea)y-$MPIiQ8%*<jNG;I8!+$POm0ZGmr+93+{7{5P4;s~wD
ztFKJEo6D6+CWJrXR(G*)F@75iTC%2OwcnnfNZ8CRBTg-Zd?1T9ugd{GlncW4m}_M4
znRJ}ZQe8H64a{-c#y088;02Zaab*+c9=1Z-&>ZgAtJuUECr3^5W=^OIt=abum%vXn
zn2yD!Ei~yqp-jnO{&@3DQ9~NiMe1JERg*{H89>gSQP-vlbljq5xL*zy=EpGIgY^6;
zcl9UwWMkO&+iiMrJlq@h?C)+FV|s_Dl4@+%sH26rS@c_C>4_<Q`$=CzYt=QEn^X!?
zUX-sOD<oqyD}jV2wA6sK@*_}@i^p=6>;!>R;RrtHU}HF&_A`WUd=dP9m)Nv)dAvyA
z*y2E~81O@^IhdYBz1of>A$+Sd$JZv4z3j-PR&6@Nc-ZQtwIQ{T1~|n(%aZZ~Z`y&3
zmvXd%aAis1b1xKbFb(-%A7+OUwFwt^Oyd(@{Un&xXWAKw6tXyO%YjPvL`5I6!q!dR
z6{QSqY_{@(9~-19J2rfB5N1L<i$@dy=xsM&IY;6baYy(YI>H-KHNYq-E9s}Y^vPef
z4?1S7s5S7dU#5L<N|4v{PX_C2AIq#Y`6L3g#tWXjSjy}A=BM&VY^Qcc8A!*{m~!~|
zWj_!BcMao#HsST7E-TlQ>#y$%*Q=YpS9W-=@{YUe3SZ0Dc4xwB6>@{RvV2}0DZA@M
z=1MQQb#(*3A$ziksgP54U7NdYiyJ!2*H5Bz6|fPT5Vb%iWwldfNre<l9i{QX0~DXc
z8(9${eU2RL6NN~=RAVwqF2_DBUuEkl!FD6LTkz+BeYgSuZHk4TqI<Y~m_N{Brz;cH
zODznqZvi1SG`tDaIKNEdu+t*+1ZNjv9A}iJCF`}AbE3d9^bzzd!?o#EXPR|vFVXQ6
zvP(jZifNEoo9$@-meyd~oz?OlZ6pMIS;HI&V^`o2R$RtcX?MZfn)WF*!p2d>#ITOi
zWj1HUj?Jeos1jP$$jV&bug)d*&(Ajq_KUNfS&gT;Y8j3t)gZ?`<t4Q+`%EnvdZIQ#
z*`h!$T5AY9R3i(;sOVH-mv<~AFgq54Yv!@A%Fg(wNn2Ua-cYxU|0!Cp5!E}wz3WL8
zVojeFpCDbnt&UOaWJNq`UVO)Hn}2b5`x|-YD19{J-jvG9qZA1thK3@m@t8d)lKtx?
zOtG%b(#kn$s+{!`(!jzo3_)55$S-#1+M1@O1f-55-s32UI{-qwEv?g(I#*I(Vz|UV
zmL8Gy;Jb{5<o>1^M~w0!A!}E1aaiIUsX>fN%&sy|j{NoPb#1so$z~@1>4--*PfF(h
zB*O8QGPevfzGPSakfh@h+1b8`|7xic4vQ#8@g%`7`{uopJbP6e_sfO<-`QCx&-Tpo
z^~|_!Ja7G?-|ND*t-D+Mn60~c)8h8}`DHA3auCY07cW&eO;S@gH`O18f}@pciiA5L
zA9nZ7xF?&Xds{cdhVJTFi$ph%_toFJ=8LN?H20Q&_mh7+KA*UpsIX@RaYjrw-(paz
z0)x*#hmlV6^92WMO#xeeo$cHBy$-!?JUiRA{cD*$HaDGz>W8)4>cv-l?Gsr9)NL2r
zEfXembZOCLhRad44U@UhLPi;6g+OL#+W8JCzg2Z|Kh4T}@Rc)FUep6S?r{%;wI$8Z
zawFX;VD+Uax+TiEoR&?)eGoz0&_xxKZ>cz@E1Ulo>P>d48WRWlxffkyOWPsM8X$Bd
zY8q&RaTboBsOPxy+%h^dE(z4Ocio5?Z58@jqtK2$9-+~psPPbq5~ClPXznPc9VLCB
zRMh5bOhuNnbu(&K%RIfN=*5{0Hbx!UN-Q!%g^aEEbnpqL8Z$Z#>h+o$>eT>>RkYga
z0{e4{8+n1%TyM(#e&xPWHi?7n!`}Z=*wDxNT+kmQ#8%O~J}OF6Eu11*mRz#4s!A)W
z$~ZlQOZD=QpmNm6bMH<-(o^Z8-Z`&AfT?oO2B2A*dmN~}*Gj-R1{ZFgXEs-+vSsy7
z@!B1MVRIp|`;q$;e)4^;sKC6n4iEm@GYUy^vxKGV_=!78Na|6vMHr>&$e77gY5t;`
zSU8ykn5;%92OfuF9vIS3ZJC&;xYFQB#EV~DmvSR50X1HM;qOQJGVNl)>3)LWfETEd
zq=33<@oU3l57|4Q5nV^K5mN@3$bM16+F6~OkQMjuxa_=;p!UWos}0I9t94l2H9pJ(
zLdI=eb40c_r|@-Z%3K6Fbd|Sh+3dYX8ji`ggbKlRpZXtTwx4w1Mr88u=dcw)ob@EY
zd(hcXjlLN9fesb0a3%wX<<ahqv-v@4lt@u1C3y6_r<w2S4xuRA_f<W0j3${Fn=+Lc
z$cmy4Zv*5q4^d9TCCs5O`puc%{Z@JDi|^f>f)`%*FSBe$eHCgdVW?<w@vyQ5AU0D;
z8f`sdllq}LQXn~cxLuDNXd3yZYWOCJqGFxKP`+B_CZQ(hNYb2RLuyLOBwko~{Tiju
zWm=*nOHC6(Wm5l8ETQ9{lcf=Pnzb>F=%*8CV}l+?U1=>qGweP!ak~E`mJffr59Gwi
z_wOy}uEK(IZgn##_0)b8LX}ah9IJm~(;oA*@QhZ()v_UMo`YyBv{OzO$`@bPFc%;s
z8axPoBOlFNllF)0QRL~8bEMpk!a_RYbB}7ZyJfkIe~hbGd5n_dF`Ha8!op*1Hrl6V
zt2;WUjP8_Z6OO7*)*`I!!VF_hqxF%5kDow9$?{m_Xr_c)NE@QaGD)`atiSKX<|JVN
z;i_v^)Esdbqcpd`%`HVOmSO!|+=x1s7{8E5XfCmLd#NO#qp|=K>9pYmmCat$4JS?E
z;dit^l!I^2Croibvzp#30$LsXM5#rXnZ9t|Ezb>?h+~A#2rCxYpW(wDBI8(bY-&3G
zQiMMQxTFz-rf79a^xqB?g_P35ObUGhDdT&k-d@8(3OBct!)l&cw1Ez<SqUNt$G3cr
zNlN{A6T<_dKC8aJst{k35+{V3K1~PRYa%2?ijqeD`2Ayg>U_=ruq{dDueh^)@Nd_%
zafg5HXK;J&y7-89{gQC~vM;CpCOI@DdnJj6#;C9DuDvAn{QyhC2--GpY_-2l$4{Ud
zLO{iMRN5jgf3%G5LGopsQ4H>jRt`V@2WeU4+;HU6()uK6uE!ghK{$a7qjWIXbl}RG
zM}e84y-IA(f^?f}J`npueUe$1^fS7#1yCTJn&Qg#DXyB2I*~#LURQHE*U#^^kn$dJ
znoHHo>K-yJApZ79m0HuE(_>BmQJ`CI$x8OEZp~r`U-V>n$n>)SjHVIM^6<W~!qSlc
zM>U6Y5Q*g&XUeCKsvP^AS^3}5)h*N#nVt(OzOl}-k$6Q-8eht@O}}sG{$gOtclV~Y
z^=p6Hx5CSp%;=xcqy9DHzrfRX%=hx=ul+*bm#@c1ifr8RF^P26z=&RcUT=3XLw>xy
z(W&sov9jeO2;CM5WlsBEgB4<mjymDrLe6m7Vr-<T&9@+PT!B<|$p=n{q{d(o7r1YT
zn?3RgCzF=?I0z(DnAuLl75Zr<3{B2MRp>iQeM6!Nzy47j>PoOYnrRg$X~c?}e@S`d
zRiq%$dlZc5OM_E{)06u_=<3<D<2c(cl{mbPL0l$2=1#SX@z2VsKKsP>26>(c;Z<|3
zSNQm=7b`d+<u@dSpY_s!D(!-R=fs}9$SWo*j79E}`N`Q3YTu?(ia+S6Vij&8Z~q<w
z)!Ll_xo^Rz)37`n0SzpTKeHE?90k|$0F3xLd4HO21PWB3`oWnLqD?cSh52|CECv=R
zjMXlZrxMtDxeF*T=4KTExMZ-q1Sub_ICkaw2WK++)s~g$SCHVKNT?oqxwRYAnny}F
z#FY;b9EHKG-=~TLQ_Zep%)YAaZu=nh^Gu|mK3a>ZgE3!farGSV#)SdpKxLK^4;;q*
zQwacQa8_YIY4jpHDun5dCpQMYJ*&2=EozanPfz<*3PZoPHhRI_D+HNoxmbPJ+&iP8
z=&R{Ngjti*Bi9c5`7!))HI+$*!1x?fU{yt`A@Yv?AcY9YsT))5zLxT!sw7^%3aFmv
zyKDAK&ByRTAum~hSZ1F`l&xj3xqgIwq(6Wg7m3=NjvdftkmlG3)K6EQSeKfFeFD%g
zOrJ{3E;D1d7O9k)GO1Qp`h*OrZCc)!C>zdDCA0e5uuE6T$3oG=@Tx`h!aJQ+RRKcZ
zmq34;5!aZ&#KoeNR*Y(ERpmLU3zUN4`h4s8bNu43BUIw>7jdsdwF`|8VB?K>D=akY
zS+gYNsE?kTQgg#q0~<%j6-P|OUU4;|=NDh!JE*IF=`rsZZH)V}!c0;C#F5KJ=ZquH
z#zgORaPZlU5)a|%Aco@l$|%0u2cbrV;W(ruU2_5hLpwTib`lW1D7VA#^%e#AR7}ig
ze38ob^3_fgGZhS@jW%+Iuv$gl8O#yuB$==Gx-Gx+YzpykU-&c*87J#Lovsy8RsH|q
zC7I)W<FddBFx-3J!TyYY=cXMJ8Sp>E8xns1n#LC8B7bD+QEq>n(@?2P(IhG&s9F=f
zlk_CQC%(qf=XO%(z@ixycKE$2w`4d0;ioAmzb-jYoPSiGrR6H(hA-g(kBx{acRS@6
zjkl*xCD>d-g{V9+SHqido@6)TsHQ;mY4*pPI(M#Zp<rPU*;@A4IFk7GSSB1ddl;?U
zlitxyHnWbOTTaETO;gotQyF=A8mI*Gu4f^fvzP3gKMwReM5*UC{FnXTYd<4*-Eg<g
zE_b1qvk3?)=k_Sz1+5&87C4CC8H<Ct+o+ZIp3wG_;b4t(=R(s)#d(SM>2!I8tjMmZ
zgYMU_rp&<2E_l$qB*_Mp?BC3;Kg)2vCZ7uC+H5FChIFzzRQJlj#2EE~c8GLDI4zED
zjYPufcQj7=Wm2Wdx&4D+`D!_x9Z4$01V^TM@i^+rcgo(m`TV+@uVlj&_cL_=OeISy
ziAUjCboz{L2%HH*q((ygq1qryL6JM(sMPb*OJ`RTsterW>eQj?ee2y`*y0|P3-Pi2
zNZeQI^6%-N&%69u1e*j``vm^>E%>2Pd0*BF$rt>)t^PVP6)mq+S%*Yw9uDQWp0tcP
zW<4sJ#2q1iSL;$2F@qC0GmQ3zBo{T?ZS1glfl0nQ_ezx6G$NDT^1GHrs(re=;wYFY
ziH5W&3(>S@JU<!dU~J4Ce<*XVH7T0B?I-ZZiZndW&ML$qJ=e$0?&!ARWL0WAJXk~Q
zhLCnsuk{<FJj|&R6DsO|ON{Z<*FUxPt*pLj>0em;*8YF-q}}&Lu!sbu2{sM}_CMn{
BwNU^7

literal 0
HcmV?d00001

diff --git a/source/cmk_addons_plugins/vsphere_topo/agent_based/vsphere_topo.py b/source/cmk_addons_plugins/vsphere_topo/agent_based/vsphere_topo.py
index b17f298..b1935a1 100644
--- a/source/cmk_addons_plugins/vsphere_topo/agent_based/vsphere_topo.py
+++ b/source/cmk_addons_plugins/vsphere_topo/agent_based/vsphere_topo.py
@@ -23,8 +23,10 @@
 #             added option to ignore VMs by name (regex)
 # 2024-07-31: added option to map vSphere names to CMK/topology names for data center, cluster, hosts and VMs
 # 2024-08-06: fixed crash on mapping vm_name
-# 2024-01-16: added suffix option
+# 2024-01-16: added suffix option ThX to Thomas Kloppholz
 #             refactored constants to enum
+# 2024-02-22: link cluster object to core -> needs mapped name
+#             reordered output check details
 
 from collections.abc import Mapping, Sequence
 from re import compile as re_compile
@@ -132,18 +134,14 @@ def check_vsphere_topo(
                 esx_name = name_map.get(esx_name, esx_name)
                 objects.add_host(host=esx_name)
                 connections.add_connection(cluster, esx_name)
-        yield Result(
-            state=State.OK,
-            notice='VMware ESX via vSphere agent type of query: Queried host is the vCenter'
-        )
+        query_type = 'VMware ESX via vSphere agent type of query: Queried host is the vCenter'
+
     else:  # assuming the query type is ESXi host
         raw_vsphere_host: str = host_name().strip()
         objects.add_host(host=raw_vsphere_host)
         vsphere_host = raw_vsphere_host
-        yield Result(
-            state=State.OK,
-            notice='VMware ESX via vSphere agent type of query: Queried host is a host system'
-        )
+        query_type = 'VMware ESX via vSphere agent type of query: Queried host is a host system'
+
 
     if section_esx_vsphere_virtual_machines is not None:
         __VMs = [
@@ -270,10 +268,7 @@ def check_vsphere_topo(
         yield Result(state=State.OK, summary=f'Ignored powered off VMs: {ignored_powered_off_vms}')
     if re_ignore_vms is not None:
         yield Result(state=State.OK, summary=f'Ignored VMs by name: {ignored_by_name_vms}')
-    yield Result(
-        state=State.OK,
-        notice=f'Written to: {BASE_TOPO_PATH}/{raw_vsphere_host}/data_{TOPOLOGY_NAME.lower()}.json',
-    )
+
     yield from check_levels(
         value=(time_ns() - start_time) / 1e9,
         label='Time taken',
@@ -281,6 +276,11 @@ def check_vsphere_topo(
         boundaries=(0, None),
         render_func=render.timespan,
     )
+    yield Result(state=State.OK, notice=query_type)
+    yield Result(
+        state=State.OK,
+        notice=f'Written to: {BASE_TOPO_PATH}/{raw_vsphere_host}/data_{TOPOLOGY_NAME.lower()}.json',
+    )
 
 
 check_plugin_vsphere_topo = CheckPlugin(
diff --git a/source/packages/vsphere_topo b/source/packages/vsphere_topo
index 2275e41..aab478d 100644
--- a/source/packages/vsphere_topo
+++ b/source/packages/vsphere_topo
@@ -13,7 +13,7 @@
                                   'vsphere_topo/rulesets/vsphere_topo.py']},
  'name': 'vsphere_topo',
  'title': 'vSphere Topology',
- 'version': '0.0.9-20250116',
+ 'version': '0.1.0-20250222',
  'version.min_required': '2.3.0b1',
  'version.packaged': 'cmk-mkp-tool 0.2.0',
  'version.usable_until': '2.4.0b1'}
-- 
GitLab