Clean delete for IOU & VPCS devices.

This commit is contained in:
grossmj committed 2014-05-19 12:05:30 -06:00
1 parent 6c0918312c
commit 7182e59892
4 files changed
+50 -2

No files matched your search

+1 -1
View File
@@ -284,7 +284,7 @@ class VPCS(IModule):
return
try:
vpcs_instance.delete()
vpcs_instance.clean_delete()
del self._vpcs_instances[request["id"]]
except VPCSError as e:
self.send_custom_error(str(e))
+24
View File
@@ -23,6 +23,8 @@ order to run an VPCS instance.
import os
import subprocess
import signal
import shutil
from .vpcs_error import VPCSError
from .adapters.ethernet_adapter import EthernetAdapter
from .nios.nio_udp import NIO_UDP
@@ -267,6 +269,28 @@ class VPCSDevice(object):
log.info("VPCS device {name} [id={id}] has been deleted".format(name=self._name,
id=self._id))
def clean_delete(self):
"""
Deletes this VPCS device & all files (configs, logs etc.)
"""
self.stop()
self._instances.remove(self._id)
if self.console:
self._allocated_console_ports.remove(self.console)
try:
shutil.rmtree(self._working_dir)
except OSError as e:
log.error("could not delete VPCS device {name} [id={id}]: {error}".format(name=self._name,
id=self._id,
error=e))
return
log.info("VPCS device {name} [id={id}] has been deleted".format(name=self._name,
id=self._id))
@property
def started(self):
"""