summaryrefslogtreecommitdiff
path: root/azurelinuxagent/pa/deprovision/default.py
diff options
context:
space:
mode:
Diffstat (limited to 'azurelinuxagent/pa/deprovision/default.py')
-rw-r--r--azurelinuxagent/pa/deprovision/default.py17
1 files changed, 15 insertions, 2 deletions
diff --git a/azurelinuxagent/pa/deprovision/default.py b/azurelinuxagent/pa/deprovision/default.py
index b570c31..a702d3f 100644
--- a/azurelinuxagent/pa/deprovision/default.py
+++ b/azurelinuxagent/pa/deprovision/default.py
@@ -17,6 +17,8 @@
# Requires Python 2.4+ and Openssl 1.0+
#
+import signal
+import sys
import azurelinuxagent.common.conf as conf
from azurelinuxagent.common.exception import ProtocolError
from azurelinuxagent.common.future import read_input
@@ -38,6 +40,7 @@ class DeprovisionHandler(object):
def __init__(self):
self.osutil = get_osutil()
self.protocol_util = get_protocol_util()
+ signal.signal(signal.SIGINT, self.handle_interrupt_signal)
def del_root_password(self, warnings, actions):
warnings.append("WARNING! root password will be disabled. "
@@ -63,8 +66,8 @@ class DeprovisionHandler(object):
def regen_ssh_host_key(self, warnings, actions):
warnings.append("WARNING! All SSH host key pairs will be deleted.")
- actions.append(DeprovisionAction(shellutil.run,
- ['rm -f /etc/ssh/ssh_host_*key*']))
+ actions.append(DeprovisionAction(fileutil.rm_files,
+ ['/etc/ssh/ssh_host_*key*']))
def stop_agent_service(self, warnings, actions):
warnings.append("WARNING! The waagent service will be stopped.")
@@ -74,6 +77,11 @@ class DeprovisionHandler(object):
files_to_del = ['/root/.bash_history', '/var/log/waagent.log']
actions.append(DeprovisionAction(fileutil.rm_files, files_to_del))
+ def del_resolv(self, warnings, actions):
+ warnings.append("WARNING! /etc/resolv.conf will be deleted.")
+ files_to_del = ["/etc/resolv.conf"]
+ actions.append(DeprovisionAction(fileutil.rm_files, files_to_del))
+
def del_dhcp_lease(self, warnings, actions):
warnings.append("WARNING! Cached DHCP leases will be deleted.")
dirs_to_del = ["/var/lib/dhclient", "/var/lib/dhcpcd", "/var/lib/dhcp"]
@@ -109,6 +117,7 @@ class DeprovisionHandler(object):
self.del_lib_dir(warnings, actions)
self.del_files(warnings, actions)
+ self.del_resolv(warnings, actions)
if deluser:
self.del_user(warnings, actions)
@@ -128,4 +137,8 @@ class DeprovisionHandler(object):
for action in actions:
action.invoke()
+ def handle_interrupt_signal(self, frame):
+ print("Deprovision is interrupted.")
+ sys.exit(0)
+