117 lines
2.8 KiB
Python
117 lines
2.8 KiB
Python
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
#
|
|
"""Satori Discovery Errors."""
|
|
|
|
|
|
class SatoriException(Exception):
|
|
|
|
"""Parent class for Satori exceptions.
|
|
|
|
Accepts a string error message that that accept a str description.
|
|
"""
|
|
|
|
|
|
class UndeterminedPlatform(SatoriException):
|
|
|
|
"""The target system's platform could not be determined."""
|
|
|
|
|
|
class SatoriInvalidNetloc(SatoriException):
|
|
|
|
"""Netloc that cannot be parsed by `urlparse`."""
|
|
|
|
|
|
class SatoriInvalidDomain(SatoriException):
|
|
|
|
"""Invalid Domain provided."""
|
|
|
|
|
|
class SatoriInvalidIP(SatoriException):
|
|
|
|
"""Invalid IP provided."""
|
|
|
|
|
|
class SatoriShellException(SatoriException):
|
|
|
|
"""Invalid shell parameters."""
|
|
|
|
|
|
class SatoriAuthenticationException(SatoriException):
|
|
|
|
"""Invalid login credentials."""
|
|
|
|
|
|
class SatoriSMBAuthenticationException(SatoriAuthenticationException):
|
|
|
|
"""Invalid login credentials for use over SMB to server."""
|
|
|
|
|
|
class SatoriSMBLockoutException(SatoriSMBAuthenticationException):
|
|
|
|
"""Too many invalid logon attempts, the user has been locked out."""
|
|
|
|
|
|
class SatoriSMBFileSharingException(SatoriException):
|
|
|
|
"""Incompatible shared access flags for a file on the Windows system."""
|
|
|
|
|
|
class GetPTYRetryFailure(SatoriException):
|
|
|
|
"""Tried to re-run command with get_pty to no avail."""
|
|
|
|
|
|
class DiscoveryException(SatoriException):
|
|
|
|
"""Discovery exception with custom message."""
|
|
|
|
|
|
class SatoriDuplicateCommandException(SatoriException):
|
|
|
|
"""The command cannot be run because it was already found to be running."""
|
|
|
|
|
|
class UnsupportedPlatform(DiscoveryException):
|
|
|
|
"""Unsupported operating system or distro."""
|
|
|
|
|
|
class SystemInfoCommandMissing(DiscoveryException):
|
|
|
|
"""Command that provides system information is missing."""
|
|
|
|
|
|
class SystemInfoCommandOld(DiscoveryException):
|
|
|
|
"""Command that provides system information is outdated."""
|
|
|
|
|
|
class SystemInfoNotJson(DiscoveryException):
|
|
|
|
"""Command did not produce valid JSON."""
|
|
|
|
|
|
class SystemInfoMissingJson(DiscoveryException):
|
|
|
|
"""Command did not produce stdout containing JSON."""
|
|
|
|
|
|
class SystemInfoInvalid(DiscoveryException):
|
|
|
|
"""Command did not produce valid JSON or XML."""
|
|
|
|
|
|
class SystemInfoCommandInstallFailed(DiscoveryException):
|
|
|
|
"""Failed to install package that provides system information."""
|