workbench-script: attempt to write to snapshot dir
This commit is contained in:
parent
c3c3a87155
commit
d1559884b9
|
@ -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
|
||||||
|
|
|
@ -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):
|
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/'
|
||||||
|
|
Loading…
Reference in New Issue