diff --git a/hooks/neutron_utils.py b/hooks/neutron_utils.py index d267ecc5..4df1b1e9 100644 --- a/hooks/neutron_utils.py +++ b/hooks/neutron_utils.py @@ -295,10 +295,16 @@ def get_packages(): def get_purge_packages(): '''Return a list of packages to purge for the current OS release''' + plugin = config('plugin') cmp_os_source = CompareOpenStackReleases(os_release('neutron-common')) + purge_packages_list = [] if cmp_os_source >= 'rocky': - return PURGE_PACKAGES - return [] + purge_packages_list.extend(PURGE_PACKAGES) + if cmp_os_source >= 'train': + purge_packages_list.append('python3-neutron-lbaas') + if plugin in (OVS, OVS_ODL): + purge_packages_list.append('neutron-lbaasv2-agent') + return purge_packages_list def remove_old_packages(): diff --git a/unit_tests/test_neutron_utils.py b/unit_tests/test_neutron_utils.py index e9c8160e..0de2d4dd 100644 --- a/unit_tests/test_neutron_utils.py +++ b/unit_tests/test_neutron_utils.py @@ -206,6 +206,37 @@ class TestNeutronUtils(CharmTestCase): neutron_utils.get_purge_packages() ) + def test_get_purge_packages_ovs_train(self): + self.config.return_value = 'ovs' + self.os_release.return_value = 'train' + self.assertEqual([ + 'python-mysqldb', + 'python-psycopg2', + 'python-oslo.config', + 'python-nova', + 'python-neutron', + 'python-neutron-fwaas', + 'python-neutron-lbaas', + 'python3-neutron-lbaas', + 'neutron-lbaasv2-agent'], + neutron_utils.get_purge_packages() + ) + + def test_get_purge_packages_nsx_train(self): + self.config.return_value = 'nsx' + self.os_release.return_value = 'train' + self.assertEqual([ + 'python-mysqldb', + 'python-psycopg2', + 'python-oslo.config', + 'python-nova', + 'python-neutron', + 'python-neutron-fwaas', + 'python-neutron-lbaas', + 'python3-neutron-lbaas'], + neutron_utils.get_purge_packages() + ) + def test_get_packages_ovsodl_icehouse(self): self.patch_object(neutron_utils, 'disable_nova_metadata', return_value=False)