diff options
Diffstat (limited to 'azurelinuxagent/pa')
-rw-r--r-- | azurelinuxagent/pa/deprovision/default.py | 17 | ||||
-rw-r--r-- | azurelinuxagent/pa/provision/default.py | 4 | ||||
-rw-r--r-- | azurelinuxagent/pa/provision/ubuntu.py | 20 | ||||
-rw-r--r-- | azurelinuxagent/pa/rdma/centos.py | 3 | ||||
-rw-r--r-- | azurelinuxagent/pa/rdma/suse.py | 6 |
5 files changed, 29 insertions, 21 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 diff --git a/azurelinuxagent/pa/provision/default.py b/azurelinuxagent/pa/provision/default.py index e851036..a99a006 100644 --- a/azurelinuxagent/pa/provision/default.py +++ b/azurelinuxagent/pa/provision/default.py @@ -100,10 +100,10 @@ class ProvisionHandler(object): def provision(self, ovfenv): logger.info("Handle ovf-env.xml.") try: - logger.info("Set host name.") + logger.info("Set hostname [{0}]".format(ovfenv.hostname)) self.osutil.set_hostname(ovfenv.hostname) - logger.info("Publish host name.") + logger.info("Publish hostname [{0}]".format(ovfenv.hostname)) self.osutil.publish_hostname(ovfenv.hostname) self.config_user_account(ovfenv) diff --git a/azurelinuxagent/pa/provision/ubuntu.py b/azurelinuxagent/pa/provision/ubuntu.py index 7f2bce3..a71df37 100644 --- a/azurelinuxagent/pa/provision/ubuntu.py +++ b/azurelinuxagent/pa/provision/ubuntu.py @@ -19,14 +19,12 @@ import os import time -import azurelinuxagent.common.logger as logger -from azurelinuxagent.common.future import ustr + import azurelinuxagent.common.conf as conf -import azurelinuxagent.common.protocol.ovfenv as ovfenv -from azurelinuxagent.common.event import add_event, WALAEventOperation -from azurelinuxagent.common.exception import ProvisionError, ProtocolError -import azurelinuxagent.common.utils.shellutil as shellutil +import azurelinuxagent.common.logger as logger import azurelinuxagent.common.utils.fileutil as fileutil +from azurelinuxagent.common.exception import ProvisionError, ProtocolError +from azurelinuxagent.common.future import ustr from azurelinuxagent.pa.provision.default import ProvisionHandler """ @@ -91,8 +89,14 @@ class UbuntuProvisionHandler(ProvisionHandler): path = '/etc/ssh/ssh_host_{0}_key.pub'.format(keypair_type) for retry in range(0, max_retry): if os.path.isfile(path): - return self.get_ssh_host_key_thumbprint(keypair_type) + logger.info("ssh host key found at: {0}".format(path)) + try: + thumbprint = self.get_ssh_host_key_thumbprint(keypair_type) + logger.info("Thumbprint obtained from : {0}".format(path)) + return thumbprint + except ProvisionError: + logger.warn("Could not get thumbprint from {0}".format(path)) if retry < max_retry - 1: - logger.info("Wait for ssh host key be generated: {0}", path) + logger.info("Wait for ssh host key be generated: {0}".format(path)) time.sleep(5) raise ProvisionError("ssh host key is not generated.") diff --git a/azurelinuxagent/pa/rdma/centos.py b/azurelinuxagent/pa/rdma/centos.py index 8ad09c5..214f9ea 100644 --- a/azurelinuxagent/pa/rdma/centos.py +++ b/azurelinuxagent/pa/rdma/centos.py @@ -173,8 +173,7 @@ class CentOSRDMAHandler(RDMAHandler): 'user mode', self.rdma_user_mode_package_name, umod_pkg_path) logger.info("RDMA: driver packages installed") - self.load_driver_module() - if not self.is_driver_loaded(): + if not self.load_driver_module() or not self.is_driver_loaded(): logger.info("RDMA: driver module is not loaded; reboot required") self.reboot_system() else: diff --git a/azurelinuxagent/pa/rdma/suse.py b/azurelinuxagent/pa/rdma/suse.py index f0d8d0f..d31b2b0 100644 --- a/azurelinuxagent/pa/rdma/suse.py +++ b/azurelinuxagent/pa/rdma/suse.py @@ -93,8 +93,7 @@ class SUSERDMAHandler(RDMAHandler): msg = 'RDMA: Successfully installed "%s" from ' msg += 'configured repositories' logger.info(msg % complete_name) - self.load_driver_module() - if requires_reboot: + if not self.load_driver_module() or requires_reboot: self.reboot_system() return True else: @@ -119,8 +118,7 @@ class SUSERDMAHandler(RDMAHandler): msg = 'RDMA: Successfully installed "%s" from ' msg += 'local package cache' logger.info(msg % (local_package)) - self.load_driver_module() - if requires_reboot: + if not self.load_driver_module() or requires_reboot: self.reboot_system() return True else: |