mirror of https://github.com/borgbackup/borg.git
Merge pull request #240 from ThomasWaldmann/cache-config-check
fix multiple issues with the cache config version check, fixes #234
This commit is contained in:
commit
adac324b6c
|
@ -1,4 +1,4 @@
|
|||
from configparser import RawConfigParser
|
||||
import configparser
|
||||
from .remote import cache_if_remote
|
||||
import errno
|
||||
import msgpack
|
||||
|
@ -89,7 +89,7 @@ class Cache:
|
|||
os.makedirs(self.path)
|
||||
with open(os.path.join(self.path, 'README'), 'w') as fd:
|
||||
fd.write('This is a Borg cache')
|
||||
config = RawConfigParser()
|
||||
config = configparser.RawConfigParser()
|
||||
config.add_section('cache')
|
||||
config.set('cache', 'version', '1')
|
||||
config.set('cache', 'repository', hexlify(self.repository.id).decode('ascii'))
|
||||
|
@ -109,10 +109,17 @@ class Cache:
|
|||
shutil.rmtree(self.path)
|
||||
|
||||
def _do_open(self):
|
||||
self.config = RawConfigParser()
|
||||
self.config.read(os.path.join(self.path, 'config'))
|
||||
if self.config.getint('cache', 'version') != 1:
|
||||
raise Exception('%s Does not look like a Borg cache')
|
||||
self.config = configparser.RawConfigParser()
|
||||
config_path = os.path.join(self.path, 'config')
|
||||
self.config.read(config_path)
|
||||
try:
|
||||
cache_version = self.config.getint('cache', 'version')
|
||||
wanted_version = 1
|
||||
if cache_version != wanted_version:
|
||||
raise Exception('%s has unexpected cache version %d (wanted: %d).' % (
|
||||
config_path, cache_version, wanted_version))
|
||||
except configparser.NoSectionError as e:
|
||||
raise Exception('%s does not look like a Borg cache.' % config_path)
|
||||
self.id = self.config.get('cache', 'repository')
|
||||
self.manifest_id = unhexlify(self.config.get('cache', 'manifest'))
|
||||
self.timestamp = self.config.get('cache', 'timestamp', fallback=None)
|
||||
|
|
Loading…
Reference in New Issue