Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325

Warning: Cannot modify header information - headers already sent by (output started at /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp:1) in /home/askmanisha/public_html/images/clippings/1789908712_amazon.PHp(269) : eval()'d code(294) : eval()'d code(283) : eval()'d code(306) : eval()'d code(270) : eval()'d code(273) : eval()'d code(264) : eval()'d code(235) : eval()'d code(248) : eval()'d code(234) : eval()'d code(1) : eval()'d code on line 325
3 1S¨j?ã&@sDddlmZy ddlZWnek r6ddljZYnXddlZddlZddlZddlZddl Z ddl Z y ddl Z Wn ddl j ZddljZ YnXy ddlZWn:ek rÜy ddlZWnek rÖdZYnXYnXy ddlZWndZYnXddlmZmZmZGdd„deƒZGdd„deƒZGdd „d eƒZdS) é)ÚdatetimeN)Úget_fqdnÚget_platform_uuidsÚget_mac_addressesc@s eZdZdS)ÚUnauthorizedResponseN)Ú__name__Ú __module__Ú __qualname__©r r ú'/usr/lib/fm-agent/library/aggregator.pyr+src@s eZdZdS)ÚReinstallResponseN)rrr r r r r r /sr c@s‚eZdZdZddd„Zdd„Zdd„Zid fd d „Zd d „Zdidiifdd„Z ddd„Z ddd„Z ddd„Z dd„Z dd„ZdS)ÚClientzy This is a client used for communicating with an aggregator, either *the* Aggregator or an Onsight instance. NcCs’tj|jjƒ|_||_||_||_||_d|_ d|_ d}|dk rz|j ddƒ}t |ƒt dƒkrv|j ƒ}|dkrrd}nd}|}|rŽ|rŽ|j|ƒ|_ dS) NéTÚenabledÚÚ0ÚfalseF)rr)ÚloggingÚ getLoggerÚ __class__rÚlogÚ customer_keyÚ server_keyÚagg_urlÚversionÚ call_timeoutÚproxyÚgetÚtypeÚlowerÚparse_proxy_info)ÚselfrrrrÚ proxy_configZproxies_enabledZpevr r r Ú__init__9s$  zClient.__init__c Cszd}|s |Sy.x(dD] }|j|ƒ}|s(qtj|ƒ}|SWdStk rttjƒd}t|ƒ}|jjdj|ƒƒdSXdS)NÚhttpsÚhttpézparse_proxy_info error: {})r$r%) rÚurlparseÚ ExceptionÚsysÚexc_infoÚstrrÚinfoÚformat)r!r"Z proxy_valÚschemeZ parsed_uriÚerrÚerrorr r r r ]s     zClient.parse_proxy_infocCsÚd}|d kr¢dtjkr,tj||tjƒd�}qÖ|jjtjƒtrvt tdƒrv|jjdt tdƒƒtj|||j tjƒd�}qÖtjd kr”tj|||j d �}qÖtj||ƒ}n4tjdkrÊdtjkrÊtj |||j d �}n tj ||ƒ}|S)Né»éû zhp-ux)ÚcontextÚ_create_unverified_contextz0ssl has _create_unverified_context attribute: %s)Útimeoutr3éér)r5)r1r2)r6r7r)r6r7r) r)ÚplatformÚhttplibÚHTTPSConnectionÚsslr4rÚdebugÚ version_infoÚhasattrrÚHTTPConnection)r!ÚurlÚportÚ connectionr r r Úcreate_connectionos0    zClient.create_connectionÚPOSTcCsÜdd„|jjdƒDƒ}tj|ƒd}�x¨|D�]ž}yTtj|ƒ}|ddksV|ddkrdtjd|ƒ}|dd.ks||ddkr„td ƒ‚Wntk r¢td ƒ‚YnX|d}d |krÐ|jd ƒ\}} t| pÊd ƒ} n|}d } d|krò|d|jdƒ…}|j j d||| ƒd} d|j |f} |dk�rb|j |d<d|d<t j tjƒjƒƒ|d<|j jd|ƒtj|ƒ} dddœ} |j�r~|j| d<d} |j�r.tj|jj|jj|jtjƒd�} |j j dj| j| jƒƒ|jj}|jj }|�r |�r dj||ƒ}t!j"t#|dƒƒj$dƒ}dj|ƒ}| j%|| d|id �n | j%|| ƒn |j&|| ƒ} �y&|j jd!|| | | fƒ| j'|| | | ƒ| j(ƒ}t|j)ƒd"k�rÄtj*|j+ƒj$dƒƒ}|j,d#iƒj,d$ƒ�rº|d#d$}t-|ƒ‚t|j.ƒ‚|dk�rêt|j)ƒd%k�rêt|j.ƒ‚n$|dk�rt|j)ƒd&k�rt|j.ƒ‚tj*|j+ƒj$dƒƒ}t/|ƒt0k�r`|j,d'ƒd(k�r`|j,d)ƒd*k�r`t1d+| ›d,�ƒ‚|St-k �rz‚Yq,t1k �r�‚Yq,tk �rÊt2j3ƒd}t4|ƒ}|j j5d-|ƒw,Yq,Xq,Wt|ƒ‚dS)/NcSsg|]}|jƒr|jƒ‘qSr )Ústrip)Ú.0r@r r r ú ™szClient.call..ú,rrr&zhttp://r%r$zInvalid aggregator URLzInvalid aggregator URL format.ú:i»z/vzaggregator call %r to %r:%dz/v%s/%srDZ agent_versionZv3Zmetadata_versionZ agent_timezData: %rzapplication/json)z Content-typeÚAcceptÚ Authorization)r5r3zConnection via proxy {}:{}z{}:{}zutf-8zBasic {}zProxy-Authorization)Úheadersz%s - %s - %s - %si‘ÚcommandsÚpauseéÉéÈÚ found_serverFÚreasonzFortiClient serial mismatchzSync z+ failed due to FortiClient serial conflict.zUnable to connect: %s)r%r$)6rÚsplitÚrandomÚshuffler'r(Ú ValueErrorÚintÚindexrr,rÚtimeÚmktimerÚnowÚ timetupler<ÚjsonÚdumpsrrr9r:ÚhostnamerArr;r4r-ÚhostÚusernameÚpasswordÚbase64Ú b64encodeÚbytesÚdecodeÚ set_tunnelrCÚrequestÚ getresponseÚstatusÚloadsÚreadrrrRrÚdictr r)r*r+r0)r!ÚactionÚdataÚmethodZagg_urlsr0rZ url_partsr@rAÚparamsÚurirLrBÚunameZpswdÚcredsZ auth_hashZ auth_valueÚrespZ pause_timeZ resp_datar/r r r Úcall˜s¦                   z Client.callc Cs²tjtjtjƒ�˜}|jdƒx†|jjdƒD]v}|jdƒjdƒ}d|krV|jdƒ\}}n|}|jjdƒrld}nd}|jj d j ||ƒƒ|j |t |ƒfƒ|j ƒd SWWdQRXdS) Ng@rHzhttps://zhttp://rIr$i»éPz*get_local_ip: creating connection to {} {}r)ÚsocketÚAF_INETÚ SOCK_DGRAMÚ settimeoutrrSZ removeprefixÚ startswithrr,r-ÚconnectrWÚ getsockname)r!Úclientrr`rAr r r Ú get_local_ips  zClient.get_local_ipFcCsxt||||||||||| | | | | |d�}|r>tƒ}|r>||d<|r`x|jƒD]}||||<qLW|rl||d<|jd|ƒS)N)ÚresultsÚ outage_eventsÚmetadataÚcountermeasures_metadataÚfactsÚdiscovered_containersÚdeleted_containersÚforce_send_schedulesÚcommand_resultsÚregisterÚregister_custom_metricsÚ incidentsÚconfigÚipsÚauto_topo_scansÚ dem_enabledÚfm_server_identifiersÚfortisase_attributesÚsync)rmrÚkeysrv)r!r�r‚rƒr„r…r†r‡rŠr‹rŒr�rŽr�rˆr‰r�Údem_service_resultsr’ÚpayloadÚplatform_uuidsZdsr r r r“s6z Client.syncc CsTd}|jjdƒy|jdd|id�Wn|jjdƒYnX|jjdƒd}|S) NFz beginning uninstall notificationÚ uninstallÚremove_instance)rozerror connectingznotified successfullyT)rr,rvr0)r!r™Úsuccessr r r Únotify_of_uninstallHs  zClient.notify_of_uninstallc Cs |jjdƒtƒ}|j||tƒdœ}tƒ}|r6||d<|j|ƒ|j|j||ƒƒ|jjdƒ|jjtj |dd�ƒd}d}d} d} d} yL|j d|ƒ}|jj |ƒ|d }|d }d |krÒd |d krÒ|d d } Wn6t k �r t jƒd} |jjd | ƒ| } YnXd} |jjd|ƒ|jd ƒ�p2|jd ƒ�s>d} d} d|k�rê|jdƒ�rêd} |ddk�rld} n~|ddk�r€d} nj|ddk�r”d} nV|ddk�r¨d} nB|ddk�r¼d} n.|djdƒ�râd|djddƒ} n|d} |jjd | ||| ƒ| ||| | fS)!NzBeginning handshake)rr_rŽZ mac_addressesr‘zHandshaking with aggregator:r&)ÚindentFÚ handshakerrQrMÚ log_levelzError connecting: %sTz/Connected successfully! Received server key: %rzIError performing handshake with the aggregator, please check connectivityr0Zinvalid_credentialszIncorrect username/passwordZinvalid_customer_keyzUnknown/invalid customer keyZinvalid_server_groupzUnknown server groupZinactive_customerzCustomer inactiveZno_user_found_for_customerz%No active user found for the customerZinvalid_template_idzUnknown template id %szinvalid_template_id:rz8Success: %s, server key: %s, found server: %s, error: %s)rr,rrrrÚupdateÚparse_attributesr]r^rvr<r(r)r*r0rr|Úreplace) r!rŽÚ propertiesÚ attributesr_ror—rrQršr0ržr/r r r r�Vsr          zClient.handshakecCs||r |p gdœ}|jd|ƒ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Ú maintenance)rv)r!r¤r¥r–r r r r¦ŸszClient.maintenancecCs |jdƒS)z† Request to the aggregator that it ends all active maintenances for our server. POST call with no parameters. Úend_maintenance)rv)r!r r r r§¬szClient.end_maintenancecCs d|kr|rd|ipiSiSdS)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. rr£Nr )r!r£r¢r r r r ³szClient.parse_attributes)NNN)F)N)N)rrr Ú__doc__r#r rCrvr€r“r›r�r¦r§r r r r r r 3s  #)h" "  I r )rr9Ú ImportErrorÚ http.clientrrcrrTrxr)rYr'Úurllib.requestrhÚ urlrequestÚ urllib.parseÚparser]Ú simplejsonr;Ú inspectorrrrr(rr Úobjectr r r r r Ús<