mirror of
https://github.com/borgbackup/borg.git
synced 2024-12-26 01:37:20 +00:00
Merge pull request #6827 from ThomasWaldmann/repo-info-borg2
check repo version / borg rinfo extended
This commit is contained in:
commit
01d40057db
3 changed files with 26 additions and 0 deletions
|
@ -191,6 +191,9 @@ def wrapper(self, args, **kwargs):
|
||||||
args=args)
|
args=args)
|
||||||
|
|
||||||
with repository:
|
with repository:
|
||||||
|
if repository.version not in (2, ):
|
||||||
|
raise Error("This borg version only accepts version 2 repos for -r/--repo. "
|
||||||
|
"You can use 'borg transfer' to copy archives from old to new repos.")
|
||||||
if manifest or cache:
|
if manifest or cache:
|
||||||
kwargs['manifest'], kwargs['key'] = Manifest.load(repository, compatibility)
|
kwargs['manifest'], kwargs['key'] = Manifest.load(repository, compatibility)
|
||||||
if 'compression' in args:
|
if 'compression' in args:
|
||||||
|
@ -233,6 +236,8 @@ def wrapper(self, args, **kwargs):
|
||||||
args=args)
|
args=args)
|
||||||
|
|
||||||
with repository:
|
with repository:
|
||||||
|
if repository.version not in (1, 2, ):
|
||||||
|
raise Error("This borg version only accepts version 1 or 2 repos for --other-repo.")
|
||||||
kwargs['other_repository'] = repository
|
kwargs['other_repository'] = repository
|
||||||
if manifest or key or cache:
|
if manifest or key or cache:
|
||||||
manifest_, key_ = Manifest.load(repository, compatibility)
|
manifest_, key_ = Manifest.load(repository, compatibility)
|
||||||
|
@ -1692,12 +1697,16 @@ def do_rinfo(self, args, repository, manifest, key, cache):
|
||||||
print(textwrap.dedent("""
|
print(textwrap.dedent("""
|
||||||
Repository ID: {id}
|
Repository ID: {id}
|
||||||
Location: {location}
|
Location: {location}
|
||||||
|
Repository version: {version}
|
||||||
|
Append only: {append_only}
|
||||||
{encryption}
|
{encryption}
|
||||||
Cache: {cache.path}
|
Cache: {cache.path}
|
||||||
Security dir: {security_dir}
|
Security dir: {security_dir}
|
||||||
""").strip().format(
|
""").strip().format(
|
||||||
id=bin_to_hex(repository.id),
|
id=bin_to_hex(repository.id),
|
||||||
location=repository._location.canonical_path(),
|
location=repository._location.canonical_path(),
|
||||||
|
version=repository.version,
|
||||||
|
append_only=repository.append_only,
|
||||||
**info))
|
**info))
|
||||||
print(str(cache))
|
print(str(cache))
|
||||||
return self.exit_code
|
return self.exit_code
|
||||||
|
|
|
@ -133,6 +133,7 @@ def __init__(self, data):
|
||||||
'break_lock': (),
|
'break_lock': (),
|
||||||
'negotiate': ('client_data', ),
|
'negotiate': ('client_data', ),
|
||||||
'open': ('path', 'create', 'lock_wait', 'lock', 'exclusive', 'append_only', ),
|
'open': ('path', 'create', 'lock_wait', 'lock', 'exclusive', 'append_only', ),
|
||||||
|
'info': (),
|
||||||
'get_free_nonce': (),
|
'get_free_nonce': (),
|
||||||
'commit_nonce_reservation': ('next_unreserved', 'start_nonce', ),
|
'commit_nonce_reservation': ('next_unreserved', 'start_nonce', ),
|
||||||
}
|
}
|
||||||
|
@ -150,6 +151,7 @@ class RepositoryServer: # pragma: no cover
|
||||||
'scan',
|
'scan',
|
||||||
'negotiate',
|
'negotiate',
|
||||||
'open',
|
'open',
|
||||||
|
'info',
|
||||||
'put',
|
'put',
|
||||||
'rollback',
|
'rollback',
|
||||||
'save_key',
|
'save_key',
|
||||||
|
@ -580,6 +582,9 @@ def do_open():
|
||||||
self.id = self.open(path=self.location.path, create=create, lock_wait=lock_wait,
|
self.id = self.open(path=self.location.path, create=create, lock_wait=lock_wait,
|
||||||
lock=lock, exclusive=exclusive, append_only=append_only,
|
lock=lock, exclusive=exclusive, append_only=append_only,
|
||||||
make_parent_dirs=make_parent_dirs)
|
make_parent_dirs=make_parent_dirs)
|
||||||
|
info = self.info()
|
||||||
|
self.version = info['version']
|
||||||
|
self.append_only = info['append_only']
|
||||||
|
|
||||||
if self.dictFormat:
|
if self.dictFormat:
|
||||||
do_open()
|
do_open()
|
||||||
|
@ -898,6 +903,10 @@ def open(self, path, create=False, lock_wait=None, lock=True, exclusive=False, a
|
||||||
make_parent_dirs=False):
|
make_parent_dirs=False):
|
||||||
"""actual remoting is done via self.call in the @api decorator"""
|
"""actual remoting is done via self.call in the @api decorator"""
|
||||||
|
|
||||||
|
@api(since=parse_version('2.0.0a3'))
|
||||||
|
def info(self):
|
||||||
|
"""actual remoting is done via self.call in the @api decorator"""
|
||||||
|
|
||||||
@api(since=parse_version('1.0.0'),
|
@api(since=parse_version('1.0.0'),
|
||||||
max_duration={'since': parse_version('1.2.0a4'), 'previously': 0})
|
max_duration={'since': parse_version('1.2.0a4'), 'previously': 0})
|
||||||
def check(self, repair=False, save_space=False, max_duration=0):
|
def check(self, repair=False, save_space=False, max_duration=0):
|
||||||
|
|
|
@ -491,6 +491,14 @@ def open(self, path, exclusive, lock_wait=None, lock=True):
|
||||||
self.close()
|
self.close()
|
||||||
raise self.AtticRepository(path)
|
raise self.AtticRepository(path)
|
||||||
|
|
||||||
|
def info(self):
|
||||||
|
"""return some infos about the repo (must be opened first)"""
|
||||||
|
return dict(
|
||||||
|
id=self.id,
|
||||||
|
version=self.version,
|
||||||
|
append_only=self.append_only,
|
||||||
|
)
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
if self.lock:
|
if self.lock:
|
||||||
if self.io:
|
if self.io:
|
||||||
|
|
Loading…
Reference in a new issue