From 79838c23f2d9b2615c11fa460ed972ad6833c6fd Mon Sep 17 00:00:00 2001 From: Alexander Sulfrian Date: Sat, 18 Apr 2015 23:19:04 +0200 Subject: Server: Ignore directories containing a .bcfg2-ignore file The DirectoryBacked helper now does not recurse into directories that contains a .bcfg2-ignore file. This makes it possible to ignore some directories for most plugins (Bundler, Defaults, Pkgmgr, Properties, PuppetENC, TemplateHelper, Trigger). You can store for example a python module used by a TemplateHelper in the same directory, without getting strange error messages while TemplateHelper is trying to import each single file of this module. --- doc/releases/1.4.0pre2.txt | 3 +++ src/lib/Bcfg2/Server/Plugin/helpers.py | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/doc/releases/1.4.0pre2.txt b/doc/releases/1.4.0pre2.txt index a5c10777a..8acbda8a7 100644 --- a/doc/releases/1.4.0pre2.txt +++ b/doc/releases/1.4.0pre2.txt @@ -31,6 +31,9 @@ backwards-incompatible user-facing changes This fixes potentially long client runs when comparing files that have diverged significantly. +* Ignore directories containing a .bcfg2-ignore file in various plugins + (Bundler, Defaults, Pkgmgr, Properties, PuppetENC, TemplateHelper, Trigger). + Thanks ------ diff --git a/src/lib/Bcfg2/Server/Plugin/helpers.py b/src/lib/Bcfg2/Server/Plugin/helpers.py index 5cfc8998c..245cfc256 100644 --- a/src/lib/Bcfg2/Server/Plugin/helpers.py +++ b/src/lib/Bcfg2/Server/Plugin/helpers.py @@ -456,7 +456,9 @@ class DirectoryBacked(Debuggable): # again without having to add a new monitor. elif os.path.isdir(abspath): # Deal with events for directories - if action in ['exists', 'created']: + if os.path.exists(os.path.join(abspath, '.bcfg2-ignore')): + self.logger.debug("Ignoring directory %s" % abspath) + elif action in ['exists', 'created']: self.add_directory_monitor(relpath) elif action == 'changed': if relpath in self.entries: -- cgit v1.2.3-1-g7c22