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, 12 insertions, 5 deletions
diff --git a/azurelinuxagent/pa/deprovision/default.py b/azurelinuxagent/pa/deprovision/default.py
index a702d3f..ced87ee 100644
--- a/azurelinuxagent/pa/deprovision/default.py
+++ b/azurelinuxagent/pa/deprovision/default.py
@@ -40,6 +40,7 @@ class DeprovisionHandler(object):
def __init__(self):
self.osutil = get_osutil()
self.protocol_util = get_protocol_util()
+ self.actions_running = False
signal.signal(signal.SIGINT, self.handle_interrupt_signal)
def del_root_password(self, warnings, actions):
@@ -87,8 +88,9 @@ class DeprovisionHandler(object):
dirs_to_del = ["/var/lib/dhclient", "/var/lib/dhcpcd", "/var/lib/dhcp"]
actions.append(DeprovisionAction(fileutil.rm_dirs, dirs_to_del))
- # For Freebsd
- actions.append(DeprovisionAction(fileutil.rm_files, ["/var/db/dhclient.leases.hn0"]))
+ # For Freebsd, NM controlled
+ actions.append(DeprovisionAction(fileutil.rm_files, ["/var/db/dhclient.leases.hn0",
+ "/var/lib/NetworkManager/dhclient-*.lease"]))
def del_lib_dir(self, warnings, actions):
dirs_to_del = [conf.get_lib_dir()]
@@ -134,11 +136,16 @@ class DeprovisionHandler(object):
if not confirm.lower().startswith('y'):
return
+ self.actions_running = True
for action in actions:
action.invoke()
- def handle_interrupt_signal(self, frame):
- print("Deprovision is interrupted.")
- sys.exit(0)
+ def handle_interrupt_signal(self, signum, frame):
+ if not self.actions_running:
+ print("Deprovision is interrupted.")
+ sys.exit(0)
+
+ print ('Deprovisioning may not be interrupted.')
+ return