diff --git a/src/dstack/_internal/core/models/volumes.py b/src/dstack/_internal/core/models/volumes.py index 0215d5ca8..36d4d8b8d 100644 --- a/src/dstack/_internal/core/models/volumes.py +++ b/src/dstack/_internal/core/models/volumes.py @@ -64,6 +64,7 @@ class Volume(CoreModel): created_at: datetime status: VolumeStatus status_message: Optional[str] = None + deleted: bool volume_id: Optional[str] = None # id of the volume in the cloud provisioning_data: Optional[VolumeProvisioningData] = None attachment_data: Optional[VolumeAttachmentData] = None diff --git a/src/dstack/_internal/server/services/volumes.py b/src/dstack/_internal/server/services/volumes.py index f906ace05..86fb19a94 100644 --- a/src/dstack/_internal/server/services/volumes.py +++ b/src/dstack/_internal/server/services/volumes.py @@ -258,6 +258,7 @@ def volume_model_to_volume(volume_model: VolumeModel) -> Volume: created_at=volume_model.created_at.replace(tzinfo=timezone.utc), status=volume_model.status, status_message=volume_model.status_message, + deleted=volume_model.deleted, volume_id=vpd.volume_id if vpd is not None else None, provisioning_data=vpd, attachment_data=vad, diff --git a/src/tests/_internal/server/routers/test_volumes.py b/src/tests/_internal/server/routers/test_volumes.py index a16ad32c3..3048749fe 100644 --- a/src/tests/_internal/server/routers/test_volumes.py +++ b/src/tests/_internal/server/routers/test_volumes.py @@ -67,6 +67,7 @@ async def test_lists_volumes_across_projects(self, test_db, session: AsyncSessio "created_at": "2023-01-02T03:05:00+00:00", "status": "submitted", "status_message": None, + "deleted": False, "volume_id": None, "provisioning_data": None, "attachment_data": None, @@ -80,6 +81,7 @@ async def test_lists_volumes_across_projects(self, test_db, session: AsyncSessio "created_at": "2023-01-02T03:04:00+00:00", "status": "submitted", "status_message": None, + "deleted": False, "volume_id": None, "provisioning_data": None, "attachment_data": None, @@ -104,6 +106,7 @@ async def test_lists_volumes_across_projects(self, test_db, session: AsyncSessio "created_at": "2023-01-02T03:04:00+00:00", "status": "submitted", "status_message": None, + "deleted": False, "volume_id": None, "provisioning_data": None, "attachment_data": None, @@ -150,6 +153,7 @@ async def test_non_admin_cannot_see_others_projects(self, test_db, session: Asyn "created_at": "2023-01-02T03:04:00+00:00", "status": "submitted", "status_message": None, + "deleted": False, "volume_id": None, "provisioning_data": None, "attachment_data": None, @@ -190,6 +194,7 @@ async def test_lists_volumes(self, test_db, session: AsyncSession): "created_at": "2023-01-02T03:04:00+00:00", "status": "submitted", "status_message": None, + "deleted": False, "volume_id": None, "provisioning_data": None, "attachment_data": None, @@ -230,6 +235,7 @@ async def test_returns_volume(self, test_db, session: AsyncSession): "created_at": "2023-01-02T03:04:00+00:00", "status": "submitted", "status_message": None, + "deleted": False, "volume_id": None, "provisioning_data": None, "attachment_data": None, @@ -282,6 +288,7 @@ async def test_creates_volume(self, test_db, session: AsyncSession): "created_at": "2023-01-02T03:04:00+00:00", "status": "submitted", "status_message": None, + "deleted": False, "volume_id": None, "provisioning_data": None, "attachment_data": None,