diff options
Diffstat (limited to 'azurelinuxagent/pa/deprovision/default.py')
-rw-r--r-- | azurelinuxagent/pa/deprovision/default.py | 17 |
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 |