diff options
author | Lars Wirzenius <liw@liw.fi> | 2016-03-17 20:08:26 +0200 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2016-03-17 20:57:42 +0200 |
commit | 66ab40d158be23c6ef97b9fc40282cbc23485b19 (patch) | |
tree | 34d831bfb44f4e096f48b1265a8eade4fe38a45e | |
parent | dca0e404149ebcecd17e0e57848d69d2ec27ca08 (diff) | |
download | obnam-66ab40d158be23c6ef97b9fc40282cbc23485b19.tar.gz |
Actually store SHA checksums in GA
-rw-r--r-- | obnamlib/fmt_ga/dirobj.py | 4 | ||||
-rw-r--r-- | obnamlib/fmt_ga/format.py | 40 | ||||
-rw-r--r-- | obnamlib/metadata.py | 2 | ||||
-rw-r--r-- | obnamlib/plugins/backup_plugin.py | 7 | ||||
-rw-r--r-- | obnamlib/repo_interface.py | 6 |
5 files changed, 36 insertions, 23 deletions
diff --git a/obnamlib/fmt_ga/dirobj.py b/obnamlib/fmt_ga/dirobj.py index f115872d..64c333d1 100644 --- a/obnamlib/fmt_ga/dirobj.py +++ b/obnamlib/fmt_ga/dirobj.py @@ -38,6 +38,10 @@ _short_key_names = { obnamlib.REPO_FILE_BLOCKS: 'B', obnamlib.REPO_FILE_DEV: 'D', obnamlib.REPO_FILE_INO: 'I', + obnamlib.REPO_FILE_SHA224: '224', + obnamlib.REPO_FILE_SHA256: '256', + obnamlib.REPO_FILE_SHA384: '384', + obnamlib.REPO_FILE_SHA512: '512', } # Let's make sure we have no duplicate values. diff --git a/obnamlib/fmt_ga/format.py b/obnamlib/fmt_ga/format.py index 8e4b787b..7fd3b83f 100644 --- a/obnamlib/fmt_ga/format.py +++ b/obnamlib/fmt_ga/format.py @@ -94,23 +94,29 @@ class RepositoryFormatGA(obnamlib.RepositoryDelegator): ] def get_allowed_file_keys(self): - return [obnamlib.REPO_FILE_TEST_KEY, - obnamlib.REPO_FILE_MODE, - obnamlib.REPO_FILE_MTIME_SEC, - obnamlib.REPO_FILE_MTIME_NSEC, - obnamlib.REPO_FILE_ATIME_SEC, - obnamlib.REPO_FILE_ATIME_NSEC, - obnamlib.REPO_FILE_NLINK, - obnamlib.REPO_FILE_SIZE, - obnamlib.REPO_FILE_UID, - obnamlib.REPO_FILE_USERNAME, - obnamlib.REPO_FILE_GID, - obnamlib.REPO_FILE_GROUPNAME, - obnamlib.REPO_FILE_SYMLINK_TARGET, - obnamlib.REPO_FILE_XATTR_BLOB, - obnamlib.REPO_FILE_BLOCKS, - obnamlib.REPO_FILE_DEV, - obnamlib.REPO_FILE_INO] + return [ + obnamlib.REPO_FILE_TEST_KEY, + obnamlib.REPO_FILE_MODE, + obnamlib.REPO_FILE_MTIME_SEC, + obnamlib.REPO_FILE_MTIME_NSEC, + obnamlib.REPO_FILE_ATIME_SEC, + obnamlib.REPO_FILE_ATIME_NSEC, + obnamlib.REPO_FILE_NLINK, + obnamlib.REPO_FILE_SIZE, + obnamlib.REPO_FILE_UID, + obnamlib.REPO_FILE_USERNAME, + obnamlib.REPO_FILE_GID, + obnamlib.REPO_FILE_GROUPNAME, + obnamlib.REPO_FILE_SYMLINK_TARGET, + obnamlib.REPO_FILE_XATTR_BLOB, + obnamlib.REPO_FILE_BLOCKS, + obnamlib.REPO_FILE_DEV, + obnamlib.REPO_FILE_INO, + obnamlib.REPO_FILE_SHA224, + obnamlib.REPO_FILE_SHA256, + obnamlib.REPO_FILE_SHA384, + obnamlib.REPO_FILE_SHA512, + ] def interpret_generation_spec(self, client_name, genspec): ids = self.get_client_generation_ids(client_name) diff --git a/obnamlib/metadata.py b/obnamlib/metadata.py index 11e3449a..ba76cf6b 100644 --- a/obnamlib/metadata.py +++ b/obnamlib/metadata.py @@ -34,7 +34,7 @@ metadata_verify_fields = ( ) metadata_fields = metadata_verify_fields + ( 'st_blocks', 'st_dev', 'st_gid', 'st_ino', 'st_atime_sec', - 'st_atime_nsec', 'md5', 'whole_file_checksum', 'test', + 'st_atime_nsec', 'md5', 'sha224', 'sha256', 'sha384', 'sha512', 'test', ) diff --git a/obnamlib/plugins/backup_plugin.py b/obnamlib/plugins/backup_plugin.py index c263483f..b7a1cda0 100644 --- a/obnamlib/plugins/backup_plugin.py +++ b/obnamlib/plugins/backup_plugin.py @@ -760,10 +760,9 @@ class BackupPlugin(obnamlib.ObnamPlugin): filename) tracing.trace('done backing up file contents') - if checksum_key == obnamlib.REPO_FILE_MD5: - metadata.md5 = whole_file_summer.get_checksum() - else: - metadata.whole_file_checksum = whole_file_summer.get_checksum() + for key, name in obnamlib.metadata_file_key_mapping: + if key == checksum_key: + setattr(metadata, name, whole_file_summer.get_checksum()) def backup_file_chunk(self, data): '''Back up a chunk of data by putting it into the repository.''' diff --git a/obnamlib/repo_interface.py b/obnamlib/repo_interface.py index 3bba872f..b3744de5 100644 --- a/obnamlib/repo_interface.py +++ b/obnamlib/repo_interface.py @@ -61,7 +61,7 @@ REPO_FILE_SHA256 = _get_next_id() REPO_FILE_SHA384 = _get_next_id() REPO_FILE_SHA512 = _get_next_id() -_MAX_STRING_KEY = REPO_FILE_MD5 +_MAX_STRING_KEY = REPO_FILE_SHA512 REPO_GENERATION_STARTED = _get_next_id() REPO_GENERATION_ENDED = _get_next_id() @@ -128,6 +128,10 @@ metadata_file_key_mapping = [ (REPO_FILE_DEV, 'st_dev'), (REPO_FILE_INO, 'st_ino'), (REPO_FILE_MD5, 'md5'), + (REPO_FILE_SHA224, 'sha224'), + (REPO_FILE_SHA256, 'sha256'), + (REPO_FILE_SHA384, 'sha384'), + (REPO_FILE_SHA512, 'sha512'), ] |