From: Alexandru Avadanii Date: Mon, 18 Jul 2016 17:42:48 +0200 Subject: [PATCH] deploy: Delete old Fuel env if present In order to clean up old partitioning and boot entries on target nodes, before removing the Fuel Master, try ssh-ing into it and removing all environments/nodes. This is especially important for EFI systems, where old boot entries are left behind without a proper env delete, leading to target nodes failing to PXE boot on Fuel Master re-install. This change assumes that: - all Fuel Master information is unchanged between old and new deploy (fuel IP, password etc.); - Fuel Master is up and running, in a sane state (target nodes are also online), when deploy starts; Closes: ARMBAND-51 Signed-off-by: Alexandru Avadanii --- deploy/deploy.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/deploy/deploy.py b/deploy/deploy.py index 48a53c3..184510f 100755 --- a/deploy/deploy.py +++ b/deploy/deploy.py @@ -110,6 +110,20 @@ class AutoDeploy(object): self.iso_file = new_iso self.install_iso() + def delete_old_fuel_env(self): + log('Delete old Fuel Master environments if present') + try: + old_dep = CloudDeploy(self.dea, self.dha, self.fuel_conf['ip'], + self.fuel_username, self.fuel_password, + self.dea_file, self.fuel_plugins_conf_dir, + WORK_DIR, self.no_health_check, + self.deploy_timeout, + self.no_deploy_environment, self.deploy_log) + with old_dep.ssh: + old_dep.check_previous_installation() + except Exception as e: + log('Could not delete old env: %s' % str(e)) + def install_iso(self): fuel = InstallFuelMaster(self.dea_file, self.dha_file, self.fuel_conf['ip'], self.fuel_username, @@ -227,6 +241,7 @@ class AutoDeploy(object): def deploy(self): self.collect_fuel_info() if not self.no_fuel: + self.delete_old_fuel_env() self.setup_execution_environment() self.create_tmp_dir() self.install_fuel_master()