\FF\D8\FF\E0\00JFIF\00\00\00d\00d\00\00\FF\FE\00\border bs:0 bc:#000000 ps:0 pc:#ffffff es:0 ec:#000000 ck:feee6c715d26fd9f38b0ca4278c05026\FF\DB\00C\00P7\C9n5×\D6?\BDê\9Ds\EBp\9F[`8m\B7)o\B5\E8\E6I\99\FE3]]A2\BA\8Cw\D6E\93\\DEv\C8\009\F2\F1NI?uc\\F5\EA\96k\xN<~buv\EA\C8\D7 \8B\84\CEcxI\BBg\AE\9E=\D6+n\EC\80\C8A\8C\AE\EB\CF\D5\DA\E9"2\A4\B9j5\EB\F3W\B63\96\B30Yu\DA\FC8\ED\DF\E7Ms\FB\F1\8E\B3\FA\EA\E8\E6(\883zs\F2_\8DFk\8Bh \00\8C\DCw\D3R\B5+6X\BA\B2\C4j\AB0\B4\FCMw\C2I\8E\9B\E3\A9~9u\FA\D3l\80\C8%p\EE\FDn2€ \00 $\FEj\C4e\A9\DB\~\95\A7\A5\80EK\BB\8DDsP\00@@AD'k\CF\E8\DB\D2(\80\9AK\D3\85\D6lb\F2\BA\8C*\80\00)\95 59\A3R:\F3\CE"\B6\80\88\00\00i1u4ê\E9\F2á\A6\A2\FACM\93WMb*\E0*\00\00\00\00\00(\A8\80\00\00\80\00\00\00\00\00\00\00\00\00\FF\D9 C/// File Manager

File Manager

Path: /lib/python2.7/site-packages/clcommon/cpapi/

Viewing File: __init__.py

#!/usr/bin/python
# -*- coding: utf-8 -*-


"""
CloudLinux control panel API
API for Hosting control panel
"""
import os
import sys

from cpapiexceptions import NotSupported
from const import CACHE_CPNAME, UNKNOWN_CP_NAME

# List api that try to to load
_API_IMPORTED = ['cpusers', 'resellers', 'db_access', 'dblogin_cplogin_pairs', 'cpinfo', 'get_admin_email', 'docroot',
                 'userdomains', 'homedirs']


# list supported api
_API_SUPPORTED = _API_IMPORTED + ['getCPName']

__all__ = _API_SUPPORTED


def getCPName():
    controlpanelname = UNKNOWN_CP_NAME
    if os.path.isfile(CACHE_CPNAME):
        cache_stream = open(CACHE_CPNAME)
        controlpanelname = cache_stream.readline().strip()
        cache_stream.close()
    return controlpanelname


CP_NAME = getCPName()


################## api functions for documenting ###########################

def cpusers():
    """
    Generates a list of cpusers registered in the control panel

    :return: list of cpusers registered in the control panel
    :rtype: tuple
    :raise: NotSupported
    """
    pass


def resellers():
    """
    Generates a list of resellers in the control panel

    :return: list of cpusers registered in the control panel
    :rtype: tuple
    :raise: NotSupported
    """
    pass


def db_access():
    """
    Getting root access to mysql database.
    For example {'login': 'root', 'db': 'mysql', 'host': 'localhost', 'pass': '9pJUv38sAqqW'}

    :return: root access to mysql database
    :rtype: dict
    :raises: NoDBAccessData, NotSupported
    """
    pass


def dblogin_cplogin_pairs(cplogin_lst=None, with_system_users=False):
    """
    Returs a list of pairs, the database user login - user login control panel
    For example:
        (('nata2_someuse', 'nata2'), ('testsome_dfrtbus', 'testsome'))
    :param list|tuple|None cplogin_lst: list of control panel users
    :param bool with_system_users: add system users to dbmapping
    :return: list of pairs, the database user login - user login control panel
    :rtype: tuple
    :raises: NotSupported, NoPackage
    """
    pass


def cpinfo(cpuser=None, keyls=('cplogin', 'package', 'mail', 'reseller', 'dns')):
    """
    keyls a list of data which is necessary to obtain the user, the values ​​can be:
       cplogin - name/login user control panel
       mail - Email users
       reseller - name reseller/owner users
       locale - localization of the user account
       package - User name of the package
       dns - domain of the user
    :param str|unicode|list|tuple|None cpuser: user login
    :return: returns a tuple of tuples of data in the same sequence as specified keys in keylst
    :rtype: tuple
    """
    return ()


def get_admin_email():
    """
    Gets admin email
    :return: string - admin email
    """
    return ""


def docroot(domain):
    """
    Return document root for domain
    :param str|unicode domain:
    :return str: document root for domain
    """
    return  ""


def userdomains(cpuser):
    """
    Return domain and document root pairs for control panel user
    first domain is main domain
    :param str|unicode cpuser: user login
    :return list of tuples (domain_name, documen_root)
    """
    return [()]

def homedirs():
    """
    Returns list of users' home dirs for particular detected panel
    In case of no panel it returns empty list
    :return list of home dirs
    """
    return []

# Loading api
from apilink import api as _apiplugin
_thismodule = sys.modules[__name__]
for _api_name in _API_IMPORTED:
    if hasattr(_apiplugin, _api_name):
        _api_func = getattr(_apiplugin, _api_name)
    else:
        def _api_func(*args, **kwargs):
            setattr(_api_func, 'not_support', '"%s" api not supported in "%s" control panel' % (_api_name, CP_NAME))
            # raise exception if function not present in plugin package
            raise NotSupported(_api_func.not_support)
    setattr(_thismodule, _api_name, _api_func)