Forráskód Böngészése

实现虚拟机删除时,一并删除所关联的ssh-key映射

James Iter 8 éve
szülő
commit
d7f1763852
2 módosított fájl, 4 hozzáadás és 1 törlés
  1. 1 0
      api/guest.py
  2. 3 1
      models/event_processor.py

+ 1 - 0
api/guest.py

@@ -547,6 +547,7 @@ def r_delete(uuids):
                 if disk.state == status.DiskState.pending.value:
                     disk.delete()
                     guest.delete()
+                    SSHKeyGuestMapping.delete_by_filter(filter_str=':'.join(['guest_uuid', 'eq', guest.uuid]))
 
         ret = dict()
         ret['state'] = ji.Common.exchange_state(20000)

+ 3 - 1
models/event_processor.py

@@ -8,7 +8,7 @@ import time
 from IPy import IP
 import jimit as ji
 
-from models import Database as db, Config, GuestCPUMemory, GuestTraffic, GuestDiskIO
+from models import Database as db, Config, GuestCPUMemory, GuestTraffic, GuestDiskIO, SSHKeyGuestMapping
 from models import Guest
 from models import Disk
 from models import Log
@@ -186,6 +186,8 @@ class EventProcessor(object):
                     cls.disk.update_by_filter({'guest_uuid': '', 'sequence': -1, 'state': DiskState.idle.value},
                                               filter_str='guest_uuid:eq:' + cls.guest.uuid)
 
+                    SSHKeyGuestMapping.delete_by_filter(filter_str=':'.join(['guest_uuid', 'eq', cls.guest.uuid]))
+
             elif action == 'reset_password':
                 if state == ResponseState.success.value:
                     cls.guest.uuid = uuid