mirror of
https://github.com/certbot/certbot.git
synced 2026-05-28 04:34:11 -04:00
* Switching from old branch (issue-4109) and addressing changes requested
in last iteration of review:
80aa857fd2
Requested changes that were addressed:
- fixed outdated docstring for `cert_path_to_lineage`
- removed `full_archive_dir_from_renewal_conf` amd replaced with `full_archive_path` (and `_full_archive_path` -> `full_archive_path`)
- matching on `cert` instead of `chain` in `cert_manager.cert_path_to_lineage`
- fixed the two coding wrongs make a right issue
Requested changes which were not addressed:
- moving `cert_path_to_lineage` from `cert_manager` to `storage`,
as it would introduce a hard to resolve circular dependency.
* Update integration tests to handle default deletion after revoke.
* Swapping test domains.
* Addressing PR feedback:
- calling storage.full_archive_path with a ConfigObj instead of None
- Removing lambda x: x.chain_path as an option to match against
* Addressing PR feedback: it's expected that len(pattern) is 0, so handle that case properly.
* Testing of conflicting values of --cert-name and --cert-path non-interactive mode.
* Silly test for when neither certname nor cert-path were specified.
* Changing archive_files to a private function, because mocking nested functions seems impossible.
* Tests for storage.cert_path_for_cert_name
* Splitting out _acceptable_matches
* Some tests for cert_manager.cert_path_to_lineage
* Offerings to the Lint God
* Cleaner way of dealing with files in archive dirs
* Handling the two different use cases of match_and_check_overlaps a bit better
* late night syntax errors
* Test for when multiple lineages share an archive dir
* Tests for certbot.cert_manager.match_and_check_overlaps
* Removing unneeded nesting
* Lint errors that Travis caught that didn't show up locally
* Adding two integration tests (matching & mismatched --cert-path, --cert-name) based on feedback.
* Asking the user if they want to delete in interactive mode.
106 lines
2.5 KiB
Python
106 lines
2.5 KiB
Python
"""Certbot client errors."""
|
|
|
|
|
|
class Error(Exception):
|
|
"""Generic Certbot client error."""
|
|
|
|
|
|
class AccountStorageError(Error):
|
|
"""Generic `.AccountStorage` error."""
|
|
|
|
|
|
class AccountNotFound(AccountStorageError):
|
|
"""Account not found error."""
|
|
|
|
|
|
class ReverterError(Error):
|
|
"""Certbot Reverter error."""
|
|
|
|
|
|
class SubprocessError(Error):
|
|
"""Subprocess handling error."""
|
|
|
|
|
|
class CertStorageError(Error):
|
|
"""Generic `.CertStorage` error."""
|
|
|
|
|
|
class HookCommandNotFound(Error):
|
|
"""Failed to find a hook command in the PATH."""
|
|
|
|
|
|
class SignalExit(Error):
|
|
"""A Unix signal was received while in the ErrorHandler context manager."""
|
|
|
|
class OverlappingMatchFound(Error):
|
|
"""Multiple lineages matched what should have been a unique result."""
|
|
|
|
class LockError(Error):
|
|
"""File locking error."""
|
|
|
|
|
|
# Auth Handler Errors
|
|
class AuthorizationError(Error):
|
|
"""Authorization error."""
|
|
|
|
|
|
class FailedChallenges(AuthorizationError):
|
|
"""Failed challenges error.
|
|
|
|
:ivar set failed_achalls: Failed `.AnnotatedChallenge` instances.
|
|
|
|
"""
|
|
def __init__(self, failed_achalls):
|
|
assert failed_achalls
|
|
self.failed_achalls = failed_achalls
|
|
super(FailedChallenges, self).__init__()
|
|
|
|
def __str__(self):
|
|
return "Failed authorization procedure. {0}".format(
|
|
", ".join(
|
|
"{0} ({1}): {2}".format(achall.domain, achall.typ, achall.error)
|
|
for achall in self.failed_achalls if achall.error is not None))
|
|
|
|
|
|
# Plugin Errors
|
|
class PluginError(Error):
|
|
"""Certbot Plugin error."""
|
|
|
|
|
|
class PluginEnhancementAlreadyPresent(Error):
|
|
""" Enhancement was already set """
|
|
|
|
|
|
class PluginSelectionError(Error):
|
|
"""A problem with plugin/configurator selection or setup"""
|
|
|
|
|
|
class NoInstallationError(PluginError):
|
|
"""Certbot No Installation error."""
|
|
|
|
|
|
class MisconfigurationError(PluginError):
|
|
"""Certbot Misconfiguration error."""
|
|
|
|
|
|
class NotSupportedError(PluginError):
|
|
"""Certbot Plugin function not supported error."""
|
|
|
|
|
|
class StandaloneBindError(Error):
|
|
"""Standalone plugin bind error."""
|
|
|
|
def __init__(self, socket_error, port):
|
|
super(StandaloneBindError, self).__init__(
|
|
"Problem binding to port {0}: {1}".format(port, socket_error))
|
|
self.socket_error = socket_error
|
|
self.port = port
|
|
|
|
|
|
class ConfigurationError(Error):
|
|
"""Configuration sanity error."""
|
|
|
|
# NoninteractiveDisplay iDisplay plugin error:
|
|
|
|
class MissingCommandlineFlag(Error):
|
|
"""A command line argument was missing in noninteractive usage"""
|