diff --git a/sapl/legacy/scripts/exporta_zope/exporta_zope.py b/sapl/legacy/scripts/exporta_zope/exporta_zope.py index 18a5bc3ef..19186a170 100755 --- a/sapl/legacy/scripts/exporta_zope/exporta_zope.py +++ b/sapl/legacy/scripts/exporta_zope/exporta_zope.py @@ -14,6 +14,7 @@ from functools import partial import git import magic +import pyaml import yaml import ZODB.DB import ZODB.FileStorage @@ -78,6 +79,9 @@ def guess_extension(caminho): raise Exception(msg, e) +nomes_arquivos_exportados = {} + + def dump_file(doc, path): name = doc['__name__'] fullname = os.path.join(path, name) @@ -112,6 +116,7 @@ def dump_file(doc, path): # trocamos a extensão pela adivinhada final_name = base + extension os.rename(fullname, final_name) + nomes_arquivos_exportados[fullname] = final_name print(final_name) return name @@ -273,9 +278,23 @@ def dump_usuarios(sapl, path): save_as_yaml(path, 'usuarios.yaml', users) +def grava_nomes_arquivos_exportados(destino): + """Grava nomes dos arquivos exportados (originais -> definitivos) + """ + destino = Path(destino) + + def rel(caminho): + return str(destino.rel_path_to(caminho)) + + with open(destino.child('arquivos_exportados.yaml'), 'w') as arq: + nomes = {rel(k): rel(v) for k, v in nomes_arquivos_exportados.items()} + pyaml.dump(nomes, arq) + + def _dump_sapl(data_fs_path, destino='../../../../media'): assert Path(data_fs_path).exists() app, close_db = get_app(data_fs_path) + nomes_arquivos_exportados.clear() # apaga nomes dos arquivos migrados try: sapl = find_sapl(app) # extrai folhas XSLT @@ -288,6 +307,7 @@ def _dump_sapl(data_fs_path, destino='../../../../media'): with logando_nao_identificados(): dump_folder(docs, destino) dump_propriedades(docs, destino) + grava_nomes_arquivos_exportados(destino) finally: close_db() @@ -298,7 +318,7 @@ DIR_DADOS_MIGRACAO = Path('~/migracao_sapl/').expand() def dump_sapl(sigla): data_fs_path = DIR_DADOS_MIGRACAO.child('datafs', 'Data_cm_{}.fs'.format(sigla)) - assert data_fs_path.exists() + assert data_fs_path.exists(), 'Origem não existe: {}'.format(data_fs_path) nome_banco_legado = 'sapl_cm_{}'.format(sigla) destino = DIR_DADOS_MIGRACAO.child('repos', nome_banco_legado) destino.mkdir(parents=True) diff --git a/sapl/legacy/scripts/exporta_zope/requirements.txt b/sapl/legacy/scripts/exporta_zope/requirements.txt index 421005181..c7aa86b4f 100644 --- a/sapl/legacy/scripts/exporta_zope/requirements.txt +++ b/sapl/legacy/scripts/exporta_zope/requirements.txt @@ -1,5 +1,6 @@ # ZODB version 3.7.4 -PyYAML==3.12 ZODB==5.3.0 -Unipath==1.1 -GitPython==2.1.9 +PyYAML +Unipath +GitPython +pyaml