1
0
mirror of https://github.com/GNS3/gns3-server synced 2024-12-26 00:38:10 +00:00

Save empty directories when exporting a project

This commit is contained in:
grossmj 2024-02-24 19:02:16 +08:00
parent 0a08031d85
commit 9a5af82a28
No known key found for this signature in database
GPG Key ID: 0A2D76AC45EA25CD
2 changed files with 7 additions and 0 deletions

View File

@ -83,6 +83,11 @@ async def export_project(zstream, project, temporary_dir, include_images=False,
continue continue
_patch_mtime(path) _patch_mtime(path)
zstream.write(path, os.path.relpath(path, project._path)) zstream.write(path, os.path.relpath(path, project._path))
# save empty directories
for directory in dirs:
path = os.path.join(root, directory)
if not os.listdir(path):
zstream.write(path, os.path.relpath(path, project._path))
except FileNotFoundError as e: except FileNotFoundError as e:
log.warning("Cannot export local file: {}".format(e)) log.warning("Cannot export local file: {}".format(e))
continue continue

View File

@ -111,6 +111,7 @@ async def test_export(tmpdir, project):
f.write("HELLO") f.write("HELLO")
with open(os.path.join(path, "vm-1", "dynamips", "test_log.txt"), 'w+') as f: with open(os.path.join(path, "vm-1", "dynamips", "test_log.txt"), 'w+') as f:
f.write("LOG") f.write("LOG")
os.makedirs(os.path.join(path, "vm-1", "dynamips", "empty-dir"))
os.makedirs(os.path.join(path, "project-files", "snapshots")) os.makedirs(os.path.join(path, "project-files", "snapshots"))
with open(os.path.join(path, "project-files", "snapshots", "test"), 'w+') as f: with open(os.path.join(path, "project-files", "snapshots", "test"), 'w+') as f:
f.write("WORLD") f.write("WORLD")
@ -127,6 +128,7 @@ async def test_export(tmpdir, project):
assert 'test.gns3' not in myzip.namelist() assert 'test.gns3' not in myzip.namelist()
assert 'project.gns3' in myzip.namelist() assert 'project.gns3' in myzip.namelist()
assert 'vm-1/dynamips/empty-dir/' in myzip.namelist()
assert 'project-files/snapshots/test' not in myzip.namelist() assert 'project-files/snapshots/test' not in myzip.namelist()
assert 'vm-1/dynamips/test_log.txt' not in myzip.namelist() assert 'vm-1/dynamips/test_log.txt' not in myzip.namelist()