workbench-script: attempt to write to snapshot dir
This commit is contained in:
parent
e6a3ffd060
commit
47ea66f013
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -1,5 +1,5 @@
|
|||
iso
|
||||
settings.ini
|
||||
# ignore all possible snapshots in this dir
|
||||
# ignore all possible snapshots in this repo
|
||||
*.json
|
||||
pxe/.env
|
||||
|
|
3
snapshots/README.md
Normal file
3
snapshots/README.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
This is the path by default used by workbench-script
|
||||
|
||||
You can change it in the configuration
|
|
@ -249,15 +249,30 @@ def gen_snapshot(all_disks):
|
|||
|
||||
|
||||
def save_snapshot_in_disk(snapshot, path):
|
||||
filename = "{}/{}_{}.json".format(
|
||||
path,
|
||||
datetime.now().strftime("%Y%m%d-%H_%M_%S"),
|
||||
snapshot['uuid']
|
||||
)
|
||||
print(f"workbench: INFO: Snapshot written in path '{filename}'")
|
||||
with open(filename, "w") as f:
|
||||
f.write(json.dumps(snapshot))
|
||||
snapshot_path = os.path.join(path, 'snapshots')
|
||||
|
||||
filename = "{}/{}_{}.json".format(
|
||||
snapshot_path,
|
||||
datetime.now().strftime("%Y%m%d-%H_%M_%S"),
|
||||
snapshot['uuid'])
|
||||
|
||||
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:
|
||||
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
|
||||
# url = 'http://127.0.0.1:8000/api/snapshot/'
|
||||
|
|
Loading…
Reference in a new issue