test/automated-pytest-suite/utils/exceptions.py

262 lines
5.3 KiB
Python

class TiSError(Exception):
"""
Base class for TiS test automation exceptions.
Notes:
Each module (or package depends on which makes more sense) should
have its own sub-base-class that
inherits this class.Then the specific exception for that module/package
should inherit the sub-base-class.
Examples:
sub-base-class for ssh.py: SSHException(TiSError); ssh retry timeout
exception: SSHRetryTimeout(SSHException)
"""
message = "An unknown exception occurred"
def __init__(self, detailed_message="No details provided"):
super(TiSError, self).__init__()
self._error_string = self.message + "\nDetails: " + detailed_message
def __str__(self):
return self._error_string
class NoMatchFoundError(TiSError):
message = "No match found."
class InvalidStructure(TiSError):
message = "Invalid cli output table structure."
class SSHException(TiSError):
"""
Base class for SSH Exceptions. All SSH exceptions thrown from utils >
ssh.py module should inherit this class.
Examples: SSHRetryTimeout(SSHException)
"""
message = "SSH error."
class TelnetError(TiSError):
message = "Telnet Error"
class TelnetTimeout(TelnetError):
message = 'Telnet timeout'
class TelnetEOF(TelnetError):
message = 'Telnet EOF.'
class LocalHostError(TiSError):
message = 'Localhost error.'
class SSHRetryTimeout(SSHException):
message = "Timed out to connect to host."
class IncorrectCredential(SSHException):
message = "Login credential rejected by host."
class SSHExecCommandFailed(SSHException):
"""Raised when remotely executed command returns nonzero status."""
message = "Failed to execute command via SSH."
class TimeoutException(SSHException):
message = "Request(s) timed out"
class ImproperUsage(SSHException):
message = "Improper use of test framework"
class ActiveControllerUnsetException(SSHException):
message = ("Active controller ssh client is not set! "
"Please use ControllerClient.set_active_controller(ssh_client) "
"to set an active controller client.")
class NatBoxClientUnsetException(SSHException):
message = "NatBox ssh client it not set! Please use " \
"NATBoxClient.set_natbox_client(ip) to set an natbox client"
class CLIRejected(TiSError):
"""Throw when cli command is rejected due to unexpected reasons, such as
missing arguments"""
message = "CLI command is rejected."
class HostError(TiSError):
"""Generic Host error"""
message = "Host error."
class HostPostCheckFailed(HostError):
"""Throws when expected host status is not reached after running certain
host action cli command."""
message = "Check failed post host operation."
class HostPreCheckFailed(HostError):
message = "Check failed pre host operation."
class HostTimeout(HostError):
message = "Host operation timed out."
class VMError(TiSError):
message = "VM error."
class VMPostCheckFailed(VMError):
message = "Check failed post VM operation."
class VMNetworkError(VMError):
message = "VM network error."
class VMTimeout(VMError):
message = "VM operation timed out."
class VMOperationFailed(VMError):
"""Failure indicated by CLI output"""
message = "VM operation failed."
class VolumeError(TiSError):
message = "Volume error."
class ImageError(TiSError):
message = "Image error."
class FlavorError(TiSError):
message = "Flavor error."
class CommonError(TiSError):
message = "Setup/Teardown error."
class NovaError(TiSError):
message = "Nova error."
class NeutronError(TiSError):
message = "Neutron error."
class HeatError(TiSError):
message = "Heat error."
class CeilometerError(TiSError):
message = "Ceilometer error."
class SysinvError(TiSError):
message = 'Sysinv error.'
class ContainerError(SysinvError):
message = 'Container error.'
class CinderError(TiSError):
message = 'Cinder error.'
class KeystoneError(TiSError):
message = 'Keystone error.'
class BuildServerError(TiSError):
message = "Build Server error."
class ThreadingError(TiSError):
message = "Multi threading error."
class VLMError(TiSError):
message = "VLM Operation Error."
class SwiftError(TiSError):
message = "Swift error."
class OrchestrationError(TiSError):
message = 'Orchestration error.'
class UpgradeError(TiSError):
message = 'Upgrade error.'
class BackupSystem(TiSError):
message = 'System Backup error.'
class RestoreSystem(TiSError):
message = 'System Restore error.'
class StorageError(TiSError):
message = 'Storage error.'
class HorizonError(TiSError):
message = 'Horizon error.'
class IxiaError(TiSError):
message = 'Ixia error.'
class RefStackError(TiSError):
message = 'RefStack test(s) failed.'
class DovetailError(TiSError):
message = 'Dovetail test(s) failed.'
class MuranoError(TiSError):
message = 'Murano error.'
class DCError(TiSError):
message = 'DC error.'
class PatchError(TiSError):
message = 'Patch error.'
class KubeError(TiSError):
message = 'Kubernetes error.'
class KubeCmdError(KubeError):
message = 'Kubernetes cmd failed.'
class InstallError(TiSError):
message = 'Install error'
class K8sError(TiSError):
message = 'K8s error'