From 4b35d346514b167b0a65aa543a7577caa47cb5e9 Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Thu, 17 May 2018 21:49:25 -0700 Subject: [PATCH] Add "upgrade_cleanup" option to undercloud.conf When upgrading a non-containerized undercloud to a containerized undercloud, operators might want to purge old packages/config that were deployed in Queens. It can be done by setting upgrade_cleanup to True. The default is false so the cleanup won't happen in default upgrades. Change-Id: Ie770f72a8bf9f13ce7258a22ba9f96e5c70a35c1 --- releasenotes/notes/undercloud_cleanup-e52612bfd2ff4148.yaml | 6 ++++++ tripleoclient/config/undercloud.py | 5 +++++ tripleoclient/tests/config/test_config_undercloud.py | 6 ++++-- tripleoclient/v1/undercloud_config.py | 1 + 4 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/undercloud_cleanup-e52612bfd2ff4148.yaml diff --git a/releasenotes/notes/undercloud_cleanup-e52612bfd2ff4148.yaml b/releasenotes/notes/undercloud_cleanup-e52612bfd2ff4148.yaml new file mode 100644 index 000000000..ea5cee1df --- /dev/null +++ b/releasenotes/notes/undercloud_cleanup-e52612bfd2ff4148.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + The new option "upgrade_cleanup" is set to False by default but when + set to True, it'll cleanup the packages and configurations installed + on the undercloud after an upgrade. diff --git a/tripleoclient/config/undercloud.py b/tripleoclient/config/undercloud.py index ef4e30aac..af908bb1b 100644 --- a/tripleoclient/config/undercloud.py +++ b/tripleoclient/config/undercloud.py @@ -277,6 +277,11 @@ class UndercloudConfig(StandaloneConfig): 'Whether to clean overcloud nodes (wipe the hard ' 'drive) between deployments and after the ' 'introspection.')), + cfg.BoolOpt('upgrade_cleanup', + default=False, + help=_( + 'Whether to clean undercloud rpms after an upgrade' + ' to a containerized undercloud.')), cfg.ListOpt('enabled_hardware_types', default=['ipmi', 'redfish', 'ilo', 'idrac'], help=_('List of enabled bare metal hardware types ' diff --git a/tripleoclient/tests/config/test_config_undercloud.py b/tripleoclient/tests/config/test_config_undercloud.py index cca5c675d..2d38e3268 100644 --- a/tripleoclient/tests/config/test_config_undercloud.py +++ b/tripleoclient/tests/config/test_config_undercloud.py @@ -67,7 +67,8 @@ class TestUndercloudConfig(base.TestCase): 'undercloud_ntp_servers', 'undercloud_public_host', 'undercloud_service_certificate', - 'undercloud_update_packages'] + 'undercloud_update_packages', + 'upgrade_cleanup'] self.assertEqual(expected, [x.name for x in ret]) def test_get_opts(self): @@ -124,7 +125,8 @@ class TestUndercloudConfig(base.TestCase): 'undercloud_ntp_servers', 'undercloud_public_host', 'undercloud_service_certificate', - 'undercloud_update_packages'] + 'undercloud_update_packages', + 'upgrade_cleanup'] self.assertEqual(expected, [x.name for x in ret]) def test_get_subnet_opts(self): diff --git a/tripleoclient/v1/undercloud_config.py b/tripleoclient/v1/undercloud_config.py index 2dafc1897..b4a69e5f2 100644 --- a/tripleoclient/v1/undercloud_config.py +++ b/tripleoclient/v1/undercloud_config.py @@ -61,6 +61,7 @@ PARAMETER_MAPPING = { 'scheduler_max_attempts': 'NovaSchedulerMaxAttempts', 'local_mtu': 'UndercloudLocalMtu', 'clean_nodes': 'IronicAutomatedClean', + 'upgrade_cleanup': 'UpgradeRemoveUnusedPackages', 'local_subnet': 'UndercloudCtlplaneLocalSubnet', 'enable_routed_networks': 'UndercloudEnableRoutedNetworks', 'local_interface': 'NeutronPublicInterface'