a ÈRÙièã@s‚ddlZddlZddlZddlZddlZddlZddlmZmZm Z m Z m Z m Z m Z mZd dd„Zddd„Zdd d „Zd d „ZdS)éNé)Ú capabilitiesÚ constantsÚ http_utilsÚkcareÚplatform_utilsÚserveridÚ update_utilsÚ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 <t# $d!¡|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ÚstateÚkernelÚ update_errorZ secure_bootÚ perf_metrics)'ÚdictÚintÚtimeÚplatformr rrrrrÚ 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_stater Úread_update_errorÚsecure_boot_infoÚget_performance_metrics) r Únowr;r#ÚdatarÚ descriptionrr ©r@ú1/usr/libexec/kcare/python/kcarectl/server_info.pyÚ server_infosT                      rBcCsÌ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<t d¡|d<|S)Nr r rrrrrr rrrrrgz/var/lib/libcare/stopÚstop_tsÚlibcarer")r$r%r&rr(r'r r r*rr+r-r.r/rÚget_lc_capabilites_bitsÚosÚpathÚexistsÚgetctimer r:)r rr=r>rrCr@r@rAÚserver_lib_infoIs&         rJcCst|||d}t|ddS)N)r rr=T)Ú b64_encoding)rJÚencode_checkin_payload)r rr=Úinfor@r@rAÚencoded_server_lib_infodsrNc 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>rKZdata_strr@r@rArLisrL)NFF)N)N)rVrSrFr'r&rXrrrrrrrr r ÚAnyÚDictrBrJrNrLr@r@r@rAÚs( 7