From a4bd3e3b55cc842b50075e9cae912f7dc9e9cfa2 Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Sun, 30 Jan 2022 05:00:21 +0100 Subject: debconf: Support removing of conf entries --- src/lib/Bcfg2/Client/Tools/Debconf.py | 12 +++++++++++- src/lib/Bcfg2/Client/__init__.py | 5 ++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/lib/Bcfg2/Client/Tools/Debconf.py b/src/lib/Bcfg2/Client/Tools/Debconf.py index 706f7a8dc..2dc88e748 100644 --- a/src/lib/Bcfg2/Client/Tools/Debconf.py +++ b/src/lib/Bcfg2/Client/Tools/Debconf.py @@ -96,7 +96,17 @@ class Debconf(Bcfg2.Client.Tools.Tool): return result Install.__doc__ = Bcfg2.Client.Tools.Tool.Install.__doc__ - + + def Remove(self, entries): + try: + for entry in entries: + self.debconf_reset(entry.get('name')) + self.modified += entry + finally: + self._stop_debconf() + self.extra = self.FindExtra() + Remove.__doc__ = Bcfg2.Client.Tools.Tool.Remove.__doc__ + def FindExtra(self): specified = [entry.get('name') for entry in self.getSupportedEntries()] diff --git a/src/lib/Bcfg2/Client/__init__.py b/src/lib/Bcfg2/Client/__init__.py index 157cc7f65..a7e0dade5 100644 --- a/src/lib/Bcfg2/Client/__init__.py +++ b/src/lib/Bcfg2/Client/__init__.py @@ -110,7 +110,7 @@ class Client(object): help='Only verify the given bundle(s)'), Bcfg2.Options.Option( '-r', '--remove', - choices=['all', 'services', 'packages', 'users'], + choices=['all', 'services', 'packages', 'users', 'conf'], help='Force removal of additional configuration items')), Bcfg2.Options.ExclusiveOptionGroup( Bcfg2.Options.PathOption( @@ -640,6 +640,9 @@ class Client(object): elif Bcfg2.Options.setup.remove == 'users': self.removal = [entry for entry in self.extra if entry.tag in ['POSIXUser', 'POSIXGroup']] + elif Bcfg2.Options.setup.remove == 'conf': + self.removal = [entry for entry in self.extra + if entry.tag == 'Conf'] candidates = [entry for entry in self.states if not self.states[entry]] -- cgit v1.2.3-1-g7c22