%PDF- %PDF-
Direktori : /proc/3/root/usr/share/lve/modlscapi/user/ |
Current File : //proc/3/root/usr/share/lve/modlscapi/user/selector_usage_lib.pyo |
� �cc @ s� d d l Z d d l Z d d l m Z d d l m Z d d l m Z m Z m Z d e f d � � YZ d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d � Z d S( i����N( t etree( t deepcopy( t pretty_version_keyst cpanel_whmapit dump_loaded_modulest SelectorStatExceptionc B s e Z d Z RS( s Inner exception class ( t __name__t __module__t __doc__( ( ( s3 /usr/share/lve/modlscapi/user/selector_usage_lib.pyR s c C s( d j t j d � � j � } | d k S( s� Check status of cagefs - installed & enabled If not - selector is not applied, no need to query its settings :return: True is cagefs is installed and enabled, False otherwise t s# /usr/sbin/cagefsctl --cagefs-statust Enabled( t joint exec_commandt strip( t cagefs_status( ( s3 /usr/share/lve/modlscapi/user/selector_usage_lib.pyt cagefs_enabled s c c s� d j t j d � � } y t j | � j d � } Wn t k rM d } n Xx, | D]$ } | d } | d k rU | VqU qU Wd S( s` Retrieve versions from selector, EXCEPT native :return: selector versions iterator R s% /usr/bin/selectorctl --summary --jsont PHPConfigurationt versiont nativeN( ( R R t jsont loadst gett ValueError( t selector_datat selector_versionst itemt ver( ( s3 /usr/share/lve/modlscapi/user/selector_usage_lib.pyt get_selector_versions s c sG d j t j d j d � � � � } t � f d � | j d � D� � S( s� Retrieve selector users for given version :param version: selector version, e.g 7.2 :return: dict user: version, e.g. {user: alt-php72, user1: alt-php72} R s/ /usr/bin/selectorctl --list-users --version={v}t vc 3 s* | ] } | r | t � d � f Vq d S( s alt-phpN( R ( t .0t u( R ( s3 /usr/share/lve/modlscapi/user/selector_usage_lib.pys <genexpr>2 s t ,( R R t formatt dictt split( R t users( ( R s3 /usr/share/lve/modlscapi/user/selector_usage_lib.pyt get_selector_users+ s $c C sD t � s t � St � } x$ t � D] } | j t | � � q# W| S( sY Retrieve versions set for users in selector :return: dict { user: version } ( R R! R t updateR$ ( t users_verR ( ( s3 /usr/share/lve/modlscapi/user/selector_usage_lib.pyt get_selector_usage5 s c C s t d � j d � } | j | � d k r. | Sd | k r d t � k r t | � } t | � } t | � } t | j | t � � | � \ } } | | | <t | � } x[ | j � D]M \ } } | | k r� | | j i | | 6� | | j t | | � � q� q� W| S| Sd S( sD Check EA4 selector settings. Statistics per handler is inspected. Selector on EA4 does not change handler, it changes version only. Selector version is applied only in case of all the following circumstances: - suexec_module is enabled - system default version is not alt-php - selector setting is not native :param ver_domains_list: set of domains per version :param domain_user_dict: domain--user correspondence :param handlers_mapping: per handler statistics :return: set of domains per version checked against selector settings t php_get_system_default_versionR s alt-phpt suexec_moduleN( R R t NoneR t ea4_revert_domains_user_structt get_selector_domainsR t matchert sett iteritemsR% t merger( t ver_domains_listt domain_user_dictt handlers_mappingt default_vert user_domainst s_ver_domainst api_ver_listt default_domains_matchedt s_ver_matchedt handlerst hR ( ( s3 /usr/share/lve/modlscapi/user/selector_usage_lib.pyt ea4_selector_checkD s $ !c C sF t � } x6 | j � D]( \ } } | j | t � � j | � q W| S( s� Revert structure `domain`: `user` to structure `user`: set of domains :param domains_user_dict: dict of domains per user correspondence :return: dict user: set_of_domains ( R! R/ t setdefaultR. t add( t domains_user_dictR5 t domaint user( ( s3 /usr/share/lve/modlscapi/user/selector_usage_lib.pyR+ v s c C s^ t � } t � } xE | j � D]7 \ } } | j | t � � j | j | t � � � q W| S( s� Retrieve domains set for selector versions :param domains_of_user: `user`: set of domains structure :return: dict selector_ver: set of domains ( R'