/
opt
/
cloudlinux
/
venv
/
lib64
/
python3.11
/
site-packages
/
cllimits
/
Upload Filee
HOME
# -*- coding: utf-8 -*- # domainlib.py - library for miscelaneous domain operations # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2019 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT from clcommon import cpapi from clcommon.clexception import FormattedException from clcommon.cpapi import NotSupported class DomainException(FormattedException): pass class Domain: def __init__(self): self._userdomain_cache = None # type: dict[str, str] def get_user_domain(self, username): """ Retrive main domain for supplied user :param username: User name :return: Domain name or N/A """ if self._userdomain_cache is None: try: self._userdomain_cache = dict(cpapi.cpinfo(keyls=('cplogin', 'dns'))) except NotSupported: self._userdomain_cache = {} return self._userdomain_cache.get(username, 'N/A') def get_user_name_by_domain(self, domain_name): """ Retrive username by domain :param domain_name: Domain name :return: Username """ try: username = cpapi.domain_owner(domain_name) if username: return username except (IOError, cpapi.cpapiexceptions.NotSupported) as e: raise DomainException(str(e)) from e raise DomainException({'message': "There is no domain '%(domain)s'", 'context': {'domain': domain_name}})