Skip to content

Commit 2fd0d47

Browse files
feat: add deleting status support (#341)
1 parent b1d4cf5 commit 2fd0d47

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

src/firebolt/model/V2/engine.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ def update(
245245
def delete(self) -> None:
246246
"""Delete an engine."""
247247
self.refresh()
248-
if self.current_status == EngineStatus.DROPPING:
248+
if self.current_status in [EngineStatus.DROPPING, EngineStatus.DELETING]:
249249
return
250250
with self._service._connection.cursor() as c:
251251
c.execute(self.DROP_SQL.format(self.name))

src/firebolt/service/V2/types.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class EngineStatus(Enum):
4848
DROPPING = "Dropping"
4949
REPAIRING = "Repairing"
5050
FAILED = "Failed"
51+
DELETING = "Deleting"
5152

5253
def __str__(self) -> str:
5354
return self.value

tests/unit/service/V2/test_engine.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,14 @@
44
from pytest_httpx import HTTPXMock
55

66
from firebolt.model.V2.database import Database
7-
from firebolt.model.V2.engine import Engine
7+
from firebolt.model.V2.engine import Engine, EngineStatus
88
from firebolt.service.manager import ResourceManager
99
from firebolt.service.V2.types import EngineType
1010
from firebolt.utils.exception import (
1111
EngineNotFoundError,
1212
NoAttachedDatabaseError,
1313
)
14+
from tests.unit.service.V2.conftest import get_objects_from_db_callback
1415

1516

1617
def test_engine_create(
@@ -195,3 +196,22 @@ def test_engine_get_by_name(
195196
engine = resource_manager.engines.get_by_name(mock_engine.name)
196197

197198
assert engine == mock_engine
199+
200+
201+
def test_engine_deleteting(
202+
httpx_mock: HTTPXMock,
203+
resource_manager: ResourceManager,
204+
instance_type_callback: Callable,
205+
instance_type_url: str,
206+
system_engine_no_db_query_url: str,
207+
mock_engine: Engine,
208+
):
209+
mock_engine.current_status = "Deleting"
210+
get_engine_callback = get_objects_from_db_callback([mock_engine])
211+
212+
httpx_mock.add_callback(instance_type_callback, url=instance_type_url)
213+
httpx_mock.add_callback(get_engine_callback, url=system_engine_no_db_query_url)
214+
215+
engine = resource_manager.engines.get_by_name(mock_engine.name)
216+
217+
assert engine.current_status == EngineStatus.DELETING

0 commit comments

Comments
 (0)