ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙ 뛰h=pddlmZ ddlZn#e$r ddlmZYnwxYwddlZddlZddlZddlZddl Z ddl Z ddl Z n#ddl m ZddlmZ YnxYw ddlZn#e$r ddlZn #e$rdZYnwxYwYnwxYw ddlZn #dZYnxYwddlmZmZmZGddeZGddeZGdd eZdS) )datetimeN)get_fqdnget_platform_uuidsget_mac_addressesceZdZdS)UnauthorizedResponseN__name__ __module__ __qualname__'/usr/lib/fm-agent/library/aggregator.pyrr+DrrceZdZdS)ReinstallResponseNr r rrrr/rrrcpeZdZdZ ddZdZdZidfdZdZd id iifd Z dd Z dd Z dd Z dZ dZdS)Clientzy This is a client used for communicating with an aggregator, either *the* Aggregator or an Onsight instance. Nctj|jj|_||_||_||_||_d|_ d|_ d}|U| dd}t|tdkr| }|dvrd}nd}|}|r|r|||_ dSdSdS)NTenabled)0falseF)logging getLogger __class__r log customer_key server_keyagg_urlversion call_timeoutproxygettypelowerparse_proxy_info)selfr!r"r r proxy_configproxies_enabledpevs r__init__zClient.__init__9s$T^%<==($      #""9d33CCyyDHH$$iikk.((CCC!O  =| =..|<AB! B!cd}|dvrdtjvr*tj||t j}n0|jtjtrrttdr]|jdttdtj|||j t j}ntjdkrtj|||j }nftj||}nPtjdkr+dtjvrtj |||j }ntj ||}|S) N)i zhp-ux)context_create_unverified_contextz0ssl has _create_unverified_context attribute: %stimeoutr@)r)rC) r4platformhttplibHTTPSConnectionsslrArdebug version_infohasattrr#HTTPConnection)r)urlport connections rcreate_connectionzClient.create_connectionos{ ;   #,&&$4s'E'G'G s/000D73(DEEDHNNJ%ABB")!8 $ 1 # > @ @ """JJ %22!(!8T4+<"""JJ")!8d!C!CJJ9,, 1L1L$3t'8 %3C>> rPOSTc  d|jdD}tj|d}|D]8} t j|}|ddks |ddkrt jd|z}|ddvs |ddkrt dn#t $rt d wxYw|d}d |vr*|d \}} t| pd } n|}d } d |vr|d|d }|j d ||| d} d |j d|} |dkrz|j |d<d|d<tj tj|d<|j d|zt%j|} ddd} |jr |j| d<d} |jr(t-j|jj|jj|jt7j} |j d| j| j|jj}|jj }|r}|r{d||}tCj"tG|d$d}d|}| %|| d|in-| %|| n|&|| } |j |d| d| d| | '|| | | | (}t|j)d krt%j*|+$d}|,d!i,d"r|d!d"}t[|t |j.|dkr,t|j)d#krt |j.|dkr,t|j)d$krt |j.t%j*|+$d}|,d%d&ur,|,d'd(krt_d)| d*|cS#tZ$rt^$rt $rItaj1d}te|}|j 3d+|zY6wxYwt |),Nc^g|]*}||+Sr )strip).0rNs r zClient.call..s-RRRCciikkRCIIKKRRRr,rrr1zhttp://)r0r/zInvalid aggregator URLzInvalid aggregator URL format.:r?z/vzaggregator call %r to %r:%d/rR agent_versionv3metadata_version agent_timezData: %rzapplication/json)z Content-typeAccept AuthorizationrBzConnection via proxy {}:{}z{}:{}zutf-8zBasic {}zProxy-Authorization)headersz - icommandspause found_serverFreasonzFortiClient serial mismatchzSync z+ failed due to FortiClient serial conflict.zUnable to connect: %s)4r!splitrandomshuffler2r3 ValueErrorintindexrr7r"timemktimernow timetuplerJjsondumpsr r$rGrHhostnamerOr#rIrAr8hostusernamepasswordbase64 b64encodebytesdecode set_tunnelrQrequest getresponsestatusloadsreadr%rrgrr4r5r6r=)r)actiondatamethodagg_urlsr=r! url_partsrNrOparamsurirarPunamepswdcreds auth_hash auth_valueresp pause_time resp_datar<s rcallz Client.callsRR4<+=+=c+B+BRRRx   ^ ^ G C$-g66 Q<2%%1);); ( 1)g2E F FIQ<'888IaLB>  fffccc66677STTT""63@@@!--//t{##s**:diikk&8&8&A&ABBDxx B//33G<<?%)*%5g%> 2:>>>#DK000V##DK(8(8C(?(?#DK000v%%#dk*:*:c*A*A#DK000 Jtyy{{'9'9''B'BCC MM.11U::! h//3PPP,PPPP!   '   $      lnnQ'C6>???   s!A(B**C-GT  A#U43U4cNtjtjtj5}|dd|jddvr7|jddd\}}n |j}d}|jd||| |t|f| dcdddS#1swxYwYdS)Ng@rYrXrz*get_local_ip: creating connection to {} {}) socketAF_INET SOCK_DGRAM settimeoutr!rhrr7r8connectrl getsockname)r)clientrurOs r get_local_ipzClient.get_local_ipsF ]6>6+< = = +   c " " "dl((--a000!\//44Q7==cBB dd| HMM<CCD$OO    NND#d)), - - -%%''* + + + + + + + + + + + + + + + + + +sC#DD!DFc&tdid|d|d|d|d|d|d|d|d |d |d | d | d | d| d| d|}|rt}|r||d<|r"|D] }||||<|r||d<|d|S)Nresults outage_eventsmetadatacountermeasures_metadatafactsdiscovered_containersdeleted_containersforce_send_schedulescommand_resultsregisterregister_custom_metrics incidentsconfigipsauto_topo_scans dem_enabledfm_server_identifiersfortisase_attributessyncr )dictrkeysr)r)rrrrrrrrrrrrrrrrdem_service_resultsrpayloadplatform_uuidsdss rrz Client.sync s^*   G '- X &>%=  %  #8"7   21 "6!5 ,O X %<$;  i 6  ,O $ ! $  B/11N B3A/0  6)..00 6 61"5  C.BG* +yy)))rcd}|jd |dd|i|jdd}n!#|jdYnxYw|S) NFz beginning uninstall notification uninstallremove_instance)rznotified successfullyTzerror connecting)rr7rr=)r)rsuccesss rnotify_of_uninstallzClient.notify_of_uninstallBs  8999  IIk):O(LI M M M HMM1 2 2 2GG  / HNN- . . . . . s AA2cJ|jdt}|j||t d}t }|r||d<|||||||jd|jtj |dd}d}d} d} d} | d|}|j ||d }|d }d |vrd |d vr|d d } d } |jd|nH#t$r;tjd} |jd| z| } YnwxYw|d s|d sd} d} d|vr|drd} |ddkrd} n|ddkrd} np|ddkrd} na|ddkrd} nR|ddkrd} nC|ddr d|dddz} n|d} |jd | ||| | ||| | fS)!NzBeginning handshake)rrtr mac_addressesrzHandshaking with aggregator:r1)indentF handshaker rfrb log_levelTz/Connected successfully! Received server key: %rzError connecting: %szIError performing handshake with the aggregator, please check connectivityr=invalid_credentialszIncorrect username/passwordinvalid_customer_keyzUnknown/invalid customer keyinvalid_server_groupzUnknown server groupinactive_customerzCustomer inactiveno_user_found_for_customerz%No active user found for the customerinvalid_template_idzUnknown template id %szinvalid_template_id:rz8Success: %s, server key: %s, found server: %s, error: %s)rr7rrrrupdateparse_attributesrrrsrrJr3r4r5r=r% startswithreplace) r)r properties attributesrtrrr rfrr=rr<s rrzClient.handshakePs  +,,,::!- .00    ,--  ;,:D( ) J D))*jAABBB  4555  dja000111    Y99[$//D HNN4 l+J/LT!!kT*5E&E&E ,[9 G HMMKZ X X X X    ,..#C HNN1C7 8 8 8EEE && $((>*B*B _EG d??txx00?GG} 5555g"8886g"888.g"555+g">>>?g))*?@@ &04=3H3H*B44W   F         L%BBs'AE!!AF&%F&c@||r|pgd}|d|S)a Request to the aggregator that it starts a maintenance for our server. It requires the duration of the maintenance in minutes, and accepts an optional list of tags to mark metrics that are going to be affected by it. )duration metric_tags maintenancer)r)rrrs rrzClient.maintenances6!&6;<"  yy000rc,|dS)z Request to the aggregator that it ends all active maintenances for our server. POST call with no parameters. end_maintenancer)r)s rrzClient.end_maintenances yy*+++rcd|vr|rd|ipiSiS)z Receive a dictionary containing the attributes stored in the manifest file. Parse them accordingly and store them in an attribute dictionary. Attributes get parsed only if the customer key is present in the properties. rrr )r)rrs rrzClient.parse_attributess) Z ' '<<"<B BIr)NNN)F)N)r r r __doc__r-r(rQrrrrrrrrr rrrr3s RV"="="="=H$'''R!#6eeeeN + + +:#'3*3*3*3*j    GCGCGCGCR 1 1 1 1,,,     rr)rrG ImportError http.clientrrxrrirr4rnr2urllib.requestr} urlrequest urllib.parseparserr simplejsonrI inspectorrrrr3rrobjectrr rrrs"NNNN"""!!!!!!!!"  $OOOO$''''''######## KKKK!!!!! JJJJ CCCEEEEEEEEEE     9           CCCCCVCCCCCsW <A AA0A A0 A*'A0)A**A0/A04A99A?