Explorar el Código

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

James Iter hace 8 años
padre
commit
d7f1763852
Se han modificado 2 ficheros con 4 adiciones y 1 borrados
  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:
                 if disk.state == status.DiskState.pending.value:
                     disk.delete()
                     disk.delete()
                     guest.delete()
                     guest.delete()
+                    SSHKeyGuestMapping.delete_by_filter(filter_str=':'.join(['guest_uuid', 'eq', guest.uuid]))
 
 
         ret = dict()
         ret = dict()
         ret['state'] = ji.Common.exchange_state(20000)
         ret['state'] = ji.Common.exchange_state(20000)

+ 3 - 1
models/event_processor.py

@@ -8,7 +8,7 @@ import time
 from IPy import IP
 from IPy import IP
 import jimit as ji
 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 Guest
 from models import Disk
 from models import Disk
 from models import Log
 from models import Log
@@ -186,6 +186,8 @@ class EventProcessor(object):
                     cls.disk.update_by_filter({'guest_uuid': '', 'sequence': -1, 'state': DiskState.idle.value},
                     cls.disk.update_by_filter({'guest_uuid': '', 'sequence': -1, 'state': DiskState.idle.value},
                                               filter_str='guest_uuid:eq:' + cls.guest.uuid)
                                               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':
             elif action == 'reset_password':
                 if state == ResponseState.success.value:
                 if state == ResponseState.success.value:
                     cls.guest.uuid = uuid
                     cls.guest.uuid = uuid