summaryrefslogtreecommitdiff
path: root/azurelinuxagent/pa
diff options
context:
space:
mode:
Diffstat (limited to 'azurelinuxagent/pa')
-rw-r--r--azurelinuxagent/pa/deprovision/default.py55
-rw-r--r--azurelinuxagent/pa/provision/default.py5
2 files changed, 42 insertions, 18 deletions
diff --git a/azurelinuxagent/pa/deprovision/default.py b/azurelinuxagent/pa/deprovision/default.py
index 90d16c7..e2c5613 100644
--- a/azurelinuxagent/pa/deprovision/default.py
+++ b/azurelinuxagent/pa/deprovision/default.py
@@ -27,10 +27,15 @@ import azurelinuxagent.common.utils.fileutil as fileutil
import azurelinuxagent.common.utils.shellutil as shellutil
from azurelinuxagent.common.exception import ProtocolError
-from azurelinuxagent.common.future import read_input
from azurelinuxagent.common.osutil import get_osutil
from azurelinuxagent.common.protocol import get_protocol_util
+def read_input(message):
+ if sys.version_info[0] >= 3:
+ return input(message)
+ else:
+ return raw_input(message)
+
class DeprovisionAction(object):
def __init__(self, func, args=[], kwargs={}):
self.func = func
@@ -86,6 +91,15 @@ class DeprovisionHandler(object):
files = ['/root/.bash_history', '/var/log/waagent.log']
actions.append(DeprovisionAction(fileutil.rm_files, files))
+ # For OpenBSD
+ actions.append(DeprovisionAction(fileutil.rm_files,
+ ["/etc/random.seed",
+ "/var/db/host.random",
+ "/etc/isakmpd/local.pub",
+ "/etc/isakmpd/private/local.key",
+ "/etc/iked/private/local.key",
+ "/etc/iked/local.pub"]))
+
def del_resolv(self, warnings, actions):
warnings.append("WARNING! /etc/resolv.conf will be deleted.")
files_to_del = ["/etc/resolv.conf"]
@@ -96,9 +110,13 @@ 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, NM controlled
- actions.append(DeprovisionAction(fileutil.rm_files, ["/var/db/dhclient.leases.hn0",
- "/var/lib/NetworkManager/dhclient-*.lease"]))
+ # For FreeBSD and OpenBSD
+ actions.append(DeprovisionAction(fileutil.rm_files,
+ ["/var/db/dhclient.leases.*"]))
+
+ # For FreeBSD, NM controlled
+ actions.append(DeprovisionAction(fileutil.rm_files,
+ ["/var/lib/NetworkManager/dhclient-*.lease"]))
def del_lib_dir_files(self, warnings, actions):
@@ -137,23 +155,28 @@ class DeprovisionHandler(object):
]
return dirs
- def cloud_init_files(self, include_once=True):
- files = [
- "/etc/sudoers.d/90-cloud-init-users"
- ]
+ def cloud_init_files(self, include_once=True, deluser=False):
+ files = []
+ if deluser:
+ files += [
+ "/etc/sudoers.d/90-cloud-init-users"
+ ]
if include_once:
files += [
"/var/lib/cloud/sem/config_scripts_per_once.once"
]
return files
- def del_cloud_init(self, warnings, actions, include_once=True):
+ def del_cloud_init(self, warnings, actions,
+ include_once=True, deluser=False):
dirs = [d for d in self.cloud_init_dirs(include_once=include_once) \
if os.path.isdir(d)]
if len(dirs) > 0:
actions.append(DeprovisionAction(fileutil.rm_dirs, dirs))
- files = [f for f in self.cloud_init_files(include_once=include_once) \
+ files = [f for f in self.cloud_init_files(
+ include_once=include_once,
+ deluser=deluser) \
if os.path.isfile(f)]
if len(files) > 0:
actions.append(DeprovisionAction(fileutil.rm_files, files))
@@ -179,7 +202,7 @@ class DeprovisionHandler(object):
if conf.get_delete_root_password():
self.del_root_password(warnings, actions)
- self.del_cloud_init(warnings, actions)
+ self.del_cloud_init(warnings, actions, deluser=deluser)
self.del_dirs(warnings, actions)
self.del_files(warnings, actions)
self.del_resolv(warnings, actions)
@@ -193,10 +216,10 @@ class DeprovisionHandler(object):
warnings = []
actions = []
- self.del_cloud_init(warnings, actions, include_once=False)
+ self.del_cloud_init(warnings, actions,
+ include_once=False, deluser=False)
self.del_dhcp_lease(warnings, actions)
self.del_lib_dir_files(warnings, actions)
- self.del_resolv(warnings, actions)
return warnings, actions
@@ -204,8 +227,8 @@ class DeprovisionHandler(object):
warnings, actions = self.setup(deluser)
self.do_warnings(warnings)
- self.do_confirmation(force=force)
- self.do_actions(actions)
+ if self.do_confirmation(force=force):
+ self.do_actions(actions)
def run_changed_unique_id(self):
'''
@@ -246,5 +269,3 @@ class DeprovisionHandler(object):
print ('Deprovisioning may not be interrupted.')
return
-
-
diff --git a/azurelinuxagent/pa/provision/default.py b/azurelinuxagent/pa/provision/default.py
index d4870f1..959a2fe 100644
--- a/azurelinuxagent/pa/provision/default.py
+++ b/azurelinuxagent/pa/provision/default.py
@@ -103,8 +103,11 @@ class ProvisionHandler(object):
@staticmethod
def validate_cloud_init(is_expected=True):
- pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]
is_running = False
+ if os.path.isdir("/proc"):
+ pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]
+ else:
+ pids = []
for pid in pids:
try:
pname = open(os.path.join('/proc', pid, 'cmdline'), 'rb').read()