a ƒ¬ iOã@s~ddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z d dd„Zddd„Zdd d „Zd d „ZdS)éNé)Ú capabilitiesÚ constantsÚ http_utilsÚkcareÚplatform_utilsÚserveridÚutilsFc Cs¼tƒ}t|pt ¡ƒ|d<||d<t ¡|d<t ¡|d<t ¡|d<t ¡|d<t ¡|d<t   ¡}|d|d <|d |d <t   ¡|d <t  tj¡|d <t  ¡|d<t  ¡|d<t  ¡|d<t  ¡|d<t ¡|d<t  t  ¡¡}|d|d<|d|d<|d|d<t  ¡pd|d<t  ¡|d<t  ¡|d<t ¡|d<zt  ¡|d<WntybYn0t  !¡}|rz||d<t  "¡}|dur”||d <|r¦t  #¡|d!<|r¸t  $¡|d"<|S)#NÚtsÚreasonÚmachineÚ processorÚreleaseÚsystemÚversionrÚdistrorÚdistro_versionZeunameÚ kcare_versionÚ last_stopÚnodeÚuptimeÚvirtÚproxyz last-updateZ ltimestampz patch-levelÚ patch_levelz patch-typeÚ patch_typeÚÚkmodZcrashreporter_tsÚ kdump_statusrZkdump_tsÚ server_idÚstateZ secure_bootÚ perf_metrics)%ÚdictÚintÚtimeÚplatformr r rrrrÚ get_distrorÚ kcare_unamer Ústrip_version_timestamprÚVERSIONÚ get_last_stopÚ get_hostnameÚ get_uptimeÚget_virtrÚ proxy_is_usedÚparse_patch_descriptionÚloaded_patch_descriptionÚget_current_kmod_versionÚ$crashreporter_latest_event_timestamprrÚget_kc_capabilites_bitsÚkdumps_latest_event_timestampÚ ExceptionrÚ get_serveridÚ get_stateÚsecure_boot_infoÚget_performance_metrics) r Únowr7r ÚdatarÚ descriptionrr©r<ú1/usr/libexec/kcare/python/kcarectl/server_info.pyÚ server_infosR                      r>cCs¾tƒ}t|pt ¡ƒ|d<||d<||d<t ¡}|d|d<|d|d<t ¡|d<t t j ¡|d <t  ¡|d <t  ¡|d <t  ¡|d <t ¡|d <d}tj d¡r²tj d¡}||d<|S)Nr r rrrrrr rrrrrgz/var/lib/libcare/stopÚstop_ts)r!r"r#rr%r$r r r'rr(r*r+r,rÚget_lc_capabilites_bitsÚosÚpathÚexistsÚgetctime)r rr9r:rr?r<r<r=Úserver_lib_infoGs$         rEcCst|||d}t|ddS)N)r rr9T)Ú b64_encoding)rEÚencode_checkin_payload)r rr9Úinfor<r<r=Úencoded_server_lib_info`srIc CsP|r2tj|ddd}t t t t |d¡¡¡¡St t  t t |ƒ¡¡¡SdS)NF)ú,ú:)Ú ensure_asciiÚ separatorszutf-8) ÚjsonÚdumpsr ÚnstrÚbase64Úurlsafe_b64encodeÚzlibÚcompressÚbstrÚ b16encodeÚstr)r:rFZdata_strr<r<r=rGesrG)NFF)N)N)rQrNrAr$r#rSrrrrrrrr ÚAnyÚDictr>rErIrGr<r<r<r=Ús$ 5