diff --git a/bundles/archive/files/archive b/bundles/archive/files/archive index 1c31590..886a502 100644 --- a/bundles/archive/files/archive +++ b/bundles/archive/files/archive @@ -9,8 +9,8 @@ else DRY='-n' fi -% for dir, conf in dirs.items(): -# ${dir} +% for path, options in paths.items(): +# ${path} gsutil ${'\\'} -m ${'\\'} -o 'GSUtil:parallel_process_count=${processes}' ${'\\'} @@ -20,8 +20,8 @@ gsutil ${'\\'} -r ${'\\'} -d ${'\\'} -e ${'\\'} - -x '${'|'.join(conf.get('exclude', []))}' ${'\\'} - '${dir}' ${'\\'} - 'gs://${bucket}/${node.name}${dir}' ${'\\'} - 2>&1 | tee | logger -t gsutil + -x '${'|'.join(options.get('exclude', []))}' ${'\\'} + '${options['encrypted_path']}' ${'\\'} + 'gs://${bucket}/${node.name}${path}' ${'\\'} + 2>&1 | logger -st gsutil % endfor diff --git a/bundles/archive/items.py b/bundles/archive/items.py index e20d23f..306ab38 100644 --- a/bundles/archive/items.py +++ b/bundles/archive/items.py @@ -6,7 +6,7 @@ files['/opt/archive'] = { 'content_type': 'mako', 'mode': '700', 'context': { - 'dirs': node.metadata.get('archive'), + 'paths': node.metadata.get('archive/paths'), 'bucket': node.metadata.get('gcloud/bucket'), 'processes': 4, 'threads': 4, diff --git a/bundles/archive/metadata.py b/bundles/archive/metadata.py index 8e03fad..1fc0128 100644 --- a/bundles/archive/metadata.py +++ b/bundles/archive/metadata.py @@ -1,22 +1,40 @@ defaults = { - 'archive': {}, + 'archive': { + 'paths': {}, + }, } +@metadata_reactor.provides( + 'archive/paths', +) +def paths(metadata): + return { + 'archive': { + 'paths': { + path: { + 'encrypted_path': f'/mnt/gocryptfs{path}', + 'exclude': [ + '^\..*', + '/\..*', + ], + } for path in metadata.get('archive/paths') + }, + } + } + + @metadata_reactor.provides( 'gocryptfs/paths', ) def gocryptfs(metadata): - paths = {} - - for path in metadata.get('archive/paths'): - paths[path] = { - 'mountpoint': f'/mnt/gocryptfs{path}', - 'reverse': True, - } - return { 'gocryptfs': { - 'paths': paths, - }, + 'paths': { + path: { + 'mountpoint': options['encrypted_path'], + 'reverse': True, + } for path, options in metadata.get('archive/paths').items() + }, + } } diff --git a/bundles/gocryptfs/metadata.py b/bundles/gocryptfs/metadata.py index e95f6d4..aa51819 100644 --- a/bundles/gocryptfs/metadata.py +++ b/bundles/gocryptfs/metadata.py @@ -77,7 +77,7 @@ def systemd(metadata): 'CIPHER': options["mountpoint"] }, 'ExecStart': [ - '/usr/bin/gocryptfs -fg -reverse -masterkey $MASTERKEY -ctlsock $SOCKET $PLAIN $CIPHER', + '/usr/bin/gocryptfs -fg -plaintextnames -reverse -masterkey $MASTERKEY -ctlsock $SOCKET $PLAIN $CIPHER', ], 'ExecStopPost': [ '/usr/bin/umount $CIPHER' diff --git a/bundles/nextcloud/metadata.py b/bundles/nextcloud/metadata.py index 23d3239..619ee22 100644 --- a/bundles/nextcloud/metadata.py +++ b/bundles/nextcloud/metadata.py @@ -13,19 +13,3 @@ defaults = { } }, } - - -@metadata_reactor.provides( - 'archive', -) -def exclude_hidden_files_from_archive(metadata): - return { - 'archive': { - dir: { - 'exclude': [ - '^\..*', - '/\..*', - ], - } for dir, conf in metadata.get('archive').items() - } - }