Skip to content

Commit 5428568

Browse files
authored
Merge pull request #163 from PoCInnovation/150-ghost-vm-rows-in-db
fix(backend): remove ghost vm rows from db
2 parents 42891f3 + d5a6646 commit 5428568

2 files changed

Lines changed: 18 additions & 1 deletion

File tree

backend/app/orm/event.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,11 @@ class EventParticipantORM(SQLModel, table=True):
3636
)
3737
)
3838
participant_name: str
39-
vm_id: uuid.UUID = Field(foreign_key="vms.id")
39+
vm_id: uuid.UUID = Field(
40+
sa_column=Column(
41+
UUID(as_uuid=True),
42+
ForeignKey("vms.id", ondelete="CASCADE"),
43+
nullable=False,
44+
)
45+
)
4046
created_at: datetime = Field(default_factory=datetime.utcnow)

backend/app/services/vm_service.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
from sqlmodel import Session, select, delete
1515
from app.orm.vm import VmORM
1616
from app.orm.vm_credential import VmCredentialORM
17+
from app.orm.event import EventParticipantORM
1718
from app.orm.slave import SlaveORM
1819
from fastapi import status, HTTPException
1920
from app.utils.vm import get_vm_ip
@@ -277,6 +278,11 @@ def remove(self):
277278
rmtree(vm_dir)
278279

279280
with Session(engine) as session:
281+
session.exec(
282+
delete(EventParticipantORM).where(
283+
EventParticipantORM.vm_id == self.id
284+
)
285+
)
280286
session.exec(
281287
delete(VmCredentialORM).where(
282288
VmCredentialORM.vm_id == self.id
@@ -564,6 +570,11 @@ def remove_vm(vm_id: str):
564570
slave_delete_vm(slave, vm_id)
565571
# Remove the reference from master DB
566572
with Session(engine) as session:
573+
session.exec(
574+
delete(EventParticipantORM).where(
575+
EventParticipantORM.vm_id == uuid.UUID(vm_id)
576+
)
577+
)
567578
session.exec(
568579
delete(VmCredentialORM).where(
569580
VmCredentialORM.vm_id == uuid.UUID(vm_id)

0 commit comments

Comments
 (0)