| Viewing file:  domain_lib.py (1.54 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
# -*- 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}})
 
 |