Viewing file: __init__.py (3.89 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#!/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)
|