summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-04-11 10:07:44 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-04-11 10:07:44 -0400
commit8bceb4424a27331b40ac8dc3c05f09017d7d4981 (patch)
treea66d2c49f8e2c402d0e3cbd238e589e5a0660976 /src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py
parentb82a107695ab14a4b19016a5e6c322e4c3119380 (diff)
downloadbcfg2-8bceb4424a27331b40ac8dc3c05f09017d7d4981.tar.gz
bcfg2-8bceb4424a27331b40ac8dc3c05f09017d7d4981.tar.bz2
bcfg2-8bceb4424a27331b40ac8dc3c05f09017d7d4981.zip
fixed xincludes to properly handle includes-in-includes, includes that aren't top-level, and other misc. stuff
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py b/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py
index 3511cfc3d..8d0067b6a 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/PackagesSources.py
@@ -44,8 +44,18 @@ class PackagesSources(Bcfg2.Server.Plugin.SingleXMLFileBacked,
def HandleEvent(self, event=None):
Bcfg2.Server.Plugin.SingleXMLFileBacked.HandleEvent(self, event=event)
- if event.filename != self.name:
- self.parsed.add(os.path.basename(event.filename))
+ if event and event.filename != self.name:
+ for fname in self.extras:
+ fpath = None
+ if fname.startswith("/"):
+ fpath = os.path.abspath(fname)
+ else:
+ fpath = \
+ os.path.abspath(os.path.join(os.path.dirname(self.name),
+ fname))
+ if fpath == os.path.abspath(event.filename):
+ self.parsed.add(fname)
+ break
if sorted(list(self.parsed)) == sorted(self.extras):
self.logger.info("Reloading Packages plugin")