ソースを参照

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

James Iter 8 年 前
コミット
d7f1763852
2 ファイル変更4 行追加1 行削除
  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