mirror of
https://github.com/borgbackup/borg.git
synced 2025-01-30 19:21:17 +00:00
delete a repo without manifest
This commit is contained in:
parent
6a70d9968c
commit
e10d543ef4
1 changed files with 13 additions and 6 deletions
|
@ -19,7 +19,7 @@
|
||||||
from .helpers import Error, location_validator, archivename_validator, format_line, format_time, format_file_size, \
|
from .helpers import Error, location_validator, archivename_validator, format_line, format_time, format_file_size, \
|
||||||
parse_pattern, PathPrefixPattern, to_localtime, timestamp, safe_timestamp, \
|
parse_pattern, PathPrefixPattern, to_localtime, timestamp, safe_timestamp, \
|
||||||
get_cache_dir, prune_within, prune_split, \
|
get_cache_dir, prune_within, prune_split, \
|
||||||
Manifest, remove_surrogates, update_excludes, format_archive, check_extension_modules, Statistics, \
|
Manifest, NoManifestError, remove_surrogates, update_excludes, format_archive, check_extension_modules, Statistics, \
|
||||||
dir_is_tagged, bigint_to_int, ChunkerParams, CompressionSpec, is_slow_msgpack, yes, sysinfo, \
|
dir_is_tagged, bigint_to_int, ChunkerParams, CompressionSpec, is_slow_msgpack, yes, sysinfo, \
|
||||||
EXIT_SUCCESS, EXIT_WARNING, EXIT_ERROR, log_multi, PatternMatcher
|
EXIT_SUCCESS, EXIT_WARNING, EXIT_ERROR, log_multi, PatternMatcher
|
||||||
from .logger import create_logger, setup_logging
|
from .logger import create_logger, setup_logging
|
||||||
|
@ -397,10 +397,11 @@ def do_rename(self, args, repository, manifest, key, cache, archive):
|
||||||
cache.commit()
|
cache.commit()
|
||||||
return self.exit_code
|
return self.exit_code
|
||||||
|
|
||||||
@with_repository(exclusive=True)
|
@with_repository(exclusive=True, manifest=False)
|
||||||
def do_delete(self, args, repository, manifest, key):
|
def do_delete(self, args, repository):
|
||||||
"""Delete an existing repository or archive"""
|
"""Delete an existing repository or archive"""
|
||||||
if args.location.archive:
|
if args.location.archive:
|
||||||
|
manifest, key = Manifest.load(repository)
|
||||||
with Cache(repository, key, manifest, lock_wait=self.lock_wait) as cache:
|
with Cache(repository, key, manifest, lock_wait=self.lock_wait) as cache:
|
||||||
archive = Archive(repository, key, manifest, args.location.archive, cache=cache)
|
archive = Archive(repository, key, manifest, args.location.archive, cache=cache)
|
||||||
stats = Statistics()
|
stats = Statistics()
|
||||||
|
@ -417,9 +418,15 @@ def do_delete(self, args, repository, manifest, key):
|
||||||
else:
|
else:
|
||||||
if not args.cache_only:
|
if not args.cache_only:
|
||||||
msg = []
|
msg = []
|
||||||
msg.append("You requested to completely DELETE the repository *including* all archives it contains:")
|
try:
|
||||||
for archive_info in manifest.list_archive_infos(sort_by='ts'):
|
manifest, key = Manifest.load(repository)
|
||||||
msg.append(format_archive(archive_info))
|
except NoManifestError:
|
||||||
|
msg.append("You requested to completely DELETE the repository *including* all archives it may contain.")
|
||||||
|
msg.append("This repository seems to have no manifest, so we can't tell anything about its contents.")
|
||||||
|
else:
|
||||||
|
msg.append("You requested to completely DELETE the repository *including* all archives it contains:")
|
||||||
|
for archive_info in manifest.list_archive_infos(sort_by='ts'):
|
||||||
|
msg.append(format_archive(archive_info))
|
||||||
msg.append("Type 'YES' if you understand this and want to continue: ")
|
msg.append("Type 'YES' if you understand this and want to continue: ")
|
||||||
msg = '\n'.join(msg)
|
msg = '\n'.join(msg)
|
||||||
if not yes(msg, false_msg="Aborting.", truish=('YES', ),
|
if not yes(msg, false_msg="Aborting.", truish=('YES', ),
|
||||||
|
|
Loading…
Reference in a new issue