a ”ˆ«hÙã@s€ddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z ddl m Z ej ¡ZdgZGdd„deƒZdS)éN)Ú GlobalConfig)ÚcommandsÚManagercsœeZdZdZd‡fdd„ Zedd„ƒZedd„ƒZed d „ƒZd d „Z d d„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zdd„Zejfdd„Z‡ZS) rz? Manager creates plugin instances and keeps a track of them. NcsJtt|ƒ ¡||_||_||_||_g|_g|_|p:t ƒ|_ t ƒ|_ dS©N) ÚsuperrÚ__init__Ú_plugins_repositoryÚ_monitors_repositoryÚ_def_instance_priorityÚ_hardware_inventoryÚ _instancesÚ_pluginsrÚ_configrÚ_cmd)ÚselfÚplugins_repositoryZmonitors_repositoryZdef_instance_priorityZhardware_inventoryZconfig©Ú __class__©ú7/usr/lib/python3.9/site-packages/tuned/units/manager.pyrs zManager.__init__cCs|jSr)r ©rrrrÚplugins!szManager.pluginscCs|jSr)r rrrrÚ instances%szManager.instancescCs|jSr)rrrrrr)szManager.plugins_repositorycCsF|jdurdS|j tj¡}|dur0|j d¡}t |j|tj ¡duS)NTz /proc/cpuinfo) Z cpuinfo_regexrÚgetÚconstsZCFG_CPUINFO_STRINGrZ read_fileÚreÚsearchÚ MULTILINE)rÚunitZcpuinfo_stringrrrÚ_unit_matches_cpuinfo-s   ÿÿzManager._unit_matches_cpuinfocCsH|jdurdS|j tj¡}|dur2d t ¡¡}t  |j|tj ¡duS)NTú ) Z uname_regexrrrZCFG_UNAME_STRINGÚjoinÚosÚunamerrr)rrZ uname_stringrrrÚ_unit_matches_uname6s  ÿÿzManager._unit_matches_unamec Cs@g}t| ¡ƒD]€\}}|js.t d|¡q| |¡sHt d|¡q| |¡sbt d|¡q|jdurzt|j ƒ|_n t|jƒ|_|  |¡q|j dd„dt   ¡}|D]}d||j<q®t| ¡ƒD]À\}}z$|j |¡}|||<|j  |¡WqÊtjjjy@} z*t d|| f¡WYd} ~ qÊWYd} ~ qÊd} ~ 0tyˆ} z0t d|¡t | ¡WYd} ~ qÊWYd} ~ qÊd} ~ 00qÊg} |D]b}||j}|dur°q”t d |j|jf¡| |j|j|j|j|j|j|j ¡} |   | ¡q”| D](} | j! "¡| j! #| ¡| j! $| ¡qü|j% &¡|j' (| ¡dS) Nzskipping disabled instance '%s'z.skipping instance '%s', cpuinfo does not matchz,skipping instance '%s', uname does not matchcSs|jSr)Úpriority)ÚxrrrÚRóz Manager.create..)Úkeyz6skipping plugin '%s', not supported on your system: %szfailed to initialize plugin %szcreating '%s' (%s)))ÚlistÚitemsZenabledÚlogÚdebugrr$r%Úintr ÚappendÚsortÚ collectionsÚ OrderedDictÚtyperÚcreater ÚtunedrÚ exceptionsZNotSupportedPluginExceptionÚinfoÚ ExceptionÚerrorÚ exceptionÚnameZcreate_instanceZdevicesZdevices_udev_regexZ script_preZ script_postÚoptionsÚpluginZ init_devicesZassign_free_devicesZinitialize_instancer Zstart_processing_eventsr Úextend) rZinstances_configZinstance_info_listZ instance_nameZ instance_infoZplugins_by_nameZ plugin_nameZnoner=ÚerZ new_instanceÚinstancerrrr4?s`         $    þ   zManager.createc Osfz||i|¤ŽWSty`}z8t ¡}t d|t|ƒf¡t |¡|WYd}~Sd}~00dS)Nz"BUG: Unhandled exception in %s: %s)r8Ú tracebackÚ format_excr,r9Ústr)rZcallerZexc_retÚfÚargsÚkwargsr?ZtracerrrÚ _try_callws ÿ zManager._try_callcCs„|jD](}t d|j¡| dd|jj|¡q|jD]$}t d|j¡| dd|j¡q6|j j   ¡|jdd…=|jdd…=dS)Nzdestroying instance %sÚ destroy_allzcleaning plugin '%s') r r,r-r;rGr=Zdestroy_instancer ZcleanuprrÚclear)rr@r=rrrrHs þ   zManager.destroy_allcCs0|jjD]"}t d|¡| dd|j¡qdS)Nzupdating monitor %sÚupdate_monitors)r Zmonitorsr,r-rGÚupdate)rZmonitorrrrrJŽs zManager.update_monitorscCs |jD]}| dd|j¡qdS)NÚ start_tuning)r rGZ apply_tuning©rr@rrrrL“s ÿzManager.start_tuningcCs2d}|jD]"}| dd|j|¡}|dkr d}q |S)NTÚ verify_tuningF)r rGrN)rZignore_missingÚretr@ÚresrrrrN˜s ÿzManager.verify_tuningcCs |jD]}| dd|j¡qdS)NÚ update_tuning)r rGrQrMrrrrQ¡s ÿzManager.update_tuningcCs0|j ¡t|jƒD]}| dd|j|¡qdS)NÚ stop_tuning)r Zstop_processing_eventsÚreversedr rGZunapply_tuning)rZrollbackr@rrrrR®s  ÿzManager.stop_tuning)N)Ú__name__Ú __module__Ú __qualname__Ú__doc__rÚpropertyrrrrr$r4rGrHrJrLrNrQrZ ROLLBACK_SOFTrRÚ __classcell__rrrrrs&ÿ      8    )r1r"rrAZtuned.exceptionsr5Z tuned.logsZtuned.plugins.exceptionsZ tuned.constsrZtuned.utils.global_configrZtuned.utils.commandsrZlogsrr,Ú__all__ÚobjectrrrrrÚs