g ddlZddlZddlmZmZddlmZddlmZm Z m Z m Z m Z m Z mZmZmZdZeddZdZd Zed d Zd ZdS) N)runtask)install_package) STATE_FAILED STATE_MASKED STATE_RUNNING STATE_STOPPEDSTATE_UNMASKED STATE_ENABLEDSTATE_DISABLEDget_service_stateset_service_statecDtddtdS)Nz lve-statsT) reinstall)renable_lve_servicespy/clconfigure/limits.pyinitialize_lvestatsrs'K40000rz2Changing default limits state to '{desired_state}'cR|dkrtgddStd)z Brings default limits to given state (unlimited | default). May be executed more that once, does't crash on future calls unlimited)lvectlsetdefaultrz$Another states temporary unavailableN)r RuntimeError) desired_states rset_default_limits_staters9  ## 5 5 566666ABBBrc^tttfD]}dD]}t||dS)z, Turn off all lve-related services. lvelve_namespaceslvestatsrN)r r rrstateservices rdisable_lve_servicesr&*sK >..F . .G eW - - - - ...rc^tttfD]}dD]}t||dS)z+ Turn on all lve-related services. rN)r rr rr#s rrr3sK!-?..F . .G eW - - - - ...rzUnloading lve modulecNtddg}|j|jngfddD}|rtddg|tgd}tjd rt jd dSdS) zO Restart services that still use lve device and unload lve module then lsofz/dev/lveNcLg|]tfdD S)c3BK|]}|VdS)N) startswith).0liner%s r z/unload_lve_module...Gs/EEDtw''EEEEEEr)any)r-r%res_stdout_liness @r z%unload_lve_module..EsN EEEE4DEEE E Er)mysqldmysqlmariadbhttpdapache2 systemctlrestart)modprobez-rfkmodlvez/sys/module/kmodlvez:Failed to unload the lve module. Please reboot the server.)rstdoutsplitpathlibPathexistsloggingwarning)resservicesr1s @runload_lve_modulerE<s vz" # #C-0Z-Csz'')))QH 1 [) /h /000 ,,, - -C|)**1133VTUUUUUVVrctdtkrdSttdttdtt dtt ddS)z Apply workaround for the case When `systemctl stop lve` makes it transition to "failed" state instead of "inactive" r N)r rrr rr rrrrapply_workaround_lve_failedrGRsb <//ne,,,mU+++mU+++lE*****r)rAr> clconfigurerrclconfigure.packagesrclconfigure.servicesrrrr r r r r rrrr&rrErGrrrrKsK !!!!!!!!000000                       :;;CC<;C......VVV* + + + + +r