Mini Shell
# 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}
)
Zerion Mini Shell 1.0