Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
3 Ö;jÌ)ã@s¬ddlZddlZddlZddlZddlZddlZddlZddlZddlm Z m Z m Z m Z m Z ddlmZddlmZdZdd„Zd d „Zd d „Zd d„Zdd„Zdd„Zdd„ZGdd„deƒZGdd„deƒZGdd„deƒZdd„Zdd„Zdd „Z d!d"„Z!d#d$„Z"d%d&„Z#d'd(„Z$d)d*„Z%e j&d+d,„ƒZ'e j&d-d.„ƒZ(e j&d/d0„ƒZ)d1d2„Z*d3d4„Z+d5d6„Z,d7d8„Z-d9d:„Z.d;d<„Z/e j&d=d>„ƒZ0d?d@„Z1dAdB„Z2dCdD„Z3dEdF„Z4dS)GéNé)ÚconfigÚ constantsÚ log_utilsÚ process_utilsÚutils)ÚSafeExceptionWrapper)Újson_loads_nstrzuname: cCstj|ƒp|dkS)Nz.-_+)ÚstrÚisalnum)Úc©r ú+/usr/libexec/kcare/python/kcarectl/kcare.pyÚ is_uname_charsrcCsftƒ}tt||tjƒdƒ�B}x:|jƒD].}|jtƒr&djt t |t tƒd…j ƒƒƒSq&WWdQRXdS)NÚrÚ) Úget_kernel_hashÚopenÚget_cache_pathrÚ PATCH_INFOÚ readlinesÚ startswithÚ UNAME_LABELÚjoinÚfilterrÚlenÚstrip)Ú patch_levelÚkhashÚfÚliner r rÚ parse_unames  .r!c CsJtjjtjƒrFy"ttjdƒ}|j|ƒ|jƒdStk rDYnXdS)NÚwTF) ÚosÚpathÚexistsrÚKCARE_UNAME_FILErÚwriteÚcloseÚ Exception)Ú new_versionrr r rÚkcare_update_effective_version%s  r+c Cs.ttjdƒ}ztj|jƒƒjƒS|jƒXdS)NÚrb)rrÚKERNEL_VERSION_FILEÚhashlibÚsha1ÚreadÚ hexdigestr()rr r rr1s rcCs†tjjtjdƒ}tjj|ƒr‚t|dƒ�V}|jƒjƒ}y t |ƒWn6t k rdt t tjj |ƒƒƒSt k rvdSX|SQRXdS)z:Returns timestamp from PATCH_CACHE/stoped.at if its exsitsz stopped.atrÚerrorNz-1)r#r$rrÚ PATCH_CACHEr%rr0ÚrstripÚintÚ ValueErrorr Úgetctimer))Zstopped_at_filenameZfhÚvaluer r rÚ get_last_stop<s     r9cCsPtjpd}tjpd}dj||t|ƒ|gƒ}tjd|f}|rD||f7}tjj|ŽS)NÚnoneÚdefaultú-Úpatches) rÚPREFIXÚ PATCH_TYPErr rr3r#r$)rÚplevelÚfnameÚprefixÚptypeZ patch_dirÚresultr r rrMs    rcGstjtjf|žŽS)N)rÚget_patch_server_urlrr>)Úpartsr r rÚget_kernel_prefixed_urlWsrGc@seZdZdd„Zdd„ZdS)ÚBaseKernelPatchLevelcGst|jt|ƒf|žŽS)N)rrr )ÚselfrFr r rÚ cache_path\szBaseKernelPatchLevel.cache_pathcCs|j|j|j|jdœS)N)ÚlevelrÚbaseurlÚrelease)rKrrLrM)rIr r rÚas_dict_szBaseKernelPatchLevel.as_dictN)Ú__name__Ú __module__Ú __qualname__rJrNr r r rrH[srHcs8eZdZd ‡fdd„ Zd dd„Zdd„Zdd „Z‡ZS) ÚKernelPatchLevelNcst||ƒj||ƒS)N)ÚsuperÚ__new__)ÚclsrrKrLrM)Ú __class__r rrTiszKernelPatchLevel.__new__cCs||_||_||_||_dS)N)rKrrLrM)rIrrKrLrMr r rÚ__init__lszKernelPatchLevel.__init__cGstj|j|jf|žŽS)N)rrErLr)rIrFr r rÚkmod_urlrszKernelPatchLevel.kmod_urlcGstj|j|jt|ƒf|žŽS)N)rrErLrr )rIrFr r rÚfile_urluszKernelPatchLevel.file_url)N)N)rOrPrQrTrWrXrYÚ __classcell__r r )rVrrRhs rRcs<eZdZ‡fdd„Zdd„Zdd„Zdd„Zd d „Z‡ZS) ÚLegacyKernelPatchLevelcsByt||ƒj||ƒStk r<}zt|ƒ‚WYdd}~XnXdS)N)rSrTr6r)rUrrKÚexc)rVr rrTzszLegacyKernelPatchLevel.__new__cCs||_||_d|_d|_dS)N)rKrrLrM)rIrrKr r rrW�szLegacyKernelPatchLevel.__init__cGs0dtjkr t|jt|ƒf|žŽSt|jf|žŽS)Nzpatches.kernelcare.com)rÚ PATCH_SERVERrGrr )rIrFr r rrX‡s zLegacyKernelPatchLevel.kmod_urlcGst|jt|ƒf|žŽS)N)rGrr )rIrFr r rrY�szLegacyKernelPatchLevel.file_urlcCst|jt|ƒ|ƒS)N)rRrr5)rIrLr r rÚupgrade�szLegacyKernelPatchLevel.upgrade) rOrPrQrTrWrXrYr^rZr r )rVrr[ys  r[cCs^y6ttjjtjdƒdƒ�}tj|jƒ|ƒWdQRXWn"t k rXt j ddd�YnXdS)Nzkernel_patch_level.jsonr"z!failed to dump kernel patch levelF)Ú print_msg) rr#r$rrr3ÚjsonÚdumprNr)rÚlogexc)Zkernel_patch_levelrr r rÚdump_kernel_patch_level”s rccCsTy,ttjjtjdƒƒ�}t|jƒƒSQRXWn"tk rNt j ddd�YnXdS)Nzkernel_patch_level.jsonz(failed to read dumped kernel patch levelF)r_) rr#r$rrr3r r0r)rrb)rr r rÚread_dumped_kernel_patch_levelœs rdcCstdd„|Dƒdd„dd�S)NcSsg|]}|tjj|ƒf‘qSr )r#r$r7)Ú.0Úitr r rú ¦sz'sort_files_by_ctime..cSs|dS)Nrr )Úpairr r rÚ§sz%sort_files_by_ctime..T)ÚkeyÚreverse)Úsorted)Z files_listr r rÚsort_files_by_ctime¤s rmc Cs\d}tjjdƒs|Stdƒ�6}x.|D]&}|jƒ}|jdƒr$|jddƒ\}}q$WWdQRX|S)Nz /var/crashz/etc/kdump.confzpath r)r#r$ÚisfilerrrÚsplit)Z kdump_pathZ kdump_confr Ú_r r rÚget_kdump_root¬s    rqcCs*tƒ}tjj|ƒsgStjtjj|dƒƒS)Nz*/vmcore)rqr#r$ÚisdirÚglobr)Ú kdump_rootr r rÚlist_kdump_vcore_filesºs rucCs*tƒ}tjj|ƒsgStjtjj|dƒƒS)Nz*/*.txt)rqr#r$rrrsr)rtr r rÚlist_kdump_txt_filesÂs rvcCs(tjjtjƒsgStjtjjtjdƒƒS)Nz*.log)r#r$rrrÚ KDUMPS_DIRrsrr r r rÚlist_crashreporter_log_filesÊsrxcCs(tjjtjƒsgSdd„tjtjƒDƒS)NcSsg|]}tjjtj|ƒ‘qSr )r#r$rrrw)rerfr r rrgÕsz0list_crashreporter_artifacts..)r#r$rrrrwÚlistdirr r r rÚlist_crashreporter_artifactsÑsrzcCstƒ}|sdSt|ƒddS)Nrr)rurm)Zkdumpsr r rÚkdumps_latest_event_timestampØsr{cCs>tjstjjtjƒr:tjtjddgddd�\}}}|jƒSdS)Nz is-activeÚkdumpT)Ú catch_stdoutÚ catch_stderrzsystemd-absent) rÚSKIP_SYSTEMCTL_CHECKr#r$rnÚ SYSTEMCTLrÚ run_commandr)rpÚstdoutr r rÚ kdump_statusásrƒcCstƒ}|sdSt|ƒddS)Nrr)rzrm)Z artifactsr r rÚ$crashreporter_latest_event_timestampésr„c Cs:d}tjj|ƒsdSt|dƒ�}|jƒjƒ}WdQRX|S)Nz/sys/module/kcare/versionr)r#r$r%rr0r)Zkmod_version_filerÚversionr r rÚget_current_kmod_versionòs   r†cCs6tƒ}|sdStjdddt||tjƒgƒjƒ}||kS)NTz /sbin/modinfoz-Fr…)r†rÚ check_outputrrÚKMOD_BINr)rr@Z old_versionr*r r rÚis_kmod_version_changedüs r‰cCstƒ}|stjƒSt|ƒS)N)Úloaded_patch_levelÚplatformrMr!)rr r rÚkcare_uname_susrŒcCs,tjjtjƒr"ttjdƒjƒjƒStƒSdS)Nr) r#r$r%rr&rr0rrŒr r r rÚ kcare_unamesr�cCs`ttƒƒd}|r\y t|ƒWn0tk rN}zt|dtƒƒ‚WYdd}~XnXttƒ|ƒSdS)Nz patch-levelzUnexpected patch state)Úparse_patch_descriptionÚloaded_patch_descriptionr5r6rÚ _patch_infor[r)ÚplÚer r rrŠs  rŠcCsJytjtjdgdd�Stjk rD}z|jtjkr6‚dSd}~XnXdS)NÚinfoT)Úcheckr) rr‡rÚ KPATCH_CTLÚ subprocessÚCalledProcessErrorÚ returncodeÚerrnoZEBUSY)r’r r rr�!s  r�cCsRydd„tdƒDƒSttfk rL}ztjdt|ƒdd�gSd}~XnXdS)NcSsg|]}|jƒd‘qS)r)ro)rer r r rrg-sz&get_loaded_modules..z /proc/modulesz#Error getting loaded modules list: F)r_)rÚOSErrorÚIOErrorrÚlogerrorr )Úexr r rÚget_loaded_modules*s ržcCsdtƒkrdSttƒdƒS)NÚkcarezkpatch-description)ržÚget_patch_valuer�r r r rr�3s r�cCstj|ƒj|ƒS)N)rÚ data_as_dictÚget)r“Zlabelr r rr ;sr c Csrdddddœ}|s|S|jdƒ\}}}|jdƒ\}}}|jdƒ\}}}|pLd|d<|pXd|d<||d <||d <|S) Nr;r)z patch-levelz patch-typez last-updatezkernel-versionú;ú:r<z patch-levelz patch-typez last-updatezkernel-version)Ú partition) ÚdescrDZlevel_type_timestamprpÚkernelZ level_typeÚ timestamprZ patch_typer r rrŽ?s  rŽcCshtjjtjdƒ}tjj|ƒrdt|dƒ�8}y|jƒ}tj |ƒSt t t t tfk rXYnXWdQRXdS)Nz kcare.stater)r#r$rrr3r%rr0ÚastZ literal_evalÚ SyntaxErrorršr6Ú TypeErrorÚUnicodeDecodeError)Z state_filerÚstater r rÚ get_stateSs   r®)5r©r™rsr.r`r#r‹r–rrrrrrÚerrorsrÚpy23r rrr!r+rr9rrGr5rHrRr[rcrdrmrqrurvrxrzÚcachedr{rƒr„r†r‰rŒr�rŠr�ržr�r rŽr®r r r rÚsV