mirror of
https://github.com/GNS3/gns3-server.git
synced 2026-08-27 12:30:13 +03:00
Fix snapshots after merging
This commit is contained in:
parent
0d3fad8c8f
commit
9c988b34d0
@ -807,7 +807,7 @@ class Project:
|
||||
with open(self._snapshot_conf_path, encoding="utf-8") as f:
|
||||
self._snapshot_conf = json.load(f)
|
||||
except (OSError, UnicodeDecodeError, ValueError) as e:
|
||||
raise aiohttp.web.HTTPConflict(text="Could not read snapshot config {}: {}".format(self._snapshot_conf_path, str(e)))
|
||||
raise ControllerError(f"Could not read snapshot config {e}")
|
||||
|
||||
# Load all legacy snapshots (.gns3project files) to create an initial snapshot config if it doesn't exist
|
||||
if os.path.exists(snapshot_dir) and not self._snapshot_conf:
|
||||
@ -843,7 +843,7 @@ class Project:
|
||||
|
||||
self._snapshot_conf = []
|
||||
for snapshot in self._snapshots.values():
|
||||
self._snapshot_conf.append(snapshot.__json__())
|
||||
self._snapshot_conf.append(snapshot.asdict())
|
||||
try:
|
||||
with open(self._snapshot_conf_path, 'w+') as f:
|
||||
json.dump(self._snapshot_conf, f, indent=4)
|
||||
|
||||
@ -16,6 +16,7 @@
|
||||
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
from typing import Optional
|
||||
from uuid import UUID
|
||||
|
||||
|
||||
@ -24,8 +25,8 @@ class SnapshotBase(BaseModel):
|
||||
Common properties for snapshot.
|
||||
"""
|
||||
|
||||
name: str
|
||||
|
||||
name: str = Field(..., description="Name of the snapshot")
|
||||
description: Optional[str] = Field(None, description="Description of the snapshot")
|
||||
|
||||
class SnapshotCreate(SnapshotBase):
|
||||
"""
|
||||
@ -39,4 +40,7 @@ class Snapshot(SnapshotBase):
|
||||
|
||||
snapshot_id: UUID
|
||||
project_id: UUID
|
||||
name: str = Field(..., description="Name of the snapshot")
|
||||
filename: str = Field(..., description="Filename of the snapshot")
|
||||
description: str = Field(..., description="Description of the snapshot")
|
||||
created_at: int = Field(..., description="Date of the snapshot (UTC timestamp)")
|
||||
|
||||
@ -75,4 +75,4 @@ class TestSnapshotRoutes:
|
||||
|
||||
response = await client.post(app.url_path_for("create_snapshot", project_id=project.id), json={"name": "snap1"})
|
||||
assert response.status_code == status.HTTP_201_CREATED
|
||||
assert len(os.listdir(os.path.join(project.path, "snapshots"))) == 1
|
||||
assert len(os.listdir(os.path.join(project.path, "snapshots"))) == 2
|
||||
|
||||
@ -72,7 +72,7 @@ def test_json(project):
|
||||
|
||||
# new style snapshot
|
||||
snapshot = Snapshot(project, name="snapshot_test2")
|
||||
assert snapshot.__json__() == {
|
||||
assert snapshot.asdict() == {
|
||||
"snapshot_id": snapshot._id,
|
||||
"name": "snapshot_test2",
|
||||
"project_id": project.id,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user