dbfdg 3 wh@s"ddlZddlZddlZddlZddlZddlZddlmZddlmZddlm Z ddlm Z ddlm Z ddlm Z d Z d d Ze jd d ZddZd.ddZdZdddZd/ddZddZddZddZe jd d!Ze jd"d#Ze jd$d%Zd&d'Zd(d)Zd*d+Zd,d-ZdS)0N) constants)config) log_utils)utils) process_utils)selinuxz/usr/libexec/kcare/virt-whatcCs2tjdddkrtjSddl}|jddSdS)NrF)full_distribution_name)r r )sys version_infoplatformlinux_distributiondistro)rr4/usr/libexec/kcare/python/kcarectl/platform_utils.py get_distrosrcCs tjdS)Nr )runamerrrrget_system_uname"srcCsdtjdtjdfS)Nz%s.%srr)r rrrrrget_python_version'srFc Csttjd}tjr^tjddddttj gdd\}}}|sN|j d}nd |}||d <|rlt j |St |}d }x |D]}|d |||f7}q~W|jS) N)python_version agent_versionpsz-Zz --no-headersz--pidT) catch_stdoutrz error: %sselinux_contextz%s: %s )rrVERSIONrZis_selinux_enabledr run_commandstrosgetpidsplitjsondumpssortedrstrip) is_jsoninforcstdoutstderrrZ info_keysZinfo_strZinfo_keyrrrapp_info+s &  r-z/sys/firmware/efi/efivarsz$8be4df61-93ca-11d2-aa0d-00e098032b8cz$605dab50-e046-4300-abb6-3dd810dd8b23)globalshimc CsFtjjtd||f}tjj|s&dSt|d }|j|SQRXdS)Nz%s-%srb)r!pathjoin EFIVARS_PATHexistsopenread)namevendorZ max_bytesZvar_pathvarrrr_read_uefi_varLs   r;c Cs@y&tdtd}|r$|dddkSWntk r:YnXdS)N SecureBootr.rF)r; EFI_VENDORS Exception)Zsecure_boot_varrrris_secure_bootUsrAcCsZyt||}|dkrdSWn.tk rH}zt|j}WYdd}~XnXtjtj|S)N)r;r@r encodernstrbase64urlsafe_b64encode)r8r9Z value_byteserrr_get_uefi_var_encoded`s rGcCs tjd}|r&t|dkr&|dd}|tjjtjjtd}|dsL|SytdddD|d <t d d tj tD}d |i|d <t ddddg}x<|D]4}|dks|j dr||krt |td |d |<qWWn.tk r}ztj|WYdd}~XnX|S)Nz /proc/cmdlinei)cmdlinehas_efirIcss |]}|t|tdfVqdS)r.N)rGr?).0r:rrr usz#secure_boot_info..r< SetupModer.cSs4g|],}|jtdr|dttd dqS)r/rr)endswithr?len)rJr:rrr wsz$secure_boot_info..varsr/Z MokListRTZ MokListXRTZMokListTrustedRTZ SbatLevelRT HSIStatus MokIgnoreDBZRT)r<rL)rQrR)r try_to_readrNr!r2r5dirnamer4dictr&listdirsetrMrGr?r@rlogwarn)rHr)Z shim_varsZshim_exclude_varsr:errrrrsecure_boot_infoks$    rZcCsrtjrfy&tjtjddddtjdd}Wqntjk rb}ztj|t j }WYdd}~XqnXnt j }|S)Nrr ) r REPORT_FQDNsocket getaddrinfo gethostname AI_CANONNAMEgaierrorrlogerrorrnode)hostnamegerrr get_hostnames& recCsFtjjdrBtdd}|j}ttt|jd}|j |SdS)Nz /proc/uptimerrz-1) r!r2isfiler6readliner intfloatr#close)flineresultrrr get_uptimes  rocCs tjjtrtjtgjSdS)Nz no-virt-what)r!r2rgVIRTWHATr check_outputstriprrrrget_virts rscCs tjjdS)Nz/usr/local/cpanel/cpanel)r!r2rgrrrr is_cpanelsrtcCstjjdotjjd S)Nz/proc/vz/veinfoz/proc/vz/version)r!r2r5rrrrinside_vz_containersrucCsdtdjkS)Nz/lxc/z/proc/1/cgroup)r6r7rrrrinside_lxc_containersrvcCs tjjdS)Nz /.dockerenv)r!r2rgrrrrinside_docker_containersrw)F)r0) rDr$r!rr\r rrrrrrrrprcachedrrr-r4r?r;rArGrZrerorsrtrurvrwrrrrs<