/
opt
/
cloudlinux
/
venv
/
lib
/
python3.11
/
site-packages
/
clwpos
/
Upload Filee
HOME
# coding=utf-8 # # Copyright © Cloud Linux GmbH & Cloud Linux Software, Inc 2010-2020 All Rights Reserved # # Licensed under CLOUD LINUX LICENSE AGREEMENT # http://cloudlinux.com/docs/LICENSE.TXT from __future__ import absolute_import from typing import Dict, Optional from clcommon.lib.cledition import is_cl_solo_edition from clwpos import gettext as _ class WposError(Exception): def __init__(self, message: str = '', context: Optional[Dict] = None, warning: str = None, details: Optional[str] = None): super().__init__() self.context = context if context else dict() self.warning = warning self.message = message self.details = details def __str__(self): return self.message class WpCliCommandError(WposError): pass class WPOSLicenseMissing(WposError): """WordPress Licence Exception """ SHARED_DOCS_URL = 'https://docs.cloudlinux.com/cloudlinux_installation/#activation' SOLO_DOCS_URL = 'https://docs.solo.cloudlinux.com/activation/' def __init__(self): super(WPOSLicenseMissing, self).__init__( message=_("CloudLinux license isn't valid. " "Follow the (%(license_docs_url)s) guide " "and activate your CloudLinux instance."), context=dict( license_docs_url=self.SOLO_DOCS_URL # TODO: [unification] doc link is really different for solo and shared if is_cl_solo_edition(skip_jwt_check=True) else self.SHARED_DOCS_URL ) ) class WpCliUnsupportedException(WposError): """ Exception when wp-cli could not be run for some reasons """ pass class WrongWpPathException(WposError): """Exception when wp-path is incorrect""" pass class ModuleIsAlreadyDisabledException(WposError): """Exception when module is disabled second time""" pass class WpUserMissing(WposError): """ Happens when we cannot find user in /etc/passwd by name """ def __init__(self, username): super(WpUserMissing, self).__init__( message=_("User account '%(username)s' is not found in system. " "Check '/etc/passwd' and make sure that it really exists."), context={"username}": username}) class WpNotExists(WposError): """ Happens when passed wp instance does not exist on system """ def __init__(self, wp_path): super(WpNotExists, self).__init__( message=_('The %(path)s path to WordPress does not exist.'), context=dict(path=wp_path) ) class WpConfigWriteFailed(WposError): """ Happens when we are unable to write wp-config.php file """ def __init__(self, wp_config_path, error): super(WpConfigWriteFailed, self).__init__( message=_("Unable to update the %(file)s config file. " "Error details from the operation system are available below."), context={"file": wp_config_path}, details=str(error) ) class WposDaemonLockError(WposError): """Exception when impossibly to acqure lock""" pass class PhpBrokenException(WposError): """Happens when binary file is boken (rpm -V fails)""" def __init__(self, php_bin_path: str, stderr: str): super(PhpBrokenException, self).__init__( message=_("PHP binary %(php_bin)s is broken."), details=_('The operating system reported error "%(system_error)s".'), context={"php_bin": php_bin_path, 'system_error': stderr} )