diff --git a/certbot-apache/certbot_apache/_internal/parser.py b/certbot-apache/certbot_apache/_internal/parser.py index 141991ccc..7ddca3bb7 100644 --- a/certbot-apache/certbot_apache/_internal/parser.py +++ b/certbot-apache/certbot_apache/_internal/parser.py @@ -939,13 +939,34 @@ def get_aug_path(file_path): return "/files%s" % file_path +import functools +import traceback + + +def function_wrapper(aug, name, *args, **kwargs): + #if aug.match('//error'): + #import ipdb; ipdb.set_trace() + #traceback.print_stack() + print('Called', name, 'with', *args, **kwargs) + return getattr(aug, name)(*args, **kwargs) + + +class AugeasWrapper(): + def __init__(self, aug): + self._aug = aug + + def __getattr__(self, name): + p = functools.partial(function_wrapper, self._aug, name) + return p + + def init_augeas() -> Augeas: """ Initialize the actual Augeas instance """ if not Augeas: # pragma: no cover raise errors.NoInstallationError("Problem in Augeas installation") - return Augeas( + a = Augeas( # specify a directory to load our preferred lens from loadpath=constants.AUGEAS_LENS_DIR, # Do not save backup (we do it ourselves), do not load @@ -953,3 +974,4 @@ def init_augeas() -> Augeas: flags=(Augeas.NONE | Augeas.NO_MODL_AUTOLOAD | Augeas.ENABLE_SPAN)) + return AugeasWrapper(a) diff --git a/certbot-apache/tests/parser_test.py b/certbot-apache/tests/parser_test.py index 00ca23f7a..1c9a3f803 100644 --- a/certbot-apache/tests/parser_test.py +++ b/certbot-apache/tests/parser_test.py @@ -90,6 +90,7 @@ class BasicParserTest(util.ParserTest): def test_add_dir_beginning(self): aug_default = "/files" + self.parser.loc["default"] + import ipdb; ipdb.set_trace() self.parser.add_dir_beginning(aug_default, "AddDirectiveBeginning", "testBegin")