From f9b3f96e148748cbbb8e1add98b51b8777b570f5 Mon Sep 17 00:00:00 2001 From: VirtuBox Date: Sat, 5 Aug 2023 15:30:45 +0200 Subject: [PATCH] Cleanup php stack removal --- wo/cli/plugins/stack.py | 117 +++++++++++----------------------------- 1 file changed, 31 insertions(+), 86 deletions(-) diff --git a/wo/cli/plugins/stack.py b/wo/cli/plugins/stack.py index 4821e22..92c00d0 100644 --- a/wo/cli/plugins/stack.py +++ b/wo/cli/plugins/stack.py @@ -669,97 +669,42 @@ class WOStackController(CementBaseController): Log.debug(self, "Removing apt_packages variable of Nginx") apt_packages = apt_packages + WOVar.wo_nginx - # PHP 7.2 - if pargs.php72: - Log.debug(self, "Setting apt_packages variable for PHP 7.2") - if (WOAptGet.is_installed(self, 'php7.2-fpm')): - apt_packages = apt_packages + WOVar.wo_php72 - if not (WOAptGet.is_installed(self, 'php7.3-fpm') or - WOAptGet.is_installed(self, 'php7.4-fpm') or - WOAptGet.is_installed(self, 'php8.0-fpm') or - WOAptGet.is_installed(self, 'php8.1-fpm') or - WOAptGet.is_installed(self, 'php8.2-fpm')): - apt_packages = apt_packages + WOVar.wo_php_extra - else: - Log.debug(self, "PHP 7.2 is not installed") - Log.info(self, "PHP 7.2 is not installed") + # Create a dictionary that maps PHP versions to corresponding variables. + php_versions = { + 'php72': '7.2', + 'php73': '7.3', + 'php74': '7.4', + 'php80': '8.0', + 'php81': '8.1', + 'php82': '8.2', + } - # PHP 7.3 - if pargs.php73: - Log.debug(self, "Setting apt_packages variable for PHP 7.3") - if WOAptGet.is_installed(self, 'php7.3-fpm'): - apt_packages = apt_packages + WOVar.wo_php73 - if not (WOAptGet.is_installed(self, 'php7.2-fpm') or - WOAptGet.is_installed(self, 'php7.4-fpm') or - WOAptGet.is_installed(self, 'php8.0-fpm') or - WOAptGet.is_installed(self, 'php8.1-fpm') or - WOAptGet.is_installed(self, 'php8.2-fpm')): - apt_packages = apt_packages + WOVar.wo_php_extra - else: - Log.debug(self, "PHP 7.3 is not installed") - Log.info(self, "PHP 7.3 is not installed") + wo_vars = { + 'php72': WOVar.wo_php72, + 'php73': WOVar.wo_php73, + 'php74': WOVar.wo_php74, + 'php80': WOVar.wo_php80, + 'php81': WOVar.wo_php81, + 'php82': WOVar.wo_php82, + } - # PHP 7.4 - if pargs.php74: - Log.debug(self, "Setting apt_packages variable for PHP 7.4") - if WOAptGet.is_installed(self, 'php7.4-fpm'): - apt_packages = apt_packages + WOVar.wo_php74 - if not (WOAptGet.is_installed(self, 'php7.3-fpm') or - WOAptGet.is_installed(self, 'php7.2-fpm') or - WOAptGet.is_installed(self, 'php8.0-fpm') or - WOAptGet.is_installed(self, 'php8.1-fpm') or - WOAptGet.is_installed(self, 'php8.2-fpm')): - apt_packages = apt_packages + WOVar.wo_php_extra - else: - Log.debug(self, "PHP 7.4 is not installed") - Log.info(self, "PHP 7.4 is not installed") + # Loop through all versions. + for parg_version, version in php_versions.items(): + # Check if this version is present in pargs. + if getattr(pargs, parg_version): + Log.debug(self, f"Setting apt_packages variable for PHP {version}") - # PHP 8.0 - if pargs.php80: - Log.debug(self, "Setting apt_packages variable for PHP 8.0") - if WOAptGet.is_installed(self, 'php8.0-fpm'): - apt_packages = apt_packages + WOVar.wo_php80 - if not (WOAptGet.is_installed(self, 'php7.3-fpm') or - WOAptGet.is_installed(self, 'php7.2-fpm') or - WOAptGet.is_installed(self, 'php7.4-fpm') or - WOAptGet.is_installed(self, 'php8.1-fpm') or - WOAptGet.is_installed(self, 'php8.2-fpm')): - apt_packages = apt_packages + WOVar.wo_php_extra - else: - Log.debug(self, "PHP 8.0 is not installed") - Log.info(self, "PHP 8.0 is not installed") + if WOAptGet.is_installed(self, f'php{version}-fpm'): + apt_packages += wo_vars[parg_version] - # PHP 8.1 - if pargs.php81: - Log.debug(self, "Setting apt_packages variable for PHP 8.1") - if WOAptGet.is_installed(self, 'php8.1-fpm'): - apt_packages = apt_packages + WOVar.wo_php81 - if not (WOAptGet.is_installed(self, 'php7.3-fpm') or - WOAptGet.is_installed(self, 'php7.2-fpm') or - WOAptGet.is_installed(self, 'php7.4-fpm') or - WOAptGet.is_installed(self, 'php8.0-fpm') or - WOAptGet.is_installed(self, 'php8.1-fpm') or - WOAptGet.is_installed(self, 'php8.2-fpm')): - apt_packages = apt_packages + WOVar.wo_php_extra - else: - Log.debug(self, "PHP 8.1 is not installed") - Log.info(self, "PHP 8.1 is not installed") + # Check if other versions are installed. + if not any(WOAptGet.is_installed(self, f'php{other_version}-fpm') for + other_version in php_versions.values() if other_version != version): + apt_packages += WOVar.wo_php_extra - # PHP 8.2 - if pargs.php82: - Log.debug(self, "Setting apt_packages variable for PHP 8.2") - if WOAptGet.is_installed(self, 'php8.2-fpm'): - apt_packages = apt_packages + WOVar.wo_php82 - if not (WOAptGet.is_installed(self, 'php7.3-fpm') or - WOAptGet.is_installed(self, 'php7.2-fpm') or - WOAptGet.is_installed(self, 'php7.4-fpm') or - WOAptGet.is_installed(self, 'php8.0-fpm') or - WOAptGet.is_installed(self, 'php8.1-fpm') or - WOAptGet.is_installed(self, 'php8.2-fpm')): - apt_packages = apt_packages + WOVar.wo_php_extra - else: - Log.debug(self, "PHP 8.2 is not installed") - Log.info(self, "PHP 8.2 is not installed") + else: + Log.debug(self, f"PHP {version} is not installed") + Log.info(self, f"PHP {version} is not installed") # REDIS if pargs.redis: