}Ce^dZddlmZddlmZddlmZddlmZdZdd Zdd Z dd Z d Z dS)z> api that is suitable for both cPanel, Directadmin, interWorx )absolute_import)division)print_function) mysql_libcdS)z Retrieve panel name and it's version :return: dict: { 'CPName': 'panel_name', 'CPVer': 'panel_version', 'CPAdd': 'add_info'} or None if can't get info Nr/builddir/build/BUILDROOT/alt-python27-cllib-3.3.7-2.el7.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/cpapi/plugins/universal.pyget_cp_descriptionr s 4r NmysqlcN|dd}|d}|d}d}|r|dd|dz }|d z }tj|||| }|5}||cd d d S#1swxYwYd S) z Extracting database login control panel login pairs from mysql database supported for cPanel, interWorx, Directadmin :param dblogin: :param dbpass: :param dbhost: :param dbname: :param cplogin_lst: :return: host localhostloginpasszXSELECT User, LEFT(Db, LOCATE('\\', Db) - 1) FROM db WHERE User != '' and Db LIKE '%\\\%'z) and LEFT(Db, LOCATE('\\', Db) - 1) in ('z', 'z')z GROUP BY User)ruserpasswddbN)getjoinrMySQLConnectorconnect execute_query) access cplogin_lstdbnamedbhostdblogindbpasssql connectorrs r _dblogin_cplogin_pairsr"s ZZ , ,FWoG F^F eC^ 6;;{C[C[C[C[]] C(f7066CCCI     %$$%%%%%%%%%%%%%%%%%%s8BB!Bc<ddl}d|p|zS)z| Gets admin email :param str|None _hostname: hostname for testing :return: admin's email :rtype: string rNzroot@)socket gethostname) _hostnamer$s r get_admin_emailr'0s)MMM i76#5#5#7#7 88r FcdgS)z List all admins names in given control panel :param bool debug: Do produce debug output or don't :return: list of strings rootr)debugs r adminsr+;s 8Or c"|tvS)zl Return True if username is in admin names :param str username: user to check :return: bool )r+)usernames r is_adminr.Ds vxx r )Nr )N)F) __doc__ __future__rrrclcommonrr r"r'r+r.rr r r2s'&&&&&%%%%%%%%%%49999     r