feature: workbench pxe #2

Merged
pedro merged 83 commits from pxe into main 2024-09-28 02:19:31 +00:00
3 changed files with 27 additions and 9 deletions
Showing only changes of commit 8e4186d9d4 - Show all commits

2
.gitignore vendored
View File

@ -1,5 +1,5 @@
iso iso
settings.ini settings.ini
# ignore all possible snapshots in this dir # ignore all possible snapshots in this repo
*.json *.json
pxe/.env pxe/.env

3
snapshots/README.md Normal file
View File

@ -0,0 +1,3 @@
This is the path by default used by workbench-script
You can change it in the configuration

View File

@ -249,15 +249,30 @@ def gen_snapshot(all_disks):
def save_snapshot_in_disk(snapshot, path): def save_snapshot_in_disk(snapshot, path):
snapshot_path = os.path.join(path, 'snapshots')
filename = "{}/{}_{}.json".format( filename = "{}/{}_{}.json".format(
path, snapshot_path,
datetime.now().strftime("%Y%m%d-%H_%M_%S"), datetime.now().strftime("%Y%m%d-%H_%M_%S"),
snapshot['uuid'] snapshot['uuid'])
)
print(f"workbench: INFO: Snapshot written in path '{filename}'") try:
if not os.path.exists(snapshot_path):
os.makedirs(snapshot_path)
print(f"workbench: INFO: Created snapshots directory at '{snapshot_path}'")
with open(filename, "w") as f: with open(filename, "w") as f:
f.write(json.dumps(snapshot)) f.write(json.dumps(snapshot))
print(f"workbench: INFO: Snapshot written in path '{filename}'")
except Exception as e:
print(f"workbench: WARNING: Failed to write in snapshots directory: {e}. Attempting to save in actual path.")
fallback_filename = "{}/{}_{}.json".format(
path,
datetime.now().strftime("%Y%m%d-%H_%M_%S"),
snapshot['uuid'])
with open(fallback_filename, "w") as f:
f.write(json.dumps(snapshot))
print(f"workbench: INFO: Snapshot written in fallback path '{fallback_filename}'")
# TODO sanitize url, if url is like this, it fails # TODO sanitize url, if url is like this, it fails
# url = 'http://127.0.0.1:8000/api/snapshot/' # url = 'http://127.0.0.1:8000/api/snapshot/'